❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
原文链接:https://mp.weixin.qq.com/s/VgNrSY9YE2fbt3yOwkJB_g
🚀 快速阅读
- 功能:支持长上下文处理、信息检索、文本分类、实体识别和代码检索。
- 技术:基于现代化 Transformer 架构,优化参数和注意力机制,减少计算浪费。
- 应用:适用于语义搜索、内容推荐、自然语言理解和问答系统等场景。
正文(附运行示例)
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
。
资源
- GitHub 仓库:https://github.com/AnswerDotAI/ModernBERT
- HuggingFace 模型库:https://huggingface.co/collections/answerdotai/modernbert
- arXiv 技术论文:https://arxiv.org/pdf/2412.13663
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