恒源云(GPUSHARE)_3090跑NLP预训练模型ELECTRA实录

536 阅读2分钟

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

原文地址 | 【2 数据下载+模型训练】哪个男孩不想拥有自己的预训练模型(留下贫穷的眼泪)

作者 | junyu

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

1、环境选择

  • pytorch 1.8.1
  • python 3.8
  • cuda 11.1

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)打开 wandb.ai/site

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

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

(3)登录

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

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

6、终止预训练程序

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

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

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

8、复现结果(DEV DATASET)

9、训练细节

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

10、ROFORMER_ELECTRA 的 WANDB日志

huggingface.co/junnyu/elec…
huggingface.co/junnyu/rofo…