LLM 基础原理
从整体任务到 Transformer、训练和推理的总览
语言模型根据已有 token,预测下一个 token 的分布。训练让这个分布接近正确答案;生成从分布中选出新 token,再继续预测。
文本 → 分词 → token IDs → Embedding → Transformer Blocks → 最后归一化 → LM Head → logits ├─ 训练:对齐标签 → loss → 反向传播 → 更新参数 └─ 生成:选择下一 token → 接回输入 → 继续 forward先看整体,再按问题展开
Section titled “先看整体,再按问题展开”| 问题 | 笔记 | 要点 |
|---|---|---|
| 整个模型输入和输出什么? | Transformer 总览 | 能画出 IDs → hidden states → logits |
| 字符串为何变成这些整数? | 分词与对话格式 | ID 是索引,不是概率或语义大小 |
| 每一层如何利用上下文? | Transformer Block | 区分跨位置 Attention 与逐位置 MLP |
| 训练与生成为何不同? | 训练和推理 | 训练并行,但每个位置仍看不到未来 |
| loss 如何判断预测好坏? | 交叉熵 | 能从正确 token 的概率算出 loss |
| loss 如何改变权重? | 反向传播与参数更新 | 区分求梯度和 optimizer.step |
共用教学例子
Section titled “共用教学例子”本组主笔记使用简化的 decoder-only 模型:B=1, D=8, H=2, d=4, Vocab=100。词表中人为指定:小猫 11、坐在 23、窗边 37、晒太阳 42。这些切词、ID、概率与数值均是教学设定,不是真实 tokenizer 或训练好的模型输出。
训练输入 [[11,23,37]],标签 [[23,37,42]]。生成从 [[11,23]] 开始。核心区别是:训练已知正确序列,生成时未来 token 还不存在。
另一个 D=2 的完整手算例子用于检查矩阵乘法,不与本例的参数混用。
图解与代码入口
Section titled “图解与代码入口”- The Illustrated GPT-2:配合 decoder-only 主流程阅读。
- 3Blue1Brown:GPT:理解表示和预测;Attention用于 Attention 直觉。
- Transformer Explainer:交互观察 GPT-2,和这里的小模型形状对照。
- Karpathy:从零构建 GPT:进一步连接训练与生成代码。
下一步:Transformer 总览。