🚀 IndicTrans2
IndicTrans2是一款用於印度語系語言翻譯的模型,此模型為Indic - Indic Distilled 320M變體,是在拼接Indic - En Distilled 200M和En - Indic Distilled 200M變體後進行適配的。它能助力實現印度多種語言間的高質量翻譯,推動多語言交流。
✨ 主要特性
- 多語言支持:支持多種印度語系語言,如阿薩姆語(as)、孟加拉語(bn)等22種語言。
- 多領域數據訓練:使用瞭如flores - 200、IN22 - Gen、IN22 - Conv等數據集進行訓練。
- 多評估指標:使用瞭如BLEU、chrF、chrF++、COMET等評估指標。
📦 安裝指南
文檔中未提及具體安裝步驟,可參考github倉庫獲取使用HF兼容的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", "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}")
📚 詳細文檔
如需瞭解模型訓練、數據和評估指標的更多詳細信息,請參考博客。
📄 許可證
本模型採用MIT許可證。
📖 引用
如果您考慮使用我們的工作,請使用以下引用:
@article{gala2023indictrans,
title={IndicTrans2: Towards High-Quality and Accessible Machine Translation Models for all 22 Scheduled Indian Languages},
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={Transactions on Machine Learning Research},
issn={2835-8856},
year={2023},
url={https://openreview.net/forum?id=vfT4YuzAYA},
note={}
}
模型信息表格
屬性 |
詳情 |
支持語言 |
as、bn、brx、doi、gom、gu、hi、kn、ks、mai、ml、mr、mni、ne、or、pa、sa、sat、snd、ta、te、ur |
語言詳情 |
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 |
標籤 |
indictrans2、translation、ai4bharat、multilingual |
許可證 |
MIT |
訓練數據集 |
flores - 200、IN22 - Gen、IN22 - Conv |
評估指標 |
bleu、chrf、chrf++、comet |
推理功能 |
不支持 |