Chapter 02
安装:Docker 是首选
NeMo 跟 Apex、TransformerEngine、Megatron-Core、PyTorch 强绑定,原生 pip 装常常装不对。本章给三条路径,按"对自己环境的掌控力"排序。
2.1三条安装路径
| 方式 | 难度 | 推荐场景 |
|---|---|---|
| NGC 官方 Docker | ★ | ★ 99% 用户的选择 |
| conda + pip | ★★★ | 不能用 Docker 的环境 |
| 源码 + pip -e | ★★★★★ | 改源码 / 提 PR |
2.2方式 A:NGC Docker(首选)
# 拉镜像(约 30GB)
docker pull nvcr.io/nvidia/nemo:25.05
# 跑容器(挂载本地代码 + 数据)
docker run --gpus all -it --rm \
--shm-size=16g --ulimit memlock=-1 --ulimit stack=67108864 \
-v $PWD:/workspace \
nvcr.io/nvidia/nemo:25.05 bash
# 验证
python -c "import nemo; print(nemo.__version__)"
NGC 镜像把 CUDA / PyTorch / Apex / TransformerEngine / Megatron-Core / FlashAttention 都预装好了,开箱即用。版本号 25.05 = 2025 年 5 月发布的稳定版。
2.3方式 B:conda + pip
conda create -n nemo python=3.10
conda activate nemo
pip install Cython packaging
pip install nemo_toolkit['all']
# 装 Apex(CUDA 扩展)
git clone https://github.com/NVIDIA/apex
cd apex && pip install -v --disable-pip-version-check --no-cache-dir \
--no-build-isolation \
--config-settings "--build-option=--cpp_ext" \
--config-settings "--build-option=--cuda_ext" ./
# 装 TransformerEngine
pip install --no-build-isolation transformer-engine[pytorch]
# 装 Megatron-Core(NeMo 依赖)
pip install megatron-core
这一路坑非常多:Apex 编译动辄 30 分钟、TransformerEngine 要匹配 CUDA 版本、Megatron-Core 跟 NeMo 的 API 兼容窗口很窄。没特别理由别走这条路。
2.4方式 C:源码安装
git clone https://github.com/NVIDIA-NeMo/NeMo.git
cd NeMo
git checkout 2ea3e0f # 本书基线
pip install -e ".[all]"
建议在 NGC Docker 内做这件事,能省掉 80% 装机时间。
2.5版本矩阵
| NeMo 版本 | NGC 镜像 | PyTorch | Megatron-Core | TE |
|---|---|---|---|---|
| 2.0 | 24.07 | 2.4 | 0.8 | 1.10 |
| 2.1 | 24.10 | 2.5 | 0.10 | 1.11 |
| 2.2 | 25.01 | 2.5 | 0.11 | 1.13 |
| 2.4(本书) | 25.05 | 2.6 | 0.13 | 2.0 |
查最新对照:https://docs.nvidia.com/nemo-framework/user-guide/latest/softwarecomponentversions.html。
2.6验证
python -c "
import nemo
from nemo.collections.llm.gpt.model import GPTConfig, GPTModel
print('NeMo:', nemo.__version__)
print('ok')
"
2.7常见装机问题
| 现象 | 处理 |
|---|---|
| Apex 编译失败 (gcc / nvcc 版本) | 用 NGC 镜像 |
| TransformerEngine import 报错 | 装的 TE 版本和 NeMo 不匹配;看 NeMo release notes |
| Docker 启动 GPU 不可见 | 装 NVIDIA Container Toolkit;nvidia-smi 在容器内可见才算成功 |
| NeMo 提示 "no module megatron" | 装 megatron-core 包:pip install megatron-core |
| shm_size 不够,DataLoader OOM | Docker run 加 --shm-size=16g |
2.8这章你需要带走的
- NeMo 装机 用 NGC Docker,别折腾本地 pip;
- NGC 镜像号 = 年.月(如 25.05),跟着 NeMo 版本走;
- 四大底层依赖:CUDA / Apex / TransformerEngine / Megatron-Core;
- Docker 启动加
--shm-size=16g不然 DataLoader 会爆。