NeoBERT代表了双向编码器模型的新一代技术发展,通过整合前沿架构改进、现代大规模数据集和优化的预训练策略,有效缩小了传统编码器与高性能自回归语言模型之间的性能差距。该模型在支持4096 tokens的扩展上下文窗口的同时,仅维持250M参数规模的紧凑设计。值得注意的是,尽管参数量较小,NeoBERT在MTEB(Massive Text Embedding Benchmark)基准评估中展现了领先性能,在相同微调条件下超越了多个参数规模更大的竞争模型。

研究贡献

架构设计

NeoBERT的架构融合了多项技术创新,显著提升了模型的计算效率与性能表现:

NeoBERT在架构设计上针对效率问题进行了精心调整。研究分析表明,早期大型语言模型普遍存在"深度效率低下"的问题,而BERT和RoBERTa等较小模型则主要受限于"宽度效率低下"的制约。针对这一特性,NeoBERT保持了与BERTbase相同的768维度隐藏层宽度,同时增加了模型深度以提升性能。在位置编码方面,为解决传统绝对位置嵌入处理长序列时的局限性,NeoBERT采用旋转位置嵌入(Rotary Position Embedding)技术,实现了更优的序列长度外推能力,并通过Yet Another RoPE Extension支持有效处理扩展上下文。在标准化策略上,NeoBERT在残差连接内部实现了配合RMSNorm的Pre-Layer Normalization结构,并用计算效率更高的SwiGLU激活函数替代了传统的GELU,这一技术已在LLaMA等先进模型中得到验证。

训练数据

NeoBERT的训练数据选择体现了规模与质量的双重追求。模型在包含600B tokens的RefinedWeb数据集上进行预训练,该数据集规模是RoBERTa训练语料库的18倍,为模型提供了更加丰富的语言知识基础。NeoBERT的预训练采用了两阶段策略:首先以1024 tokens的序列长度进行100万步训练(累计处理约2T tokens),随后进行5万步(约100B tokens)的延续训练,将最大处理序列长度扩展至4096 tokens。此外,通过引入其他子数据集中的长序列样本,确保模型在训练过程中接触到多种序列长度的文本,增强了模型在不同长度文本上的适应性。

预训练策略

NeoBERT遵循RoBERTa的成功经验,专注于掩码语言建模(Masked Language Modeling)任务进行预训练,采用20%的掩码率。模型在总计2.1T tokens的数据上完成预训练过程。为了提高训练效率,研究团队应用了多项优化技术,包括DeepSpeed ZeRO框架、FlashAttention算法和融合计算算子(xFormers)。同时,研究人员确保模型维度与GPU架构(64的倍数)对齐,并移除了神经网络偏置项(bias terms)以简化计算流程,进一步提升训练效率。

消融实验

通过系统性消融实验,研究团队识别出对模型性能贡献最大的改进包括数据集替换(在GLUE基准上提升3.6%)以及增加模型规模(在GLUE基准上提升2.0%)。这些实验结果表明,高质量大规模数据与适当的参数规模调整是提升模型性能的关键因素。

实验评估

实验结果显示,尽管NeoBERT比同类大型模型的参数量少100M至150M,但仍然实现了89.0%的GLUE得分,与之前最先进模型的性能水平相当。研究团队指出,虽然GLUE基准测试在当前技术环境下已相对过时,但报告这一结果有助于与先前的编码器模型进行直接比较,提供性能进步的历史参照。

MTEB基准测试作为一项更加现代且具有挑战性的评估,涵盖了英语语言的7个任务类别和56个不同数据集。与传统掩码语言模型在直接嵌入评估方面的局限不同,NeoBERT采用了模型无关的对比微调策略,确保与其他模型进行公平比较。研究团队在包含900万个查询-文档对的数据集上应用对比学习进行模型训练,其中包含难分样本(hard negatives)和批内负样本(in-batch negatives)。实验观察表明,超过2,000步的训练对性能提升非常有限。

在MTEB-English评估中,NeoBERT的表现超越了所有大型基线模型,较第二名模型实现了4.5%的相对性能提升,而这一成绩是在参数量更少的条件下取得的,凸显了其架构设计和训练方法的高效性。

论文和代码:

https://avoid.overfit.cn/post/b72db5824bff45c68fbcb75e5aa081a5

作者:Andrew Lukyanenko


deephub
125 声望101 粉丝