GigaChat-20B-A3B-instruct

Диалоговая модель из семейства моделей GigaChat, основная на GigaChat-20B-A3B-base. Поддерживает контекст в 131 тысячу токенов.

Больше подробностей в хабр статье.

Для данной модели также доступны веса в bf16 и int8

Upd. Перезалили веса в .safetensors

Бенчмарки

T-lite-instruct-0.1
(llama 3.0 8B based)
gemma-2-9b-it GigaChat-20B-A3B-instruct
MERA 0.335 0.392 0.513
ru-MMLU 5-shot 0.555 0.625 0.598
Shlepa 0.36 0.388 0.482

Семейство GigaChat

GigaChat-20B-A3B-instruct GigaChat-Pro v26.20 GigaChat-Max v26.20
Математические задачи
GSM8K 5-shot 0,763 0,782 0,929
MATH 4-shot 0,426 0,446 0,53
Написание кода
HumanEval 0-shot 0,329 0,439 0,64
MBPP 0-shot 0,385 0,487 0,667
Общие знания
MMLU EN 5-shot 0,648 0,687 0,804
MMLU RU 5-shot
Переведенные данные из MMLU EN 5-shot
0,598 0,645 0,75
MMLU RU 1-shot 0,617 0,718
MMLU PRO EN 5-shot 0,348 0,431 0,589
RUBQ 0-shot 0,675 0,724 0,73
WINOGRANDE 4-shot 0,75 0,796 0,832
CyberMetric 0-shot 0,798 0,827 0,864
Следование инструкциям
IFEval 0-shot 0,411 0,566 0,721
Особенности замеров GSM8k — это тест, который проверяет, как хорошо модели могут решать задачи с числами. В нашем исследовании мы использовали 5 шотов, чтобы оценить модель, и смотрели на последнее число в ответе. В оригинальное тесте ответ ищется по шаблону: ‘### число’.

Тест Math тоже имеет разные версии, которые проверяют математические способности моделей. В нашем исследовании мы давали 4 примера и смотрели на последнее выражение в формате '\boxed{expression}'. Затем оценивали результаты на совпадение с помощью библиотеки sympy.

Requirements

  • transformers>=4.47

Пример использования через transformers

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig

model_name = "ai-sage/GigaChat-20B-A3B-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map="auto")
model.generation_config = GenerationConfig.from_pretrained(model_name)

messages = [
    {"role": "user", "content": "Докажи теорему о неподвижной точке"}
]
input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
outputs = model.generate(input_tensor.to(model.device))

result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=False)
print(result)

Пример использования через vLLM

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

model_name = "ai-sage/GigaChat-20B-A3B-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
llm = LLM(model=model_name, trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.3, max_tokens=8192)

messages_list = [
    [{"role": "user", "content": "Докажи теорему о неподвижной точке"}],
]

prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) for messages in messages_list]

outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)

generated_text = [output.outputs[0].text for output in outputs]
print(generated_text)

В GigaChat-20B-A3B-instruct используется особый способ токенизации текста, поэтому не рекомендуется следующий сценарий

input_string = tokenizer.apply_chat_template(messages,tokenize=False, add_generation_prompt=True)
input_tensor = tokenizer(input_string, return_tensors="pt")

Пример использования vLLM server

Запуск сервера

vllm serve ai-sage/GigaChat-20B-A3B-instruct  \
  --disable-log-requests \
  --trust_remote_code \
  --dtype bfloat16 \
  --max-seq-len 8192

Пример запроса

curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "ai-sage/GigaChat-20B-A3B-instruct" ,
        "messages": [
            {"role": "system", "content": "Ты ОЧЕНЬ умный математик"},
            {"role": "user", "content": "Докажи теорему о неподвижной точке"}
        ]
    }'
Downloads last month
1,050
Safetensors
Model size
20.6B params
Tensor type
F32
·
Inference API
Unable to determine this model's library. Check the docs .

Model tree for ai-sage/GigaChat-20B-A3B-instruct

Finetuned
(1)
this model
Quantizations
10 models