【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 的转折点。

相关推荐
ALINX技术博客几秒前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫32 分钟前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英34 分钟前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
CIO_Alliance1 小时前
AI+iPaaS解决方案深度整合:让跨系统业务流程自动化一步到位
人工智能·ipaas·系统集成·ai+ipaas·企业cio联盟·企业级ai化转型
苏州IT威翰德1 小时前
算力资产“续命”专家:苏州威翰德科技赋能NVIDIA高端AI芯片芯片级维修
大数据·人工智能
天上路人1 小时前
A59P双波束语音模块:神经网络降噪在远场拾音中的工程实现分析
人工智能·深度学习·神经网络·ai降噪·ai语音·麦克风·回音消除
冬奇Lab1 小时前
AI 评测系列(03):LLM-as-Judge——让 LLM 评价 LLM 的正确姿势
人工智能·llm
Miao121311 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
冬奇Lab1 小时前
每日一个开源项目(第164篇):毕昇(BISHENG)- 面向企业的开源 LLM DevOps 平台
人工智能·开源·agent
声讯电子2 小时前
录音笔AI降噪方案:从录得到到听得清的听觉革命
人工智能·语音识别