时隔6年BERT升级!仅编码器架构没被杀死,更快更准确更长上下文

人工智能 新闻
去年一张“大语言模型进化树”动图在学术圈疯转,decoder-only枝繁叶茂,而曾经盛极一时的encoder-only却似乎走向没落。

时隔6年,一度被认为濒死的“BERT”杀回来了——

更现代的ModernBERT问世,更快、更准、上下文更长,发布即开源!

图片

去年一张“大语言模型进化树”动图在学术圈疯转,decoder-only枝繁叶茂,而曾经盛极一时的encoder-only却似乎走向没落。

图片

ModernBERT作者Jeremy Howard却说:

encoder-only被低估了。

图片

他们最新拿出了参数分别为139M(Base)、395M(Large)两个模型上下文长度为8192 token,相较于以BERT为首的大多数编码器,其长度是它们的16倍

ModernBERT特别适用于信息检索(RAG)、分类、实体抽取等任务。

在检索、自然语言理解和代码检索测试中性能拿下SOTA:

图片

效率也很高。

ModernBERT速度是DeBERTa的两倍;在更常见的输入长度混合的情况下,速度可达4倍;长上下文推理比其它模型快约3倍。

关键它所占的内存还不到DeBERTa的五分之一。

图片

Jeremy Howard表示,目前关于生成式模型的热议掩盖了encoder-only模型的作用。

像GPT-4这样大模型,太大、太慢、私有化、成本高昂,对许多任务来说并不适合,还有Llama 3.1,参数都达到了405B。

这些模型运行缓慢,价格昂贵,而且不是你可以控制的。

图片

GPT-4这样的生成模型还有一个限制:它们不能预先看到后面的token,只能基于之前已生成的或已知的信息来进行预测,即只能向后看。

而像BERT这样的仅编码器模型可以同时考虑前后文信息,向前向后看都行。

ModernBERT的发布吸引数十万网友在线围观点赞。

抱抱脸联合创始人兼CEO Clem Delangue都来捧场,直呼“爱了!!”。

图片

为什么ModernBERT冠以“现代”之名?相较于BERT做了哪些升级?

杀不死的encoder-only

ModernBERT的现代体现在三个方面:

  • 现代化的Transformer架构
  • 特别关注效率
  • 现代数据规模与来源

下面逐一来看。

首先,ModernBERT深受Transformer++(由Mamba命名)的启发,这种架构的首次应用是在Llama2系列模型上。

ModernBERT团队用其改进后的版本替换了旧的BERT-like构建块,主要包括以下改进:

  • 用旋转位置嵌入(RoPE)替换旧的位置编码,提升模型理解词语之间相对位置关系的表现,也有利于扩展到更长的序列长度。
  • 用GeGLU层替换旧的MLP层,改进了原始BERT的GeLU激活函数。
  • 通过移除不必要的偏置项(bias terms)简化架构,由此可以更有效地使用参数预算。
  • 在嵌入层之后添加一个额外的归一化层,有助于稳定训练。

接着,在提升速度/效率方面,ModernBERT利用了Flash Attention 2进行改进,依赖于三个关键组件:

一是使用交替注意力(Alternating Attention),提高处理效率。

图片

二是使用Unpadding和Sequence Packing,减少计算浪费。

图片

三是通过硬件感知模型设计(Hardware-Aware Model Design),最大化硬件利用率。

图片

这里就不详细展开了,感兴趣的童鞋可以自行查阅原论文。

最后来看训练和数据方面的改进。

图片

团队认为,encoders在训练数据方面的落后,实际问题在于训练数据的多样性,即许多旧模型训练的语料库有限,通常只包括维基百科和书籍,这些数据只有单一的文本模态。

所以,ModernBERT在训练时使用了多种数据,包括网络文档、编程代码和科学文章,覆盖了2万亿token,其中大部分是独一无二的,而不是之前encoders中常见的20-40次的重复数据。

训练过程,团队坚持使用原始BERT的训练配方,并做了一些小升级,比如移除了下一句预测目标,因为有研究表明这样的设置增加了开销但没有明显的收益,还将掩码率从15%提高到30%。

具体来说,139M、395M两个规格的模型都通过了三阶段训练。

首先第一阶段,在序列长度为1024的情况下训练1.7T tokens。然后是长上下文适应阶段,模型处理的序列长度增加到8192,训练数据量为250B tokens,同时通过降低批量大小保持每批次处理的总tokens量大致相同。最后,模型在500亿个特别采样的tokens上进行退火处理,遵循ProLong强调的长上下文扩展理想混合。

一番操作下来,模型在长上下文任务上表现具有竞争力,且处理短上下文的能力不受损。

训练过程团队还对学习率进行了特别处理。在前两个阶段,模型使用恒定学习率,而在最后的500亿tokens的退火阶段,采用了梯形学习率策略(热身-稳定-衰减)

团队还使用两个技巧,加速模型的训练过程,一个是常见的batch-size warmup,另一个是受微软Phi系列模型启发,利用现有的性能良好的ModernBERT-base模型权重,通过将基础模型的权重“平铺”扩展到更大的模型,提高权重初始化的效果。

图片

作者透露将将公开checkpoints,以支持后续研究。

谁打造的?

前面提到的Jeremy Howard是这项工作的作者之一。

ModernBERT的三位核心作者是:

Benjamin Warner、Antoine Chaffin、Benjamin ClaviéOn。

图片

Jeremy Howard透露,项目最初是由Benjamin Clavié在七个月前启动的,随后Benjamin Warner、Antoine Chaffin加入共同成为项目负责人。

图片

Benjamin ClaviéOn、Benjamin Warner,同Jeremy Howard一样,来自Answer.AI。Answer.AI打造了一款能AI解题、概念阐释、记忆和复盘测试的教育应用,在北美较为流行。

Antoine Chaffin则来自LightOn,也是一家做生成式AI的公司。

团队表示BERT虽然看起来大家谈论的少了,但其实至今仍在被广泛使用:

目前在HuggingFace平台上每月下载次数超6800万。正是因为它的encoder-only架构非常适合解决日常出现检索(例如用于RAG)、分类(例如内容审核)和实体提取任务。

Jeremy Howard表示明年将训练这个模型的更大版本。

图片

Blog:https://huggingface.co/blog/modernbert
ModernBERT-Base:https://huggingface.co/answerdotai/ModernBERT-base
ModernBERT-Large:https://huggingface.co/answerdotai/ModernBERT-large
论文:https://arxiv.org/pdf/2412.13663

责任编辑:张燕妮 来源: 量子位
相关推荐

2024-09-30 14:10:00

2024-04-03 10:05:00

LLM性能基准测试

2023-12-08 13:21:00

模型训练

2024-09-05 08:24:09

2017-05-11 14:00:02

Flask请求上下文应用上下文

2023-07-28 12:13:28

模型语言性能

2012-07-30 16:29:40

架构架构模式.NET

2024-07-23 12:32:11

2012-12-31 10:01:34

SELinuxSELinux安全

2022-09-14 13:13:51

JavaScript上下文

2014-04-04 10:27:00

Python上下文管理器

2024-09-23 08:20:00

模型训练

2022-09-15 08:01:14

继承基础设施基础服务

2012-08-10 13:32:08

.NETAOP架构

2024-01-03 13:40:00

AI训练

2023-07-11 10:02:23

2024-10-11 16:20:00

谷歌AI模型

2017-12-17 17:01:23

限界上下文系统模型

2022-10-28 16:24:33

Context上下文鸿蒙

2022-05-03 21:01:10

架构项目映射
点赞
收藏

51CTO技术栈公众号