HuggingFace镜像/GigaChat3.1-10B-A1.8B-GGUF
模型介绍文件和版本分析
下载使用量0

GigaChat 3.1 Lightning

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 架构,包含以下关键组件。

混合专家(Mixture-of-Experts, MoE)

该模型总参数为 100 亿,推理时激活参数为 18 亿。这使其能够大幅提升模型容量,同时保持激活计算量远低于同等规模的密集型模型。

多头 latent 注意力(Multi-head Latent Attention, MLA)

该模型未采用标准多头注意力,而是使用 MLA,将 KV 缓存压缩为 latent 表示。这减少了内存使用量,并提高了推理吞吐量,尤其在长上下文场景中表现突出。

多 token 预测(Multi-Token Prediction, MTP)

该模型通过 MTP 进行训练,支持在单次前向传播中预测多个 token。在生产系统中,可结合推测式或并行解码技术使用,以提高吞吐量。

训练数据

GigaChat 3 的基础训练语料库涵盖 10 种语言,包括书籍、学术资料、代码数据集和数学数据集。所有数据均经过去重、语言过滤以及基于启发式和分类器的自动质量检查。

合成数据仍是质量提升的主要因素。在更广泛的训练语料库中,我们使用了约 5.5 万亿个合成 token,包括:

  • 基于源文本生成的问答数据,
  • 用于结构化数据生成的反向提示链,
  • 嵌入文本中的模型编写注释,
  • 数百万个数学和奥林匹克风格编程的合成任务及解决方案,
  • 代码和推理任务的合成测试。

针对 3.1 版本,我们对数据进行了重大改进:

  • 1.5 阶段硬领域扩展:加强了数学、金融、物理、工程、生物、化学和医学领域的覆盖。
  • 更严格的质量验证:我们的内部 Revisor 流水线新增了对 Markdown、LaTeX 和答案格式正确性的更严格检查。
  • LLM 评判者验证:SFT 和 DPO 数据由根据任务类型和响应结构选择的评判者进行验证。
  • 策略内 DPO 数据:偏好对基于预览模型行为生成,使其更贴合真实模型的失效模式。
  • 更优的产品导向数据:我们扩展了搜索引用场景、文件感知代码解释、个性化以及带可执行工具调用的智能体对话数据。
  • 改进的回答风格:我们还修订了格式和写作指南,以提高可读性、正确性和整体响应质量。

训练后改进

原生FP8下的DPO

与预览版不同,GigaChat 3.1 Lightning包含完整的DPO阶段。该阶段针对MoE架构进行了重新设计,并在原生FP8环境下训练,而非仅在训练后进行量化。

主要改进包括:

  • 在DPO期间训练MTP头,以提高主模型预测与MTP预测之间的一致性,
  • 对长序列采用带指数衰减的加权gamma,
  • 加强对批量大小和DPO贡献度的调优,
  • 增强对循环诱导失效模式的鲁棒性。

在我们的实验中,原生FP8 DPO不仅挽回了训练后FP8量化可能导致的性能损失,在某些情况下甚至超过了BF16的结果,同时显著降低了内存占用。

更快的训练后处理

我们还通过结合序列打包、动态序列并行以及额外的流水线优化,对SFT流程进行了优化。这显著降低了训练成本,并提高了GPU利用率,尤其是在长上下文工作负载上。

推理

GigaChat3.1-10B-A1.8B的核心优势之一是其推理速度。该模型(尤其是在MTP模式下)展现出的吞吐量可与显著更小的密集型模型相媲美。 我们使用vllm 0.17.1rc1.dev158+g600a039f5,并发数=32,1xH100 80gb SXM5进行了测量。 代码链接。

模型输出tps总tpsTPOT与Lightning BF16的差异
GigaChat-3.1-Lightning BF162 8665 8329.52+0.0%
GigaChat-3.1-Lightning BF16 + MTP3 3466 8108.25+16.7%
GigaChat-3.1-Lightning FP83 3826 8837.63+18.0%
GigaChat-3.1-Lightning FP8 + MTP3 9588 0546.92+38.1%
YandexGPT-5-Lite-8B3 0816 2817.62+7.5%

基准测试结果

领域指标GigaChat-3-LightningGigaChat-3.1-LightningQwen3-1.7B-InstructQwen3-4B-InstructSmolLM3gemma-3-4b-it
通用MMLU RU0.6830.6803-0.5970.5000.519
通用RUBQ0.6520.6646-0.3170.6360.382
通用MMLU PRO0.6060.61760.4100.6850.5010.410
通用MMLU EN0.7400.72980.6000.7080.5990.594
通用BBH0.4530.57580.33170.7170.4160.131
通用SuperGPQA0.2730.29390.2090.3750.2460.201
代码Human Eval Plus0.6950.73170.6280.8780.7010.713
总计平均值0.5860.6310.4580.6120.5140.421

竞技场结果

竞技场GigaChat-2-Lite-30.1GigaChat-3-LightningGigaChat-3.1-LightningYandexGPT-5-Lite-8BSmolLM3gemma-3-4b-itQwen3-4BQwen3-4B-Instruct-2507
Arena Hard Logs V323.70014.346.70017.918.138.727.761.5
Validator SBS Pollux32.50024.355.70010.313.734.00019.856.100
总平均值28.10019.351.20014.115.936.3523.7558.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"]
        }
      }
    }
  ]
}'