大模型入门-3
非常高兴你愿意系统学习。
说实话,我很少看到有人一开始就提出这样一个目标:
"不要告诉我怎么用,而是告诉我为什么,并最终让我成为专家。"
我认为这是学习 AI 最正确的方式。
我希望这门课达到什么水平?
我希望最终达到的效果不是:
"知道 Transformer 是什么"
而是能够做到下面这些事情。
例如看到下面这段代码:
output = torch.matmul(Q, K.transpose(-2, -1))
output = output / math.sqrt(d)
output = F.softmax(output)
output = torch.matmul(output, V)
你脑子里应该自动出现:
Q是什么?
↓
为什么要乘K?
↓
为什么要除√d?
↓
为什么Softmax?
↓
GPU怎么计算?
↓
FlashAttention为什么优化这里?
↓
Megatron源码在哪里?
这就是专家的思考方式。
我希望最终建立的是"知识树"
很多课程都是知识点。
今天讲 Attention。
明天讲 RLHF。
后天讲 CUDA。
最后大家脑子里就是:
Attention
CUDA
Loss
Transformer
Embedding
......
一堆零散知识
而我希望建立的是一棵树。
例如:
AI
┌──────────────┐
│ │
数学基础 工程基础
│ │
神经网络 GPU架构
│ │
Transformer CUDA
│ │
LLM NCCL
│ │
RLHF/DPO DeepSpeed
└──────┬───────┘
│
大模型训练
以后任何一个知识点,都知道它长在哪棵树上。
这是大学和培训班最大的区别。
我建议课程重新设计一下
我昨天回去认真想了一下。
其实之前的10个阶段还是太粗了。
如果真正按照MIT、CMU这种课程来讲。
我会重新拆成六个学期。
第一学期:计算机如何学习(最重要)
这一部分很多教程都会跳过。
但是我认为:
这是整个AI最重要的一部分。
课程如下:
第一章
什么叫学习
第二章
数据是什么
第三章
特征(Feature)
第四章
模型(Model)
第五章
参数(Parameter)
第六章
预测(Inference)
第七章
Loss为什么存在
第八章
梯度是什么
第九章
梯度下降
第十章
为什么会收敛
这一部分结束。
你应该已经知道:
AI为什么能够学习。
而不是:
AI会学习。
第二学期:神经网络
很多人认为:
Transformer是革命。
其实不是。
真正革命的是:
神经网络。
这一学期:
Neuron
↓
Activation
↓
MLP
↓
Forward
↓
Backward
↓
Optimizer
↓
Adam
↓
Batch
↓
Epoch
↓
Overfitting
结束以后。
你已经可以:
手写一个神经网络。
第三学期:Transformer
终于开始讲Transformer。
包括:
Embedding
↓
Position Encoding
↓
Self Attention
↓
Multi Head
↓
Residual
↓
LayerNorm
↓
FFN
↓
Encoder
↓
Decoder
↓
GPT
这里不会直接背论文。
而是:
每一个模块,
都会回答:
为什么一定要有它?
例如:
为什么Attention不用CNN?
为什么不用RNN?
为什么Residual存在?
为什么LayerNorm放这里?
为什么FFN比Attention参数更多?
全部都会讲。
第四学期:LLM训练
终于来到:
真正的大模型。
这里会讲:
Tokenizer
↓
Vocabulary
↓
Pretraining
↓
Instruction Tuning
↓
SFT
↓
RLHF
↓
Reward Model
↓
PPO
↓
DPO
↓
Alignment
这一部分结束。
你已经知道:
ChatGPT为什么越来越像人。
第五学期:系统
这一部分,
与你现在工作最接近。
包括:
GPU
↓
CUDA
↓
Tensor Core
↓
HBM
↓
PCIe
↓
NVLink
↓
RDMA
↓
InfiniBand
↓
NCCL
↓
AllReduce
然后:
Data Parallel
↓
Tensor Parallel
↓
Pipeline Parallel
↓
Sequence Parallel
↓
FSDP
↓
ZeRO
↓
Megatron
你之前问我的:
NCCL、
IB、
CUDA、
RDMA、
NVLink、
GPU通信。
都会串起来。
而不是:
一个一个背。
第六学期:真正的大模型工程
这一部分,
已经接近OpenAI工程师每天做的事情。
例如:
FlashAttention
↓
KV Cache
↓
PagedAttention
↓
MoE
↓
FP8
↓
Quantization
↓
vLLM
↓
Continuous Batch
↓
Serving
↓
Checkpoint
↓
Fault Tolerance
↓
Elastic Training
然后:
Docker
↓
Kubernetes
↓
Slurm
↓
Ray
↓
监控
↓
Profiling
↓
源码阅读
最后:
我们会:
真正阅读:
PyTorch
↓
Transformer源码
↓
DeepSpeed
↓
Megatron
↓
vLLM
我希望这门课最大的特点
网上大多数课程都是:
理论
或者:
源码
或者:
工程
三选一。
而我希望:
每节课固定六步。
第一步:生活中的例子(建立直觉)
例如:
为什么需要Loss?
我不会先讲公式。
而是:
考试。
考试
↓
80分
↓
距离100还有20
↓
Loss=20
你马上知道:
Loss是什么。
第二步:数学
然后:
真正推公式。
为什么:
梯度。
为什么:
链式法则。
为什么:
Adam。
这一部分,
数学不会跳步。
第三步:代码
例如:
今天讲:
梯度下降。
马上:
PyTorch实现。
例如:
几十行代码。
训练一个模型。
Loss真的下降。
第四步:GPU到底干了什么
例如:
矩阵乘法。
不是:
一句:
GPU算。
而是:
真正讲:
Tensor
↓
Kernel
↓
CUDA Block
↓
Warp
↓
SM
↓
HBM
最后:
知道:
GPU到底在干什么。
第五步:源码
例如:
今天讲:
LayerNorm。
马上:
PyTorch:
torch.nn.LayerNorm
里面:
源码怎么看。
Megatron:
又在哪里。
第六步:企业怎么做
例如:
今天讲:
Attention。
马上:
OpenAI、
Google、
Meta、
DeepSeek、
阿里、
字节。
为什么:
设计不同。
什么时候:
FlashAttention。
什么时候:
MQA。
什么时候:
GQA。
什么时候:
MoE。
最后,我想再增加一个目标
经过和你的几次交流,我发现你的兴趣点与很多学习者不同。
你不是只想知道"模型是什么",还会不断追问:
为什么 NCCL 要 AllReduce?
为什么 InfiniBand 比 TCP 快?
为什么 vLLM 有时加载模型很慢?
为什么 Docker commit 会卡住?
为什么 CUDA 能比 CPU 快这么多?
这些问题看似分散,其实都围绕着同一个主题:
大模型从"数学公式"变成"在数千张 GPU 上稳定运行的系统",中间到底发生了什么?
因此,我想把这门课程定位成:
《从零开始理解大模型:从数学、算法到 GPU 系统》
它不会止步于论文,也不会止步于工程,而是把两者连接起来。
第一节课,我们不会讲神经网络。
我们会讲一个很多课程都忽略,但我认为最重要的问题:
为什么计算机能够学习?
我们将从最基础的概念开始:
什么是"学习"?
什么是数据?
什么是特征(Feature)?
为什么需要模型(Model)?
参数(Parameter)究竟是什么?
为什么调整参数就能学会规律?
这一节结束后,你会真正理解整个 AI 世界最核心的一句话:
训练不是"让计算机变聪明",而是利用数据不断调整模型参数,使预测误差越来越小。
后面的神经网络、Transformer、LLM、分布式训练、NCCL、Megatron 等所有内容,都会建立在这个统一的理解框架之上。这样学下来,你面对新论文、新框架时,能够迅速判断它解决的是知识树上的哪个问题,而不是把每个新概念当成孤立的知识点。