语言支持:
- 阿萨姆语
- 孟加拉语
- 博多语
- 多格拉语
- 英语
- 孔卡尼语
- 古吉拉特语
- 印地语
- 卡纳达语
- 克什米尔语(阿拉伯文)
- 克什米尔语(天城文)
- 迈蒂利语
- 马拉雅拉姆语
- 马拉地语
- 曼尼普尔语(孟加拉文)
- 曼尼普尔语(梅泰文)
- 尼泊尔语
- 奥里亚语
- 旁遮普语
- 梵语
- 桑塔利语
- 信德语(阿拉伯文)
- 信德语(天城文)
- 泰米尔语
- 泰卢固语
- 乌尔都语
语言详情:
阿萨姆语_孟加拉文,孟加拉语_孟加拉文,博多语_天城文,多格拉语_天城文,英语_拉丁文,孔卡尼语_天城文,古吉拉特语_古吉拉特文,印地语_天城文,卡纳达语_卡纳达文,克什米尔语_阿拉伯文,克什米尔语_天城文,迈蒂利语_天城文,马拉雅拉姆语_马拉雅拉姆文,马拉地语_天城文,曼尼普尔语_孟加拉文,曼尼普尔语_梅泰文,尼泊尔语_天城文,奥里亚语_奥里亚文,旁遮普语_古鲁穆奇文,梵语_天城文,桑塔利语_奥尔奇文,信德语_阿拉伯文,信德语_天城文,泰米尔语_泰米尔文,泰卢固语_泰卢固文,乌尔都语_阿拉伯文
标签:
- 印度语言互译2.0
- 机器翻译
- AI4Bharat项目
- 多语言处理
许可证:MIT
数据集:
- flores-200
- IN22通用数据集
- IN22会话数据集
评估指标:
- BLEU分数
- chrF指标
- chrF++指标
- COMET评分
推理支持:不支持
印度语言互译2.0模型
本文档为IndicTrans2印度语言-英语1.1B变体模型的说明卡。
具体检查点的性能指标请参见链接。
关于模型训练、预期用途、数据、指标、局限性和建议的详细信息,请参阅预印本论文的"附录D:模型说明卡"。
使用指南
详细的使用说明请参考GitHub仓库,了解如何使用兼容HuggingFace的IndicTrans2模型进行推理。
import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
from IndicTransToolkit.processor import IndicProcessor
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
src_lang, tgt_lang = "hin_Deva", "eng_Latn"
model_name = "ai4bharat/indictrans2-indic-en-1B"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForSeq2SeqLM.from_pretrained(
model_name,
trust_remote_code=True,
torch_dtype=torch.float16,
attn_implementation="flash_attention_2"
).to(DEVICE)
ip = IndicProcessor(inference=True)
input_sentences = [
"जब मैं छोटा था, मैं हर रोज़ पार्क जाता था。",
"हमने पिछले सप्ताह एक नई फिल्म देखी जो कि बहुत प्रेरणादायक थी。",
"अगर तुम मुझे उस समय पास मिलते, तो हम बाहर खाना खाने चलते।",
"मेरे मित्र ने मुझे उसके जन्मदिन की पार्टी में बुलाया है, और मैं उसे एक तोहफा दूंगा।",
]
batch = ip.preprocess_batch(
input_sentences,
src_lang=src_lang,
tgt_lang=tgt_lang,
)
inputs = tokenizer(
batch,
truncation=True,
padding="longest",
return_tensors="pt",
return_attention_mask=True,
).to(DEVICE)
with torch.no_grad():
generated_tokens = model.generate(
**inputs,
use_cache=True,
min_length=0,
max_length=256,
num_beams=5,
num_return_sequences=1,
)
generated_tokens = tokenizer.batch_decode(
generated_tokens,
skip_special_tokens=True,
clean_up_tokenization_spaces=True,
)
translations = ip.postprocess_batch(generated_tokens, lang=tgt_lang)
for input_sentence, translation in zip(input_sentences, translations):
print(f"{src_lang}: {input_sentence}")
print(f"{tgt_lang}: {translation}")
📢 长文本IT2模型公告
- 新版基于RoPE的IndicTrans2模型现已发布,可处理长达2048个标记的序列,详见此链接。
- 使用这些模型只需修改
model_name
参数即可。有关生成的更多信息,请阅读RoPE-IT2模型的说明卡。
- 建议配合
flash_attention_2
运行这些模型以获得高效生成效果。
引用文献
若使用我们的工作成果,请引用:
@article{gala2023indictrans,
title={IndicTrans2:面向全印度22种计划语言的高质量可及机器翻译模型},
author={Jay Gala等},
journal={机器学习研究汇刊},
issn={2835-8856},
year={2023},
url={https://openreview.net/forum?id=vfT4YuzAYA},
note={}
}