🚀 Sarvam-Translate
Sarvam-Translateは、Sarvam AIによる高度な翻訳モデルです。Gemma3-4B-ITをベースに構築され、インドの22の公用語に対応した包括的な文書レベルの翻訳を行うことができます。このモデルは、単なる文単位の翻訳を超えて、長文の入力、多様なコンテンツタイプ、さまざまなフォーマットを扱い、現代の翻訳ニーズに対応しています。これまでLLMの性能が低かったインドの言語に対して、高品質で文脈を考慮した翻訳を提供することを目指しています。
詳細はブログ記事をご覧ください。
✨ 主な機能
- 包括的なインド語対応:インドの22の公用語を対象とし、繊細で正確な翻訳を実現します。
- 高度な文書レベルの翻訳:単なる文ではなく、文書全体、ウェブページ、スピーチ、教科書、科学論文などを翻訳できます。
- 多様なフォーマット対応:markdown、OCR誤りを含むデジタルコンテンツ、数式や化学式が埋め込まれた文書、コードファイル(コメントのみ翻訳)など、幅広い入力フォーマットを処理できます。
- 文脈を考慮した包括的な翻訳:異なる文脈、フォーマット、スタイル(正式/非正式)を尊重し、包括的な翻訳を行います(例:適切な性別表現)。
📋 対応言語リスト
Assamese
, Bengali
, Bodo
, Dogri
, Gujarati
, English
, Hindi
, Kannada
, Kashmiri
, Konkani
, Maithili
, Malayalam
, Manipuri
, Marathi
, Nepali
, Odia
, Punjabi
, Sanskrit
, Santali
, Sindhi
, Tamil
, Telugu
, Urdu
🚀 クイックスタート
以下のコードスニペットは、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ライセンスの下で公開されています。