更智能、更好、更快、更长:用于快速、内存高效和长上下文微调和推理的现代双向编码器

12月18日发表
04月12日由 Jeremy HowardJeremy Howard 提交
作者: Benjamin WarnerBenjamin Warner, Antoine ChaffinAntoine Chaffin, Benjamin ClaviéBenjamin Clavié, Orion WellerOrion Weller, Oskar HallströmOskar Hallström, Said TaghadouiniSaid Taghadouini, Alexis Gallagher, Raja BiswasRaja Biswas, Faisal LadhakFaisal Ladhak, Tom AarsenTom Aarsen, Nathan CooperNathan Cooper, Griffin AdamsGriffin Adams, Jeremy HowardJeremy Howard, Iacopo PoliIacopo Poli

摘要

仅编码器 Transformer 模型(如 BERT)在检索和分类任务方面,相对于更大的仅解码器模型,提供了出色的性能-尺寸权衡。尽管 BERT 是众多生产管道的主力,但自发布以来,在 Pareto 改进方面一直有限。在本文中,我们介绍了 ModernBERT,将现代模型优化引入仅编码器模型,代表了相对于旧编码器的重大 Pareto 改进。ModernBERT 模型在 2 万亿个 token 上训练,原生序列长度为 8192,在包含各种分类任务以及不同领域(包括代码)的单向量和多向量检索的大量评估中表现出最先进的结果。除了强大的下游性能外,ModernBERT 也是速度最快、内存效率最高的编码器,专为在常见 GPU 上进行推理而设计。

评论

Jeremy HowardJeremy Howard
论文作者
论文提交者

我们对 ModernBERT 的发布感到非常兴奋——它感觉可以成为各种有趣的新创公司和研究项目的基础。

事实上,论文和博客文章中提到的内容只是冰山一角。在各种方面微调模型有很多机会,我预计这将远远超出我们目前有限的探索所取得的成就。

Stefan SchweterStefan Schweter

> 我们移除了 Next-Sentence Prediction 目标,它引入了明显的开销,但没有性能提升

但这只是真相的一半,主要是从 RoBERTa 论文中复制过来的。

另一半:ALBERT 论文(见表 5)显示了改进(NSP 优于 None)——不是在 SQuAD 数据集上,而是在平均水平上。此外,他们引入句子顺序预测损失的方法提高了各种下游任务的性能。

Stefan SchweterStefan Schweter

我对预训练基础模型和大型模型所涉及的硬件数量,包括预训练时间感兴趣 :)

Antoine ChaffinAntoine Chaffin
论文作者

你好,

所有内容都包含在论文的表 3(附录 A)中

image.png

希望对您有帮助!

Julien ChaumondJulien Chaumond

非常酷的工作 @NohTow

Lefteris LoukasLefteris Loukas

@NohTow 您对预训练成本有多少美元有大致的估计吗?

JaidevJaidev

伟大的工作,尤其适用于大多数行业任务

Tom SchelsenTom Schelsen

感谢您对“古老的” BERT 架构进行如此受欢迎的现代化改造 ;)

然而,对于我们很多人来说,最近的 LLM/仅解码器模型的吸引力很大一部分在于它们的多语言能力。很想看到一个在更多自然语言上预训练的变体(而不是代码来保持相同的训练预算,并且两者将是互补的,即用于不同的下游应用)。:)

Markus JonekMarkus Jonek

很想看到训练损失曲线!150/300M 模型真的需要将近 2T 个 tokens 吗?

谢谢 :)

Divya SDivya S

ModernBERT 在 NER 任务上的表现如何,例如在 CoNLL-2003 数据集上?很高兴在这么久之后看到现代化的 BERT :)

Tom AarsenTom Aarsen
论文作者

我们还没有在 NER 上进行评估,我相信,但 @stefan-it 实际上可能在 CoNLL03 上运行了一些测试。

Divya SDivya S

哦,太酷了,所以我可以针对 NER 对其进行微调,看看结果如何,因为 CoNLL03 不是训练数据的一部分!

Tom AarsenTom Aarsen
论文作者

我不知道它是否在训练数据中,但你肯定可以针对 NER 对其进行微调,确实!

Stefan SchweterStefan Schweter

这是我目前使用 ModernBERT 在 CoNLL-2003 上进行的一些实验:

https://github.com/stefan-it/modern-bert-ner

:)

Divya SDivya S

太棒了!我会试用一下,谢谢 :)