当模型参数越来越大的情况下,如果我们的GPU内存比较小,那么就没办法直接进行全参数微调,此时我们可以借助deepspeed来进行微调。

1、deepspeed的配置文件:deepspeed.json

{
  "train_batch_size": 4,
  "train_micro_batch_size_per_gpu": 1,
  "zero_optimization": {
    "stage":1
  }
}

这里我们启动的ZeRO-1:优化器状态跨 GPU 分区

2、在TrainingArguments里面增加配置参数,来加载deepspeed的配置文件:

training_args = TrainingArguments(output_dir=output_dir, 
evaluation_strategy="steps", num_train_epochs=100,learning_rate=5e-6,
save_strategy="steps", greater_is_better=True, metric_for_best_model="precision",
per_device_train_batch_size=1,per_device_eval_batch_size=1,
load_best_model_at_end=True,local_rank=0,save_total_limit=10,

deepspeed="deepspeed.json"
)

3、利用deepspeed的命令来启动训练:

nohup deepspeed train.py > logd.txt 2>&1 &

当前我们利用44G的GPU全参微调了Qwen2.5-3B的模型

Logo

一站式 AI 云服务平台

更多推荐