Sarvam-105B is an advanced Mixture-of-Experts (MoE) model with 10.3B active parameters, designed for superior performance across a wide range of complex tasks. It is highly optimized for complex reasoning, with particular strength in agentic tasks, mathematics, and coding.
Sarvam-105B is a top-tier performer, consistently matching or surpassing several major closed-source models and staying within a narrow margin of frontier models across diverse reasoning and agentic benchmarks. It demonstrates exceptional agentic and reasoning capabilities in real-world applications such as web search and technical troubleshooting.
A major focus during training was the Indian context and languages, resulting in state-of-the-art performance across 22 Indian languages for its model size.
Sarvam-105B is open-sourced under the Apache License. For more details, see our blog.
Architecture
The 105B model adopts an MLA-style attention stack with decoupled QK head dimensions (q_head_dim=192 split into RoPE and noPE components, v_head_dim=128) and a large head_dim of 576, enabling higher representational bandwidth per head while keeping the hidden size at 4096. This approach improves attention expressivity and long-context extrapolation (via YaRN scaling with a factor of 40 and 128K context). It has an intermediate_size (16384) and moe_intermediate_size (2048), combined with top-8 routing over 128 experts, which increases per-token active capacity while keeping activation cost manageable. The model has one shared expert, a routed scaling factor of 2.5, and auxiliary-loss-free router balancing.
Benchmarks
Knowledge & Coding
Benchmark
Sarvam-105B
GLM-4.5-Air
GPT-OSS-120B
Qwen3-Next-80B-A3B-Thinking
Math500
98.6
97.2
97.0
98.2
Live Code Bench v6
71.7
59.5
72.3
68.7
MMLU
90.6
87.3
90.0
90.0
MMLU Pro
81.7
81.4
80.8
82.7
Writing Bench
80.5
83.8
86.5
84.6
Arena Hard v2
71.0
68.1
88.5
68.2
IF Eval
84.8
83.5
85.4
88.9
Reasoning & Math
Benchmark
Sarvam-105B
GLM-4.5-Air
GPT-OSS-120B
Qwen3-Next-80B-A3B-Thinking
GPQA Diamond
78.7
75.0
80.1
77.2
AIME 25 (w/ Tools)
88.3 (96.7)
83.3
90.0
87.8
Beyond AIME
69.1
61.5
51.0
68.0
HMMT (Feb 25)
85.8
69.2
90.0
73.9
HMMT (Nov 25)
85.8
75.0
90.0
80.0
Agentic
Benchmark
Sarvam-105B
GLM-4.5-Air
GPT-OSS-120B
Qwen3-Next-80B-A3B-Thinking
BrowseComp
49.5
21.3
-
38.0
SWE Bench Verified (SWE-Agent Harness)
45.0
57.6
50.6
60.9
τ² Bench (avg.)
68.3
53.2
65.8
55.0
See footnote for evaluation details.
Inference
Huggingface
python
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
34model_name ="sarvamai/sarvam-105b"5tokenizer = AutoTokenizer.from_pretrained(model_name)6model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, device_map="auto")78defgenerate_text(9 prompt:str,10 max_new_tokens:int=2048,11 temperature:float=0.8,12 top_p:float=0.95,13 repetition_penalty:float=1.0,14)->None:15 inputs = tokenizer(prompt, return_tensors="pt").to("cuda:0")1617 generation_config = GenerationConfig(18 max_new_tokens=max_new_tokens,19 repetition_penalty=repetition_penalty,20 temperature=temperature,21 top_p=top_p,22 do_sample=True,23)2425with torch.no_grad():26 output_ids = model.generate(27 input_ids=inputs["input_ids"],28 attention_mask=inputs["attention_mask"],29 generation_config=generation_config,30)31return tokenizer.decode(output_ids[0], skip_special_tokens=True)3233prompts =[34"Which country won the FIFA World Cup in 2012?",35]3637for prompt in prompts:38 templated_prompt = tokenizer.apply_chat_template(39[{"role":"user","content": prompt}],40 tokenize=False,41 add_generation_prompt=True,42 enable_thinking=True43)44 output = generate_text(templated_prompt, max_new_tokens=512)45print("Prompt: ", prompt)46print("Generated text: ", output)47print("="*100)
1import sglang as sgl
2from transformers import AutoTokenizer
34model_path ="sarvamai/sarvam-105b"5engine = sgl.Engine(6 model_path=model_path,7 tp_size=4,8 mem_fraction_static=0.70,9 trust_remote_code=True,10 dtype="bfloat16",11 moe_runner_backend="flashinfer_cutedsl",12 prefill_attention_backend="fa3",13 decode_attention_backend="flashmla",14 disable_radix_cache=False,15)1617sampling_params ={18"temperature":0.8,19"max_new_tokens":2048,20"repetition_penalty":1.0,21}2223prompts =[24"Which band released the album Dark Side of the Moon in 1973?",25]2627outputs = engine.generate([28 tokenizer.apply_chat_template([29{"role":"user","content": prompt}],30 tokenize=False,31 add_generation_prompt=True,32 enable_thinking=True)33for prompt in prompts],34 sampling_params)35for p, o inzip(prompts, outputs):36print("Prompt: ", p)37print("Generated text: ", o['text'])38print("="*100)
vLLM
Note: currently a PR is open for native support for the Sarvam models in vLLM (link). Therefore, we have 2 options here.
download the model executors for sarvam-105b and sarvam-30b
Once this is done, you can run vLLM as usual
python
1from vllm import LLM, SamplingParams
2from transformers import AutoTokenizer
34model_path ="sarvamai/sarvam-105b"5tokenizer = AutoTokenizer.from_pretrained(model_path)6llm = LLM(model=model_path,7 trust_remote_code=True,8 max_model_len=2048,9 tensor_parallel_size=8,10 max_num_seqs=16,11)12sampling_params = SamplingParams(13 temperature=0.8,14 max_tokens=2048,15 repetition_penalty=1.0,16 spaces_between_special_tokens=True17)1819prompts =[20"Which artist painted The Persistence of Memory (the melting clocks)?",21]2223outputs = llm.generate([24 tokenizer.apply_chat_template([25{"role":"user","content": prompt}],26 tokenize=False,27 add_generation_prompt=True,28 enable_thinking=True)29for prompt in prompts],30 sampling_params)31for p, o inzip(prompts, outputs):32print("Prompt: ", p)33print("Generated text: ", o.outputs[0].text)34print("="*100)
Footnote
General settings: All benchmarks are evaluated with a maximum context length of 65,536 tokens.
Reasoning & Math benchmarks (Math500, MMLU, MMLU Pro, GPQA Diamond, AIME 25, Beyond AIME, HMMT): Evaluated with temperature=1.0, top_p=1.0, max_new_tokens=65536.
Coding & Knowledge benchmarks (Live Code Bench v6, Arena Hard v2, IF Eval):
Evaluated with temperature=1.0, top_p=1.0, max_new_tokens=65536.
Writing Bench:
Responses generated using official Writing-Bench parameters:
temperature=0.7, top_p=0.8, top_k=20, max_length=16000.
Scoring performed using the official Writing-Bench critic model with:
temperature=1.0, top_p=0.95, max_length=2048.
Agentic benchmarks (BrowseComp, SWE Bench Verified, τ² Bench): Evaluated with temperature=0.5, top_p=1.0, max_new_tokens=32768.
Citation
@misc{sarvam_sovereign_models,
title = {Introducing Sarvam's Sovereign Models},
author = {{Sarvam Foundation Models Team}},
year = {2026},
howpublished = {\url{https://www.sarvam.ai/blogs/sarvam-30b-105b}},
note = {Accessed: 2026-03-03}
}