拓展阅读

数学与实现补充

从自动求导到小型语言模型的实践支线

阶段 166 项展开讲义正文全部展开

沿着对象与状态理解本章

训练的一批数据里,输入和正确后继已经给定,因此可以对多个位置一起计算预测误差,但因果mask仍禁止偷看未来。读训练公式时先分清前向、损失、反向与更新;backward并不意味着参数已经改变。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F18

训练:给每个位置一道“下一项”题

为什么训练看完整句,生成却只能往前走?

训练时答案放在试卷的评分区,所以各位置的题目可以同时准备;mask负责不让模型读到自己的答案。生成时后续Token还未决定,下一题的前缀依赖本题选择。两者共享因果预测目标,但已知信息不同。

标签用于评分的真实下一Token。
交叉熵本例为真实目标概率的负对数。
有效目标数实际参与评分的位置数,不必等于补齐长度。

输入与适用条件:标签对齐使用5项序列;单位置交叉熵与PAD平均分别是明确独立的小例,不假称那些概率来自对齐图的模型。

1 / 5 · 把输入和目标错开一格

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

训练:给每个位置一道“下一项”题:把输入和目标错开一格我输入0爱输入1学习输入2!输入3爱目标0学习目标1!目标2EOS目标3

完整教学序列为“我/爱/学习/!/EOS”。输入用前四项,目标用后四项。每个输入位置预测的是其后一个真实Token。

输入=[1,2,3,5];目标=[2,3,5,6]

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

用清晰的预测任务,把参数更新与语言序列关系连接。

怎样实现

正确移动标签、限制可见性、屏蔽无效目标、按有效数归一化。

可能的代价与误解

偷看未来会产生漂亮但虚假的训练成绩;训练样本重复或泄漏也会高估泛化。

如何判断是否做对

用极小固定序列验证每个输入位置和目标位置,再验证PAD不影响有效损失。

必要数学与实现基础

向量、矩阵、条件概率、对数、导数和链式法则是理解小型语言模型的入口。深度学习教材提供基础,CS336和从零实现课程把概念接到模型。无需先学完全部数学才实验,但每个公式都应能解释量的含义。[S191][S005][S193]

向量表示特征,矩阵做变换,点积计算相容性,softmax归一化分数,负对数似然惩罚真实目标概率过低。运算角色不意味着每个维度都对应人能命名的概念。

一次梯度更新

原创例子:y=wx+b、L=(y-t)^2。x=2、t=5、w=1、b=0时,y=2、L=9;梯度dL/dw=-12、dL/db=-6。学习率0.1更新后w=2.2、b=0.6,恰好y=5。这是特定数值巧合,不代表梯度下降一轮总能最优。

自动求导按计算图传播梯度,不替你判断损失目标正确。计算梯度与优化器更新参数不同;推理通常不需要训练所用梯度图。[S194]

从字符模型连接完整链路

原创实验可用自有短文本建立字符词表,构造输入与右移目标,训练小型自回归模型,再采样。字符级便于教学,不是现代子词Tokenizer的完整替代。

Token张量常为B×T,Embedding后B×T×D,注意力在序列位置间计算,输出每个位置对词表的分数。因果Mask和目标右移防止偷看答案。nanoGPT提供简洁实现入口,本书未声称训练或复现其成绩。[S192]

数据切分与泛化

训练集更新参数,验证集选配置,测试集做较独立评价。反复看测试改模型会使它变成开发数据。相邻或近重复内容随机切分可能泄漏,应按文档、时间或来源考虑。[S023][S005]

原创例子:README旧版训练、新版测试,可能大量重合,不能证明新项目泛化。只跑通pipeline也不等于理解目标对齐和过拟合。[S001]

五个完成标准

指出Tokenizer输出;追踪Embedding和注意力维度;手算softmax;解释损失;说明推理为何不更新权重。随后做控制实验:去Mask是否泄漏,打乱目标会怎样,小数据是否过拟合,温度改变分布还是事实验证。

配套实验无需API,帮助隔离机制,不代替真实模型评测。底层知识最终服务工程诊断:缓存不是记忆,压缩不是训练,工具结果只是新增输入,长窗口不是约束保证。

自检:训练损失下降测试变差?可能过拟合或分布差异,不能直接叫更聪明。小实验能证明商业Agent质量?不能,只能解释局部机制。

逐项中文讲义

保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。

B16.1 · 从自动求导到语言模型

对应资料:Neural Networks Zero to Hero

Zero to Hero从基础神经网络与自动求导逐步连接到语言模型,适合通过实现理解计算图、训练与生成。课程内容不等于使用Agent前必须完成的全部前置条件。

先掌握一条完整链:输入、运算、损失、梯度、更新、评价,再扩展模型结构。只复制训练代码容易忽略目标对齐与数据问题。

运行示例 · R16-01

自动求导从计算图传播什么

输入与条件。y=(2w−10)^2,w=1。

步骤与对象内部动作中间结果 / 新状态
1前向2w−10=−8,y=64保存必要中间量。
2局部导数dy/dz=2z=−16,dz/dw=2链式相乘。
3梯度dy/dw=−32优化器再决定怎样更新w。

把过程连起来。求导与更新是分开的步骤;这里不是模型自己“知道错在哪”的语言判断。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:手算一个标量模型的梯度,再用有限差分核对,说明误差来自哪里。

完成标准是能解释每步运算与训练目标,而不是只看到损失下降曲线。

