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

基于原生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训练各类模型

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有意思科技

给与不给,我都会更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值