CoolFace
Modelpublic

ai-sage/GigaChat3.5-432B-A28B-Reasoning-bf16

sourceHugging Facemitupdated 17d agoView on Hugging Face
7likes468downloads
Model Card

GigaChat 3.5 Reasoning

GigaChat 3.5 Reasoning is the first GigaChat model with full reasoning trained with online RL. Compared with GigaChat 3.5 Ultra Instruct, the largest gains are in mathematics, code, instruction following, and structured output.

This repository contains the BF16 weights for fine-tuning and custom quantization. For inference, use GigaChat3.5-432B-A28B-Reasoning.

Model architecture

GigaChat 3.5 Reasoning is a 432B Mixture-of-Experts model with 28B active parameters. It uses a custom hybrid architecture that combines Multi-head Latent Attention (MLA) with GatedDeltaNet linear-attention layers.

The model also uses GatedNorm, a learned multiplicative gate applied after RMSNorm, and has three MTP heads for speculative decoding. The maximum supported context length is 262K tokens.

GigaChat 3.5 architecture

Online RL

Post-training starts from an SFT checkpoint. We train six domain experts independently with online RL and then combine them into one release model with on-policy distillation (OPD). Separate experts let us use different reward signals for domains where the answer can be verified directly and domains where quality has to be judged differently.

ExpertTasksReward
STEMMathematics, olympiad problems, natural sciencesFinal-answer verification
CodeAlgorithms, code editing, test generationCode execution
Code AgentRepository-level tasks in the style of SWE-benchTests after applying the patch
General AgentFunction calling, user interaction, memory, searchFinal environment state
DialogueUser dialogueSide-by-side evaluation with an LLM judge
Soft SkillsInstruction following, formats, long context, structured outputFinal-answer verification

The experts are trained with CISPO. Before training, the current checkpoint is evaluated on the task pool and tasks solved in more than 75% of attempts are removed. As the model improves, the training set therefore shifts toward harder tasks.

Rewards are domain-specific but follow the same general construction: gated checks for hard constraints, additive rewards for answer quality, and an adaptive length penalty. After RL, OPD combines the six experts: the student generates its own trajectory and the expert for the corresponding domain provides token-level supervision on that trajectory.

Benchmark scores

TaskGigaChat 3.5 Ultra InstructGigaChat 3.5 Ultra ReasoningDeepSeek V4 Flash Preview Reasoning
STEM
AIME 2025, mean@32688988.95
AIME 2026, mean@32679290.4
HMMT 2025, mean@836.6783.1395.21
IMOAnswerBench\*327385.75
GPQA-Diamond61.1182.3287.4
General
IFBench43.667773.33
StructEval74.358580.19
MERA-2.024.942.3--
Function Calling V451.5758.5968.06
TAU3-bench\\50.0347.867.7
Natural Plan\\\*6480.1988
Code
Live Code Bench v656.285.487.87
SWE-bench Verified\\\\42.664.778.6
Terminal-Bench 2\\\\13.4830.356.6
Arena\\\*
Pollux71.667.949
Arena Hard Logs V362.656.553.7
Arena Hard Ru52.860.736.8
Ru LLM Arena53.86448.5
Average51.4768.8872.71

\ IMOAnswerBench uses `Qwen-3-235B-Instruct-2507` as the judge. \\ TAU3-bench is averaged across Airline, Retail, Telecom, and Banking. \\\ Natural Plan uses a corrected scorer that normalizes UTF-8 characters to ASCII. \\\\ SWE-bench Verified and Terminal-Bench 2 use mini-swe-agent with a three-hour timeout. \\\\\* Arena evaluations use MiniMax-M2.7 as the judge and GPT-5.2 as the baseline.

Benchmarks without a methodology-defined system prompt were evaluated with an empty system prompt.

Reasoning efficiency

On AIME 2025, AIME 2026, HMMT, and IMOAnswerBench, GigaChat 3.5 Reasoning uses 37% fewer reasoning tokens overall than DeepSeek V4 Flash Preview across the reported evaluation samples.

TaskSamplesGigaChat 3.5 Reasoning, mean tokensDeepSeek V4 Flash Preview, mean tokensReduction
AIME 202524013,98019,12927%
AIME 202624013,63517,69723%
HMMT48013,31119,55332%
IMOAnswerBench1,09617,07429,04141%

Usage with SGLang

The current launch path uses GigaChat 3.5 support from SGLang PR \#29189.

Install

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

pip install --upgrade pip
SGLANG_BUILD_RUST_EXTS=none pip install -e "python[all]"

SGLANG_BUILD_RUST_EXTS=none disables the optional Rust router. It is not required for the inference server.

Launch

Example two-node, 16-GPU configuration. Run the command on every node and set --node-rank to the node index.

shell
MASTER_ADDR=<rank0_host_or_ip>
DIST_PORT=<port>

python -m sglang.launch_server \
  --model-path ai-sage/GigaChat3.5-432B-A28B-Reasoning-bf16 \
  --trust-remote-code \
  --tp-size 16 --ep-size 16 \
  --nnodes 2 \
  --node-rank <rank> \
  --dist-init-addr ${MASTER_ADDR}:${DIST_PORT} \
  --mem-fraction-static 0.8 \
  --tool-call-parser gigachat35 \
  --reasoning-parser gigachat35 \
  --speculative-algorithm EAGLE \
  --speculative-num-steps 3 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 4 \
  --host 0.0.0.0 --port 8000

--reasoning-parser gigachat35 returns the reasoning trace in reasoning_content and the final answer in content. --tool-call-parser gigachat35 enables function-call parsing. The speculative-decoding options enable the model's three MTP heads.

If CUDA graph capture fails during prefill, add --cuda-graph-backend-prefill disabled.

Request example

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

Function calling

shell
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai-sage/GigaChat3.5-432B-A28B-Reasoning-bf16",
    "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": 2000,
    "temperature": 0.6
  }'