当前位置: 首页 > news >正文

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

环境安装

git clone https://gitcode.com/gh_mirrors/ll/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]"pip install deepspeed

下载模型

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。


http://www.mrgr.cn/news/81069.html

相关文章:

  • 加入SFTP 用户------(小白篇 2)
  • [AI]30分钟用cursor开发一个chrome插件
  • 【MySQL】深入了解索引背后的内部结构
  • Qt5HttpServer : Qt官方的HTTP服务器
  • 5.interview-self-introduction
  • Spring Boot中Bean的 构造器注入、字段注入和方法注入
  • 数据结构与算法再探(三)树
  • dockerfile文档编写(2):docker pull、apt install和pip镜像加速
  • EdgeX Core Service 核心服务之 Core Command 命令
  • xiaomiR4c openwrt
  • 2.6 网络面试问题
  • 音视频入门基础:AAC专题(13)——FFmpeg源码中,获取ADTS格式的AAC裸流音频信息的实现
  • strongswan测试证书生成
  • css
  • CDN信息收集(小迪网络安全笔记~
  • FLV视频封装格式详解
  • dockerfile文档编写(3):构建失败后清理缓存(删除容器和镜像相关命令)
  • Day13 用Excel表体验梯度下降法
  • 某狐畅游24校招-C++开发岗笔试(单选题)
  • 一起学Git【番外篇:如何在Git中新建文件】
  • 【全栈开发】----用pymysql库连接MySQL,批量存入
  • Vue3:uv-upload图片上传
  • 数智化医院分布式计算框架融合人工智能方向初步实现与能力转换浅析
  • SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql
  • UITableView实现通讯录效果
  • javaEE-多线程编程-3