写在前面

这篇笔记不是一份面向完全零基础的入门手册,而是一份更有针对性的 4 周强化纲领。

我当前的出发点是:

  • 计算数学博士四年级
  • 做过大模型评测相关实习
  • 做过华为 HPC 算法实习

所以这 4 周的目标并不是把神经网络和大模型所有内容“彻底吃透”,而是要建立一套足够稳固的统一框架:

  • 能讲清模型结构的主线
  • 能看懂训练流程和工程约束
  • 能把评测现象和模型行为联系起来
  • 能从系统视角理解吞吐、显存和效率问题

换句话说,这 4 周不是为了“看很多东西”,而是为了把已经见过的东西真正连起来。

总体目标

四周结束时,我希望自己达到以下状态:

  1. 能清晰解释 Transformer 和 LLM 的核心结构,不再停留在名词堆砌。
  2. 能从训练目标、数据、优化和系统约束四个角度理解一个语言模型是怎么来的。
  3. 能把已有的大模型评测经验放进更完整的方法论框架,而不是只停留在指标层。
  4. 能完成一个可复现的小项目,让“结构 - 训练 - 评测 - 系统”形成闭环。

如果用一句更简洁的话概括,这 4 周的任务是:

从“有相关经历”走向“有成体系的大模型理解”。

这四周不追求什么

先把边界说清楚,反而更容易把事情做成。

这 4 周不追求:

  • 吃透所有大模型论文
  • 一步到位掌握分布式训练的全部细节
  • 用极短时间补齐所有工程栈
  • 变成一个成熟的 LLM 系统工程师

真正现实的目标是:抓住主干、形成地图、产出闭环。

一张总图:四条主线

我会把接下来的学习都放在四条线里看:

  • 结构:模型到底由哪些模块组成,它们分别承担什么功能
  • 训练:模型参数是如何从随机初始化走到可用状态的
  • 评测:我们到底在测什么,测出来的结果能说明什么
  • 系统:计算、显存、吞吐和工程约束如何反过来塑造训练与推理方案

如果把语言模型写成最简的概率分解,它的目标无非是:

$$ p_\theta(x_1,\dots,x_T) = \prod_{t=1}^{T} p_\theta(x_t \mid x_{<t}) $$

训练时最核心的优化对象通常是 next-token prediction 对应的负对数似然:

$$ \mathcal{L}(\theta) = - \sum_{t=1}^{T} \log p_\theta(x_t \mid x_{<t}) $$

而 Transformer 中最关键的模块,又可以浓缩成 attention:

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

表面上看,大模型的世界很复杂;但如果一直抓住这条线索,就不会迷失在术语里。

第 1 周:搭起结构骨架

第一周只做一件事:把模型结构真正理清楚。

目标

  • 从神经网络基础过渡到 Transformer
  • 理清 attention、FFN、残差、归一化各自的作用
  • 搭出 decoder-only LLM 的最小结构理解

重点内容

  • embedding 和 tokenization 的角色
  • self-attention 的输入输出维度
  • multi-head attention 为什么不是“重复一遍 attention”
  • residual connection 和 LayerNorm 为什么在深层网络里重要
  • FFN 在 Transformer block 里到底在做什么
  • position encoding / positional information 怎样进入模型

本周最重要的问题

  1. 为什么 attention 能比传统序列模型更适合长程依赖?
  2. Transformer 每一层除了“算一遍 attention”之外,还做了什么?
  3. 为什么现在的大多数 LLM 都是 decoder-only,而不是 encoder-decoder?

我希望自己做到什么程度

这一周结束时,我应该可以不看资料,自己把一个最小 Transformer block 讲出来:

  • 输入是什么
  • 经过哪些模块
  • 维度怎么变化
  • 每个模块在功能上解决什么问题

建议的动作

  • 手推一次 attention 的维度和复杂度
  • 用 PyTorch 手写一个最小的 self-attention
  • 再拼一个 mini Transformer block
  • 给每个模块写注释,而不是只让它“跑通”

本周输出

  • 一篇博客:《从 MLP 到 Transformer:结构主线梳理》
  • 一篇博客:《Attention 的数学直觉与实现细节》

第 2 周:打通训练过程

第二周开始把视角从“模型长什么样”转到“模型怎么学出来”。

目标

  • 理解语言模型训练目标
  • 建立 token、batch、sequence length、throughput 的联系
  • 把优化与系统约束放到同一张图里看

重点内容

  • next-token prediction 与 cross entropy
  • token 数比 epoch 更有意义的原因
  • batch size、sequence length、gradient accumulation 的关系
  • learning rate warmup、cosine decay 等基本策略
  • mixed precision、显存占用、训练吞吐
  • checkpoint、激活保存、反向传播中的内存瓶颈

本周最重要的问题

  1. 为什么训练大模型时,大家总在讨论 token seen 而不是 epoch?
  2. 为什么 batch size 变大后,训练稳定性和泛化不一定同步提升?
  3. 为什么 mixed precision 不是简单的“把精度调低一点”?

我希望自己做到什么程度

这一周结束时,我应该能把训练这件事分成三个层次理解:

  • 目标层:模型在优化什么
  • 算法层:优化器和学习率计划如何作用
  • 系统层:显存、吞吐、并行和精度如何影响训练方案

建议的动作

  • 训练一个 tiny language model 或 mini GPT
  • 记录 loss 曲线
  • 固定数据集,对 batch size 和 sequence length 做至少一组对比
  • 用自己的 HPC 经验写一页“训练瓶颈分析”

