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

embedded/2024/12/22 19:42:52/

环境安装

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。


http://www.ppmy.cn/embedded/147897.html

相关文章

Day55 | 灵神 | 相向双指针:盛最多水的容器接雨水

Day55 | 灵神 | 相向双指针:盛最多水的容器&&接雨水 盛最多水的容器 接雨水_哔哩哔哩_bilibili 文章目录 Day55 | 灵神 | 相向双指针:盛最多水的容器&&接雨水11.盛最多水的容器42.接雨水优化:双指针做法 11.盛最多水的容器…

SQL进阶技巧:如何求解直接线上最多的点数?

目录 0 问题描述 1 数据准备 2 问题分析 3 求解优化 步骤一:构建 “斜率键” 并统计点的数量(核心步骤) 步骤二:找出最多的点数(最终结果) 0 问题描述 “平面上最多的点数” 问题通常是指在一个二维平面中给定了若干个点的坐标(例如以 (x,y) 的形式表示),要求找…

8K+Red+Raw+ProRes422分享5个影视级视频素材网站

Hello,大家好,我是后期圈! 在视频创作中,电影级的视频素材能够为作品增添专业质感,让画面更具冲击力。无论是广告、电影短片,还是品牌宣传,高质量的视频素材都是不可或缺的资源。然而&#xff…

石子移动问题 | 回溯法

问题描述 小S正在玩一个关于石子的游戏,给定了一些石子,它们位于一维数轴的不同位置,位置用数组 stones 表示。如果某个石子处于最小或最大的一个位置,我们称其为端点石子。 在每个回合,小S可以将一颗端点石子移动到…

如何在铁威马NAS上安装内网穿透,实现对铁威马NAS的远程访问管理

前言 使用ZeroNews内网穿透,你可以随时随地访问你的TNAS 设备,在无公网IP情况下,通过远程访问,你可以在家或在办公室以外的地方轻松访问铁威马NAS以及NAS上的应用。 第 1 步:生成 ZeroNews 的认证 Token​ 登录 Zero…

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务 论文大纲理解1. 确认目标2. 分析过程(目标-手段分析)核心问题拆解 3. 实…

Spring Cloud服务发现与调用

在Spring Cloud中,服务发现与调用是通过Eureka和RestTemplate或Feign等工具实现的。以下是如何设置和使用这些工具进行服务发现与调用的步骤: 1. 服务注册与发现 设置Eureka Server 创建一个Spring Boot项目,添加Eureka Server依赖&#x…

ElasticSearch 自动补全

1、前言 当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,根据用户输入的字母,提示完整词条的功能,就是自动补全。 2、安装拼音分词器 Github地址:https://github.com/infinilabs/analysis-pinyin 插件…