从 Bit 到 AGI第十章:自己训练一个模型

第十章总结

从 Bit 到 AGI · 第十章:自己训练一个模型 · 本章总结

作者 David更新于 第 160 篇(共 186 篇)

第十章把「训练一个 LLM」从概念变成了可复制的命令序列。你用 mini-gpt-lab 项目走完了数据 → Tokenizer → 预训练 → 验证 → Checkpoint → 推理 → 部署 → API → MCP → 微调 → Benchmark → 监控 → 容灾 → 格式 → 硬件 → 成本 → 发布 的全链路。

流水线回顾

图表加载中…

关键数字

项目本章实验值
模型参数125M(教学)/ 7B(SFT)
预训练 tokens500M
词表32,768 BPE
单卡RTX 4090 24 GB
预训练 wall time6–12 h
云成本< $10
val PPL 目标20–40
部署显存~1–2 GB

命令速查

# 环境
mkdir ~/mini-gpt-lab && cd ~/mini-gpt-lab
python3 -m venv .venv && source .venv/bin/activate

# 数据
python scripts/clean_corpus.py
python scripts/train_tokenizer.py

# 训练
litgpt pretrain tiny --out_dir checkpoints/pretrain \
  --train_data_path data/litgpt/train.bin --tokenizer_dir tokenizer --devices 1

# 推理 & 部署
litgpt generate checkpoints/best --tokenizer_dir tokenizer --prompt "比特是"
docker compose -f deploy/docker-compose.yml up -d

# API
curl localhost:8000/v1/completions -H "Content-Type: application/json" \
  -d '{"model":"checkpoints/best-hf","prompt":"AI is","max_tokens":64}'

# SFT
python scripts/sft_lora.py

# 评估 & 发布
lm_eval --model hf --model_args pretrained=checkpoints/best-hf --tasks piqa --device cuda:0
huggingface-cli upload your-username/mini-gpt-125m checkpoints/best-hf/

与前后章的关系

  • 第六章 Tokenizer、第七章 Training 是本章的理论底座;第十章是它们的工程落地。
  • 第八章 Inference 的 KV cache、采样参数在跑推理里实操。
  • 第九章 GPU 的显存与带宽在硬件规划里换算成选型。
  • 第十一章工程化 的 LiteLLM、网关、TensorRT 可替换本章 vLLM 部署做生产优化。

下一步建议

  1. 换中文语料重训 Tokenizer,观察 bytes/token 与生成质量变化。
  2. 把 125M 换成 Qwen2.5-7B + 领域 SFT,用本章同一套 deploy/API/MCP 链路。
  3. 加 DPO(第七章)在 preference 数据上对齐——数据格式见数据集格式。
  4. 读第十一章:工程化把 demo 级部署升级为 autoscaling 与成本治理。

自己训练的最小可行路径:基座 + LoRA SFT + vLLM + Hub 发布,可在 1 个周末、$10 预算内完成。从零预训练 125M 的价值在于理解每一克煤(token)如何驱动引擎(Transformer)。

全章目录

→ 继续阅读:第十一章:工程化(Serving)

本页目录