拓展阅读目录事实依据 [S191] · 练习与工程推导为本书独立编写。

B16.2 · 最小GPT训练系统

对应资料:nanoGPT

nanoGPT以较简洁实现连接数据、GPT模型、训练与采样。它适合源码学习,但本书没有声称下载、训练或复现其性能。

阅读时应固定版本,追踪输入形状、因果掩码、目标右移与生成循环。训练代码和推理代码承担不同工作。

运行示例 · R16-02

最小GPT训练也要正确移动标签

输入与条件。序列[A,B,C,D]。

步骤与对象内部动作中间结果 / 新状态
1输入[A,B,C]每位置只能看过去。
2标签[B,C,D]预测下一个而非当前位置自己。
3错误反例标签也用[A,B,C]可能学复制,损失低却不具备目标能力。

把过程连起来。从小模型做起也不能省掉因果与监督对齐。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:在纸上列出一个批次的输入与目标,检查是否发生未来信息泄漏,再说明推理时为何没有梯度更新。

完成标准是能够定位关键组件,不要求先训练出具有实用规模的模型。

拓展阅读目录事实依据 [S192] · 练习与工程推导为本书独立编写。

B16.3 · 从零训练的实践路线

对应资料:Stanford CS336

再次进入CS336实践支线时,重点是把模型、数据和系统实验组织成可复现过程。配置、版本和评价条件与代码同样重要。

训练异常可能来自数据、优化、精度或实现,不应首先假定需要更大模型。小实验有助于隔离变量。

运行示例 · R16-03

一个可运行训练系统的检查顺序

输入与条件。模型输出突然NaN。

步骤与对象内部动作中间结果 / 新状态
1输入层检查ID范围与空batch先排数据错误。
2数值层检查softmax全mask、除零、溢出找首个非有限值。
3训练层再查梯度、学习率、更新不要一开始就扩大模型或换数据集。

把过程连起来。分层检查比随机调参更容易定位真正原因。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:设计一次只改变学习率的比较,固定数据与随机设置,记录训练及验证变化。

完成标准是能够提出并检验因果假设,而不是同时改动许多参数后只保留最好一次结果。

拓展阅读目录事实依据 [S005] · 练习与工程推导为本书独立编写。

B16.4 · 模型生态的实际使用

对应资料:Hugging Face LLM Course

Hugging Face工具生态帮助加载模型、Tokenizer与数据,并组织训练和推理。高层接口降低使用门槛,但不应掩盖底层输入输出含义。

同一pipeline名称可能使用不同模型和配置,结果需结合实际资源解释。库版本与模型文件也应记录。

运行示例 · R16-04

Tokenizer与模型权重必须匹配

输入与条件。模型词表中ID2是“爱”,却用另一Tokenizer把2当“你”。

步骤与对象内部动作中间结果 / 新状态
1形状ID仍在合法范围程序不会一定报错。
2语义查到了错误词表行输入被系统性误解释。
3版本绑定Tokenizer、模板和权重不能只验证张量大小。

把过程连起来。数值合法不保证符号映射正确。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把一次高层调用拆成编码、模型前向和后处理,检查每层形状与输出类型。

完成标准是能在高层接口失败时找到对应层,而不是只能反复修改自然语言Prompt。

拓展阅读目录事实依据 [S001] · 练习与工程推导为本书独立编写。

C16.5 · 数学、概率与优化基础

对应资料:Deep Learning Book

深度学习教材提供线性代数、概率、优化和网络基础。对本课程,最重要的是理解矩阵变换、条件概率、损失与链式法则之间的联系。

数学公式应能转成具体计算与维度检查。符号记忆不能替代理解,也不必为掌握全部理论而停止实际实验。

运行示例 · R16-05

指数和对数必须说明底数

输入与条件。给概率p=0.5,交叉熵用自然对数。

步骤与对象内部动作中间结果 / 新状态
1自然对数−ln0.5≈0.693147单位为nat。
2二进制对数−log2(0.5)=1单位为bit。
3比较两者只差固定比例不能把0.693和1当模型表现差异。

把过程连起来。数学定义和单位是算例准确性的一部分。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:手算softmax、交叉熵和一个简单梯度,解释数值变化对应什么学习信号。

完成标准是能读懂小模型核心公式,并知道哪些结论依赖特定假设。

拓展阅读目录事实依据 [S193] · 练习与工程推导为本书独立编写。

C16.6 · 张量、自动求导与模型训练

对应资料:PyTorch Documentation

PyTorch通过张量与自动求导支持模型实现。自动求导计算梯度,优化器更新参数,两者不是同一动作;推理通常不需要保存同样的训练图。

框架不会判断你的损失是否表达正确业务目标,也不会自动避免数据泄漏。维度、目标和训练/验证模式仍需检查。

运行示例 · R16-06

梯度默认会累积,为什么要清零

输入与条件。同一参数两次backward各贡献2。

步骤与对象内部动作中间结果 / 新状态
1第一次grad=2已有累积。
2不清零第二次grad=4是求和,不是自动替换。
3训练选择需要梯度累积就按正确分母使用;普通下一步则清零避免意外放大学习步长。

把过程连起来。API行为必须与训练意图一致。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:用本书无需依赖的标量实验先验证梯度,再在合适环境中迁移到张量库,比较结果。

完成标准是理解框架负责什么、开发者负责什么。本包不依赖某个当前PyTorch版本即可阅读和运行基础实验。

拓展阅读目录事实依据 [S194] · 练习与工程推导为本书独立编写。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。