训练环境要求与说明
阅读顺序:第 0 篇 — 先确认你的机器能不能跑,再决定怎么搭建环境。
1. 为什么需要前置了解环境?
训练大模型(或哪怕是微调)对硬件和软件环境有硬性要求。与普通的 Web 开发或脚本编写不同:
- 没有 GPU = 几乎无法训练(CPU 可以跑但慢到不可用)
- 显存不够 = 模型加载不起来(OOM 崩溃)
- 磁盘空间不够 = 下载到一半卡死
- 操作系统不对 = 某些框架压根不支持
这篇文档帮你在开始之前就搞清楚自己的机器能做什么,避免花几天搭环境最后发现跑不起来。
2. 硬件要求总览
2.1 最低配置 — 入门学习 / 跑小模型
| 硬件 | 最低要求 | 说明 |
|---|---|---|
| CPU | 4 核 (x86_64) | Intel i5 / AMD Ryzen 5 以上 |
| 内存 | 16 GB | 大模型推理至少需要 |
| GPU | NVIDIA GTX 1060 6GB(或更高) | 必须有 CUDA 支持 |
| 显存 | 6 GB | 可运行 7B 以下的小模型 |
| 硬盘 | 50 GB 空闲 | 系统 + CUDA + 几个小模型 |
| 网络 | 宽带(>10 Mbps) | 需要下载模型文件 |
⚠️ AMD 和 Intel 显卡目前不建议:ROCm(AMD)支持有限,Intel ARC 生态不成熟。如果不是 NVIDIA,建议先用云 GPU。
2.2 推荐配置 — 能跑 7B~13B 模型微调
| 硬件 | 推荐配置 | 说明 |
|---|---|---|
| CPU | 8 核 (x86_64) | Intel i7 / AMD Ryzen 7 |
| 内存 | 32 GB | 加载大模型 + 数据处理 |
| GPU | NVIDIA RTX 3090 / 4070+ | 24GB 或 12GB 显存 |
| 显存 | 12~24 GB | 可微调 7B~13B 模型 |
| 硬盘 | 200 GB 以上空闲 | SSD (NVMe 优先) |
| 网络 | 50 Mbps+ | 下载数十 GB 模型文件 |
2.3 进阶/专业配置 — 全参数训练 / 更大模型
| 硬件 | 进阶配置 |
|---|---|
| GPU | RTX 4090 24GB × 2~4(张量并行) |
| GPU | 或 NVIDIA A100 80GB / H100 |
| 内存 | 64~128 GB |
| 硬盘 | 1 TB+ NVMe SSD |
| 网络 | 200 Mbps+ 或公司内网 |
2.4 如果根本没有 GPU 怎么办?
有三种替代方案:
| 方案 | 费用 | 适用场景 |
|---|---|---|
| Google Colab (免费) | 免费 | 学习入门,跑小模型,有 GPU T4 时长限制 |
| Google Colab Pro | ~$10/月 | 优先使用 T4/V100,适合学习 |
| 云 GPU 实例 | 按量付费 | 百度云、阿里云、AutoDL 等,小时计费 |
| AutoDL 🔥 | ¥1~¥10/小时 | 国内最方便,按量租用,适合长期实验 |
3. 操作系统选择
3.1 各系统对比
| 系统 | 兼容性 | 性能 | 适合人群 |
|---|---|---|---|
| Linux (Ubuntu 22.04/24.04) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 所有人(推荐) |
| WSL2 (Windows + Ubuntu) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Windows 用户首选 |
| Windows 原生 | ⭐⭐⭐ | ⭐⭐⭐ | 某些框架不支持 |
| macOS (Apple Silicon) | ⭐⭐ | ⭐⭐ | 仅适合推理,MPS 支持有限 |
3.2 强烈推荐:WSL2 (Windows + Linux 双赢)
如果你和我一样是 Windows 用户,最推荐的方式是 WSL2 (Windows Subsystem for Linux 2)。
为什么用 WSL2 而不是双系统或虚拟机?
| 对比项 | WSL2 | 双系统 | 虚拟机 |
|---|---|---|---|
| 切换成本 | 秒切 | 重启切换 | 全屏切换 |
| GPU 支持 | ✅ 支持 CUDA | ✅ 原生 | ❌ 几乎不行 |
| 文件共享 | 通过 /mnt/ 访问 | 需额外分区 | 共享文件夹 |
| 性能损耗 | ~3% | 0% | 10~20% |
| 适用场景 | 日常开发最佳 | 纯 Linux 重度用户 | 测试不同发行版 |
3.3 macOS (Apple Silicon) 特别说明
- M1/M2/M3/M4 芯片有 MPS (Metal Performance Shaders) 后端
- PyTorch 支持
mps设备,但不能训练大模型(内存统一架构,但显存 = 系统内存,且受制于内存带宽) - 适合:推理、小规模实验、学习代码逻辑
- 不适合:大规模训练、7B+ 模型微调
4. WSL2 环境要求与配置
这部分是本教程针对 WSL 环境的特别说明。 如果你用的是原生 Linux,可以跳过本节。
4.1 WSL2 硬件前提
| 条件 | 要求 |
|---|---|
| Windows 版本 | Windows 10 21H2+ 或 Windows 11 |
| CPU | Intel/AMD 支持虚拟化(VT-x/AMD-V) |
| GPU(如需 CUDA) | NVIDIA 显卡 + 最新驱动 |
| WSL 版本 | WSL 2(务必确认,不是 WSL 1) |
4.2 当前环境一览(你的配置)
你当前的环境是:
text
OS: Ubuntu 24.04 LTS (WSL2)
Windows: Windows 11 (内部版本号查看: winver)
CPU: Intel/AMD x86_64
GPU: NVIDIA(需要确认型号)
驱动: NVIDIA 驱动安装在 Windows 端,WSL 2 自动继承💡 WSL2 的 GPU 驱动是在 Windows 端安装的,WSL 内不需要额外装驱动。
4.3 WSL2 已知问题与破解
| 问题 | 表现 | 解决方案 |
|---|---|---|
| CUDA 找不到 | nvidia-smi 提示未找到 | 安装 Windows 端 NVIDIA 驱动 + CUDA Toolkit for WSL |
| 显存占用异常 | Windows 和 WSL 共用显存 | 关闭 Windows 端占用显存的程序(浏览器、游戏) |
| 磁盘 I/O 慢 | 在 /mnt/d/ 下操作很慢 | ❌ 不要把数据集放在 /mnt/d/(跨文件系统) |
| 解决磁盘慢 | — | ✅ 把数据放到 WSL 内部(~/datasets/) |
| 内存不够 | WSL 默认只用 50% 宿主内存 | 创建 .wslconfig 设置 memory=32GB |
| 进程被杀死 | OOM,训练到一半消失 | 设 swap 或限制 PyTorch 显存使用 |
| VS Code 远程 | 连不上 WSL | 装 Remote - WSL 插件,用 code . 启动 |
4.4 .wslconfig 优化配置
在 Windows 用户目录下创建 %USERPROFILE%\.wslconfig:
ini
[wsl2]
memory=32GB # 根据你的物理内存调整,留 4~8GB 给 Windows
processors=8 # 根据你的 CPU 核心数调整
swap=8GB # 启用 swap,防止 OOM 崩溃
localhostForwarding=true然后重启 WSL:
bash
# 在 Windows PowerShell 或 CMD 中执行
wsl --shutdown
wsl4.5 WSL 内部文件 vs Windows 外部文件
黄金法则:训练数据必须在 WSL 内部文件系统,不要放在 /mnt/d/ 下!
text
✅ 推荐: ~/datasets/ → WSL 内部 ext4 文件系统,I/O 性能正常
✅ 推荐: ~/models/ → WSL 内部
✅ 推荐: ~/training/ → WSL 内部
❌ 避免: /mnt/d/datasets/ → Windows NTFS 挂载,I/O 性能极差(慢 10~50 倍)
❌ 避免: /mnt/d/models/ → 同样问题注意:你当前的 wiki 文章在
/mnt/d/Montarius/source/wiki_ming/...是因为文章本身是文本文件,对 I/O 不敏感。 但模型权重文件和数据集千万不要放 Windows 分区,否则训练速度会显著下降。
5. 软件要求总览
5.1 必须安装的软件
| 软件 | 版本要求 | 用途 |
|---|---|---|
| Python | 3.10 或 3.11(推荐) | 训练脚本语言 |
| NVIDIA 驱动 | ≥ 535(推荐最新 Game Ready/Studio) | GPU 驱动(Windows 端装) |
| CUDA Toolkit | 11.8 或 12.1/12.4 | GPU 计算框架 |
| cuDNN | 对应 CUDA 版本 | 深度神经网络加速 |
| PyTorch | ≥ 2.1.0 | 深度学习框架 |
| Git | 最新 | 拉取代码和模型 |
详细的安装步骤见下一篇:环境搭建与工具链
5.2 推荐安装的软件
| 软件 | 用途 |
|---|---|
| VS Code + Remote-WSL | 在 WSL 中写代码 |
| Miniconda / Mamba | Python 环境管理(比 pip 更好) |
| tmux / screen | 训练会话不因终端关闭而中断 |
| HuggingFace CLI | 下载和管理模型 |
| Weights & Biases (wandb) | 训练可视化 |
| TensorBoard | 训练曲线可视化 |
6. 磁盘空间估算指南
6.1 不同规模模型的空间需求
| 模型规模 | 模型文件大小 | 训练缓存/梯度 | 数据集(示例) | 总计建议 |
|---|---|---|---|---|
| 微调 7B (LoRA) | ~14 GB | ~5 GB | 1~10 GB | 30 GB |
| 微调 13B (LoRA) | ~26 GB | ~8 GB | 1~10 GB | 50 GB |
| 全参训练 7B | ~14 GB | ~30 GB | 10~50 GB | 100 GB |
| 预训练 1.3B | ~5 GB | ~10 GB | 50~200 GB | 300 GB+ |
| 下载 HF 模型库 | 随取随用 | — | — | 预留 100 GB+ |
6.2 缓存目录清理
HuggingFace 默认会把模型缓存到 ~/.cache/huggingface/,可以定期清理:
bash
# 查看缓存大小
du -sh ~/.cache/huggingface/
# 清理未使用的缓存
pip install huggingface-hub
hf-transfer --clean-cache6.3 WSL 磁盘空间管理技巧
bash
# 查看 WSL 磁盘使用
df -h
# 如果 WSL 虚拟硬盘(ext4.vhdx)不断膨胀不会缩小:
# 在 Windows PowerShell 中
wsl --shutdown
diskpart
# select vdisk file="C:\Users\你的用户名\AppData\Local\Packages\...\ext4.vhdx"
# compact vdisk7. 网络与下载
7.1 国内网络特别说明
HuggingFace、GitHub 等在国外,国内下载可能很慢。以下是加速方法:
方法 1:HuggingFace 镜像(推荐)
bash
# 使用 HF 镜像站(国内快很多)
export HF_ENDPOINT=https://hf-mirror.com
# 永久写入 ~/.bashrc
echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.bashrc方法 2:pip 镜像
bash
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple方法 3:GitHub 加速
bash
# 使用 ghproxy 代理
git clone https://ghproxy.com/https://github.com/user/repo.git7.2 下载策略
- 断点续传:HuggingFace
snapshot_download()和git lfs都支持断点续传 - 分步下载:不要一次性下载所有模型,按需下载
- 网络中断恢复:git lfs 的
git lfs pull可恢复中断的下载
8. 我该从哪里开始?(阅读路线图)
| 如果你… | 建议阅读路线 |
|---|---|
| 完全零基础 | ① 环境要求与说明(本篇)→ ② 基础概念与术语 → ③ 环境搭建 → ④ 走一次训练流程 |
| 已搭好环境 | ① 快速扫读硬件要求 → ② 基础概念 → ③ 直接开始训练流程 |
| 已有 GPU 经验 | ① 看 WSL 注意事项 → ② 直接看训练流程和监控 |
| 用 Colab 学习 | ① 跳过硬件篇 → ② 基础概念 → ③ 直接开始动手 |
| 只想看看概念 | 基础概念与术语 → 模型架构入门 → 训练流程全解析 |
文章依赖关系
text
┌─────────────────────┐
│ 训练环境要求与说明.md │ ← 本篇
│ (先确认能不能跑) │
└──────────┬──────────┘
↓
┌─────────────────────┐
│ 基础概念与术语.md │ ← 懂术语才能看后面的
└──────────┬──────────┘
↓
┌─────────────────────┐
│ 环境搭建与工具链.md │ ← 动手搭环境
└──────────┬──────────┘
↓
┌─────────────────────┐
│ 数据准备与预处理.md │ ← 准备数据
└──────────┬──────────┘
↓
┌─────────────────────┐
│ 模型架构入门.md │ ← 理解模型结构(可选但推荐)
└──────────┬──────────┘
↓
┌─────────────────────┐
│ 训练流程全解析.md │ ← 核心章节
└──────────┬──────────┘
↓
┌────────────────┴────────────────┐
↓ ↓
┌──────────────────┐ ┌──────────────────┐
│ 训练监控与可视化.md │ │ 超参数调优.md │
└──────────────────┘ └──────────────────┘
↓ ↓
└────────────────┬────────────────┘
↓
┌─────────────────────┐
│ 模型评估与验证.md │ ← 收尾
└─────────────────────┘9. 快速自查清单
在开始之前,逐项打勾确认:
- 操作系统:Ubuntu 22.04 / 24.04(或 WSL2)
- CPU:x86_64,4 核以上
- 内存:16 GB 以上(推荐 32 GB)
- GPU:NVIDIA(
nvidia-smi能正常输出) - 显存:至少 6 GB
- 磁盘:50 GB 以上空闲(模型 + 数据)
- Python:3.10 或 3.11
- CUDA:
nvcc --version能显示版本 - 网络:能访问 HuggingFace(或配置好镜像)
- 共识:数据放 WSL 内,不放
/mnt/d/
附录:常用命令速查
bash
# 检查 CUDA 是否可用
nvidia-smi # GPU 状态
nvcc --version # CUDA 版本
# 检查 PyTorch 是否识别 GPU
python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
# 检查 WSL 版本(Windows PowerShell 中)
wsl -l -v
# 查看系统信息
cat /etc/os-release | grep PRETTY_NAME
uname -m
free -h # 内存
df -h # 磁盘你已经确认了环境,下一步:环境搭建与工具链
想先补基础概念?:基础概念与术语