返回顶部
d

deepspeed-finetuneDeepSpeed微调

Fine-tune large language models using DeepSpeed on local or remote GPUs.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.5
安全检测
已通过
125
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

deepspeed-finetune

DeepSpeed 微调技能

本技能支持使用 DeepSpeed 配合多种优化策略进行高效的模型微调。

前置条件

  • - Python 3.8+
  • 配备 DeepSpeed 支持的后端(CUDA、ROCm、Intel XPU 等)的 GPU 或加速器
  • DeepSpeed:pip install deepspeed
  • Transformers、Datasets、PEFT(用于 LoRA 支持)
  • sshpass:sudo apt-get install sshpass(用于远程训练)

方案选择流程

切勿自动选择方案。 根据用户硬件和需求列出可行选项,让用户自行决定。

第一步:收集信息

与用户确认以下信息:

  • - 目标模型:模型名称和参数量(例如 Qwen2.5-7B)
  • 硬件环境

- GPU 显存 × 数量(例如单张 24GB GPU)
- CPU 核心数
- 内存大小
- 可用磁盘空间
- NVMe SSD 可用性(影响 ZeRO NVMe 卸载)
  • - 训练目标:全量微调还是参数高效微调?数据集大小?预期质量?
  • 预算/时间限制:可接受的训练时长?

如果用户仅提供 SSH 或远程机器地址,先连接并自动检测硬件(nvidia-smi、free -h、df -h、nproc)。

第二步:可行性评估

基于模型大小(bf16)估算显存需求:

参数量模型权重(bf16)+ Adam 优化器 + 梯度
0.5B~1 GB~5 GB
1.5B
~3 GB | ~15 GB |
| 3B | ~6 GB | ~30 GB |
| 7B | ~14 GB | ~70 GB |
| 14B | ~28 GB | ~140 GB |
| 32B | ~64 GB | ~320 GB |
| 72B | ~144 GB | ~720 GB |

详细说明:Adam 优化器存储 2 个 fp32 状态张量(动量+方差)= 8 字节/参数。梯度 = 2 字节/参数(bf16)。总计约 10 字节/参数(模型权重的 5 倍)。

激活内存:取决于序列长度和批次大小,而非仅模型参数。

  • - 公式:激活 ≈ 34 × 序列长度 × 隐藏层大小 × 批次大小 × 每元素字节数
  • 示例:7B 模型(隐藏层=4096),序列长度=2048,批次大小=4,bf16 → 每层约 1.5 GB;总计约 60 GB(可能占主导地位)
  • 梯度检查点可将此减少约 80%(通过重新计算而非存储),但会增加约 20% 的计算开销
  • 经验法则:如果序列长度 × 批次大小 > 8192,激活内存可能超过模型权重

LoRA/QLoRA:显存取决于秩、目标模块和层维度——并非与总模型参数成正比。参见 references/lora_guide.md 了解 LoRA 特定的内存估算。

第二步半:激活检查点

如果显存紧张,激活检查点是最有效的调节手段——可将激活内存减少约 80%。

工作原理:不存储所有中间激活用于反向传播,仅在选定层保存检查点。剩余激活在反向传播过程中重新计算。用计算换内存。

两种启用方式:

  1. 1. HF Trainer 标志(最简单,开箱即用):
bash python scripts/dstrain.py --gradientcheckpointing ...
  1. 2. DeepSpeed 配置(精细控制):
json { activation_checkpointing: { partition_activations: true, cpu_checkpointing: true, contiguousmemoryoptimization: true, number_checkpoints: 4 } }
选项效果使用时机
partitionactivations在模型并行 GPU 间分片检查点多 GPU 且使用模型并行
cpucheckpointing
将检查点存储在 CPU 内存而非 GPU | GPU 内存非常紧张 | | contiguousmemoryoptimization | 减少内存碎片 | 大模型、多检查点 | | number_checkpoints | 控制检查点频率(更少 = 更少显存,更多计算) | 根据显存预算调整 |

