实验入口|从已有结果继续判断
实验材料围绕本讲的表示、序列生成、动态读取、图像条件和资源选择展开。可以先阅读已经保存的输出,再选择一项值得核对的计算。读本解释问题和机制,LAB 提供代码、参数、结果与可改变的条件。
课堂“我昨天给了他一本书。”用于连续理解系统怎样工作;Notebook 中的字符反转、小语法、湖边图片和随机 decoder 各有自己的任务。它们的结果要按原输入与评价条件理解,不能直接当作这句自然翻译的成绩。
七本 Notebook,从自己的问题进入
| Notebook | 适合带着什么问题进入 | 当前课堂与正文 |
|---|---|---|
| CLS 00 · 第五讲材料导读 | 我的问题属于哪一段?怎样在读本、机制计算与已有结果之间往返? | 全课学习路线 |
| CLS 01 · 序列目标与共享状态 | 文字怎样成为表示?每步预测什么?共享状态和共享参数怎样参与训练? | 表示(T01–T09)、状态与生成(T10–T18);第一章、第二章 |
| LAB 01 · 序列状态与预测目标 | 观察共现与切分;读取已训练小语言模型的结果;复算共享梯度、门控与共同后缀任务。 | 输入与表示、状态与梯度、目标与评价 |
| CLS 02 · Attention 与 Transformer | 固定摘要为什么可用?读取怎样形成预测?整套 Transformer 和训练目标怎样连接? | 读取(T19–T24)、Transformer(T25–T34)、训练(T40–T43);第三章、第四章、第五章 |
| LAB 02 · 读取机制与架构判断 | 复算搜索树和 q/V 干预;读固定摘要与动态读取的已训练合成任务;定位一条生成错误。 | 2014 年的翻译选择、从读取到预测、训练与生成 |
| CLS 03 · 生成、视觉条件与上下文 | 怎样区分训练评分、实际生成、视觉通路、事实使用和资源成本? | 视觉条件(T44–T49)、执行(T50–T51);第六章、第七章、第八章 |
| LAB 03 · Transformer、视觉条件与有效上下文 | 跟踪一个完整 encoder block;换图并关闭视觉分支;检查缓存等价、失效、计时和证据位置。 | 完整 Transformer、视觉条件、缓存与有效上下文、资源账本 |
若要运行,先在自己的副本执行对应 LAB 的准备单元和依赖。LAB 01 的语言模型、LAB 02 的 Seq2Seq 默认加载既有 checkpoint;只改采样或搜索时可以复用参数。要研究新的训练配置,再启用相应重训开关。新的结论依据本次实际输出,参考结果用于对照。
例一:模型分数改善以后,完整输出为什么还要检查?
从 LAB 02 的“D/E · 固定源序,比较两种读取接口”进入。任务是把字符序列反转,例如 a c b → b c a EOS。下面是 2026-10-15 保存的 CPU 云端结果:两组都用双向 LSTM 编码器、同一去重划分 3000/300/300,源长度为 3–7;共同完成 500 次更新,每组累计处理 102,417 个目标 token。
| 保存的测试结果 | 固定摘要 | 动态读取 |
|---|---|---|
| 参数量 | 15,577 | 16,601 |
| 每个目标 token 的负对数似然 NLL,越低越好 | 0.287898 | 0.106673 |
| 300 条测试序列的整句精确匹配率 | 57.67% | 87.00% |
| 长度为 7 的精确匹配率,92 条 | 22.83% | 73.91% |
先看两组都能拟合 16 条短例,再看完整测试和逐长度结果。这个次序使“系统可以工作”与“在什么条件下更好”成为两个问题。长度 3 的测试仅有 2 条,不能凭它的高分判断稳定能力。动态组多出 1,024 个参数;这次单种子合成结果支持特定条件下的比较,尚不能给自然翻译或所有架构排名。配置、曲线、失败例与保存结果可在 LAB 02 和相应完整主题核对。
接着查找“路径A · 分数进步了,为什么这一句仍然错”。保存样本的源为 b d a d e,正确目标为 e d a d b EOS,greedy 却输出 d e d a b EOS。第一步两条路径都只接收 BOS,已经选错,因而首错不能归因于此前自馈错误的累积。
在这个现成例子里,将 beam_width 在 1、2、4 之间切换,核对最后一轮候选表,同时保持 checkpoint 和评分规则不变。已保存结果中,宽度 2 保留了正确完成项,但模型给它的累计 log 概率约为 −1.280045,低于错误完成项的 −0.905535。扩大搜索并未自动修正模型排序。把“有没有找到候选”“模型怎样评分”“任务答案是否正确”分开,就能更有根据地选择下一项改动。逐步前缀与概率表见训练与生成主题。
例二:换图后分布变了,证据究竟支持什么?
从 LAB 03 的“视觉接口”或“路径B”进入。这里使用湖边与 bank 两张已有图片、固定前缀 a scene,将 224×224 图片分成 196 个 patch。每块的 RGB 均值和 x/y 位置经随机投影进入 cross-attention;视觉投影、语言侧参数和词表头均未训练。
先看四个条件:A 图开分支、B 图开分支、A 图关分支、B 图关分支。保存结果中,换图后的最大 logits 差约为 0.016440292;两图最高概率词仍都是 a。关闭包含输出偏置在内的整条视觉分支后,两图 logits 的差为 0。这证明本次图像通路影响了计算,而且关闭操作确实隔离了该通路;它没有证明模型正确理解了图片。完整图、张量表与输出可以逐项对照。
动手时可先复算现有四个条件:保持参数、前缀和预处理相同,换图时重算 Z、K、V;开关分支时同时查看中间量与最终 logits。如果关闭分支后仍有图像差异,就检查是否还残留图像路径或偏置。不要只挑一张热图来命名模型“看到了什么”。
再与第三讲 LAB14 的受训像素问答记录比较。那项任务用 720 张训练图、180 张留出图,每图询问数量、左侧颜色或右侧形状;保存的图+问模型在 540 个留出图问对上总体为 100%,另训的问题模型、零图输入和循环错配图条件总体均为 44.44%,但分项表现不同。问题模型与零图也不是同一个干预。这是有限受控任务中的训练能力证据,任务、模型和图片都与本课随机通路不同。
课堂的蓝书/红书比较则是在明确“描述事件并补充颜色”的任务后提出事实使用检验。它还没有新的模型准确率。把这三种证据分别读清,才知道下一步需要检查接线、学习对应,还是评价事实使用。
例三:缓存算得相同,为什么保存的计时反而更慢?
从 LAB 03 的“G · 旧 K/V 哪些可以沿用,哪些必须作废?”进入。模型是未训练的两层 TinyDecoder,宽度 8、两头、batch 1、float64。先核对同一组 token 的逐层缓存路径与完整前缀重算,再读计时。
同一份保存的 CPU 云端记录使用 16 个 token 做 prefill,之后追加 32 个预定 token;一次预热、五次测量,prefill 另计:
| 检查或测量 | 保存结果 |
|---|---|
| 多种合法前缀与位置配置中的最大 logits 绝对误差 | 约 2.72×10⁻¹⁵,低于 10⁻¹⁰ 容差 |
| 错把新增位置设为 0 的差异 | 约 3.101679 |
| 改旧前缀却沿用旧缓存的差异 | 约 0.158329 |
| cached decode,32 步合计中位数 | 19.95 ms |
| 完整前缀重算,32 步合计中位数 | 11.46 ms |
| 48 个位置的 K/V 数组数据量 | 12,288 字节 |
这次缓存路径确实更慢。它使用便于核对的 Python 标量循环和逐次拼接,完整路径则使用 NumPy 矩阵计算。减少重复工作与缩短墙钟时间是不同判断;这些毫秒既不是每 token 延迟,也不能拿去给现代 GPU 内核排名。数组数据量仅统计 K/V payload,不是进程总内存。结果与计算口径见缓存主题和资源账本。
先在现有表中比较合法复用、错误位置和过期缓存,解释为什么后两者应该失效。想改条件时,可从上方六 token 的逐步演示入手:固定模型与 token,选择另一个 prefill 切点,再让每个新增位置同时走缓存和完整重算两条路径,逐步核对误差。要复测速度则使用完整计时单元,并记录自己的环境;小演示的耗时不能替代上表的测量协议。
还可阅读“路径C”的门禁记录:把一条撤回通知移动到文档开头,保留事件时间与总长度,按规则得到的答案不变。但随机 decoder 的数值一致性不能告诉我们它是否会处理撤回或采用远处事实。KV cache、有效上下文能力和 FlashAttention 的 GPU 执行性能,需要各自相应的证据。
带着一个问题回到同一份结果
不必先运行全部单元。可以从某个完整主题读出疑问,把主题 URL 和具体困惑交给 Agent;讨论涉及实验时,加上正在看的输入、参数或输出。然后回到原 Notebook,核对 Agent 的解释是否能对应到真实表格和计算。
已有结果、机制复算与新训练可以相互帮助,但结论要对应实际做过的操作。进一步需要多种子训练、自然翻译数据、视觉能力评价或 GPU 测量时,应先说明新的问题与条件,再依据新结果作判断。原 A–G 实验的详细过程、历次配置与来源可在完整材料档案继续查阅。