当前位置:   article > 正文

AIGC - 大模型训练(一)- en_to_zh:基于原生transformer训练英译中模型_aigc 大模型 结合翻译

aigc 大模型 结合翻译

基于原生transformer实现,在一块T4  GPU上训练,预计时间是5天完成10个epoch的训练

一. 模型原理架构

此模型的实现,主要基于pytorch实现的原生transformer,使用AI Challenger Translation 2017数据集 中的train.en和train.zh 来训练。

模型的实现主要有:

  1. 数据处理:构造英文词典和中文词典,其中英文采用subword方式,中文直接按字进行分词。
  2. 数据构造:构造Dataset和Dataloader,在其中对文本进行文本转数字(index)和值填充。形成transformer能够使用的类型。
  3. 构建transformer模型,将处理好的数据拿过来进行训练

模型构建详细的解析,可以参考这篇,我基本上是借鉴的这个实现:

Pytorch入门实战(5):基于nn.Transformer实现机器翻译(英译汉)_基于transformer的机器翻译 运行演示_iioSnail的博客-CSDN博客

二.训练环境搭建

软硬件环境还是使用之前在腾讯云的Tesla T4 GPU 来训练,之前部署其他大模型的软件环境。

想了解部署大模型的文章可以参考我之前写的:

一个小白如何学习AIGC,并产出自己的应用_有意思科技的博客-CSDN博客

AIGC - ChatGLM大模型:ChatGLM2-6B模型推理部署-CSDN博客

三.开始训练

目前设置的是10个epoch训练,5000步记录保存一下模型文件,如果中途出啥问题,可以用保存的模型文件接着训练。

开始训练:

模型训练完整代码见github的en_to_zh_train.py

后台训练,并记录打印日志: nohup python -u en_to_zh_train.py >> train.log 2>&1 &

中途训崩过一次,由于硬盘满了,所以后面使用每5000步保存的模型文件,继续训练了3个epoch,整体的话,最终训练到了,1.7左右的loss,后面会降的越来越慢了,我就没有再继续训练了。

训练好的模型如下,中途保存的被我删除了,只保留几个,红框为loss为1.69的模型

四.模型推理

模型推理完整代码参见我的github工程中的en_to_zh_demo.py,这只是一个简单使用,有兴趣可以弄一个命令行模式测试。

使用刚刚训练好的模型,进行一波翻译推理

设置模型文件为最终训练好的 model_475000.pt

调用模型翻译:

项目地址

模型实现github地址:GitHub - JsDoingYJ/transformer_model: 基于原生transformer训练各类模型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/653545
推荐阅读
相关标签
  

闽ICP备14008679号