本节摘要:跑 NanoGPT 的环境要求不高:Python + PyTorch 即可。本节讲清环境检查、PyTorch 安装(CPU/GPU 选择)、仓库克隆与依赖验证,并给出"先小模型验证环境"的稳妥策略。
阅读完本节,你应当能够:
"NanoGPT 要什么环境?"——答案比想象简单:Python 3.8+ 和 PyTorch,没有花哨依赖。最大的选择点是"CPU 还是 GPU":GPU 训练快但安装略复杂,CPU 能跑但慢。建议先 CPU 跑小模型验证环境,再上 GPU 训练。
很多初学者把环境搭建想得太难,其实核心就三件事:装对 Python、装对 PyTorch、把仓库代码拿下来。本节把每一步的命令都列出来,照着做即可。
NanoGPT 的依赖极简——这是它"轻"的又一体现。
| 维度 | CPU | GPU |
|---|---|---|
| 速度 | 慢 | 快(几十倍) |
| 安装 | 简单 | 需 CUDA 匹配 |
| 适用 | 小模型验证 | 正式训练 |
python --version # 需 3.8+ pip --version # 包管理 nvidia-smi # 看 GPU(可选)
如果 python 命令不存在或版本过旧,建议先装 Python 3.10 或 3.11。有 GPU 的机器务必先跑 nvidia-smi 记录 CUDA 版本(如 12.1),后面装 PyTorch 要用。
⚠️ 常见坑:PyTorch 与 CUDA 版本不匹配导致无法用 GPU。安装前先确认 CUDA 版本(nvidia-smi),再到 PyTorch 官网选对应安装命令。
# CPU 版(验证够用) pip install torch # GPU 版(按 CUDA 版本选命令,见 PyTorch 官网) pip install torch --index-url https://download.pytorch.org/whl/cu121
装完立刻验证:
python -c "import torch; print(torch.__version__)" python -c "import torch; print(torch.cuda.is_available())"
第二行输出 True 说明 GPU 可用;输出 False 时,若确认装了 GPU 版,多半是驱动或 CUDA 版本问题,先升级驱动再试。
git clone https://github.com/karpathy/nanoGPT.git cd nanoGPT pip install -r requirements.txt # 如有
requirements.txt 里的核心依赖只有 torch 和 numpy,其他是可选的数据集准备工具。装完把仓库目录记下来,后续所有命令都在这个目录里运行。
python -c "import torch; print(torch.__version__)" python -c "import torch; print(torch.cuda.is_available())" python model.py # 小模型实例化测试
第三条命令尤其关键:它会实例化默认配置的 GPT 并跑一次前向传播。能跑通,说明模型代码和环境都正常,可以进入数据准备了。
建议用一个干净的虚拟环境,避免污染系统 Python:
python -m venv nanogpt-env # Windows 激活 nanogpt-env\Scripts\activate # macOS / Linux 激活 source nanogpt-env/bin/activate pip install torch numpy
虚拟环境的收益在调试期特别明显:依赖版本出问题时,删掉重建比在系统环境里反复卸载重装快得多。
如果本机没有 GPU,有几个选择:
| 方案 | 适用场景 | 说明 |
|---|---|---|
| CPU 硬跑 | 小模型验证 | 莎士比亚级模型能跑,慢但可接受 |
| 云 GPU 租用 | 正式训练 | 按时计费,用完即释放 |
| 免费在线环境 | 入门体验 | 资源受限但零成本 |
无论哪种方案,本节的环境验证三连都适用——先把环境跑通,再谈训练。
💡 关键直觉:先用最小实验验证环境,再跑正式任务。一次性把环境跑通(import 成功、小模型实例化成功),后面就全是训练的事了。
| 现象 | 原因 | 解法 |
|---|---|---|
| import torch 失败 | 未安装 | 安装 PyTorch |
| CUDA 不可用 | 版本不匹配 | 重装匹配版本 |
| 显存 OOM | 模型太大 | 用更小模型/配置 |
| 下载慢 | 网络 | 换镜像源 |
| git clone 失败 | 网络或权限 | 检查网络,或下载压缩包解压 |
NanoGPT 的 requirements.txt 非常精简,核心就两个:
torch>=1.13.0 numpy>=1.21.0
其他依赖都是可选的:tiktoken(GPT-2 的 BPE 分词)、transformers(权重转换)、datasets(下载数据集)等,按需要安装。记住"核心两件套"能帮你快速判断环境问题——报错如果和 torch 或 numpy 无关,先看看是不是少了某个可选包。
环境装好后,用一条命令验证全链路:
cd data/shakespeare && python prepare.py && cd ../.. python train.py config/train_shakespeare.py --max_iters=50
如果 50 步能跑出损失下降的日志,说明环境、数据、模型、训练四条链路全部打通。从此以后,你遇到的任何问题都可以用"这条最小链路是否还通"来定位——它是最好的环境健康检查。
| 组件 | 建议版本 | 理由 |
|---|---|---|
| Python | 3.10 / 3.11 | 兼容性好、生态成熟 |
| PyTorch | 2.x 最新稳定版 | 内置 Flash Attention 支持 |
| CUDA | 12.x(随显卡驱动) | 与 PyTorch 2.x 匹配 |
| 操作系统 | 任意 | NanoGPT 跨平台 |
版本选择的原则是"用新不用旧":PyTorch 2.x 内置了 scaled_dot_product_attention,NanoGPT 能自动启用 Flash 加速,训练体验比 1.x 时代好很多。
环境通了,下一节喂数据——数据准备与预处理。