🚀 Sarvam-Translate
Sarvam-Translate是Sarvam AI推出的一款先进翻译模型,基于Gemma3 - 4B - IT构建,专为印度22种官方语言的全面文档级翻译而设计。它突破了孤立句子的翻译局限,能够处理长上下文输入、多种内容类型和格式,满足现代翻译需求,旨在为传统上在大语言模型性能方面落后于高资源语言的印度语言提供高质量、上下文感知的翻译服务。
你可以在我们详细的博客文章中了解更多关于Sarvam-Translate的信息。
✨ 主要特性
- 全面支持印度语言:专注于印度22种官方语言,确保翻译细致准确。
- 先进的文档级翻译:能够翻译完整的文档、网页、演讲、教科书和科学文章,而非仅仅是孤立的句子。
- 多样格式处理:可处理多种输入格式,包括Markdown、数字化内容(处理OCR错误)、包含嵌入式数学和化学方程式的文档,以及代码文件(仅翻译注释)。
- 上下文感知与包容性:设计上尊重不同的上下文、格式、风格(正式/非正式),并确保包容性(例如,适当的性别归属)。
📋 支持的语言列表
阿萨姆语
、孟加拉语
、博多语
、多格里语
、古吉拉特语
、英语
、印地语
、卡纳达语
、克什米尔语
、孔卡尼语
、迈蒂利语
、马拉雅拉姆语
、曼尼普尔语
、马拉地语
、尼泊尔语
、奥里亚语
、旁遮普语
、梵语
、桑塔利语
、信德语
、泰米尔语
、泰卢固语
、乌尔都语
🚀 快速开始
以下代码片段展示了如何使用Transformers库来使用Sarvam-Translate。
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "sarvamai/sarvam-translate"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to('cuda:0')
tgt_lang = "Hindi"
input_txt = "Be the change you wish to see in the world."
messages = [
{"role": "system", "content": f"Translate the text below to {tgt_lang}."},
{"role": "user", "content": input_txt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
do_sample=True,
temperature=0.01,
num_return_sequences=1
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
output_text = tokenizer.decode(output_ids, skip_special_tokens=True)
print("Input:", input_txt)
print("Translation:", output_text)
💻 vLLM部署
服务器端
vllm serve sarvamai/sarvam-translate --port 8000 --dtype bfloat16
客户端
from openai import OpenAI
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
models = client.models.list()
model = models.data[0].id
tgt_lang = 'Hindi'
input_txt = 'Be the change you wish to see in the world.'
messages = [{"role": "system", "content": f"Translate the text below to {tgt_lang}."}, {"role": "user", "content": input_txt}]
response = client.chat.completions.create(model=model, messages=messages, temperature=0.01)
output_text = response.choices[0].message.content
print("Input:", input_txt)
print("Translation:", output_text)
💻 使用Sarvam API
参考我们的Python客户端文档。
示例代码
from sarvamai import SarvamAI
client = SarvamAI()
response = client.text.translate(
input="Be the change you wish to see in the world.",
source_language_code="en-IN",
target_language_code="hi-IN",
speaker_gender="Male",
model="sarvam-translate:v1",
)
📄 许可证
本项目采用GPL - 3.0许可证。