Windows 实测 DeepSpeed 单卡训练与推理
Windows 实测 DeepSpeed 单卡训练与推理【免费下载链接】DeepSpeedDeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSpeedDeepSpeed 是一个深度学习优化库核心能力是 ZeRO 显存优化、3D 并行与 HuggingFace 集成自 0.14.5 版本起在 Windows 上原生可用。本文在 4GB 显存 RTX A2000 Windows 11 23H2 的笔记本上复现了完整流程pip 安装、ds_report验证再依次跑通单 GPU 的 CIFAR-10 训练、OPT-125M LoRA 微调和 Llama-2-7B ZeRO-Inference 推理。三个场景实测峰值显存均低于 3GB7B 模型的 32 token 生成在 4GB 单卡上可完整跑完总耗时 157.86 秒。按本文操作读者可以得到一个ds_report全绿、训练/微调/推理三类任务都能正常出数的 Windows 环境。Windows 环境体检清单以下检查项全部在 PowerShell 中完成官方测试环境为 Surface Laptop Studio 2Windows 11 23H2build 22631.3880操作系统 → Windows 11 23H2 及以上Win10 官方未验证不推荐用于复现本文 →winverPython → 3.8–3.11setup.pyclassifiers 覆盖到 3.12官方实测用 3.11→python --versionPyTorch → 2.3.0wheel 的 CUDA 版本必须与本机匹配官方测试用 cu121→python -c import torch; print(torch.version.cuda)HuggingFace Transformers → 4.41.2微调/推理示例依赖的版本→pip show transformersGPU → NVIDIA 单卡4GB 显存即可跑完全部官方示例实测卡为 RTX A2000 4GB→nvidia-smiCUDA Toolkit / C 编译器 → pip 路径不需要Windows wheel 已内置预编译算子源码编译需要build_win.bat会从CUDA_PATH读取工具链并调用cl→nvcc -VWindows 专用的构建入口是仓库根目录的 build_win.bat 和 MANIFEST_win.in后者把.cpp/.cu/.h算子源码从 Windows 发行包中排除所以 pip 路径只需下载预编译 wheel不触发本地编译。按使用场景选安装路径新手 / 只做功能验证pip 预编译 wheelpip install deepspeed优势是不需要 CUDA SDK 和 C 编译器Windows wheel 已把支持的算子全部预编译打包局限是无法自定义编译选项、不能改算子源码。⚠️ 若找不到可用 wheel先确认 Python 在 3.8–3.11 区间——Windows wheel 按 Python 小版本分别发布官方安装日志显示为deepspeed-0.14.5-cp311-cp311-win_amd64.whl26.8 MB。进阶 / 需要改源码源码编译git clone https://gitcode.com/GitHub_Trending/de/DeepSpeed cd DeepSpeed build_win.batbuild_win.bat会把 8 个 Windows 暂不支持的算子AIO、CUTLASS、EVOFORMER_ATTN、FP_QUANTIZER、GDS、RAGGED、SPARSE_ATTN、DEEP_COMPILE统一置为DS_BUILD_*0再用python -m build --wheel --no-isolation构建 wheel。优势是可以验证和修改源码局限是必须装 Visual Studio C Build Tools提供cl.exe并配置好CUDA_PATH。验证两条路径同一命令ds_report确认输出中fused_adam、cpu_adam、transformer等算子显示[YES]/[OKAY]且torch cuda version一行与本机环境一致。出现L1181: cannot open input file aio.lib之类的 LNK 告警属于预期行为——aio 异步 IO 算子未包含在 Windows 预编译包中不影响单 GPU 训练与推理。单卡能力验证训练、微调、推理以下脚本来自官方 DeepSpeedExamples 示例仓库本文按仓库名检索获取克隆后进入对应目录再执行命令。场景 1CIFAR-10 单 GPU 训练cd training/cifar deepspeed cifar10_deepspeed.py --deepspeed实测数据训练正常结束后在 10000 张测试图上输出准确率 59%进程正常退出。结论数据加载、融合优化器、混合精度训练的完整流水線在 Windows 单卡上跑通59% 是示例脚本快速验证跑出的结果追求精度需自行增加 epoch 和调整学习率验证目标只要求流程闭环。场景 2OPT-125M LoRA 监督微调deepspeed main.py --model_name_or_path facebook/opt-125m \ --gradient_accumulation_steps 8 --lora_dim 128 --only_optimize_lora \ --zero_stage 2 --dtype bf16 --offload --output_dir output实测数据loss 从 5.55step 0降到约 1.2step 62Model Parameters 0.146BBatch 16 × Seq 512。该场景一次验证了三个特性HuggingFace Transformers 集成、LoRA 低秩适配、ZeRO-2 CPU offload。结论4GB 显存可以跑 125M 规模的 SFTloss 正常收敛offload 生效。场景 3Llama-2-7B ZeRO-Inference 推理deepspeed run_model.py --model meta-llama/Llama-2-7b-hf \ --batch-size 64 --prompt-len 8 --gen-len 32 --cpu-offload实测数据模型权重 12.247GB 整体卸载到 CPU 内存峰值显存 2.747GBprefill 4.782 秒32 token 生成总耗时 157.857 秒decode 吞吐 12.961 token/s输出内容连贯。结论4GB 单卡能完成 7B 模型的推理功能验证速度受 CPU offload 带宽限制该数据只作功能参考不作为生产吞吐基准。高频报错速查cl.exenot found / Microsoft C/C compiler not found→ 源码编译缺少 VS C 工具链。安装 Visual Studio Build Tools 并勾选 Desktop development with C 工作负载不改源码则直接退回 pip 路径。ds_report报L1181: cannot open input file aio.lib→ Windows 预编译 wheel 未含 aio 异步 IO 算子属预期告警无需修复依赖 NVMe 异步 IO 的用法目前只在 Linux 上完整可用。CUDA error: no kernel image is available→ PyTorch wheel 的 CUDA 版本与 GPU/驱动不匹配。重装匹配 cu121/cu124 的 PyTorch再用python -c import torch; print(torch.version.cuda)复核。后续演进方向按官方博客Windows 版后续规划为三条多 GPU 分布式训练支持、权重量化INT4/INT8加速、性能优化与实测。版本演进可通过 release/ 目录含版本号校验与发布脚本跟进最新讨论入口是项目官方 GitHub Issues检索 Windows当前版本号记录在 version.txt为 0.19.6。资源入口docs/_tutorials/getting-started.md通用上手教程以 Linux 为主线blogs/windows/08-2024/chinese/README.md官方 Windows 支持博客中文版含全部实测截图examples/仓库内示例代码【免费下载链接】DeepSpeedDeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSpeed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考