总览
- 使用
1080 ti
在英捷数据集进行试验。 -
t2t
中的bs
指的是subword
的数量,而不是我们认为的sentence pairs
的数量
- 实际训练的
bs
等于使用GPU
的数量乘以bs
-
approx-bleu
是为了提高测试的过程的,使用的是sub-word bleu
的计算方法,因此比实际的bleu
要高。
-
t2t
使用的是自己内建的sub-word
方法
-
file_byte_budget
是用来控制sample
出训练数据用来训练subword
词表的数目,确保抽样比较多的training data
,对于子单词词汇表来说,训练数据太小的一个标志是日志中报告的min_count
太低,因此词汇表只能从一次或两次看到的单词中估计。(因此min_count
要大于2
才是比较合适的)
- 可以更改
t2t-trainer 中的schedule
来不让做approx_bleu
这样可以加速训练,感觉应该是有参数可以让比较的是真实的bleu把
训练加速
- 增大
bs
对训练加速帮助不大。
- 多
GPU
训练对加速的帮助很大。
- 作者发现
small and clear
的数据集收敛需要的epoch
比big and noise
的多。
- 大的数据集在多卡上训练
1week
之后效果还在提升,如果数据集是两倍那么需要的训练时间要比两倍还要多,训练数据和训练需要的收敛时间之间并不是线性关系。
big model和base model的对比
- 在单
GPU
上尽管base model
可以放更多的训练数据,但是效果是不如big model
。
- 因此为了有好的训练效果,如果你的
GPU
显存是大于11GB
的还是使用big model
比较好。
- 为了
debug
方便(除过模型其他部分的bug
)可以使用一个更小的transformer
模型,transformer_tiny
,等运行正常的情况下再换成大模型transformer
。
- 如果为了极限的省显存可以用
Adafactor
优化器,因为不用存储adam
中的一阶矩二阶矩。
max_length参数的影响
max_length
这个参数基本不用改,因为如果训练的bs
足够大的话,修改只能降低效果,transformer
不能翻译比训练中出现最长的句子还要长的句子。
bs的影响
- 默认的单
GPU
的bs
是2048
,多GPU
的bs
是4096
,但是作者在单GPU
上发现对于base model
如果增大bs
到6000
效果很会比默认的参数好很多。
- 但是
big model
大的bs
效果没有什么用,并且有一个收敛最小bs
的参数,如果bs
小于这个参数那么就会不收敛或者收敛很慢。
- 建议:
bs
尽可能的大。
学习率lr和warmup的影响
-
lr
影响不大,使用默认的就好
-
warmup
影响也不大
-
transfomer
对这两个参数不敏感,使用初始的就好了
- 对于新的数据集如果没收敛的话,尝试下面的调参策略,以及
lr
和warmup
的关系,降低warmup steps
,相当于增大实际最大学习率。
-
数据量增大的话:其他人经过推算如果数据量增大
k
倍的话,学习率变为√k
才行。
-
如果是多GPU运行:作者发现默认的
0.2
的学习率是8GPU
能够收敛的最大学习率
- 在
8 GPU
上调节warm up
对只要没有越过收敛底线,其他情况加是差不多的。
- 因此看学习率合不合适就看收敛速度(
BLEU
值),因为如果学习在适当区,收敛是可以达到预期的,如果没有在那么训练是不收敛或者收敛到一个很低的水平的,如果是差不多达到预期了那么就没有必要调节学习率,如果很差那么就适当的降低学习率即可。
多GPU的影响
- 在
single GPU
上执行4000
步和4 GPU
上执行1000
步的结果是一模一样的,但是收敛的更快.
- 作者建议:如果有
2
个实验和8
个GPU
的时候,最好是串行的在8
个GPU
上跑,而不是各占用4
个GPU
并行跑。
transformer不使用bn和SGD
- 使用
layer normalization
不使用batch normalizaion
的原因:
checkpoint average的影响
-
checkpoint average
一般会带来0.2 bleu
左右的提升。 - 默认的是每隔
10
分钟保存一次ckpt
,最后平均20
个最近的ckpt
效果很好,但是这个多少个是根据任务而定的,在作者的实验中就发现一小时保存一次的ckpt
平均后的效果更好。 - 作者建议在距离训练开始阶段较近的比如
5W
步的时候,平均的ckpt
应该少一点,因为还没有训练还不稳定bleu
曲线还很陡峭,在结束10W
步的时候,平均的ckpt
应该多一点,这样效果会更好。
网友评论