目前的主流的 BERT 模型最多能处理 512 个 token 的文本。导致这一瓶颈的根本原因是 BERT 使用了从随机初始化训练出来的绝对位置编码,一般的最大位置设为了 512,因此顶多只能处理 512 个 token,多出来的部分就没有位置编码可用了。当然,还有一个重要的原因是 Attention的复杂度,导致长序列时显存用量大大增加,一般显卡也 fine-tune 不了。 本文主要面向前一个原因,即假设有足够多的显存前提下,如何简单修改当前最大长度为 512 的 BERT 模型,使得它可以直接处理更长的文本,主要思路是层次分解已经训练好的绝对位置编码,使得它可以延拓到更长的位置。
[1] https://github.com/huawei-noah/Pretrained-Language-Model/tree/master/NEZHA-TensorFlow [2] https://github.com/bojone/bert4keras
内容中包含的图片若涉及版权问题,请及时与我们联系删除


评论
沙发等你来抢