CoolFace
Modelpublic

ai-sage/GigaChat3.5-432B-A28B-checkpoints

sourceHugging Facemitupdated 3mo agoView on Hugging Face
5likes28downloads
Model Card

GigaChat 3.5 Ultra

GigaChat 3.5 Ultra is the flagship instant model of the GigaChat family. It is a large-scale Mixture-of-Experts (MoE) model with 432B total parameters, built on a custom hybrid attention architecture that combines Multi-head Latent Attention (MLA) with GatedDeltaNet linear-attention layers. The model targets multilingual assistant workloads, reasoning, code, agentic/tool-use scenarios, and large-cluster deployment.

Compared to the previous flagship GigaChat 3.1 Ultra (700B), version 3.5 is ~40% more compact yet stronger in code, mathematics, and agentic scenarios. It also uses roughly 4× less KV-cache per token, fits more than 2× more context into the same memory, and improves generation throughput by ~20%.

This repo includes checkpoints from all major training stages. The final base and instant models are available in separate repositories.

StageStepBranch name
Pretrain30kpretrain-30k-step
Pretrain110kpretrain-110k-step
Pretrain / cosine anneal135kpretrain-135k-step
Pretrain / cosine anneal160kpretrain-160k-step
Midtrain170kmidtrain-170k-step
Midtrain175kmidtrain-175k-step
BaseGigaChat3.5-432B-A28B-base
DPOdpo
InstantGigaChat3.5-432B-A28B

image

For final instant-model use the fp8 version: GigaChat3.5-432B-A28B.

Bf16 version of instruct model is also avaliable GigaChat3.5-432B-A28B-bf16.

GGUF version is also avaliable - GigaChat3.5-432B-A28B-GGUF.

More details can be found in the Habr article.

Model architecture

GigaChat 3.5 Ultra uses a custom MoE architecture. The core change relative to 3.1 is a self-designed hybrid architecture and a matching training recipe: every acceleration feature (linear attention, MTP) was paired with a stabilizing mechanism so the model could be trained to full scale without loss of stability.

Mixture-of-Experts (MoE)

The model has 432B total and 28B active parameters, keeping inference cost far below that of an equally large dense model. The MoE decoder layer is composed of attention, the MoE (expert) block, and a post-normalization applied before the residual add.

Hybrid attention: MLA + GatedDeltaNet

Standard attention grows more expensive with context length: the longer the request, the larger the KV-cache, and the more generation is bottlenecked on memory. GigaChat 3.5 introduces a hybrid design in which some layers remain regular MLA and the rest are linear-attention layers based on GatedDeltaNet. This preserves the strengths of full attention while lowering the cost of long context.

Gated Normalization (GatedNorm)

Large models tend to develop implicit self-stabilization (attention/residual sinks), routing most of the signal through a single token or feature to hold the activation scale — which is poorly controlled and can itself become a source of noise at scale. GatedNorm replaces these implicit anchors with an explicit multiplicative gate after RMSNorm, letting the network rescale the signal across features directly. It is made scale-neutral at init via the 2 · sigmoid reparametrization (a plain sigmoid starts near 0.5 and would halve the scale; the factor 2 keeps the gate near 1.0), so it barely perturbs the data flow at start and learns where to attenuate.

Overall architecture

image

Multi-Token Prediction (MTP)

GigaChat Ultra 3.0 had a single MTP head; in GigaChat Ultra 3.5 we added two MTP heads. Greedy decoding accelerates the generation speed ~1.5× with one head and up to 2.2× with two.

Precision and optimizer

The model was trained in native FP8 across all training stages. We also release dequantized bf16 checkpoint.

Alignment

The post-training pipeline runs Stage 1.5 → SFT → DPO → Online RL. Online RL is the headline addition of this release and drove the gains in Instruction Following and on arenas.

Benchmark scores

Base-models

GENERAL

TaskGigaChat 3.1 Base (700B)GigaChat-3.5-Ultra-Base (430B)DeepSeek V4 Flash Base (284B)DeepSeek V3.2 Exp Base (685B)
MMLU (5-shot)79.8985.2888.6887.47
MMLU-Pro (5-shot)68.0174.5465.8662.43
GPQA Diamond (official, CoT)30.330.8122.7322.22
BBH (3-shot)83.7887.588.2489.16
ARC-C (25-shot, acc_norm)68.3470.3972.3570.31
ARC-E (25-shot, acc_norm)88.3888.5990.8289.27
HellaSwag (10-shot, acc_norm)89.4389.4788.989.28
Winogrande (5-shot)82.728584.6184.93
DROP (5-shot, EM)56.2959.5563.8865.14
TriviaQA (5-shot, EM)81.482.2383.9683.88
NQ-Open (5-shot, EM)37.3441.6640.8342.27
Avg69.672.371.971.5

