GigaChat 3.1 Lightning 是 GigaChat 3.1 系列的轻量级指令模型。它是一个混合专家(Mixture-of-Experts, MoE)模型,总参数为 100 亿,激活参数为 18 亿,专为快速多语言助手工作负载、推理、代码生成、函数调用和产品级部署而设计。
为实现高性能推理,该模型提供 fp8 版本 - GigaChat3.1-10B-A1.8B。
同时提供 bf16 版本 - GigaChat3.1-10B-A1.8B-bf16。
更多详情可参见 Habr 文章。
GigaChat 3.1 Lightning 采用自定义 MoE 架构,包含以下关键组件。
该模型总参数为 100 亿,推理时激活参数为 18 亿。这使其能够大幅提升模型容量,同时保持激活计算量远低于同等规模的密集型模型。
该模型未采用标准多头注意力,而是使用 MLA,将 KV 缓存压缩为 latent 表示。这减少了内存使用量,并提高了推理吞吐量,尤其在长上下文场景中表现突出。
该模型通过 MTP 进行训练,支持在单次前向传播中预测多个 token。在生产系统中,可结合推测式或并行解码技术使用,以提高吞吐量。
GigaChat 3 的基础训练语料库涵盖 10 种语言,包括书籍、学术资料、代码数据集和数学数据集。所有数据均经过去重、语言过滤以及基于启发式和分类器的自动质量检查。
合成数据仍是质量提升的主要因素。在更广泛的训练语料库中,我们使用了约 5.5 万亿个合成 token,包括:
针对 3.1 版本,我们对数据进行了重大改进:
Revisor 流水线新增了对 Markdown、LaTeX 和答案格式正确性的更严格检查。与预览版不同,GigaChat 3.1 Lightning包含完整的DPO阶段。该阶段针对MoE架构进行了重新设计,并在原生FP8环境下训练,而非仅在训练后进行量化。
主要改进包括:
在我们的实验中,原生FP8 DPO不仅挽回了训练后FP8量化可能导致的性能损失,在某些情况下甚至超过了BF16的结果,同时显著降低了内存占用。
我们还通过结合序列打包、动态序列并行以及额外的流水线优化,对SFT流程进行了优化。这显著降低了训练成本,并提高了GPU利用率,尤其是在长上下文工作负载上。
GigaChat3.1-10B-A1.8B的核心优势之一是其推理速度。该模型(尤其是在MTP模式下)展现出的吞吐量可与显著更小的密集型模型相媲美。
我们使用vllm 0.17.1rc1.dev158+g600a039f5,并发数=32,1xH100 80gb SXM5进行了测量。
代码链接。
| 模型 | 输出tps | 总tps | TPOT | 与Lightning BF16的差异 |
|---|---|---|---|---|
| GigaChat-3.1-Lightning BF16 | 2 866 | 5 832 | 9.52 | +0.0% |
| GigaChat-3.1-Lightning BF16 + MTP | 3 346 | 6 810 | 8.25 | +16.7% |
| GigaChat-3.1-Lightning FP8 | 3 382 | 6 883 | 7.63 | +18.0% |
| GigaChat-3.1-Lightning FP8 + MTP | 3 958 | 8 054 | 6.92 | +38.1% |
| YandexGPT-5-Lite-8B | 3 081 | 6 281 | 7.62 | +7.5% |
| 领域 | 指标 | GigaChat-3-Lightning | GigaChat-3.1-Lightning | Qwen3-1.7B-Instruct | Qwen3-4B-Instruct | SmolLM3 | gemma-3-4b-it |
|---|---|---|---|---|---|---|---|
| 通用 | MMLU RU | 0.683 | 0.6803 | - | 0.597 | 0.500 | 0.519 |
| 通用 | RUBQ | 0.652 | 0.6646 | - | 0.317 | 0.636 | 0.382 |
| 通用 | MMLU PRO | 0.606 | 0.6176 | 0.410 | 0.685 | 0.501 | 0.410 |
| 通用 | MMLU EN | 0.740 | 0.7298 | 0.600 | 0.708 | 0.599 | 0.594 |
| 通用 | BBH | 0.453 | 0.5758 | 0.3317 | 0.717 | 0.416 | 0.131 |
| 通用 | SuperGPQA | 0.273 | 0.2939 | 0.209 | 0.375 | 0.246 | 0.201 |
| 代码 | Human Eval Plus | 0.695 | 0.7317 | 0.628 | 0.878 | 0.701 | 0.713 |
| 总计 | 平均值 | 0.586 | 0.631 | 0.458 | 0.612 | 0.514 | 0.421 |
| 竞技场 | GigaChat-2-Lite-30.1 | GigaChat-3-Lightning | GigaChat-3.1-Lightning | YandexGPT-5-Lite-8B | SmolLM3 | gemma-3-4b-it | Qwen3-4B | Qwen3-4B-Instruct-2507 |
|---|---|---|---|---|---|---|---|---|
| Arena Hard Logs V3 | 23.700 | 14.3 | 46.700 | 17.9 | 18.1 | 38.7 | 27.7 | 61.5 |
| Validator SBS Pollux | 32.500 | 24.3 | 55.700 | 10.3 | 13.7 | 34.000 | 19.8 | 56.100 |
| 总平均值 | 28.100 | 19.3 | 51.200 | 14.1 | 15.9 | 36.35 | 23.75 | 58.800 |
llama-cpp 版本 >= 8495 (58c81f7e8)
cmake 版本 >= 3.28.3
构建 llama-cpp
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build -DGGML_CUDA=ON # build for CUDA
cmake --build build --config Release --target llama-server -j 8启动服务器
# Specify the full path to your model.gguf
export MODEL_PATH="/path/to/your/model.gguf"
./build/bin/llama-server \
-m $MODEL_PATH \
-np 1 \
-cb \
-ctk q8_0 \
-ctv q8_0 \
-fa on \
--n-gpu-layers 999 \ # number of layers on GPU
--ctx-size 32768 \
--port 8080 \
--host 0.0.0.0 \
--jinja请求示例
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"tool_choice": "none",
"messages": [
{
"role": "user",
"content": "Докажи теорему о неподвижной точке"
}
],
"max_tokens": 1000,
"temperature": 0
}'带函数调用的请求示例
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"temperature": 0,
"messages": [
{
"role": "user",
"content": "Какая сейчас погода в Москве?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Получить информацию о текущей погоде в указанном городе.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Название города (например, Москва, Казань)."
}
},
"required": ["city"]
}
}
}
]
}'