本周输出

  • 一篇博客:《一个语言模型是如何被训练出来的》
  • 一篇博客:《从 HPC 视角理解 LLM 训练中的吞吐、显存与效率》

第 3 周:补齐评测与后训练的闭环

第三周重点不是重新学“评测”这两个字,而是把已有的评测经历重新放回整个大模型框架中。

目标

  • 理解 SFT、偏好学习、对齐和评测之间的关系
  • 重新审视 benchmark 的边界
  • 从“结果打分”过渡到“能力解释”

重点内容

  • instruction tuning / SFT 的基本目标
  • RLHF 和 DPO 的大框架
  • benchmark、自动评测、人工评测的差异
  • 幻觉、鲁棒性、稳定性和推理能力之间的张力
  • 评测结果与真实用户体验之间的偏差

本周最重要的问题

  1. 为什么经过 SFT 之后,模型会显得“更像助手”?
  2. benchmark 上的高分究竟反映了什么,又遗漏了什么?
  3. 评测体系里最容易被误用的指标有哪些?

我希望自己做到什么程度

这一周结束时,我不只要会说“这个模型分数高”或“这个回答更好”,而是要能继续追问:

  • 它为什么会更好
  • 是训练方式变了,还是数据形式变了
  • 是泛化能力提高了,还是评测设计更偏向某种输出风格

建议的动作

  • 选一个小模型,比较微调前后的回答差异
  • 设计一个小型评测表,至少包含正确性、稳定性、可解释性三列
  • 做一次错误分析,而不是只报均值分数

本周输出

  • 一篇博客:《SFT 改变了模型的什么》
  • 一篇博客:《我如何理解大模型评测:指标、偏差与真实性》

第 4 周:做出自己的闭环项目

第四周不再继续扩张内容,而是收束成一个项目。

这一步很重要,因为只有把知识压到一个具体项目里,结构、训练、评测和系统四条线才会真正连起来。

目标

  • 完成一个可以放进简历、面试和博客的项目
  • 形成自己的个人叙事
  • 让前 3 周的内容从“知道”变成“会讲、会做、会复盘”

我更推荐的项目

相比纯评测项目,我更推荐做一个更完整的小闭环:

一个 tiny GPT / 小模型微调项目 + 一份结构化评测报告

它至少应该包含:

  • 模型或微调对象
  • 数据说明
  • 训练配置
  • 关键系统约束
  • 基础评测结果
  • 误差分析
  • 结论和下一步改进方向

为什么推荐这个方向

因为你的已有经历已经证明你碰过评测和系统。

现在更需要补的是:

  • 把模型结构讲清楚
  • 把训练过程讲清楚
  • 把评测结果解释清楚

换句话说,最能代表你能力的,不是“我又做了一次评测”,而是:

我能从模型结构出发,走到训练和系统,再落回评测与分析。

本周输出

  • 一篇博客:《4 周大模型强化总结:结构、训练、评测与系统》
  • 一份项目报告
  • 一页面试可讲的项目摘要

每天怎么安排

如果按高强度模式推进,我建议每天分成三段:

  1. 理论与论文:2 小时
    目标是建立概念和问题意识。

  2. 代码与实验:2 小时
    目标是把理论转成真正可运行的对象。

  3. 记录与复盘:1 小时
    目标是把零散收获沉淀成自己的语言。

如果当天时间更少,也至少要守住一个最小版本:

  • 一个理论问题
  • 一个代码动作
  • 一段复盘记录

我最需要警惕的几个误区

误区一:看了很多,但没有统一框架

大模型资料极多,很容易进入一种“今天看 LoRA,明天看 RLHF,后天看 scaling law”的状态。

如果没有统一主线,最后只会记住许多关键词,而不是结构化理解。

误区二:只看论文,不做实验

对数学背景较强的人来说,这一点尤其危险。

论文读懂并不意味着训练、推理、显存、数值稳定性这些问题就自动懂了。只有自己动手跑过,很多系统层细节才会真正进入理解。

误区三:只看分数,不做错误分析

这和我之前接触的大模型评测经验直接相关。

均值、排行榜和 benchmark 名次当然重要,但如果不能解释错误来源,就很难形成更高层的判断力。

误区四:把系统问题和模型问题完全分开

在 LLM 里,系统从来不是附属品。

序列长度、显存上限、吞吐、混合精度、并行策略,这些因素都不是训练结束后才考虑的“部署问题”,而是会反过来影响训练和模型设计的核心变量。

这 4 周结束后,我应该如何介绍自己

如果这套路线真的落实下来,我希望自己最后能用一句比较有力量的话介绍自己:

我有计算数学背景,也做过大模型评测和 HPC 算法实习。最近系统补齐了 Transformer、训练流程、后训练方法和评测框架,并做了一个从训练到评测的小闭环项目。我的优势是数学建模能力、系统效率意识,以及把模型行为和评测现象联系起来分析。

这段话之所以重要,不是因为它“好听”,而是因为它能把我的背景真正组织起来。

小结

这 4 周的路线图,核心不在于“覆盖了多少知识点”,而在于建立一套稳定的认知骨架:

  1. 用结构理解模型
  2. 用训练理解能力来源
  3. 用评测理解输出表现
  4. 用系统理解现实约束

对于已经做过大模型评测和 HPC 实习的人来说,这样的强化方式比零散补课更有效。

真正值得追求的,不是“看起来懂很多”,而是:

  • 能把复杂问题讲清楚
  • 能把理论和实验连接起来
  • 能把结果和机制联系起来
  • 能逐步长成自己的研究和工程风格

如果这四周能够把这几件事做扎实,那么它就不仅仅是一份学习计划,更是一段能力重构的开始。