在8GB消费级GPU上从零开始训练BERT的注意事项

在8GB消费级GPU上从零开始训练BERT的注意事项

原文链接:sidsite.com/posts/bert-...

原文作者:sidneyradcliffe

我在自己的台式电脑(配备 Nvidia 3060 Ti 8GB GPU)上从零开始训练了一个 BERT 模型(Devlin 等人,2019 年)。模型架构、分词器和训练器都来自 Hugging Face 库,我的主要工作是编写代码、设置数据(大约 20GB 的未压缩文本),然后让我的这台电脑运行。(并确保其工作正常,GPU 利用率高)。

通常情况下,训练大语言模型需要使用 GPU 或 TPU 集群,并非仅仅一台台式电脑可以进行。下图说明了我用于训练该模型的计算资源与训练原始 BERT-base 模型的资源之间的差异。

尽管 BERT-base 和这个模型的训练时间相同,但 BERT-base 训练 token 数量大约是这个模型的 30 倍(BERT-base 训练了大约 40 个epoch,而这个模型只训练了一个epoch)。

上图显示了 GLUE dev-set 分数,以说明该模型在自然语言任务中的表现。对 GLUE 的微调总共花费了约 12 个小时(在 4 天/约 100 小时的预训练基础上)。下表列出了 GLUE-dev 的详细结果:

Model MNLI (m/mm) SST-2 STSB RTE QNLI QQP MRPC CoLA Average
This model 79.3/80.1 89.1 61.9 55.9 86.3 86.4 74.8 41.0 72.7
BERT-Base* 83.2/83.4 91.9 86.7 59.2 90.6 87.7 89.3 56.5 80.9

*BERT-Base 指的是经过 fully trained 的 BERT 模型,其结果来自 Cramming(Geiping 等人,2022)。

虽然我们可以看到,BERT-Base 在每个任务中的表现都更好;但 "This model" 的结果在 2018 年初可能会非常出色(可能在某些任务上达到了最先进水平)。

没有进行超参数调整( hyperparameter tuning )。也没有使用特殊技术来改进训练。优化器(Optimizer)和学习率调度(learning rate schedule)以 Cramming(Geiping 等人,2022 年)为指导,但没有使用 Cramming 中的模型架构变化和其他建议。我先做了几次规模较小的训练(约 1-12 小时)。

通过 Weights & Biases,我能够进行远程监控训练。

这项工作受到了 Cramming([Geiping et al,2022 年]((arxiv.org/abs/2212.14...))的启发,该论文介绍了如何在有限的计算资源下(仅用 24 小时)训练出性能良好的 BERT 模型。

100 小时训练运行的曲线图

预训练过程中的loss值变化

Cramming(Geiping 等人,2022)推荐的学习率调度

GPU 利用率约为 98%

GPU 内存使用率约为 98%,这是通过调整 batch size 实现的

GPU 的温度保持在 76 - 80 摄氏度之间,高温天的温度更高

References:

  • Geiping, Jonas, and Tom Goldstein. "Cramming: Training a Language Model on a Single GPU in One Day." arXiv preprint arXiv:2212.14034 (2022). URL arxiv.org/abs/2212.14....
  • Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805 [cs], May 2019. URL arxiv.org/abs/1810.04....
  • Vaswani et al. (2017) Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention Is All You Need. arXiv:1706.03762 [cs], December 2017. URL arxiv.org/abs/1706.03....
  • Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language understanding with unsupervised learning. Technical report, OpenAI, s3-us-west-2.amazonaws.com/openai-asse...
相关推荐
kyle~6 分钟前
Opencv---深度学习开发
人工智能·深度学习·opencv·计算机视觉·机器人
运器12319 分钟前
【一起来学AI大模型】PyTorch DataLoader 实战指南
大数据·人工智能·pytorch·python·深度学习·ai·ai编程
超龄超能程序猿34 分钟前
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
人工智能·python·机器学习·numpy·pandas·scipy
卷福同学35 分钟前
【AI编程】AI+高德MCP不到10分钟搞定上海三日游
人工智能·算法·程序员
帅次42 分钟前
系统分析师-计算机系统-输入输出系统
人工智能·分布式·深度学习·神经网络·架构·系统架构·硬件架构
AndrewHZ1 小时前
【图像处理基石】如何入门大规模三维重建?
人工智能·深度学习·大模型·llm·三维重建·立体视觉·大规模三维重建
5G行业应用1 小时前
【赠书福利,回馈公号读者】《智慧城市与智能网联汽车,融合创新发展之路》
人工智能·汽车·智慧城市
悟空胆好小1 小时前
分音塔科技(BABEL Technology) 的公司背景、股权构成、产品类型及技术能力的全方位解读
网络·人工智能·科技·嵌入式硬件
探讨探讨AGV1 小时前
以科技赋能未来,科聪持续支持青年创新实践 —— 第七届“科聪杯”浙江省大学生智能机器人创意竞赛圆满落幕
人工智能·科技·机器人
cwn_2 小时前
回归(多项式回归)
人工智能·机器学习·数据挖掘·回归