语言:
- 阿萨姆语
- 孟加拉语
- 博多语
- 多格拉语
- 孔卡尼语
- 古吉拉特语
- 印地语
- 卡纳达语
- 克什米尔语
- 迈蒂利语
- 马拉雅拉姆语
- 马拉地语
- 曼尼普尔语
- 尼泊尔语
- 奥里亚语
- 旁遮普语
- 梵语
- 桑塔利语
- 信德语
- 泰米尔语
- 泰卢固语
- 乌尔都语
语言详情: >-
asm_Beng(阿萨姆语-孟加拉文), ben_Beng(孟加拉语-孟加拉文), brx_Deva(博多语-天城文), doi_Deva(多格拉语-天城文), gom_Deva(孔卡尼语-天城文), guj_Gujr(古吉拉特语-古吉拉特文),
hin_Deva(印地语-天城文), kan_Knda(卡纳达语-卡纳达文), kas_Arab(克什米尔语-阿拉伯文), mai_Deva(迈蒂利语-天城文), mal_Mlym(马拉雅拉姆语-马拉雅拉姆文), mar_Deva(马拉地语-天城文),
mni_Mtei(曼尼普尔语-梅泰文), npi_Deva(尼泊尔语-天城文), ory_Orya(奥里亚语-奥里亚文), pan_Guru(旁遮普语-古尔穆基文), san_Deva(梵语-天城文), sat_Olck(桑塔利语-奥尔奇基文),
snd_Deva(信德语-天城文), tam_Taml(泰米尔语-泰米尔文), tel_Telu(泰卢固语-泰卢固文), urd_Arab(乌尔都语-阿拉伯文)
标签:
许可证: MIT
数据集:
- flores-200
- IN22通用数据集
- IN22会话数据集
评估指标:
推理: 不支持
印度语系互译2(IndicTrans2)
这是印度语系互译2的模型卡片,展示了经过调整的印度语系间蒸馏320M变体,该模型是在缝合印度语-英语蒸馏200M和英语-印度语蒸馏200M变体后适配而成。
关于模型训练、数据和指标的更多详情,请参阅博客文章。
使用说明
关于如何使用兼容Hugging Face的印度语系互译2模型进行推理的详细说明,请参考GitHub仓库。
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", "tam_Taml"
model_name = "ai4bharat/indictrans2-indic-indic-dist-320M"
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,
)
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
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}")
引用
如果您使用我们的工作,请引用以下文献:
@article{gala2023indictrans,
title={印度语系互译2:面向所有22种印度官方语言的高质量可访问机器翻译模型},
author={Jay Gala and Pranjal A Chitale and A K Raghavan and Varun Gumma and Sumanth Doddapaneni and Aswanth Kumar M and Janki Atul Nawale and Anupama Sujatha and Ratish Puduppully and Vivek Raghavan and Pratyush Kumar and Mitesh M Khapra and Raj Dabre and Anoop Kunchukuttan},
journal={机器学习研究汇刊},
issn={2835-8856},
year={2023},
url={https://openreview.net/forum?id=vfT4YuzAYA},
note={}
}