🚀 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},
}