[1] 总览
【mT5多语言翻译】系列共六篇文章:
【mT5多语言翻译】之一——实战项目总览
【mT5多语言翻译】之二——模型:T5模型与mT5模型与前置知识
【mT5多语言翻译】之三——数据集:多语言翻译数据集与预处理
【mT5多语言翻译】之四——加载:加载数据集与模型
【mT5多语言翻译】之五——训练:中央日志、训练可视化、PEFT微调
【mT5多语言翻译】之六——推理:多语言翻译与第三方接口设计
出海业务场景下,多语言翻译成为必不可少的工具。然而,使用谷歌翻译接口不仅需要支付费用,还存在数据泄露的风险。因此我们训练一个自己的翻译模型是有必要的。
mT5支持102种语言,有:
Afrikaans, Albanian, Amharic, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bulgarian, Burmese, Catalan, Cebuano, Chichewa, Chinese, Corsican, Czech, Danish, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Kurdish, Kyrgyz, Lao, Latin, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Nepali, Norwegian, Pashto, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Samoan, Scottish Gaelic, Serbian, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Sotho, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, West Frisian, Xhosa, Yiddish, Yoruba, Zulu.
只要是上述102种语言之间的翻译任务,mT5都可以训练。本次项目实战演示了中文——韩文、中文——日文之间的多语言翻译,先来看看模型的效果:
输入如下:
sentences = ["kor:我要去健身了","jpn:我要去健身了","kor:他说他会爱我一辈子","jpn:他说他会爱我一辈子",
]
设置波束为10,每条输入文本返回3条输出文本。翻译输出如下:
나는 피트니스에 가고 싶
나는 피트니스 클럽에 가
나는 피트니스 센터에 가
ジムに行きます。
ジムに行きたいです。
ジムに行くわ
그는 평생을 나를 사랑할
그는 평생 나를 사랑할 것
그는 평생 나를 사랑할 거
彼は私を愛してくれると言っていた。
彼は私を愛してくれると言った。
彼は私を愛してくれると言っていました。
[2] 代码获取地址
如果需要本项目的源代码,请扫描关注我的公众号,回复“多语言翻译”。
代码结构如图所示:本项目使用pytorch
+transformers
库实现。
[3] 项目及资源要求介绍
本项目基于mT5模型的base版进行翻译训练。mT5的详细情况请参考:https://huggingface.co/google/mt5-base。
【注】官方只提供了mT5模型的无监督训练参数,并没有放出微调任务的参数,因此我们想直接开箱使用是不可以的,必须要自己微调一下才可以输出正常的文本。这一点和T5模型比较不同。
项目功能介绍
一、项目集成了中央日志,可以完成同时将所有文件产生的日志信息同时输出到控制台并记录为日志文件。
二、项目集成了全量参数训练方式和PEFT微调方式,只需要在配置文件中简单修改一个参数即可完成训练方式的切换。
三、项目集成了tensorBoard训练日志,可以实时的绘制模型的loss、准确率等指标。
四、项目提供了数据集预处理代码,并开放了在600万条日文数据和600万条韩文数据上全量参数训练和PEFT微调2轮后的模型参数。
五、项目提供了模型翻译的demo写法,并封装成了api接口方便外部调用。
项目运行时所占资源说明
mT5-base的模型大小为2.3GB。
设置文本长度为10,batch为32时:全量参数微调大约需要占13GB显存;PEFT微调时大约只需要5GB显存。
【注】我的显卡是8GB显存的4060,现在电脑好像都有GPU专用内存(在内存里划nGB专门给显卡使用),我的GPU专用内存是8GB,所以算下来可以提供16GB显存,即使是全量参数微调电脑也是可以跑的,大家可以试一下。
————————————————————
PEFT需要的显存资源更少,训练起来比全量参数微调快非常多。但是最终效果肯定是会逊色一些。到底怎么训练还是要看大家自身的资源情况。
[4] 进行下一篇实战
【mT5多语言翻译】之二——模型:T5模型与mT5模型与前置知识
其他实战项目
您还可以浏览我的其他实战项目:
1、单标签文本分类(bert英文)
2、多标签文本分类(bert英文)
3、五子棋开发实战
4、古诗生成AI实战