← 返回教程目录

Sarvam

一句话简介:Sarvam AI 是印度"主权 AI"代表公司。

主流功能:多语言、开源(印度主权模型方向)

可用性:可用性:国内可直接使用。

适用人群:需要印度语言能力的出海南亚从业者;想低成本本地跑 MoE 推理模型的开发者;研究主权 AI / 多语言模型的技术爱好者

前置条件:

  • 网络:本地部署需访问 hf-mirror.com
  • 账号:本地部署无需账号
  • 费用:权重免费(Apache 2.0,可商用)
  • 硬件:Sarvam-30B Q4 GGUF:约 18–20GB 内存/显存(MoE 推理成本远低于同体量 dense 模型)

分步骤教程

方式一:Ollama 本地部署(GGUF + Modelfile)

Ollama 官方库暂未收录 Sarvam(社区已有上架请求 issue),用社区 GGUF + Modelfile 方式:

步骤 1:安装 Ollama(官网安装包,或 Linux curl -fsSL https://ollama.com/install.sh | sh)

步骤 2:下载社区 GGUF

  1. 打开 https://hf-mirror.com/Aditya02/Sarvam-30b-GGUF(社区为 Ollama 支持制作的合并 GGUF 版,基于官方 sarvamai/sarvam-30b)
  2. Files 页下载 Q4_K_M 量化文件(约 18GB,请预留磁盘)
  3. 放到 ~/models/sarvam-30b/

步骤 3:创建并运行

cd ~/models/sarvam-30b
cat > Modelfile <<'EOF'
FROM./sarvam-30b-q4_k_m.gguf
PARAMETER temperature 0.7
EOF
ollama create sarvam-30b -f Modelfile
ollama run sarvam-30b

看到 >>> 后可用印地语/英语提问,例如 भारत की राजधानी क्या है?。

方式二:HuggingFace transformers 部署

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch transformers accelerate
export HF_ENDPOINT=https://hf-mirror.com
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "sarvamai/sarvam-30b" # 或 sarvamai/sarvam-105b(需更大显存)
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype=torch.bfloat16,
device_map="auto", trust_remote_code=True)

prompt = "भारत के बारे में एक तथ्य बताओ।"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(inputs.input_ids, max_new_tokens=200, do_sample=True, temperature=0.7)
print(tokenizer.decode(out[0], skip_special_tokens=True))

方式三:Sarvam 官方 API 接入(OpenAI 兼容)

步骤 1:获取 API Key

  1. 访问 Sarvam 官网(sarvam.ai)注册账号,进入 Dashboard 创建 key
  2. 官方文档站:https://docs.sarvam.ai(聊天接口指南见 Chat Completion / Overview)

步骤 2:调用 chat/completions

curl https://api.sarvam.ai/v1/chat/completions \
-H "Authorization: Bearer 你的API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"sarvam-105b",
"messages":[{"role":"user","content":"भारत की राजधानी क्या है?"}],
"max_tokens":4096}'

说明(据官方文档与社区实测总结):

  • endpoint 为 POST https://api.sarvam.ai/v1/chat/completions,同时兼容官方 api-subscription-key 请求头
  • 模型:sarvam-105b(128K 上下文,推理模型)、sarvam-30b(64K)
  • 推理模型返回的思考过程在 reasoning_content 字段;max_tokens 建议 ≥4096(推理 token 吃预算)
  • Python/JS 有官方 SDK;也支持流式(stream:true,SSE)与标准工具调用格式

步骤 3(Python SDK 风格,OpenAI 兼容写法)

from openai import OpenAI
client = OpenAI(base_url="https://api.sarvam.ai/v1", api_key="你的API_KEY")
resp = client.chat.completions.create(
model="sarvam-105b",
messages=[{"role": "user", "content": "Explain monsoon in simple Hindi."}],
max_tokens=4096)
print(resp.choices[0].message.content)

常见问题

  1. 为什么 ollama pull sarvam 找不到? Ollama 官方库暂未收录,社区已提交上架请求(issue #14688 / #16242),目前只能用本教程方式一的 Modelfile 法。

  2. 中文效果如何? 弱。Sarvam 为印度语言优化,中文能力未经验证,不建议中文主力场景使用。

  3. Sarvam-30B 的"30B"需要 30B 级显存吗? 不需要。它是 MoE 架构,每 token 实际激活约 2.4B 参数,Q4 量化后 18–20GB 内存/显存可跑,推理成本远低于同体量 dense 模型。

  4. 商用需要授权吗? 不需要。sarvam-30b / 105b 均为 Apache 2.0,可免费商用(以 HF 仓库 LICENSE 为准)。

  5. BharatGen 和 Sarvam 是什么关系? BharatGen 是印度政府支持的本土大模型倡议/计划,Sarvam AI 是印度主权模型赛道最受关注的公司之一,两者常被放在"印度主权 AI"话题下一起讨论,但不是同一产品。