ModernBERT:英伟达开源的新一代编码器模型,性能超越 SOTA,通过去除填充和序列打包减少计算浪费,提高训练和推理的效率

简介: ModernBERT 是由英伟达和 HuggingFace 等机构联合开源的新一代编码器模型,支持长上下文处理,性能超越 SOTA,适合多种自然语言处理任务。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

原文链接:https://mp.weixin.qq.com/s/VgNrSY9YE2fbt3yOwkJB_g


🚀 快速阅读

  1. 功能:支持长上下文处理、信息检索、文本分类、实体识别和代码检索。
  2. 技术:基于现代化 Transformer 架构,优化参数和注意力机制,减少计算浪费。
  3. 应用:适用于语义搜索、内容推荐、自然语言理解和问答系统等场景。

正文(附运行示例)

ModernBERT 是什么

公众号: 蚝油菜花 - ModernBERT

ModernBERT 是由 Answer.AI、LightOn、约翰斯·霍普金斯大学、英伟达和 HuggingFace 联合推出的现代编码器-only Transformer 模型,是对经典 BERT 模型的一次重大升级。ModernBERT 在 2 万亿 token 的大规模数据上训练,支持长达 8192 token 的序列长度,显著提升处理长上下文的能力。

ModernBERT 在多种自然语言处理任务上性能赶超 SOTA,同时速度是 DeBERTa 的两倍,特别适合信息检索、文本分类和实体识别等应用。模型现已开源,供学术界和工业界研究和应用。

ModernBERT 的主要功能

  • 长上下文处理:支持长达 8192 token 的序列,相较于传统模型,大幅提升处理长文本的能力。
  • 信息检索:在语义搜索和文档检索任务中,ModernBERT 能更有效地表示文档和查询,提高检索准确性。
  • 文本分类:包括情感分析、内容审核等任务,能快速进行文本分类。
  • 实体识别:在自然实体识别(NER)任务中,识别文本中的特定实体。
  • 代码检索:在编程语言相关的任务中也表现出色,能处理和检索大量代码信息。
  • 效率提升:在保持高性能的同时,在速度和内存使用上进行优化,让模型更加高效。

ModernBERT 的技术原理

  • 现代化 Transformer 架构:基于 Transformer 架构改进,包括旋转位置嵌入(RoPE)和 GeGLU 激活函数,有助于模型更好地理解和处理长序列数据。
  • 参数优化:移除不必要的偏置项,更有效地利用参数预算,简化模型架构。
  • 注意力机制:引入交替的全局和局部注意力机制,提高模型处理长文本的效率。
  • Unpadding 和序列打包:去除填充(Unpadding)和序列打包(Sequence Packing),减少计算浪费,提高训练和推理的效率。
  • 硬件感知模型设计:在设计时考虑硬件的利用,基于优化模型结构最大化 GPU 的利用率。
  • 大规模训练数据:在 2 万亿 token 的大规模数据集上进行训练,包括网络文档、编程代码和科学文章,让模型具有更广泛的语言理解和应用能力。

如何运行 ModernBERT

ModernBERT 的训练和评估依赖于 composer 框架,所有训练都通过 YAML 文件进行配置。以下是一个简单的环境设置和训练示例:

conda env create -f environment.yaml
conda activate bert24
pip install "flash_attn==2.6.3" --no-build-isolation

训练 ModernBERT 模型时,可以使用 yamls 文件夹中的示例配置文件,例如 yamls/main/flex-bert-rope-base.yaml

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
【Axure教程】中继器表格插入行、复制行和删除行
【Axure教程】中继器表格插入行、复制行和删除行
【Axure教程】中继器表格插入行、复制行和删除行
|
人工智能 自然语言处理 Swift
ModernBERT-base:终于等到了 BERT 回归
BERT于 2018 年发布(史前人工智能!),但它至今仍被广泛使用,BERT的纯编码器架构使其成为每天出现的各种场景的理想选择,例如检索、分类和实体提取。
1368 3
|
6月前
|
机器学习/深度学习 数据采集 人工智能
轻量级知识图谱框架LightRAG入门指南
LightRAG是一款创新的知识图谱增强检索框架,结合向量检索与知识图谱,提升检索准确性与可解释性。支持多模态数据,提供轻量高效、易集成、可解释的RAG解决方案。
|
2月前
|
人工智能
Cursor快捷键大全:效率翻倍的隐藏技巧
用了半年Cursor,才明白高效编程离不开快捷键。从基础跳转到AI协作,这些实战技巧让编码行云流水。掌握Cmd+P、F12、Ctrl+.等核心快捷键,配合多光标、自定义指令,彻底告别鼠标依赖。每天省下一小时,从记住两个原则开始:少用鼠标,善用命令面板,逐步构建肌肉记忆,让Cursor真正成为你的代码外脑。
|
机器学习/深度学习 人工智能 自然语言处理
BERT的继任者ModernBERT:融合长序列处理、代码理解与高效计算的新一代双向编码器
ModernBERT 是一个全新的模型系列,在**速度**和**准确性**两个维度上全面超越了 BERT 及其后继模型。
885 9
|
数据采集 Web App开发 JavaScript
Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容
本文介绍了如何使用Selenium爬虫技术抓取抖音评论,通过模拟鼠标悬停操作和结合代理IP、Cookie及User-Agent设置,有效应对动态内容加载和反爬机制。代码示例展示了具体实现步骤,帮助读者掌握这一实用技能。
656 0
Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容
|
存储 机器学习/深度学习 算法
【mlflow系列1】mlflow 的搭建使用
【mlflow系列1】mlflow 的搭建使用
1656 0
【mlflow系列1】mlflow 的搭建使用
|
监控 JavaScript 数据库
OpenLLMetry:完美支持 LLM 应用的开源监测工具
【2月更文挑战第16天】OpenLLMetry:完美支持 LLM 应用的开源监测工具
1318 1
OpenLLMetry:完美支持 LLM 应用的开源监测工具
|
存储
【源码共读】dotenv:从 .env 文件中读取环境变量
【源码共读】dotenv:从 .env 文件中读取环境变量
660 1
|
Docker 容器
docker 设置国内镜像源
docker 设置国内镜像源
93556 1

热门文章

最新文章