ModernBERT 开发者指南

ModernBERT 开发者指南

bert24 bert24 项目地址: https://gitcode.com/gh_mirrors/be/bert24

1. 项目介绍

ModernBERT 是一个开源项目,旨在通过架构改进和规模扩展将 BERT 模型现代化。该项目引入了 FlexBERT,这是一种模块化的编码器构建块方法,并大量使用 .yaml 配置文件来构建模型。ModernBERT 的代码库基于 MosaicBERT,并对其进行了扩展,以支持 Flash Attention 2。该项目由 Answer.AI、LightOn 和其他合作伙伴共同开发。

2. 项目快速启动

环境搭建

在 GPU 配置的机器上,使用以下命令创建和激活环境:

conda env create -f environment.yaml
conda config --set channel_priority flexible
conda activate bert24

如果使用 H100s,需要克隆并构建 Flash Attention 3:

git clone https://github.com/Dao-AILab/flash-attention.git
cd flash-attention/hopper
python setup.py install

安装 Flash Attention 2:

pip install "flash_attn==2.6.3" --no-build-isolation

模型训练

训练过程依赖于 composer 框架,并通过 YAML 文件进行配置。以下是一个启动训练的例子:

composer main.py yamls/main/modernbert-base.yaml

数据准备

项目提供了两种数据集类:

  • StreamingTextDataset:继承自 StreamingDataset,支持 MDS、CSV/TSV 或 JSONL 格式,适用于本地数据。
  • NoStreamingDataset:需要解压缩的 MDS 格式数据,可以通过 src/data/mds_conversion.py 进行解压缩。

根据数据访问方式选择合适的类,并在数据加载器中设置 streaming 参数。

模型评估

GLUE 评估可以通过 run_evals.py 脚本进行,需要提供模型检查点和训练配置。

3. 应用案例和最佳实践

检索模型训练

项目中的 examples 文件夹包含了训练检索模型的脚本,包括基于 Sentence Transformers 的密集模型和基于 PyLate 的 ColBERT 模型。

  • 训练 ModernBERT-based ColBERT 模型:
# train_pylate.py
  • 训练 ModernBERT-based 密集检索模型:
# train_st.py

模型评估

评估 ModernBERT-based ColBERT 模型:

# evaluate_pylate.py

评估 ModernBERT-based 密集检索模型:

# evaluate_st.py

4. 典型生态项目

ModernBERT 可以与多种开源项目集成,例如 HuggingFace Transformers,以支持更广泛的应用场景。开发者可以参考以下项目来构建自己的应用:

  • HuggingFace Transformers:用于集成 ModernBERT 模型到各种 NLP 管道中。
  • Sentence Transformers:用于训练和评估密集检索模型。
  • PyLate:用于训练和评估 ColBERT 模型。

通过以上指南,开发者可以快速上手 ModernBERT,并在实际项目中应用这些先进的模型。

bert24 bert24 项目地址: https://gitcode.com/gh_mirrors/be/bert24

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霍曙柏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值