转载请注明出处:https://blog.csdn.net/nocml/article/details/125711025
本系列传送门:
Transformer(一)–论文翻译:Attention Is All You Need 中文版
Transformer(二)–论文理解:transformer 结构详解
Transformer(三)–论文实现:transformer pytorch 代码实现
Transformer(四)–实现验证:transformer 机器翻译实践
1 文章说明
此篇文章是衔接上一篇的后续,在这篇blog中,我们会使用之前实现的代码,在真实的大规模语料上来训练一个机器翻译模型,用实际效果来检验我们实现的代码。
这个实验是我很早之前,也就是刚写完代码时做的,只不过模型结果没有经过系统评估,连bleu分也没计算,所以当时就没有整理成blog。最近想了想,还是把结果粘上来,大家看一下。然后transformer这块就结束了。最近一直在搞chatgpt相关的事情,有时间了也会整理下。
2. 模型训练
2.1 训练数据
训练数据使用中英平行语料,共1000W。
2.2 训练设备
服务器型号:T7920 塔式机
gpu: 2080ti 11G 单卡 (由于只是验证模型的正确性,所以只使用了一块卡)
cpu: 至强 5218N * 2
内存:128G
2.3 训练参数
-
l
r
:
6.26
×
1
0
−
5
lr :{6.26} ×10^{-5}
lr:6.26×10−5
-
b
a
t
c
h
s
i
z
e
:
16
batch size: 16
batchsize:16
-
s
e
n
t
e
n
c
e
m
a
x
l
e
n
g
t
h
:
128
sentence \ max \ length: 128
sentence max length:128
-
w
a
r
m
s
t
e
p
:
10000
warm\ step : 10000
warm step:10000
-
t
o
k
e
n
n
u
m
:
45000
token\ num:45000
token num:45000
-
e
p
o
c
h
:
6
epoch: 6
epoch:6
2.4 训练过程
- 训练时长:7d(一个epoch 大概需要一天多)
- 训练损失:从百分位降到千分位,具体见下图
- 训练初始:
- 训练结束:
2.5 模型结果
结果展示:
注:最后一个例子超过我设置的解码长度了,没有翻译完。
2.6 结果分析
没有计算具体的评估指标,主要是当时忙着做其它项目,没有过多的时间,且当时训练的目的也只是为了通过实验来看看代码是否有致命缺陷。从结果来看,已经有一定的翻译效果了。