推荐开源项目:DinkyTrain——高效 Masked Language Model 训练库

推荐开源项目:DinkyTrain——高效 Masked Language Model 训练库

DinkyTrain Princeton NLP's pre-training library based on fairseq with DeepSpeed kernel integration 🚃 DinkyTrain 项目地址: https://gitcode.com/gh_mirrors/di/DinkyTrain

项目介绍

DinkyTrain 是一个基于 fairseq 构建的高效 Masked Language Model (MLM) 训练库。该项目通过 fork fairseq,为研究人员在使用训练脚本时提供了更大的灵活性,同时也使得将代码贡献整合到其他项目中变得更加容易。

项目技术分析

DinkyTrain 集成了多种先进技术,旨在提升 MLM 预训练的效率和效果:

  1. DeepSpeed transformer kernel 集成:通过整合 DeepSpeed 的 transformer kernel,显著提升了训练速度和性能。
  2. 高效的训练配方:提供了针对 MLM 预训练的优化训练配方,确保训练过程高效且结果可靠。
  3. 易用指南:提供了详尽的指南,帮助用户轻松使用 fairseq 进行 MLM 预训练。

此外,DinkyTrain 继承了 fairseq 的众多优秀特性:

  • 多 GPU 训练:支持在同一台机器或多台机器上进行多 GPU 训练(数据并行和模型并行)。
  • 梯度累积:即使在单 GPU 上也能通过梯度累积进行大 mini-batch 训练。
  • 混合精度训练:利用 NVIDIA tensor cores,训练更快且占用更少 GPU 内存。
  • 可扩展性:轻松注册新的模型、准则、任务、优化器和学习率调度器。
  • 灵活配置:基于 Hydra 的灵活配置,支持代码、命令行和文件组合配置。
  • 全参数和优化器状态分片:支持完整的参数和优化器状态分片。
  • 参数卸载到 CPU:支持将参数卸载到 CPU,进一步优化资源使用。

项目及技术应用场景

DinkyTrain 适用于多种研究和应用场景:

  1. 学术研究:研究人员可以利用 DinkyTrain 进行 MLM 预训练的实验,探索更高的掩码率对预训练效率的影响。
  2. 工业应用:企业可以利用 DinkyTrain 高效训练自定义的 MLM 模型,应用于自然语言处理任务的 fine-tuning。
  3. 教育用途:高校和培训机构可以使用 DinkyTrain 作为教学工具,帮助学生理解和实践 MLM 训练技术。

项目特点

DinkyTrain 具有以下显著特点:

  • 高效性:通过集成 DeepSpeed transformer kernel 和优化训练配方,显著提升了训练效率和效果。
  • 灵活性:基于 fairseq 的可扩展性和灵活配置,用户可以轻松定制和扩展功能。
  • 易用性:提供详尽的安装、数据预处理、预训练和 fine-tuning 指南,降低使用门槛。
  • 兼容性:支持将 fairseq 检查点转换为 HuggingFace 检查点,方便用户在不同框架间切换。

快速上手

安装
  1. 安装 PyTorch(版本 >= 1.5.0)和 Python(版本 >= 3.6)。
  2. 克隆 DinkyTrain 仓库并安装:
git clone https://github.com/princeton-nlp/DinkyTrain.git
cd DinkyTrain
pip install --editable ./
  1. 为更快训练,可安装 NVIDIA 的 apex 库和 DeepSpeed 库。
数据预处理
  1. 下载 GPT2 BPE 词汇表并进行 tokenization。
  2. 使用 fairseq-preprocess 进行数据索引和二进制化。
预训练

使用提供的脚本进行高效预训练:

GPU={number of GPUs} DATA_DIR={data path} [DEEPSPEED=1] bash run_efficient_mlm_recipe.sh
Fine-tuning

支持在 GLUE 和 SQuAD 数据集上进行 fine-tuning,并提供将 fairseq 检查点转换为 HuggingFace 检查点的工具。

结语

DinkyTrain 是一个功能强大且易于使用的 MLM 训练库,适用于广泛的学术和工业应用。通过其高效的训练配方和灵活的配置选项,用户可以快速构建和优化自定义的 MLM 模型。立即尝试 DinkyTrain,开启高效 MLM 预训练之旅!

DinkyTrain Princeton NLP's pre-training library based on fairseq with DeepSpeed kernel integration 🚃 DinkyTrain 项目地址: https://gitcode.com/gh_mirrors/di/DinkyTrain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

高崴功Victorious

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

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

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

打赏作者

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

抵扣说明:

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

余额充值