File size: 8,134 Bytes
98dfd76 61fc417 98dfd76 3fd6226 35bd408 8092e70 98dfd76 3fd6226 b37f9a4 98dfd76 35bd408 98dfd76 35bd408 98dfd76 35bd408 98dfd76 3fd6226 35bd408 3fd6226 98dfd76 35bd408 98dfd76 5755231 98dfd76 4b436e1 289ec07 4b436e1 cf68b7a 4b436e1 98dfd76 72c122d 98dfd76 4b436e1 98dfd76 4b436e1 98dfd76 5755231 98dfd76 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | ---
license: mit
language:
- ru
- en
pipeline_tag: text-generation
tags:
- moe
---
# GigaChat3-10B-A1.8B-base
Представляем `GigaChat3-10B-A1.8B-base` — базовую (pretrain) модель семейства GigaChat. Модель основана на архитектуре Mixture-of-Experts (MoE) с 10B общих и 1.8B активных параметров.
Архитектура включает **Multi-head Latent Attention (MLA)** и **Multi-Token Prediction (MTP)**, за счет чего модель оптимизирована для высокой пропускной способности (throughput) при инференсе.
Больше подробностей [в хабр статье](https://habr.com/en/companies/sberdevices/articles/968904/).
## Важное замечание: Base vs. Instruct
Данная карточка описывает **базовую** (pretrain) модель.
Для диалоговых задач и выполнения инструкций, пожалуйста, используйте нашу [**instruct**-версию](https://huggingface.co/ai-sage/GigaChat3-10B-A1.8B).
## Архитектура модели
`GigaChat3-10B-A1.8B-base` использует кастомную 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-base` — скорость инференса. Модель (особенно в режиме 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 миллиарда параметров. Однако благодаря высокой скорости генерации мы также сравниваем её с ещё более компактными моделями.

## Как проверить метрики модели
```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 <path_to_model> --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 <path_to_model> --batch_size 16 --model_args base_url=http://127.0.0.1:30000/generate,num_concurrent=16,tokenized_requests=True,max_length=131072,tokenizer=<path_to_model> --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-base"
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 = (
"Ниже я написал подробное доказательство теоремы о неподвижной точке:"
)
inputs = tokenizer(messages, return_tensors="pt").to(model.device)
outputs = model.generate(inputs.input_ids, attention_mask=inputs.attention_mask)
result = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=False)
print(result)
```
### 2. `vLLM`
Запуск сервера
```shell
vllm serve ai-sage/GigaChat3-10B-A1.8B-base \
--dtype "auto" \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 1, "disable_padded_drafter_batch": false}'
```
Пример запроса
```shell
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "ai-sage/GigaChat3-10B-A1.8B-base",
"prompt": "Ниже я написал подробное доказательство теоремы о неподвижной точке:",
"max_tokens": 400,
"temperature": 0
}'
```
### 3. `SGLang`
Запуск сервера
```shell
python -m sglang.launch_server \
--model-path ai-sage/GigaChat3-10B-A1.8B-base \
--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/completions \
-H "Content-Type: application/json" \
-d '{
"model": "ai-sage/GigaChat3-10B-A1.8B-base",
"prompt": "Ниже я написал подробное доказательство теоремы о неподвижной точке:",
"max_tokens": 400,
"temperature": 0
}'
``` |