LLaMA-Factory icon indicating copy to clipboard operation
LLaMA-Factory copied to clipboard

sft断点续训时0卡上有显存不释放

Open wufenglailai opened this issue 10 months ago • 4 comments

Reminder

  • [x] I have read the above rules and searched the existing issues.

System Info

  • llamafactory version: 0.9.2.dev0
  • Platform: Linux-5.4.0-159-generic-x86_64-with-glibc2.31
  • Python version: 3.11.11
  • PyTorch version: 2.4.1+cu121 (GPU)
  • Transformers version: 4.46.1
  • Datasets version: 3.1.0
  • Accelerate version: 1.0.1
  • PEFT version: 0.12.0
  • TRL version: 0.9.6
  • GPU type: NVIDIA A100-SXM4-80GB
  • DeepSpeed version: 0.16.3
  • Bitsandbytes version: 0.45.1

Reproduction

Put your message here.

Others

基于qwen-72B的sft训练,单机8卡训练,中途中断后,使用断点续训。 发现0卡上会有额外的7个进程占用部分显存,可以发现这7个进程的id,分别是 1-7卡上的进程id。

Image

wufenglailai avatar Feb 10 '25 06:02 wufenglailai

上图中的0卡上的pid 945168 就是 1卡上的进程pid,是否1-7卡上的部分参数或数据 还存放在0卡上? 这种现象是否正常呢?

=========== 0卡的进程和 1-7卡的进程都是同一次 断点续训的子进程,应该是 1-7卡上的进程,加载数据(或参数)时,有部分加载到了 0卡上。 带来的问题: 1、会造成0卡显存的 额外占用; 2、不确定会不会对训练结果有影响。

wufenglailai avatar Feb 10 '25 06:02 wufenglailai

可以使用 kill 命令清除旧的 process

hiyouga avatar Feb 10 '25 07:02 hiyouga

@hiyouga 不能kill啊😭。0卡上的进程,和其他1-7的进程id是一样的。

这是同一次的训练进程。

应该是使用8卡断点续训的时候,1-7卡的进程,有部分数据(或参数)加载到了0卡上。

多卡从0开始sft没问题,断点续训就有这个毛病。

wufenglailai avatar Feb 10 '25 07:02 wufenglailai

有大佬解决了这个问题吗?是不是加载参数(或数据)时没指定卡啊。

wufenglailai avatar Feb 11 '25 03:02 wufenglailai