【CS336导言】nanoGPT

Andrej Karpathy 的 nanoGPT,本质上是:

一个"极简版 GPT 训练框架"。

项目目标非常直接:

text 复制代码
用最少代码,教会你 GPT 到底怎么训练。

官方 GitHub:

nanoGPT Github


为什么 nanoGPT 很出名

因为以前很多 GPT 教程都有问题:

  • 太理论
  • 太抽象
  • 工业框架太复杂
  • 一堆 HuggingFace 黑盒

而 nanoGPT:

  • 只有几百行核心代码
  • 真能训练
  • 真能跑
  • 真能生成文本
  • 接近真实 GPT 架构

所以很多人说:

"这是理解 LLM 最好的入门工程。"


nanoGPT 核心特点

1. 极简

整个 GPT 核心:

基本就结束了。

不像工业代码:

text 复制代码
configs/
trainer/
pipeline/
distributed/
kernel/

一堆东西。


2. 真正训练 GPT

不是玩具。

它可以:

  • 训练 Shakespeare
  • 训练中文语料
  • 训练小型代码模型
  • 多 GPU
  • bf16
  • compile
  • DDP

甚至能训练到:

text 复制代码
几十亿 token

3. 非常接近现代 LLM

它包含:

  • causal attention
  • layernorm
  • residual
  • GELU
  • AdamW
  • weight tying
  • cosine lr schedule

也就是:

现代 GPT 的核心骨架。


nanoGPT 的整体结构

核心就几个文件:

文件 作用
model.py GPT 模型
train.py 训练
sample.py 推理生成
config/ 超参数

GPT 核心代码

最经典的是 attention:

python 复制代码
att = (q @ k.transpose(-2, -1)) * (1.0 / math.sqrt(k.size(-1)))
att = att.masked_fill(self.bias[:,:,:T,:T] == 0, float('-inf'))
att = F.softmax(att, dim=-1)

y = att @ v

这里其实就是:

\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

这几行代码就是 GPT 灵魂。


它训练什么

Karpathy 最经典 demo:

Tiny Shakespeare

数据集只有几 MB。

比如:

text 复制代码
To be, or not to be...

训练后:

text 复制代码
KING:
What say you, my lord?

模型已经会生成莎士比亚风格文本。


为什么这很重要

因为你会第一次真正理解:

GPT 不是"会思考"

而是:

"不断预测下一个 token"

比如:

text 复制代码
I love

模型预测:

text 复制代码
AI
you
coding

本质是概率。

损失函数:

L=-\sum_i y_i\log p_i

也就是 Cross Entropy。


nanoGPT 的学习价值

它最大的价值不是:

"训练一个厉害模型"。

而是:

看懂 GPT 每一层到底干了什么。

很多人:

  • 会调 API
  • 会 LangChain
  • 会 Agent

但:

text 复制代码
不知道 attention 到底怎么算

nanoGPT 会把这个黑盒拆开。


nanoGPT 会让你理解什么


1. 为什么上下文长度贵

因为 attention:

text 复制代码
O(n²)

上下文翻倍:

text 复制代码
显存 ≈ 4倍

2. 为什么训练那么烧钱

因为:

text 复制代码
token × parameter × FLOPs

是天文级。


3. 为什么推理快不了

因为 autoregressive:

text 复制代码
一个 token 一个 token 生成

不能完全并行。


4. 为什么 KV Cache 重要

否则每次都重新算 attention。


nanoGPT 和 CS336 的关系

其实:

CS336 很大程度上就是"nanoGPT 工业加强版"。

nanoGPT:

text 复制代码
教学版 GPT

CS336:

text 复制代码
OpenAI infra 模拟器

nanoGPT 适合谁

特别适合:

  • 想转 LLM infra
  • 想懂 Transformer
  • 想做 AI 投研
  • 想做本地模型
  • 想进大模型公司

最推荐的学习方式

顺序建议:

第一阶段

先看:

Andrej Karpathy 的:

  • "Let's build GPT"
  • "Neural Networks: Zero to Hero"

YouTube 非常经典。


第二阶段

跑 nanoGPT:

bash 复制代码
python train.py config/train_shakespeare_char.py

第三阶段

自己改:

  • 中文 tokenizer
  • RoPE
  • FlashAttention
  • MoE

这时候成长最快。


nanoGPT 最大的意义

它把:

text 复制代码
"AI 是魔法"

变成:

text 复制代码
"AI 是矩阵乘法"

这是很多工程师真正入门 LLM 的转折点。

相关推荐
漏刻有时6 小时前
本地部署 Dify + DeepSeek 搭建AI知识问答客服全流程复盘
人工智能
weixin_549808366 小时前
人力资源数字化转型:从工具堆叠到AI原生架构的组织级跃迁路径
大数据·人工智能
l0001096 小时前
图书馆静谧环境构建:主流声学品牌产品与服务梳理
大数据·人工智能·声音
倔强的石头1066 小时前
【机器学习】机器学习三大范式_监督无监督强化学习概览
人工智能·机器学习
DO_Community6 小时前
多模型路由怎么选?2026 年 4 款主流方案对比
人工智能
CypressTel6 小时前
Google发布Gemini 3.7 Flash:企业为何要计算AI智能体的任务总成本——赛柏特AI快讯
人工智能
wujian83116 小时前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭
一拳不是超人6 小时前
DeepSeek Harness 为什么敢说"一切皆插件"?拆透 Cordis 引擎的五大核心机制
前端·人工智能·agent
安全指北针6 小时前
AI编程工具供应链安全实战:当你的AI编码助手成为跳板
人工智能·安全·ai编程
fo安方7 小时前
视频——工具——视频——ppt——AI生成ppt
人工智能·powerpoint