项目介绍:IndicTrans2 Indic-En 1B
项目背景
IndicTrans2 Indic-En 1B 是一个旨在加强印地语和英语之间翻译的机器学习模型。它是由 AI4Bharat 团队开发的,专注于印度的 22 种语言,包括阿萨姆语、孟加拉语、布罗语、印地语、卡纳达语、马拉雅拉姆语、马拉地语、尼泊尔语、奥里亚语、旁遮普语、泰米尔语和泰卢固语等等。这些语言使用了多种文字系统,如天城文、孟加拉文、古吉拉特文、打鲁古文等等。
项目动机
IndicTrans2 项目的目标是实现高质量且容易获取的翻译服务,特别针对印度的多语言环境,以促进语言间的沟通和信息分享。模型使用大规模的数据集,如 flores-200 和 IN22-Gen,利用先进的机器学习技术和优化的翻译算法,提供精准的翻译结果。
技术指标
IndicTrans2 使用的评估指标包括 BLEU、CHRF、CHRF++、和 COMET,这些指标可以帮助评估翻译模型的准确性和可理解性。通过这些指标,研究人员能够不断优化模型性能,使其更符合实际使用场景需求。
使用说明
使用 IndicTrans2 模型进行推理和翻译十分简单。需要通过 transformers
库加载预训练模型和分词器,并使用 IndicProcessor
进行预处理、翻译和后处理。以下是一段示例代码:
import torch
from transformers import (
AutoModelForSeq2SeqLM,
AutoTokenizer,
)
from IndicTransToolkit import IndicProcessor
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)
ip = IndicProcessor(inference=True)
input_sentences = [
"जब मैं छोटा था, मैं हर रोज़ पार्क जाता था।",
"हमने पिछले सप्ताह एक नई फिल्म देखी जो कि बहुत प्रेरणादायक थी।",
]
src_lang, tgt_lang = "hin_Deva", "eng_Latn"
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,
)
with tokenizer.as_target_tokenizer():
generated_tokens = tokenizer.batch_decode(
generated_tokens.detach().cpu().tolist(),
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={IndicTrans2: Towards High-Quality and Accessible Machine Translation Models for all 22 Scheduled Indian Languages},
author={Jay Gala et al.},
journal={Transactions on Machine Learning Research},
year={2023},
url={https://openreview.net/forum?id=vfT4YuzAYA},
}
IndicTrans2 努力在语言和文化的鸿沟间架起桥梁,为多语言社会提供方便、可靠的翻译工具。