啃完这本开源教材,大模型的底层逻辑我算是理清了
- 2026-09-22 11:06:06
ALL IN AI|啃完这本开源教材,大模型的底层逻辑我算是理清了
——《大模型基础》全六章拆解与延伸
刷了那么多AI资讯,是不是感觉自己“什么都懂一点,但什么都说不清”?最近把浙江大学 DAILY 实验室出品的开源教材《大模型基础》(GitHub:ZJU-LLMs/Foundations-of-LLMs,目前已 16k+ star,每月持续更新)从头到尾啃了一遍。这本书的特点是不追最新模型发布,而是把大模型技术拆成六块基础积木——语言模型基础、大模型架构、Prompt 工程、参数高效微调、模型编辑、检索增强生成——逻辑链条非常完整,很适合工程师系统补课。这篇把每一章的核心内容和关键概念都展开讲一遍,并补充了书里没有覆盖的 2026 年最新进展,尽量讲透、讲具体。

第一章:语言模型基础——搞懂“预测下一个词”这件事
这一章是全书的地基,核心问题只有一个:给定前面的文字,模型怎么预测下一个词?三代方法给出了三种答案。
1.1 n-gram:靠“数数”预测
最朴素的做法是统计:在海量语料里数一数“在某几个词后面,下一个词出现的频率”,频率最高的就是预测结果。这就是 n-gram 语言模型——n 表示往前看几个词(如 bigram 看1个词,trigram 看2个词)。它的问题很直接:n 取大了,词组合数量指数级爆炸,绝大多数组合在语料里根本没出现过(稀疏性问题);n 取小了,又抓不住长距离的语义依赖,比如“这本书……我读了三遍”,隔了十几个字的主谓关系统计不出来。
1.2 RNN:让模型有“记忆”
循环神经网络(RNN)用一个隐藏状态(hidden state)把前面读过的所有内容“压缩”记下来,逐词更新,理论上可以处理任意长度的上下文。但实践中它有两个硬伤:一是梯度消失/爆炸,序列一长,反向传播时梯度会指数级衰减或膨胀,训练不稳定(LSTM、GRU 用门控机制缓解,但没根治);二是只能逐词串行计算,没法像后面的 Transformer 那样并行训练,速度上不去。
1.3 Transformer:并行 + 注意力,彻底改变游戏规则
2017 年 Transformer 的出现解决了 RNN 的两个痛点。核心机制是自注意力(Self-Attention):每个词在编码时,会直接和序列中所有其他词计算“相关度”权重,再按权重加权汇总信息——不需要像 RNN 那样一步步传递,长距离依赖可以“一步到位”,而且所有词的计算可以矩阵并行,训练效率大幅提升。这一节也会讲到 Transformer 本身的局限:自注意力的计算复杂度是序列长度的平方(O(n²)),这也是后来大家拼命优化长文本处理效率的根源,第 2.6 节讲的 SSM、TTT 等新架构,很大程度上就是冲着这个平方复杂度去的。
1.4~1.5 分词与语言模型评测
这两节属于“工程基本功”:分词部分讲文本如何切分成模型能处理的最小单元(token),涉及子词切分等策略,直接决定了模型的词表大小和对生僻词、多语言的处理能力;评测部分讲怎么衡量一个语言模型“好不好”,包括困惑度(perplexity)等内在指标和下游任务表现等外在指标——这是后面每一章讲新方法时,判断“是否真的有效”的度量基础。
第二章:大模型架构演进——三条路线怎么走出来的
这是全书最硬核的一章,核心逻辑是:Transformer 提出后分化出三条主流路线,外加一条“非 Transformer”的新兴支线。
路线 | 代表模型 | 训练目标 | 擅长任务 |
Encoder-only | BERT / RoBERTa | 掩码语言建模(完形填空) | 文本分类、实体识别、语义理解 |
Encoder-Decoder | T5 / BART | 将各类任务统一为“文本到文本” | 翻译、摘要、结构化转换 |
Decoder-only | GPT 系列 / LLaMA | 自回归预测下一个词 | 开放式生成、对话、推理 |
2.1~2.2 注意力机制与结构优化
这两节讲 Transformer 内部的持续优化:包括位置编码方案的演进(如何让模型知道词的顺序,从绝对位置编码到相对位置编码、旋转位置编码 RoPE)、归一化方式(Pre-LN / Post-LN)和激活函数的选择等细节——这些看似“调参”级别的改动,实际上是后来模型能稳定训练到千亿参数规模的关键工程积累。
2.3 Encoder-only:BERT 一脉,专精“理解”
BERT 用掩码语言建模(随机遮住15%左右的词,让模型根据上下文猜出被遮住的词)来预训练,天然适合需要“双向理解”整句话的任务,比如情感分类、命名实体识别。这条路线的局限是不擅长自由生成——结构上就不是为“往后接话”设计的。
2.4 Encoder-Decoder:T5 / BART,把任务统一成“文本到文本”
这条路线的巧思是把所有NLP任务(翻译、摘要、问答……)都统一表示成“输入一段文本,输出一段文本”的形式,Encoder 负责理解输入,Decoder 负责生成输出。T5、BART 是这条路线的代表,特别适合翻译、摘要这类有明确“输入-输出”映射关系的任务。
2.5 Decoder-only:GPT / LLaMA,现在的主流
只保留 Decoder,用纯自回归的方式“不断预测下一个词”来训练,结构最简单,但在足够大的参数量和数据量下展现出很强的涌现能力(few-shot、思维链推理等)。现在市面上几乎所有主流的对话式大模型(GPT 系列、LLaMA 系列等)走的都是这条路线——原因也很直接:生成任务是通用性最强的任务形式,理解、翻译、问答都可以转化成“生成一段回答”来做,一套架构能覆盖所有场景。
2.6 非 Transformer 架构探索:SSM 与 TTT
正因为自注意力有 O(n²) 的复杂度瓶颈,学术界一直在探索替代方案。状态空间模型(SSM,如 Mamba)借鉴控制论思想,用线性递推的方式处理序列,复杂度降到线性,同时通过硬件感知的并行算法弥补了传统 RNN 训练慢的问题,在长序列任务上展现出潜力;TTT(Test-Time Training)则是一种更激进的思路——把“记忆”本身设计成一个会在推理时持续更新的小型神经网络,而不是固定长度的隐藏状态。这条支线目前还在快速演进中,是长文本处理效率的重要研究方向。
第三章:Prompt 工程——不训练模型,也能让它“听话”
核心问题:不改动模型参数,只靠设计输入(提示词),能不能让模型完成特定任务、甚至学会新任务?
3.1 Prompt 基础与构造方法
讲提示词的基本设计原则——任务描述、示例、输出格式约束如何组合,以及不同构造方式(人工设计、自动搜索、连续可学习的“软提示”)之间的取舍。
3.2 上下文学习(In-Context Learning)
这是大模型一个很反直觉的能力:只要在提示词里给几个示例(few-shot),模型不需要任何参数更新,就能“照猫画虎”地完成新任务。这一节讲的是这种能力背后的机制解释,以及示例的数量、顺序、相似度对效果的影响——实践中经常发现,示例选得好不好,效果差异可以很大。
3.3 思维链(Chain-of-Thought)与推理
直接让模型输出答案,和先让模型“把中间推理步骤写出来再给答案”,正确率往往有显著差距——这就是思维链提示。这一节系统梳理了触发链式推理的方法(包括“Let's think step by step”这类零样本触发方式),以及推理路径的验证和自洽性(比如生成多条推理路径投票选最一致的答案)。这也是目前 o1、DeepSeek-R1 这类“推理模型”思路的早期雏形。
3.4~3.5 Prompt Tuning 与 Agent 应用范式
3.4 节讲连续提示学习方法(把提示词本身变成可训练的连续向量,而不是人工写的文字);3.5 节则落到应用层,讲基于提示词驱动的 Agent(智能体)怎么工作——模型如何通过提示词理解“可以调用哪些工具”“下一步该做什么”,并给出具体的 Text-to-SQL(自然语言转数据库查询)等落地案例。
第四章:参数高效微调(PEFT)——花小钱办大事
背景很实际:一个千亿参数模型做全量微调,显存和存储成本高到大多数团队负担不起。这一章讲的就是怎么用远小于全量参数的训练量,让模型适配特定领域任务。
方法 | 核心思路 | 代价 / 特点 |
全量微调 | 更新模型全部参数 | 效果上限高,但显存和存储成本极高 |
LoRA | 给权重矩阵加一个低秩“旁路”,只训练旁路 | 参数量可降到全量的 0.1%~1%,训练快、可插拔 |
Prefix/Prompt Tuning | 在输入前拼接一段可学习的“虚拟前缀” | 参数量更小,但对模型规模和任务较敏感 |
Adapter | 在每层中插入小型瓶颈网络模块 | 结构清晰、易于模块化管理,但会增加推理延迟 |
4.4 LoRA:目前最主流的方案
LoRA(Low-Rank Adaptation)的核心假设是:模型在微调时,权重的“变化量”本质上是低秩的——不需要更新整个权重矩阵,只需要用两个小矩阵的乘积来近似这个变化量,训练时只更新这两个小矩阵,参数量能降到全量微调的 0.1%~1%。它的优点很突出:训练快、显存占用低,而且训练完的 LoRA 权重可以像“插件”一样加载或卸载,不同任务可以对应不同的 LoRA 模块,互不干扰。书里这一节详细讲了 LoRA 的数学原理、如何选择插入哪些层、秩(rank)大小的取舍,以及 QLoRA、AdaLoRA 等变体的改进思路。
第五章:模型编辑——给模型做“精准手术”
场景很具体:大模型记错了一条事实(比如把某个人的职位记错了),能不能只修正这一条知识,而不影响模型其他能力、也不用重新训练整个模型?这就是模型编辑(Model Editing)要解决的问题,本质上是想在“修改成本”和“修改精度”之间找到最优解——比全量微调轻量得多,又比简单的提示词覆盖更持久、更底层。
5.3 T-Patcher:给模型“打补丁”
思路类似软件工程里的打补丁——在网络中插入额外的、只在特定输入条件下激活的小模块,专门负责修正某条具体的错误知识,不触碰原有参数,出问题也容易回滚。
5.4 ROME:定位并重写事实存储的位置
ROME(Rank-One Model Editing)走的是更“外科手术”式的路线:先通过因果追踪等方法,定位模型内部哪一层、哪个模块存储了某条事实性知识,再直接对这部分参数做一次低秩(rank-one)的精确修改,把错误知识替换成正确知识。这一节还讲了如何评价编辑效果——不仅要看目标知识改对没改对,还要看修改会不会“误伤”模型其它不相关的知识(这在评测里通常叫泛化性和局部性的权衡)。
第六章:检索增强生成(RAG)——让模型先“查资料”再回答
大模型的知识被固化在训练数据的时间点,也没法访问企业内部私有数据,回答专业问题时容易“一本正经地胡说八道”(幻觉)。RAG的思路是:先把外部知识库切分、向量化、建立索引;用户提问时,先检索出最相关的几段文本,再和问题一起交给大模型生成答案——相当于开卷考试。
6.1~6.2 RAG 的问题背景与整体框架
先讲清楚 RAG 要解决的核心痛点(知识时效性、私有数据、幻觉),再给出标准流程:文档切分(chunking)→ 向量化(embedding)→ 建立索引 → 检索(retrieval)→ 拼接上下文 → 生成(generation)。
6.3 检索优化:怎么让“查得准”
检索质量直接决定了 RAG 的效果上限。这一节覆盖的优化点包括:切分策略(切太碎丢上下文,切太粗又检索不精准)、查询改写(把用户的口语化提问改写成更利于检索的形式)、多路召回与重排序(rerank,先粗筛再精排)、以及结合关键词检索和向量检索的混合检索方案。
6.4 生成优化:怎么让“答得好”
拿到检索结果之后,怎么让模型更好地利用这些资料:包括如何组织检索到的多段文本喂给模型(顺序、去重、长度控制)、如何让模型明确标注引用来源、以及当检索结果和模型自身知识冲突时如何处理。
6.5 RAG 评测与前沿方向
怎么评价一个 RAG 系统好不好——既要评检索环节(召回率、准确率),也要评最终生成质量(忠实度、相关性),这一节也指向了当时最新的 RAG 改进方向。
书里没写但值得补的:2026 年的新变化
这本书成书于 2024 年底,过去一年多行业里几个新趋势值得单独说一说:
•Agentic RAG 成为主流:传统 RAG 是“查一次、答一次”的固定流程;现在的做法是让智能体自己判断要不要查、查哪个数据源(向量库、SQL 数据库、知识图谱、实时 API 都可以)、查完够不够,不够就自主再查一轮甚至改写子问题——检索本身从一个固定管道变成了一个可以规划、迭代、自我纠错的过程(业界也称为 Corrective RAG、Self-RAG、Adaptive RAG 等具体范式)。
•RAG / 微调 / Agent 从“二选一”走向“组合拳”:行业里逐渐形成共识——RAG 负责补充“知识”,微调负责调整“风格与行为”,Agent 负责“执行动作”,三者分工不同、不能互相替代,实际生产系统里往往是三者搭配使用。
•书的作者团队也在计划扩充:公开信息显示,后续版本会补充推理加速和 LLM Agent 这两个新章节——说明基础教材本身也在追着行业演进往前走,值得持续关注更新。
对咱们做汽车电子软件的启发
这本书讲的是通用大模型基础,但底层逻辑对做 EOL 测试工具、诊断系统的同学也很有参考价值,举两个具体的对应关系:
•PEFT / LoRA 的思路——“不重新造一个大模型,只调整一小部分参数去适配特定任务”,和我们给通用测试平台做产线/车型定制化适配的思路是相通的:核心框架不动,只针对具体车型、具体 ECU 做“轻量补丁”式的适配层,而不是每次都推倒重来。
•RAG 的检索增强思路——可以直接用在“让 AI 助手基于我们自己的诊断手册、故障码库(DTC)、UDS 协议文档来回答问题”这类场景上,既能减少幻觉,又不需要把敏感的内部资料拿去训练模型。
•模型编辑的思路——如果未来在产线上用大模型做辅助诊断,某条知识过时了(比如某个故障码的处理方案更新了),模型编辑技术提供了一种不用重新训练整个模型就能“精准纠错”的可能性,值得关注但目前离工程落地还有距离。
这本书是完全开源免费的,PDF 和按章节拆分的内容都在 GitHub 仓库里,还配了论文清单方便深挖,适合当工具书常备案头、随时翻查。
需要PDF请联系博主领取。