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

环境安装

git clone https://gitcode.com/gh_mirrors/ll/LLaMA-Factory.git

下载模型

pip install modelscope
modelscope download --model Qwen/Qwen2.5-7B-Instruct  --local_dir /root/autodl-tmp/models/Qwen/Qwen2.5-7B-Instruct

微调

llamafactory-cli train \
    --stage sft \
    --do_train True \
    --model_name_or_path /root/autodl-tmp/models/Qwen/Qwen2.5-7B-Instruct \
    --preprocessing_num_workers 16 \
    --finetuning_type lora \
    --template qwen \
    --flash_attn auto \
    --dataset_dir data \
    --dataset self_SFT,alpaca_zh_demo \
    --cutoff_len 1024 \
    --learning_rate 0.0001 \
    --num_train_epochs 5.0 \
    --max_samples 1000 \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 8 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 100 \
    --warmup_steps 0 \
    --packing False \
    --report_to none \
    --output_dir saves/Qwen2.5-7B-Instruct/lora/train_2024-12-20-09-43-52 \
    --bf16 True \
    --plot_loss True \
    --ddp_timeout 180000000 \
    --include_num_input_tokens_seen True \
    --optim adamw_torch \
    --lora_rank 8 \
    --lora_alpha 16 \
    --lora_dropout 0 \
    --lora_target all \
    --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。

相关推荐
木亦汐丫11 天前
【大模型系列篇】LLaMA-Factory大模型微调实践 - 从零开始
lora·大模型·微调·chatglm·llama·llama-factory
阿正的梦工坊18 天前
课程学习 (Curriculum Learning) 介绍及其在 DeepSpeed 框架中的应用:中英双语
人工智能·deepspeed
若石之上1 个月前
DeepSpeed:PyTorch优化库,使模型分布式训练能高效使用内存和更快速
pytorch·内存·gpu·deepspeed·速度·zero
SpikeKing1 个月前
LLM - 使用 LLaMA-Factory 微调大模型 Qwen2-VL SFT(LoRA) 图像数据集 教程 (2)
人工智能·lora·llm·sft·多模态大模型·llama-factory·qwen2-vl
野指针小李1 个月前
LLaMA-Factory学习笔记(1)——采用LORA对大模型进行SFT并采用vLLM部署的全流程
lora·sft·vllm·llama-factory
人工智能培训咨询叶梓2 个月前
使用LLaMA-Factory快速训练自己的专用大模型
人工智能·语言模型·性能优化·llama·调优·大模型微调·llama-factory
An_ich2 个月前
windows安装deepspeed setup.py 207行找不到文件
python·deepspeed
西西弗Sisyphus3 个月前
LLaMA-Factory 使用 alpaca 格式的数据集
alpaca·llama-factory
西西弗Sisyphus3 个月前
LLaMA-Factory 使用 sharegpt 格式的数据集
llama-factory·sharegpt