LLaMA-Factory 单卡3080*2 deepspeed zero3 微调Qwen2.5-7B-Instruct

十念  金牌会员 | 2025-3-10 07:11:11 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 992|帖子 992|积分 2976

环境安装

  1. git clone https://gitcode.com/gh_mirrors/ll/LLaMA-Factory.git
  2. cd LLaMA-Factory
  3. pip install -e ".[torch,metrics]"
  4. pip install deepspeed
复制代码
下载模型

  1. pip install modelscope
  2. modelscope download --model Qwen/Qwen2.5-7B-Instruct  --local_dir /root/autodl-tmp/models/Qwen/Qwen2.5-7B-Instruct
复制代码
微调

  1. llamafactory-cli train \
  2.     --stage sft \
  3.     --do_train True \
  4.     --model_name_or_path /root/autodl-tmp/models/Qwen/Qwen2.5-7B-Instruct \
  5.     --preprocessing_num_workers 16 \
  6.     --finetuning_type lora \
  7.     --template qwen \
  8.     --flash_attn auto \
  9.     --dataset_dir data \
  10.     --dataset self_SFT,alpaca_zh_demo \
  11.     --cutoff_len 1024 \
  12.     --learning_rate 0.0001 \
  13.     --num_train_epochs 5.0 \
  14.     --max_samples 1000 \
  15.     --per_device_train_batch_size 4 \
  16.     --gradient_accumulation_steps 8 \
  17.     --lr_scheduler_type cosine \
  18.     --max_grad_norm 1.0 \
  19.     --logging_steps 5 \
  20.     --save_steps 100 \
  21.     --warmup_steps 0 \
  22.     --packing False \
  23.     --report_to none \
  24.     --output_dir saves/Qwen2.5-7B-Instruct/lora/train_2024-12-20-09-43-52 \
  25.     --bf16 True \
  26.     --plot_loss True \
  27.     --ddp_timeout 180000000 \
  28.     --include_num_input_tokens_seen True \
  29.     --optim adamw_torch \
  30.     --lora_rank 8 \
  31.     --lora_alpha 16 \
  32.     --lora_dropout 0 \
  33.     --lora_target all \
  34.     --deepspeed cache/ds_z3_config.json
复制代码
笔者测试3080*2,1108条数据需要1个小时,bitch_size只能设为2,而且只能Zero3
但是也可以微调Qwen2.5-7B-Instruct了

Zero将模型参数分成三个部分:
状态作用Optimizer States优化器在进行梯度更新的时候需要用到的数据Gradient在反向转播过程中产生的数据,其决定参数的更新方向Model Parameter模型参数,在模型训练过程中通过数据“学习”的信息 Zero的级别如下:
总结

DeepSpeed方便了我们在机器有限的情况下来训练、微调大模型,同时它也有很多良好的性能来使用,后期可以继续挖掘。
现在主流的模型训练方式: GPU + PyTorch + Megatron-LM + DeepSpeed
优势
存储服从:DeepSpeed提供了一种Zero的新型办理方案来淘汰训练显存的占用,它与传统的数据并行差别,它将模型状态和梯度进行分区来节省大量的显存;
可扩展性:DeepSpeed支持高效的数据并行、模型并行、pipeline并行以及它们的组合,这里也称3D并行;
易用性: 在训练阶段,只需要修改几行代码就可以使pytorch模型使用DeepSpeed和Zero。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

十念

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表