--- license: mit language: - ru - en pipeline_tag: text-generation tags: - moe --- # GigaChat3-10B-A1.8B Представляем `GigaChat3-10B-A1.8B` — диалоговую модель семейства GigaChat. Модель основана на архитектуре Mixture-of-Experts (MoE) с 10B общих и 1.8B активных параметров. Архитектура включает **Multi-head Latent Attention (MLA)** и **Multi-Token Prediction (MTP)**, за счет чего модель оптимизирована для высокой пропускной способности (throughput) при инференсе. Модель обучена поверх нашей базовой версии ([GigaChat3-10B-A1.8B-base](https://huggingface.co/ai-sage/GigaChat3-10B-A1.8B-base)) с помощью высококачественных SFT-данных. Для высокопроизводительного инференса доступна версия модели в fp8 — [GigaChat3-10B-A1.8B-fp8](https://huggingface.co/ai-sage/GigaChat3-10B-A1.8B-fp8). Поддерживает контекст до 256 тысяч токенов. Больше подробностей [в хабр статье](https://habr.com/en/companies/sberdevices/articles/968904/). ## Архитектура модели `GigaChat3-10B-A1.8B` использует кастомную MoE-архитектуру: ### Multi-head Latent Attention (MLA) Вместо стандартного Multi-head Attention модель использует MLA. MLA обеспечивает эффективный инференс за счет сжатия Key-Value (KV) кэша в латентный вектор, что значительно снижает требования к памяти и ускоряет обработку. ### Multi-Token Prediction (MTP) Модель обучена с использованием задачи Multi-Token Prediction (MTP). Это позволяет модели предсказывать несколько токенов за один проход, что ускоряет генерацию до 40% с помощью техник спекулятивной/параллельной генерации. ## Данные для обучения Модель обучена на 20Т токенов. Мы добавили 10 языков — от китайского и арабского до узбекского и казахского, а также расширили набор источников: книги, академические данные, датасеты по коду и математике. Все данные проходят дедупликацию, языковую фильтрацию и автоматические проверки качества при помощи эвристик и классификаторов. Ключевой вклад в качество внесла синтетика: мы сгенерировали около 5,5 триллионов токенов синтетических данных. В корпус входят вопросы-ответы к текстам, цепочки reverse-prompt для структурирования данных, LLM-заметки с комментариями от модели внутри текстов, миллионы синтетических задач с решениями по математике и олимпиадному программированию (с синтетическими тестами) на основе PromptCot. ## Инференс Одно из ключевых преимуществ `GigaChat3-10B-A1.8B` — скорость инференса. Модель (особенно в режиме MTP) демонстрирует пропускную способность, сопоставимую с пропускной способностью значительно меньших dense‑моделей. Мы измеряли с помощью vLLM v0.11.0, на типе bfloat16 c `batch_size=1`. [Ссылка на код.](https://gist.github.com/ajpqs/ce941aa6f0f48ef36a65cb87a2a1d726) |**Модель**|**request_throughput**|**output_throughput**|**total_token_throughput**|**mean_ttft_ms**| |---|---|---|---|---| |`Qwen3-1.7B`|1.689|357.308|726.093|11.824| |**`mtp-GigaChat3-10B-A1.8B-base`**|**1.533**|**333.620**|**678.894**|**26.345**| |**`GigaChat3-10B-A1.8B-base`**|**1.077**|**234.363**|**476.912**|**31.053**| |`Qwen3-4B`|0.978|206.849|420.341|14.947| |`Qwen3-8B`|0.664|140.432|285.375|16.663| |`YandexGPT-5-Lite-8B-pretrain`|0.641|147.305|300.269|16.711| ## Бенчмарки Хотя модель имеет 10 миллиардов параметров, её прямые аналоги — модели размером 3–4 миллиарда параметров. Однако благодаря высокой скорости генерации мы также сравниваем её с ещё более компактными моделями. | Метрика | GigaChat 3 Lightning | Qwen3-1.7B-Instruct | Qwen3-4B-Instruct-2507 | SmolLM3 | | ------------------------- | ---------------------: | -----------------------: | ---------------------: | ------: | | MMLU_RU_FIVE_SHOT | **0.6833** | 0.4876 | 0.5972 | 0.4998 | | RUBQ_ZERO_SHOT | **0.6516** | 0.2557 | 0.3170 | 0.6363 | | MMLU_PRO_EN_FIVE_SHOT | 0.6061 | 0.410 | **0.6849** | 0.5013 | | MMLU_EN_FIVE_SHOT | **0.7403** | 0.60 | 0.7080 | 0.5992 | | BBH_THREE_SHOT | 0.4525 | 0.3317 | **0.7165** | 0.4161 | | SuperGPQA | 0.2731 | 0.2092 | **0.3745** | 0.2459 | | MATH_500_FOUR_SHOT | 0.7000 | 0.7520 | **0.8880** | 0.8020 | | GPQA_COT_ZERO_SHOT | 0.3502 | 0.2651 | **0.5370** | 0.3704 | | LiveCodeBench_ZERO_SHOT | 0.2031 | 0.0794 | **0.3046** | 0.1656 | | HUMAN_EVAL_PLUS_ZERO_SHOT | 0.6951 | 0.6280 | **0.8780** | 0.7012 | ## Как проверить метрики модели ```shell # lm-eval[api]==0.4.9.1 # sglang[all]==0.5.5 # или # vllm==0.11.2 export HF_ALLOW_CODE_EVAL=1 # sglang server up # 10B python -m sglang.launch_server --model-path --host 127.0.0.1 --port 30000 --dtype auto --mem-fraction-static 0.88 --trust-remote-code --allow-auto-truncate --speculative-algorithm EAGLE --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 # mmlu pro check python -m lm_eval --model sglang-generate --output_path --batch_size 16 --model_args base_url=http://127.0.0.1:30000/generate,num_concurrent=16,tokenized_requests=True,max_length=131072,tokenizer= --trust_remote_code --confirm_run_unsafe_code --num_fewshot 5 --tasks mmlu_pro ``` ## Пример использования (Quickstart) ### 1. `transformers` ```python import torch from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig model_name = "ai-sage/GigaChat3-10B-A1.8B-bf16" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name, 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), max_new_tokens=1000) result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=False) print(result) ``` ### 2. `vLLM` Запуск сервера ```shell vllm serve ai-sage/GigaChat3-10B-A1.8B-bf16 \ --dtype "auto" \ --speculative-config '{"method": "mtp", "num_speculative_tokens": 1, "disable_padded_drafter_batch": false}' ``` Пример запроса ```shell curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ai-sage/GigaChat3-10B-A1.8B-bf16", "messages": [ { "role": "user", "content": "Докажи теорему о неподвижной точке" } ], "max_tokens": 400, "temperature": 0 }' ``` ### 3. `SGLang` Запуск сервера ```shell python -m sglang.launch_server \ --model-path ai-sage/GigaChat3-10B-A1.8B-bf16 \ --host 0.0.0.0 \ --port 30000 \ --dtype auto \ --mem-fraction-static 0.88 \ --speculative-algorithm EAGLE \ --speculative-num-steps 1 \ --speculative-eagle-topk 1 \ --speculative-num-draft-tokens 2 ``` Пример запроса ```shell curl http://localhost:30000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ai-sage/GigaChat3-10B-A1.8B-bf16", "messages": [ { "role": "user", "content": "Докажи теорему о неподвижной точке" } ], "max_tokens": 1000, "temperature": 0 }' ```