恒源云3090跑NLP预训练模型ELECTRA实录

Posted AI酱油君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恒源云3090跑NLP预训练模型ELECTRA实录相关的知识,希望对你有一定的参考价值。

文章来源 | 恒源云社区(专注人工智能/深度学习GPU云服务器免费租用平台,官方体验网址:https://gpushare.com

原文地址 | 哪个男孩不想拥有自己的预训练模型(留下贫穷的眼泪)  作者 | junyu

 

本人使用RTX3090在openwebtext数据集上添加rotary-position-embedding,训练electra-small模型,由于openwebtext文件太大,故本教程提供本人处理好的数据集。

1、环境选择

  • pytorch 1.8.1
  • python 3.8
  • cuda 11.1

01523346-0ac6-46d2-a0a1-2ee35c5d230e-image.png

2、准备openwebtext数据集

# 切换路径
cd /hy-tmp
# 登录oss
oss login
# 从公共数据集路径下载处理好的openwebtext.tar.gz压缩包
oss cp -public oss://junyu-dataset/openwebtext.tar.gz /hy-tmp
# 在当前目录解压文件
tar -zxvf openwebtext.tar.gz

3、下载electra预训练代码并安装依赖环境

# 切换路径
cd /hy-tmp
# 代码已经上传到github
git clone https://github.com/JunnYu/hy_tutorial.git 
# 如果下载失败请使用镜像地址git clone https://hub.fastgit.org/JunnYu/hy_tutorial.git
# 切换路径
cd hy_tutorial
# 解压缩文件
unzip electra_small_pretrain_pytorch.zip
# 切换路径
cd electra_small_pretrain_pytorch
# 安装所需的python依赖包
pip install -r requirements.txt

4、注册wandb账号

(1)打开 https://wandb.ai/site

cd8bb661-c89f-4f38-ba77-b2ee24f1d45b-image.png

(2)点击头像下的Settings,寻找api key

f93ae7b3-2e92-4a44-9d9a-97debc32d7e1-image.png

下拉到api keys,如果没有就New key。复制该api key

7263ffb1-b81f-46f4-88c2-ff3113c8607d-image.png

(3)登录

# 登录wandb
wandb login
# 复制进去api key

de5ab6c5-f435-455d-a010-a2d6fcf6b6e4-image.png

5、后台运行预训练程序

# 切换路径,确保在这个路径
cd /hy-tmp/hy_tutorial/electra_small_pretrain_pytorch
# 后台运行程序
nohup python pretrain.py >> electra_small_pretrain.log 2>&1 &
# 查看训练日志
tail -f electra_small_pretrain.log

33725e09-83b7-4c8a-a176-1214ce313f94-image.png

6、终止预训练程序

# 查看进程
ps -aux
# 终止进程
kill 2983

bb68a8b4-3be7-4b8f-adc8-8a65e879ed74-image.png

7、等待程序运行完毕(差不多需要55h)

# 同步训练损失等数据到wandb
wandb sync wandb/latest-run

b72c6c30-cf1e-4240-a410-507f19d7a371-image.png
4e43aa44-e341-4fd6-99e2-6adb8e4c6270-image.png

8、复现结果(DEV DATASET)

ModelCoLASSTMRPCSTSQQPMNLIQNLIRTEAvg.
ELECTRA-Small-OWT(original)56.888.387.486.888.378.987.968.580.36
ELECTRA-RoFormer-Small-OWT (this)55.7690.4587.386.6489.6181.1788.8562.7180.31

9、 训练细节

  • 数据集 openwebtext
  • 训练batch_size 256
  • 学习率lr 5e-4
  • 最大句子长度max_seqlen 128
  • 训练total step 50W
  • GPU RTX3090
  • 训练时间总共耗费55h

10、ROFORMER_ELECTRA 的 WANDB日志

https://huggingface.co/junnyu/electra_small_discriminator
https://huggingface.co/junnyu/roformer_small_discriminator

Reference

https://github.com/richarddwang/electra_pytorch

以上是关于恒源云3090跑NLP预训练模型ELECTRA实录的主要内容,如果未能解决你的问题,请参考以下文章

恒源云(GPUSHARE)_超越预训练 NLP 的模型来喽

恒源云_字节跳动的mRASP预训练模型真香

恒源云_替代MLM的预训练任务,真的超简单吗?

恒源云(GPUSHARE)_替代MLM的预训练任务,真的超简单吗?

恒源云_基于梯度的NLP对抗攻击方法

恒源云_训练一个专门捣乱的模型