bert 炼丹小tricks

No. 1 长文本截断:
根据集中对超出序列最大长度max_len的文本序列,最好的预处理手段是截取首尾,文本,头部选择128,尾部选择382个token进行保留,
另外也有根据当前文本的分层注意力来求切分后的各个等长子序列对当前文本序列的重要性程度(也就是对语义表示的影响程度)
No.2 分层表示利用:
众所周知,经典的12层bert模型的架构的不同层次上对语义表示的信息粒度也不一样,所以利用这些不同层级的信息能够带来提升,邱希鹏课题组实验在分类上最后四层的最大池化能够带来比较多的提分点。
No.3精调学习率设置:
一般来说精调的时候学习率必须足够微小,类似于2e-5这种也就是的科学计数法形式。
或者对不同的bert模型层开始做学习率衰减,上层的学习率衰减为95%,也就是最底层是最小的学习率来进行学习,另一点可以使用adamw来对权重来进行正则化处理。
No.4继续精调:
在目标领域语料上对bert模型做进一步预训练也是会提高相应的表示能力的
具体流程是:
预训练模型 目标任务数据上进行再次预训练 加上 分类器结构/精调
对Large-Bert模型的进一步精调会带来最大收益(调参成本会比收益大多少?)
对于预训练模型来说使用预热策略WarnUp的学习率调整会给使得模型更好收敛。
No.5 CLR循环学习率调整: