🚀 MITRE 913M
MITRE(Multilingual Translation with Registers)是一个多语言、仅解码器的模型,专为多对多翻译任务而设计。该模型支持24种语言跨越5个语系的552个方向的直接翻译。你可以通过 transformers
库直接使用我们的模型。
🚀 快速开始
本仓库允许你使用我们的预训练模型进行推理。如果你想复现数据挖掘和训练过程,请参考这个仓库。
✨ 主要特性
- 多语言支持:支持24种语言跨越5个语系的552个方向的直接翻译。
- 技术创新:引入了注册(registering)技术,相关内容在我们的论文中有所介绍。
- 模型选择:除了本仓库的9.13亿参数的模型,还有一个4.66亿参数的替代版本可在这个仓库获取。
📦 安装指南
在获取分词器之前,你需要先运行以下命令:
pip install sentencepiece
💻 使用示例
基础用法
你可以通过以下代码简单调用分词器和模型:
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("naist-nlp/mitre_913m", trust_remote_code=True, use_fast=False)
model = AutoModel.from_pretrained("naist-nlp/mitre_913m", trust_remote_code=True)
高级用法
若要在本地使用该模型并查看代码,你可以克隆这个仓库,然后:
from mitre_913m.tokenization_mitre import MitreTokenizer
from mitre_913m.modeling_mitre import MitreForConditionalGeneration
tokenizer = MitreTokenizer.from_pretrained("mitre_913m")
model = MitreForConditionalGeneration.from_pretrained("mitre_913m")
获取模型和分词器的对象后,就可以进行翻译:
english_text = "I have a red apple."
chinese_text = "我有一个红苹果。"
model.half()
model.eval()
src_tokens = tokenizer.encode_source_tokens_to_input_ids([english_text, ], target_language="zh")
generated_tokens = model.generate(src_tokens.cuda())
results = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
print(results)
🔧 技术细节
我们基本遵循 M2M 的风格,但为了降低生成成本做了一些必要的改进。你可以参考 modeling_mitre.py 中 generate()
函数的代码以获取更多细节。此外,我们计划实现 FlashAttention V2 以进一步提升我们的模型,相关内容将尽快更新。
📚 详细文档
支持的语言
- 日耳曼语系:英语(en)、德语(de)、荷兰语;佛兰芒语(nl)、瑞典语(sv)、丹麦语(da)、南非荷兰语(af)
- 罗曼语系:法语(fr)、西班牙语(es)、意大利语(it)、葡萄牙语(pt)、罗马尼亚语;摩尔多瓦语(ro)
- 斯拉夫语系:俄语(ru)、捷克语(cs)、波兰语(pl)、保加利亚语(bg)、乌克兰语(uk)
- 马来 - 波利尼西亚语系:印尼语(id)、马来语(ms)、爪哇语(jv)、他加禄语;菲律宾语(tl)
- 亚洲语系:中文(zh)、日语(ja)、韩语(ko)、越南语(vi)
📄 许可证
本项目采用 MIT 许可证。
📖 引用信息
@misc{qu2025registeringsourcetokenstarget,
title={Registering Source Tokens to Target Language Spaces in Multilingual Neural Machine Translation},
author={Zhi Qu and Yiran Wang and Jiannan Mao and Chenchen Ding and Hideki Tanaka and Masao Utiyama and Taro Watanabe},
year={2025},
eprint={2501.02979},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2501.02979},
}