🚀 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許可證。