MATH

TaskGigaChat 3.1 Base (700B)GigaChat-3.5-Ultra-Base (430B)DeepSeek V4 Flash Base (284B)DeepSeek V3.2 Exp Base (685B)
MATH Minerva (math-verify)55.7861.754.7458.2
GSM8K (CoT, math_verify)86.7386.5886.4384.99
MGSM ru (CoT)87.68684.482
Avg76.778.175.275.1

CODE

TaskGigaChat 3.1 Base (700B)GigaChat-3.5-Ultra-Base (430B)DeepSeek V4 Flash Base (284B)DeepSeek V3.2 Exp Base (685B)
HumanEval (pass@1)70.1280.4966.4664.02
HumanEval+ (pass@1)62.875.6161.5956.71
MBPP (pass@1)70.270.470.270.4
MBPP+ (pass@1)83.3383.3377.2582.28
CRUXEval (pass@1)64.5667.569.7569.94
LCB CodeGen Lite49.2954.3157.2550.24
Avg66.771.967.165.6

Instruct-models

TaskGigaChat-3.1-Ultra (700B)GigaChat-3.5-Ultra (430B)DeepSeek V3.2* (685B)
TAU2-bench41.8768.7166
SWE bench verified **8.642.644.8
Terminal bench 2 ***913.4829.21
Live Code Bench v649.2956.259.3
Natural Plan31.627.1420.44
IFBench3143.6645
MERA Text71.267.361.7
Pollux37.7565.2165.6
MMLU-Pro73.6175.6881.1
RubQ_Ru76.1181.0178.33
MATH 500838691.4
Arena Hard Logs vs GPT-555.571.471.3
Arena Hard Ru vs GPT-538.369.569.3
Ru LLM Arena vs GPT-538.262.963.6
Validator-SBS-Pollux47.670.968
Avg46.260.161.0

Notes:

  • —\* DeepSeek V3.2 is the instruct version
  • —\\ SWE-bench Verified uses mini-swe-agent, 250 steps
  • —\\\* Terminal-Bench 2 uses the terminus-2 agent

Usage Example

1. SGLang

Start the server

shell
# 1. get the PR
git clone https://github.com/sgl-project/sglang.git
cd sglang
git fetch origin pull/29189/head:pr-29189
git checkout pr-29189

# 2. install
pip install --upgrade pip
pip install -e "python[all]"

# 3. launch
python -m sglang.launch_server \
  --model-path ai-sage/GigaChat3.5-432B-A28B \
  --trust-remote-code \
  --tp-size 8 --ep-size 8 \
  --mem-fraction-static 0.8 \
  --tool-call-parser gigachat35 \
  --speculative-algorithm EAGLE \
  --speculative-num-steps 2 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 3 \
  --host 0.0.0.0 --port 8000

Request example

shell
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai-sage/GigaChat3.5-432B-A28B",
    "messages": [
      {
        "role": "user",
        "content": "Докажи теорему о неподвижной точке"
      }
    ],
    "max_tokens": 400,
    "temperature": 0
  }'

2. vLLM

Start the server

shell
# 1. get the PR
git clone https://github.com/vllm-project/vllm.git
cd vllm
git fetch origin pull/47708/head:pr-47708
git checkout pr-47708

# 2. install
pip install --upgrade pip
VLLM_USE_PRECOMPILED=1 pip install -e .

# 3. launch
vllm serve ai-sage/GigaChat3.5-432B-A28B \
  --tensor-parallel-size 8 \
  --enable-expert-parallel \
  --gpu-memory-utilization 0.9 \
  --tool-call-parser gigachat35 \
  --enable-auto-tool-choice \
  --speculative-config '{"method": "mtp", "num_speculative_tokens": 2}'

Request example

shell
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai-sage/GigaChat3.5-432B-A28B",
    "messages": [
      {"role": "user", "content": "Докажи теорему о неподвижной точке"}
    ],
    "max_tokens": 400,
    "temperature": 0
  }'

Request example with function call

shell
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai-sage/GigaChat3.5-432B-A28B",
    "messages": [
      {"role": "user", "content": "What is the weather in Moscow right now?"}
    ],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get the current weather in a city",
        "parameters": {
          "type": "object",
          "properties": {"city": {"type": "string"}},
          "required": ["city"]
        }
      }
    }],
    "tool_choice": "auto",
    "max_tokens": 400,
    "temperature": 0
  }'