![](https://img-blog.csdnimg.cn/direct/56886671d32a42c885a0ef31a39bb8c3.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
mT5多语言翻译实战
文章平均质量分 84
mT5多语言翻译实战
征途黯然.
Hold me hard and mellow.
展开
-
【mT5多语言翻译】之一——实战项目总览
【注】我的显卡是8GB显存的4060,现在电脑好像都有GPU专用内存(在内存里划nGB专门给显卡使用),我的GPU专用内存是8GB,所以算下来可以提供16GB显存,即使是全量参数微调电脑也是可以跑的,大家可以试一下。【注】官方只提供了mT5模型的无监督训练参数,并没有放出微调任务的参数,因此我们想直接开箱使用是不可以的,必须要自己微调一下才可以输出正常的文本。这一点和T5模型比较不同。只要是上述102种语言之间的翻译任务,mT5都可以训练。如果需要本项目的源代码,请扫描关注我的公众号,回复“多语言翻译”。原创 2024-04-11 01:20:09 · 1762 阅读 · 60 评论 -
【mT5多语言翻译】之六——推理:多语言翻译与第三方接口设计
因为训练方式有全量参数微调和PEFT微调两种,不同方式保存的模型不同。前者是全量参数,后者是PEFT添加的少量参数。【注】直接加载PEFT保存的少量参数,也可以加载到mT5模型本身的预训练参数。这是因为在peft模型保存的文件夹中有一个。在分别使用全量参数微调和PEFT微调训练完模型之后,我们来测试模型的翻译效果。然后就能去浏览器快乐地测试玩耍了。文件,里面保存了基座模型的地址。[2] 第三方接口设计。[1] 模型翻译推理。[1] 模型翻译推理。原创 2024-04-11 01:18:57 · 1790 阅读 · 24 评论 -
【mT5多语言翻译】之五——训练:中央日志、训练可视化、PEFT微调
但是由于我们的数据集很大,即使模型在验证集上的loss不再下降,也不应该主动把模型停止。因为大模型的训练可以抽象为“压缩数据”的概念,它没见过的数据就是不会产生相应的知识,所以最好还是让模型一直训练下去,直到把数据集训练完。使用PEFT只需要在原来的基础上加两行代码即可,其他模型训练阶段的代码完全不需要改变。因此,我们需要设计一个日志功能,让模型即可以实时的打印输出,又能同时记录输出到文件中,以便于我们后期查看。还有一个待解决的问题是,项目中不同文件的输出日志,我们需要将其定位到同一个log日志中。原创 2024-04-11 01:18:32 · 1880 阅读 · 12 评论 -
【mT5多语言翻译】之四——加载:加载数据集与模型
库也提供了非常友好的代码训练api,可能都不用写多少代码,即可开始自定义任务、模型的训练。但是在使用过程中,还是遇到了一些问题:1)莫名其妙的多消耗显存,由于封装的功能太多,我很难定位到哪里出了问题;2)它提供的训练配置中有很多我不需要的功能,比如检查点保存、内部日志等等,同样也是集成的功能太多,但是我不需要。这里选择手搓的原因是我觉得手搓的数据加载器更轻,可以非常直观的进行自定义,虽然代码少但是完全满足我们项目的功能需要。在训练过程中,我想使项目代码尽可能的“轻量化”,并且直观、易于修改。原创 2024-04-11 01:17:52 · 1223 阅读 · 5 评论 -
【mT5多语言翻译】之三——数据集:多语言翻译数据集与预处理
【注】由于很多语言存在不同的版本,尤其是中文,有:lzh lzh_Hans nan wuu yue_Hans yue_Hant zho zho_Bopo zho_Bopo_CN zho_Bopo_TW zho_CN zho_Hans zho_Hans_CN zho_Hans_TW zho_Hant zho_Hant_CN zho_Hant_TW zho_TW这么多种版本或者方言,【注】Tatoeba翻译数据集里面提供的都是通用领域的数据,如果对领域知识有要求的,还是要使用自己的打标数据效果更好。原创 2024-04-11 01:17:12 · 1925 阅读 · 4 评论 -
【mT5多语言翻译】之二——模型:T5模型与mT5模型与前置知识
【注】具体来说,代码中把编码器、解码器整合到了T5Block里,又把交叉注意力和自注意力整合到了T5Attention里,所以在阅读源码的时候,得判断什么时候是解码器在运行、什么时候是编码器在运行,什么时候在算自注意力、交叉注意力。在编码器阶段,解码序列的id、mask没有,所以计算注意力时,会传输入序列的hidden_states、mask,这里的。之后,编码器会进行交叉注意力的计算,此时解码器已经拿到解码序列的自注意力向量hidden_states了,所以它不再需要解码序列的mask,所以此时的。原创 2024-04-11 01:16:09 · 2437 阅读 · 3 评论