🚀 IndicTrans2
IndicTrans2是一款用于印度语到英语翻译的模型,其Indic - En 1.1B变体功能强大。该模型在多语言翻译领域表现出色,能处理多种印度语言与英语之间的翻译任务,为多语言交流提供了有力支持。
✨ 主要特性
- 支持多语言:支持多种印度语言,包括
as
、bn
、brx
等26种语言。
- 多指标评估:使用
bleu
、chrf
、chrf++
、comet
等指标进行评估。
- 多数据集训练:基于
flores - 200
、IN22 - Gen
、IN22 - Conv
等数据集进行训练。
📦 安装指南
文档未提供具体安装步骤,可参考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", "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}")
高级用法
本模型有基于RoPE的新模型,能够处理长达2048个标记的序列,可在此处获取。使用这些模型时,只需更改model_name
参数。为了实现高效生成,建议使用flash_attention_2
运行这些模型。
📚 详细文档
- 特定检查点的指标。
- 关于模型训练、预期用途、数据、指标、局限性和建议的更多详细信息,请参考预印本的
附录D:模型卡片
。
- 关于如何使用与HF兼容的IndicTrans2模型进行推理的详细描述,请参考github仓库。
📄 许可证
本项目采用MIT许可证。
📋 模型信息
属性 |
详情 |
支持语言 |
as、bn、brx、doi、en、gom、gu、hi、kn、ks、kas、mai、ml、mr、mni、mnb、ne、or、pa、sa、sat、sd、snd、ta、te、ur |
语言详情 |
asm_Beng, ben_Beng, brx_Deva, doi_Deva, eng_Latn, gom_Deva, guj_Gujr, hin_Deva, kan_Knda, kas_Arab, kas_Deva, mai_Deva, mal_Mlym, mar_Deva, mni_Beng, mni_Mtei, npi_Deva, ory_Orya, pan_Guru, san_Deva, sat_Olck, snd_Arab, snd_Deva, tam_Taml, tel_Telu, urd_Arab |
标签 |
indictrans2、translation、ai4bharat、multilingual |
数据集 |
flores - 200、IN22 - Gen、IN22 - Conv |
评估指标 |
bleu、chrf、chrf++、comet |
📖 引用
如果您考虑使用我们的工作,请使用以下引用:
@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={}
}