事情本身不复杂,线索都在日志里。按文档执行 deepspeed train.py,终端提示 deepspeed 不是内部或外部命令,可 pip list 里确实装了 deepspeed。

第一反应是「安装时跳过了命令行入口,只装了库」,验证下来不成立。

排查方向其实有限,先把可能性排一排。Scripts 目录没有加入 PATH。还有一种是装在另一个虚拟环境里,当前终端不是同一套。

另外,在容器里装到了用户目录,执行用户不同。

第一件事是确认安装位置与可执行文件

python -c "import deepspeed,os;print(os.path.dirname(deepspeed.__file__))"

随后改用模块方式启动,绕开 PATH 问题

python -m deepspeed.launcher.launch --num_gpus 2 train.py

或直接调用虚拟环境里的可执行文件

.\.venv\Scripts\deepspeed.exe train.py

末了确认进程确实用到了多卡

nvidia-smi --query-gpu=index,memory.used --format=csv

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

改完先别撤,确认这几项。训练脚本能正常启动,日志里出现多个 rank 的初始化信息,显卡显存都有占用。

命令行入口和库可以分开安装,看到 pip list 里有不代表命令能用,先确认可执行文件是否存在再判断环境。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189