第三步:列出选项

基于显存评估,列出所有可行方法。示例:

根据您的硬件(单张 24GB GPU,64GB 内存,500GB 磁盘),
Qwen2.5-7B 有以下训练选项:

选项 A:LoRA 微调(推荐)
- 所需显存:~22 GB
- 速度:快
- 质量:适用于指令对齐、风格适配
- 可训练参数:~20M(总量的 0.4%)

选项 B:QLoRA 微调(节省显存)
- 所需显存:~12 GB
- 速度:中等(量化/反量化开销)
- 质量:略低于 LoRA,但差距很小

选项 C:全量微调(不可行)
- 所需显存:~56 GB(超过 24GB)
- 需要 ZeRO-2 + CPU 卸载,或更大 GPU

您倾向于哪个选项?

第四步:硬件不足?提供建议

如果当前硬件无法执行任何方案,使用通用硬件指标(无品牌名称)推荐规格:

您想全量微调一个 7B 模型,但当前硬件(单张 24GB GPU)不足。
推荐的硬件规格:

最低配置:
- GPU:单张 80GB 显存
- CPU:16 核以上
- 内存:128 GB 以上
- 磁盘:200 GB 以上可用空间

推荐配置:
- GPU:2 张 80GB 显存(ZeRO-2 可将训练速度翻倍)
- CPU:32 核以上
- 内存:256 GB 以上
- 磁盘:500 GB 以上可用空间

或者,使用 LoRA——24GB 显存对 7B 模型来说足够。

关键原则

  • - 切勿自动选择并开始训练——始终列出选项并等待用户确认
  • 推荐但不决定——可以说我推荐选项 A,因为……但让用户选择
  • 使用通用硬件指标——显存以 GB 计、GPU 数量、CPU 核心数、内存以 GB 计、磁盘以 GB 计。无品牌名称。
  • 保留显存余量——建议至少 20% 的缓冲以避免 OOM
  • 如果用户选择了不可行的选项,明确警告他们,而不是静默切换

核心功能

1. 训练配置

生成 DeepSpeed ZeRO 配置:

python
from scripts.generatedsconfig import generatezeroconfig

ZeRO 阶段 2 带优化器卸载

config = generatezeroconfig( zero_stage=2, offload_optimizer=True, offload_device=nvme, nvmepath=/localnvme )

2. 训练启动

使用训练启动脚本:

bash
python scripts/ds_train.py \
--modelnameor_path meta-llama/Llama-2-7b-hf \
--datasetpath data/mydataset \
--output_dir ./outputs \
--deepspeed assets/dsconfigzero2.json \
--numtrainepochs 3 \
--perdevicetrainbatchsize 4 \
--learning_rate 2e-5 \
--lora_r 16 \
--lora_alpha 32

3. LoRA/QLoRA 集成

用于参数高效微调:

python

LoRA 配置基于参数自动生成


peft_config = {
peft_type: LORA,
r: 16,
lora_alpha: 32,
targetmodules: [qproj, vproj, kproj, o_proj],
lora_dropout: 0.05,
bias: none,
tasktype: CAUSALLM
}

4. 多 GPU 训练

使用 deepspeed 启动器进行多 GPU 训练(推荐优于 torchrun):

bash

单节点多 GPU


deepspeed --numgpus=4 scripts/dstrain.py \
--modelnameor_path meta-llama/Llama-2-7b-hf \
--deepspeed assets/dsconfigzero3.json \
...

多节点

deepspeed --hostfile hosts.txt scripts/ds_train.py \

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 deepspeed-finetune-1776019962 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 deepspeed-finetune-1776019962 技能

通过命令行安装

skillhub install deepspeed-finetune-1776019962

下载

⬇ 下载 deepspeed-finetune v1.0.5(免费)

文件大小: 40.42 KB | 发布时间: 2026-4-13 10:00

v1.0.5 最新 2026-4-13 10:00
Replace nohup with tmux to prevent SSH disconnect from killing training processes

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部