3 步完成 DeepSpeed Windows 安装:pip 预编译、ds_report 验证与报错排查
【免费下载链接】DeepSpeedDeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSpeed
DeepSpeed 是一个深度学习优化库,核心能力是分布式训练与推理:ZeRO(把模型优化器状态、梯度切分到多卡上以省显存)、3D 并行和 MoE(混合专家)都出自它。过去这些功能只能在 Linux 上用,Windows 用户只能绕道 WSL。现在 DeepSpeed 0.14.5 起原生支持 Windows,且关键差异是:Windows 包的算子已预编译,安装全程不需要 CUDA SDK,也不需要 C++ 编译器。按下面顺序操作,三步内就能跑通训练和推理。
动手前 30 秒环境自查:DeepSpeed Windows 安装硬性要求
先确认以下条件,不满足先补环境再往下走:
| 项目 | 要求 |
|---|---|
| Python | 3.x |
| PyTorch | 带 CUDA 支持,且必须在安装 DeepSpeed之前装好 |
| Windows | 官方验证环境为 Windows 11 Version 23H2(单 GPU 机型) |
| GPU | NVIDIA 单卡 |
| DeepSpeed | 0.14.5 及以上版本才有 Windows 支持 |
检查 PyTorch 是否带 CUDA:
python -c "import torch; print(torch.__version__, torch.version.cuda)"看到形如2.3.0+cu121 12.1的输出说明 CUDA 可用;None说明装的是纯 CPU 版 PyTorch,先重装 PyTorch 再安装 DeepSpeed。
一条命令装好 DeepSpeed:pip 预编译,免编译器
打开命令提示符(或 PowerShell),执行:
pip install deepspeedWindows 下 pip 下载的是预编译 wheel(如deepspeed-0.14.5-cp311-cp311-win_amd64.whl),算子全部包含在包里,所以这一步不会触发编译,也没有 CUDA SDK 或 C++ 编译器的依赖。
看到Successfully installed deepspeed-x.y.z即下载完成,接下一步验证。
跑一次 ds_report 验证 DeepSpeed Windows 安装是否成功
装完立刻执行:
ds_report输出包含两部分:上半部是 C++/CUDA 算子兼容性报告表,下半部是通用环境信息。看到环境信息区列出显卡型号(示例为 NVIDIA RTX A2000)和torch cuda version,即代表 DeepSpeed Windows 安装成功。
表中的[WARNING]和[NO]不必紧张:它们只表示个别可选算子当前未启用,[YES]表示该算子可用,[OKAY]表示按需在运行时编译,均不影响训练和推理。
进阶:什么时候才需要从源码编译 build_win.bat
常规使用不需要源码构建。只有以下两种情况才走这条路:需要尚未发布的最新代码,或要自定义/裁剪算子集合。
先克隆仓库,再运行仓库根目录的 build_win.bat:
git clone https://gitcode.com/GitHub_Trending/de/DeepSpeed cd DeepSpeed build_win.bat该脚本会关闭一批 Windows 下暂不支持的算子(AIO、CUTLASS、Evoformer、稀疏注意力、DeepCompile 等)的编译,然后在dist目录生成 wheel,用pip install dist\xxx.whl安装即可。更细节的编译问题对照 高级安装文档 排查。
DeepSpeed Windows 安装卡住了?按阶段对照报错排查
| 阶段 | 报错症状 | 原因 | 处理动作 |
|---|---|---|---|
| 构建阶段 | cl.exe not found、ninja报错 | 源码构建缺 C++ 工具链 | 常规 pip 安装不编译、不会遇到;确需源码构建时安装 Visual Studio 2019+ 的"C++ 桌面开发"工作负载,或参考 advanced-install.md 提供的 conda 环境 |
| 版本匹配阶段 | torch.version.cuda输出None,或 CUDA 初始化失败 | 装的是 CPU 版 PyTorch,或显卡驱动过旧 | 先重装带 CUDA 的 PyTorch;再更新 NVIDIA 驱动 |
| 版本匹配阶段 | RuntimeError: CUDA error: no kernel image is available for execution on the device | 算子未针对当前显卡架构编译 | 构建时设置TORCH_CUDA_ARCH_LIST(如"8.6")再重新构建;查法详见 advanced-install.md |
| ⚠️ 版本匹配阶段 | DeepSpeed 的 CUDA 版本与 PyTorch 的torch.version.cuda不一致 | 版本错配 | 让 DeepSpeed 的 CUDA 版本对齐 PyTorch 报告的 CUDA 版本后重装 |
| 运行阶段 | 进程崩溃、CUDA out of memory | 显存不足 | 减小 batch size,或启用 CPU offload 把权重换出显存 |
| 运行阶段 | 训练中途卡死 | 后台程序占用显存 | 任务管理器确认无残留训练/推理进程占卡 |
训练实战:一条命令跑通 CIFAR-10 图像分类
示例脚本来自 DeepSpeedExamples 仓库(本仓库 examples/ 为示例目录索引),获取脚本后在脚本所在目录执行:
deepspeed cifar10_deepspeed.py --deepspeed--deepspeed是唯一必需参数。训练结束时看到Accuracy of the network on the 10000 test images和逐类别准确率,以及exits successfully,说明训练链路完整跑通。
推理实战:CPU Offload 跑 Llama-2-7B 生成
这条命令用 ZeRO-Inference 做 token 生成:它把模型权重换出到 CPU 内存(CPU offload),让 4GB 显存的机器也能推理 7B 模型。脚本同样来自 DeepSpeedExamples 仓库(zero-inference 目录):
deepspeed run_model.py --model meta-llama/Llama-2-7b-hf --batch-size 64 --prompt-len 8 --gen-len 32 --cpu-offload参数含义:--batch-size批量条数,--prompt-len提示词长度,--gen-len每条生成 32 个 token,--cpu-offload开启权重重量换出到内存。
看到生成的文本块(Paris is the capital city of …)以及末尾的 model size、decode throughput 等统计,说明推理正常。
现在能做什么、还不能做什么
- 可用(单 GPU):预训练、LoRA 微调(配合 HuggingFace Transformers 集成)、CPU offload 推理,使用方式与 Linux 一致。
- 在路上:多 GPU 运行、权重量化、性能优化。
- 反馈与参与:问题直接提 Issues,贡献流程见 CONTRIBUTING.md。
【免费下载链接】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),仅供参考