BERT还在更新!
因为上下文窗口限制,BERT只能处理512个token。
为了更长,可以抽取关键句子,或者修改位置编码
但现在,ModernBERT来了,使用了最新的技术架构,支持8192的context length。
架构
基于标准Transformer架构,添加了各项最新技术。
1.偏置项:只保留最后一个解码器线性层的偏置项。禁用layer norm中的偏置项。使得可以给线性层更大的参数量。
2.位置编码:由随机的可学习的位置编码转换为ROPE旋转位置编码。有利于扩展上下文窗口。
3.归一化:采用前置归一化,仍旧是标准的层归一化。在嵌入层后添加了一个层归一化,移除了第一个注意力层的第一个层归一化。这是为了防止重复。
4.激活函数:由RLU变为GeGLU。
5.注意力机制:每三层使用全局注意力,其余采用128个token的局部注意力。提高训练速度。
6.无填充方法:在训练和推理过程中去除填充令牌,将所有序列连接成一个序列进行处理。将小批量中的所有序列连接成一个单一序列。
7.Flash Attention。
8.层数:深且窄的语言模型在下游性能上优于较浅的对应模型,但代价是推理速度较慢。
base和large分别有22层和28层,总参数量分别为1.49亿和3.95亿。
base的隐藏层维度是768,large是1024.
9.分词器:采用BPE方法。
10.采用序列打包方法,避免高方差。
训练
1.训练任务:MLM任务,30%的掩码率。
2.优化器:StableAdamW优化器.
3.学习率调度:热身-稳定-衰减(WSD)方法。