Appearance
环境搭建
本教程的所有代码都基于 Python + PyTorch + HuggingFace 生态。这一页带你从零搭好一套能跑通「原理解析」到「训练 NanoGPT」的完整环境。
技术栈总览
┌─────────────────────────────────────────────┐
│ 你的学习/实战代码 (Jupyter / .py) │
├─────────────────────────────────────────────┤
│ HuggingFace 生态 │
│ • transformers 现成模型与训练 API │
│ • datasets 数据集加载与预处理 │
│ • tokenizers 分词器 │
│ • accelerate 多卡/混合精度训练 │
├─────────────────────────────────────────────┤
│ PyTorch (torch) 张量计算与自动求导 │
├─────────────────────────────────────────────┤
│ 硬件: CPU / NVIDIA GPU (CUDA) / Apple Silicon│
└─────────────────────────────────────────────┘- PyTorch:所有手写模型(如 NanoGPT)都用它实现,是当前研究与大模型训练的主流框架。
- transformers:几百行代码就能调用/微调 BERT、GPT、LLaMA 等现成模型。
- NanoGPT 实战只需要 PyTorch,其余库用于「调用与微调」章节。
第 1 步:安装 Python
推荐 Python 3.10 ~ 3.12。建议用虚拟环境隔离依赖。
bash
# 使用 conda(推荐,跨平台省心)
conda create -n transformer python=3.11 -y
conda activate transformer
# 或使用 venv
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate第 2 步:安装 PyTorch
去 pytorch.org 根据系统选择命令。常见几种:
bash
# NVIDIA GPU(Linux/Windows,CUDA 12.x)
pip install torch --index-url https://download.pytorch.org/whl/cu121
# 仅 CPU(笔记本无独显也能学习原理和跑 NanoGPT)
pip install torch
# Apple Silicon(M1/M2/M3,用 MPS 加速)
pip install torch验证安装
python
import torch
print("PyTorch 版本:", torch.__version__)
print("CUDA 可用:", torch.cuda.is_available()) # True 表示有 N 卡
print("MPS 可用:", torch.backends.mps.is_available()) # Mac 加速
print("设备数:", torch.cuda.device_count())第 3 步:安装 HuggingFace 生态
bash
pip install transformers datasets accelerate evaluate
pip install sentencepiece protobuf matplotlib tqdm国内网络下载模型慢,可设置镜像:
bash
# Windows (PowerShell)
$env:HF_ENDPOINT = "https://hf-mirror.com"
# macOS / Linux
export HF_ENDPOINT=https://hf-mirror.com第 4 步:GPU 与显存怎么看
python
import torch
if torch.cuda.is_available():
print(torch.cuda.get_device_name(0))
# 显存占用/总量(MB)
print(torch.cuda.memory_allocated() / 1e6, torch.cuda.max_memory_allocated() / 1e6)命令行监控:
bash
nvidia-smi -l 1 # 每秒刷新一次 GPU 状态我需要什么样的硬件?
| 学习阶段 | 建议配置 | 说明 |
|---|---|---|
| 理解原理 / 跑小 demo | 普通 CPU 笔记本 | 完全够用 |
| 训练 NanoGPT(字符级) | 6GB+ 显存的 GPU,或纯 CPU | 小语料几分钟到半小时可出效果 |
| 微调 BERT/GPT-2 | 8~16GB 显存 | 配合混合精度更省显存 |
| 微调 7B 大模型 | 24GB+ 或用 LoRA/QLoRA | 本书不要求,仅在微调章节演示小模型 |
没有 GPU 也别担心:本教程的 搭建NanoGPT 提供「字符级小语料」版本,CPU 也能训练出能说话的模型。
第 5 步:准备好编辑器
- Jupyter Notebook / Lab:适合逐格验证注意力等概念。bash
pip install notebook jupyter lab - VSCode + Python 插件:适合写完整的训练脚本。
一个「开箱即用」的检验脚本
新建 check_env.py,运行后全部打印正常即环境就绪:
python
import torch
from transformers import AutoTokenizer, AutoModel
print("PyTorch:", torch.__version__)
device = "cuda" if torch.cuda.is_available() else ("mps" if torch.backends.mps.is_available() else "cpu")
print("使用设备:", device)
# 加载一个极小的分词器做个测试
tok = AutoTokenizer.from_pretrained("gpt2")
out = tok("Hello, Transformer!", return_tensors="pt").to(device)
print("Token IDs:", out["input_ids"].tolist())
print("环境就绪 ✅")bash
python check_env.py预期输出类似:
PyTorch: 2.x.x
使用设备: cpu
Token IDs: [[15496, 11, 5468, 23664, 0]]
环境就绪 ✅常见问题(FAQ)
tokenizers相关报错:pip install tokenizers --upgrade。- 下载模型超时:确认已设置
HF_ENDPOINT镜像,或提前离线下载。 - Windows 上 CUDA 装不上:先更新 NVIDIA 驱动,再按官网命令重装对应 CUDA 版本的 torch。
- 显存不足 (OOM):调小 batch size、开启混合精度(见 训练与调参)。
下一步
环境就绪,进入正式的原理部分。先理解 Transformer 到底替代了 RNN 的什么 → 从RNN到Transformer。