PaddlePaddle / PaddleNLP

👑 Easy-to-use and powerful NLP and LLM library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Document Intelligence, 💌 Sentiment Analysis etc.
https://paddlenlp.readthedocs.io
Apache License 2.0
12.17k stars 2.94k forks source link

[Question]: 微调uie-base大约需要多少显存,程序启动方式应该是怎样的? #3384

Closed ghost closed 2 years ago

ghost commented 2 years ago

请提出你的问题

你们好,在 Github Issue 里搜索了好多页面,没有我想要的答案。

Q1:“微调一个 uie-base 模型大约需要多少显存?”

我使用10块Tesla K80 12GB居然无法微调一个uie-base模型!是我搞错了吗?!

Q2:“多卡微调 uie-base 模型的程序启动方式应该是怎样的?”

我使用如下命令来启动微调程序,以及我的超参数设置如下:

python3 -u -m paddle.distributed.launch --gpus "0,1,2,3,4,5,6,7,8,9" \
  finetune.py \
  --learning_rate 1e-5 \
  --batch_size 16 \
  --max_seq_len 512 \
  --num_epochs 50 \
  --model uie-base \
  --seed 1000 \
  --logging_steps 10 \
  --valid_steps 100 \
  --device gpu \
  --save_dir /mnt/ckpt/ \
  --train_path /mnt/CMeEE-PaddleNLP-0.8-0.2-0.2/train.txt \
  --dev_path /mnt/CMeEE-PaddleNLP-0.8-0.2-0.2/dev.txt

但是Paddle框架提示我内存不足!麻烦你们看一下,我应该如何操作才能顺利进行uie-base模型的微调,谢谢!

最后,感谢你们的耐心解答,谢谢!

linjieccc commented 2 years ago

@TankAbraham 你好,可以先用单卡看下显存占用情况再启动分布式训练,建议把batch_size从小往大调整,另外可以根据你的训练文本长度适当调整max_seq_len

ghost commented 2 years ago

感谢Baidu贡献出PaddleNLP和UIE模型!

自己提的问题自己来答一下吧,成功微调的案例~

显卡:NVIDIA GeForce RTX 3090(24GB) * 1

启动命令:

python3 finetune.py   \
  --learning_rate 1e-5 \
  --batch_size 32 \
  --max_seq_len 256 \
  --num_epochs 50 \
  --model uie-base \
  --seed 1000 \
  --logging_steps 10 \
  --valid_steps 100 \
  --device gpu:1 \
  --train_path ~/dataset/CMeEE/doccano/train.txt \
  --dev_path ~/dataset/CMeEE/doccano/dev.txt \
  --save_dir ~/ckpt

显存占用:10761MB / 24265 MB