Skip to content

全书交互还缺什么:有边界的下一步 ​

现有基线有 17 个组件、23 处嵌入,分布在 19 章。这不代表那 19 章已经讲完,也不代表另外 231 章都该加动画。下一步应补读者容易算错、排错顺序或混淆状态的局部机制,再复用到真正适用的章节。

本轮整理出 65 组剩余候选,涉及 170 章;其中 83 章过去被初筛为静态或保留正文。旧的“97 章”只是一轮初筛结果,不是目标或上限。组数也不是承诺新增的组件数:若现有模型足够,优先复用;不合适的候选可以撤回。

这轮实际读到了哪里 ​

全部 250 章都读了两处正文摘段;其中 12 章另外读完全部 Markdown 文字、代码块与来源段。其余 238 章仍是抽读,还要逐节复核。本轮没有完整阅读全书 276 万字符的正文,也没有检查所有图片像素或重跑书中实验。

逐章记录中的摘段带源文件行号、原文和截断标记。行号用于定位;若只显示了一段的前 125 字,就不能说整段或整节读完。自动计算哈希、行数或提取标题也不算阅读。已有 concept-reviews 的深读记录单独保留,不冒充本轮再次通读。

远端基线为 eb69b9f2ed6f3654b9480e8f2058e5b30bb10c63,已由主任务在 16:18 UTC 通过 GitHub 分支读取核验;本地快照为 f17e22bf5298f4ec8802dafdd0a6ccfa722d5e28。两边使用独立提交图,主任务已确认内容对应。本报告用每章文件哈希固定所读内容,不声称本地 Git 能解析远端提交。

两项正在实施,不重复加入待做队列 ​

  • ip01:按有效 token 加权的梯度累积。当前新嵌入落在 Happy LLM 07.1 与 nanoGPT 8.1;尾批提交/清零仍是 rg39 的独立候选。
  • ip02:左 padding 后选择最后有效 logits 列。实际新嵌入只有 Happy LLM 07.4;07.8 是相关缺陷复现来源。

本批两组件与三处新嵌入已冻结,20 项定向测试通过,统一构建与浏览器验收仍在进行。它们单列为本批实施,不混入上述 17/23/19 基线。nanoGPT 08 的完整阅读由主任务另行记录,本审视者仍只记自己的两处摘读。已有监督 mask、逐行停止与 select 就绪集合仍算已有局部覆盖。rg57 仅建议在 Happy LLM 07 复用已存在的 BatchStoppingDemo;rg58 只补损失函数内部忽略 EOS 的另一层边界,不重复制作已有监督实验。

先做哪几组,读者最容易得到帮助 ​

  1. 归一化(rg37):只改一个样本,看同批其他输出怎样改变,再切到冻结统计量的推理模式。BN 一章已通读,能明确区分方差校正、EMA、eval/no_grad 和推理折叠。
  2. LoRA(rg47)与参数身份(rg44):先对照并联与合并,再故意重复加一次增量;另查替换参数后优化器是否还指向旧对象。能观察到具体错误,不用假训练曲线。
  3. MoE(rg43)与 DeltaNet(rg42):前者追每个 token 的多份贡献如何加回,后者追一格状态如何被遗忘和修正。分别保留 top-1 零梯度与非单位 key 的失败边界。
  4. Go 时间与完成边界(rg01、rg04、rg06):defer 登记、select 求值、取消和真正退出不是同一时刻,适合逐事件操作。
  5. 事务、消息与缓存窗口(rg11、rg13、rg15、rg16):让读者自己安排一次故障或迟到事件,检查重复效果、旧值和失效租约。只做有限协议,不假装真实数据库。
  6. 分母(rg22、rg31):SLI 和页面收益都先追分子、分母与成本。两章已通读,能明确拒绝零分母与重复计量。

这不是按流行度排队。优先条件是:有可复算的小例、输入可调、过程可观察、结果可独立验证,而且不会靠简化偷偷抹掉原文边界。

哪些内容先保留静态 ​

  • 工具选型、API 和版本比较:读者需要稳定的能力/责任对照,例如工程工具、安全工具、可观测性与云产品选型。交互评分会把依赖条件藏起来。
  • 真实诊断与实验:pprof、trace、压测、编译器逃逸、恢复演练和模型训练曲线要保留原始证据。浏览器模拟不能证明测量或复现已经发生。
  • 业务与编辑判断:搜索意图、内容价值、微服务边界、地区页面资格和资料权利,需要真实材料与负责人判断。不要把这些做成“质量分”或“排名预测”。
  • 代码、关系图已能清楚说明的小问题:优先保留可复制的片段和正反例。若后续逐节阅读发现可操纵的机制,再重新判断。

下面每章有自己的理由。标为静态优先不等于整章永远不需要交互,尤其不能用抽读结论关闭未读小节。

剩余候选组 ​

每组只补一个有限问题,或一套明确分开的协议预设。具体章/节是候选落点;heading_located_body_pending 表示只定位了标题,必须先把该节正文读完,不能据此直接插入。

rg01 · 区分闭包读变量、defer 保存值与退出时执行 ​

候选组件:ExecutionTimeDemo。优先级:P1。

输入:变量初值、循环声明方式、函数返回点、defer 登记顺序。 过程:手动推进赋值、登记、return 与后进先出调用,分开显示保存参数和闭包引用。 结果:每一步变量、返回值和资源清理时间线。 边界:不模拟编译器开放编码成本;循环语义须标明语言版本;不把函数退出当 goroutine 已加入等待。

候选落点:

  • ch-001 · Go 函数:看清参数何时传入,代码何时执行:闭包保留变量,后续调用会继续用它;循环里要看变量在哪里声明;defer:登记发生在现在,调用发生在函数退出前(所列节有仅定位标题、待读正文的部分)
  • ch-014 · Go 并发常见坑:用四个小反例找到真正的失误:闭包拿到的是变量,先看变量在哪里声明;工具链新,不等于这个包一定使用新循环语义(所列节有仅定位标题、待读正文的部分)
  • ch-017 · context:让一条调用链共用退出信号和时间预算:每次派生都接住 cancel,即使预计很快会成功
  • ch-019 · Go defer、select、timer 与 netpoller:调用结束了,等待怎样结束:defer:参数现在保存,调用以后执行;同样是 defer,实现成本可以差很多(所列节有仅定位标题、待读正文的部分)

rg02 · 看清 nil 接口、typed nil 和动态类型 ​

候选组件:InterfaceValueDemo。优先级:P1。

输入:动态类型、动态值、断言目标与可比较性。 过程:分别判断接口是否空、类型断言是否成立、比较是否会 panic。 结果:带原因的 nil/断言/比较结果。 边界:双槽只讲语义,不声称复制真实运行时内存布局;方法行为仍须读实现。

候选落点:

  • ch-004 · Go 接口:接口值:静态类型规定能做什么,动态类型记录装的是什么;类型断言与 type switch:检查类型,不是转换类型;nil 接口与有类型的 nil:错误处理最常见的陷阱(所列节有仅定位标题、待读正文的部分)
  • ch-010 · Go 错误处理:保留原因,让调用者知道下一步怎么做:nil 指针装进 error 后,可能已经不是 nil

rg03 · 追踪值复制后仍共享的底层对象 ​

候选组件:SharedStorageDemo。优先级:P1。

输入:slice 长度/容量、复制或追加动作、结构体内引用字段。 过程:追踪值对象和底层数组身份,逐次修改或触发新数组。 结果:谁的可见元素改变、哪些引用仍共享。 边界:扩容容量采用明确教学规则,不冒充 Go 实际增长公式;发送同步不授予永久所有权。

候选落点:

  • ch-007 · Go 类型系统:数组与 slice:固定的一组元素,和查看数组的一段范围;append 与复制:先问底层数组还共不共用;容量够时,append 会写到原数组里(所列节有仅定位标题、待读正文的部分)
  • ch-008 · Go 结构体与方法:值接收者与指针接收者:复制的是结构体,还是指针;值接收者不等于深复制,也不等于只读;怎么选接收者(所列节有仅定位标题、待读正文的部分)
  • ch-011 · Channel:把数据交出去,也把结束方式说清楚:超时要先决定:等一条,还是等整段工作(所列节有仅定位标题、待读正文的部分)
  • ch-022 · Go 数据结构实现:值复制了,底下的数据复制了吗:slice:三个字段,解释共享与扩容(所列节有仅定位标题、待读正文的部分)

rg04 · 取消信号发出后,任务何时真正退出 ​

候选组件:TaskCompletionDemo。优先级:P1。

输入:取消时刻、是否检查 Done、阻塞点、资源归还与完成信号。 过程:将取消、检测、退出、释放、join 分成不同事件。 结果:已取消但仍运行/持有资源的反例及完整收尾路径。 边界:复用 ContextTreeDemo 的信号事实,但增加的是任务生命周期;不声称能强制终止外部 I/O。

候选落点:

  • ch-009 · Go 迭代器:把“怎样取下一个”留给集合:取消需要显式检查,break 不会打断任意阻塞(所列节有仅定位标题、待读正文的部分)
  • ch-013 · Go 并发工具选型:errgroup、singleflight、semaphore 各管哪一段:一个分支失败,另一个怎样退出;放弃等待,和取消共享工作,要分别决定;名额获取成功后,取消不会替你归还(所列节有仅定位标题、待读正文的部分)
  • ch-015 · Go 并发模式:把任务分开以后,怎样一起收尾:errgroup:一个分支失败,让其余分支知道(所列节有仅定位标题、待读正文的部分)
  • ch-016 · Goroutine:启动以后,怎样让它按时结束:“谁启动谁负责退出”,怎样落实到接口(所列节有仅定位标题、待读正文的部分)
  • ch-017 · context:让一条调用链共用退出信号和时间预算:先画出取消会走到哪里;每次派生都接住 cancel,即使预计很快会成功;Err 回答取消类别,Cause 保留具体原因(所列节有仅定位标题、待读正文的部分)

rg05 · 用同步边证明发布,用状态机检查等待协议 ​

候选组件:SynchronizationProtocolDemo。优先级:P1。

输入:读写事件、锁范围、WaitGroup 登记和 Cond 条件。 过程:在三个独立预设中推进 happens-before、登记/归零、Wait/通知/重检。 结果:同步边、尚未完成的任务、被唤醒但条件仍不成立的状态。 边界:仅支持公布的有限协议,不是 race detector、任意 Go 解释器或完整并发证明器;Mutex/Once 扩展另开验收。

候选落点:

  • ch-012 · Go 内存模型:怎样证明另一个 goroutine 能看见你的写入:先看一条能证明的顺序;缓冲会改变确认的位置(所列节有仅定位标题、待读正文的部分)
  • ch-018 · sync 包:从保护一组状态,到等一批任务结束:Mutex:锁住的是约定,不是字段本身;WaitGroup:把“都结束了”做成一个可靠边界;Cond:等待的主角是条件,通知只是催你再看一眼(所列节有仅定位标题、待读正文的部分)

rg06 · select 在选择前已经求值了什么 ​

候选组件:SelectEvaluationDemo。优先级:P1。

输入:有副作用的 channel/发送值表达式、就绪分支。 过程:先按规范记录求值一次,再计算就绪集合并选择一个合法分支。 结果:未被选中的发送值表达式仍执行的日志。 边界:可复用 SelectReadinessDemo 的就绪模型;不模拟运行时随机序列、公平性或 default 优先级。

候选落点:

  • ch-011 · Channel:把数据交出去,也把结束方式说清楚:select 选的是当前能做的动作(所列节有仅定位标题、待读正文的部分)
  • ch-019 · Go defer、select、timer 与 netpoller:调用结束了,等待怎样结束:select:先求值,再选择,不按书写顺序排队

rg07 · 速率、在途量与等待队列分别限制什么 ​

候选组件:ResourceQueueDemo。优先级:P2。

输入:固定到达事件、工作耗时、并发槽位、队列上限、令牌补充。 过程:按虚拟时钟申请资源、排队、超时与归还,逐项开关速率和并发限制。 结果:在途数、排队数、拒绝数和资源泄漏位置。 边界:只有确定性事件模型,不生成真实吞吐、数据库池最佳大小或生产限流建议;初版只做单资源。

候选落点:

  • ch-013 · Go 并发工具选型:errgroup、singleflight、semaphore 各管哪一段:限数量要同时看“提交者”会不会等;名额获取成功后,取消不会替你归还(所列节有仅定位标题、待读正文的部分)
  • ch-015 · Go 并发模式:把任务分开以后,怎样一起收尾:限并发与限速:先分清名额代表什么
  • ch-039 · Go HTTP 中间件:包住 Handler,也要守住响应边界:限流先说清限制的是什么
  • ch-047 · Go 数据访问:管好连接、事务和 SQL 边界:DB 是池,Tx 才是一条事务;四个连接池参数,各管一件事;实际把池压到一条连接(所列节有仅定位标题、待读正文的部分)
  • ch-075 · Go 稳定性与压测工具选型:先选保护边界,再选测量方式:ghz:gRPC 的方法描述、并发和连接是分开的(所列节有仅定位标题、待读正文的部分)
  • ch-081 · 稳定性手段:让慢依赖和突发流量止步于有限资源:限流算法的差异,在“突发怎么办”上最明显;舱壁和负载卸除,让剩余工作有机会完成(所列节有仅定位标题、待读正文的部分)
  • ch-082 · 高并发手段:减少重复工作,并给共享资源设上限:三种池,复用的是三种东西;连接池:复用昂贵连接,也把容量变成排队点;协程池:限制执行者,还要限制等待者(所列节有仅定位标题、待读正文的部分)
  • ch-088 · 接口安全:让每一道检查都有明确的边界:限流与防刷:额度应该对应你要保护的资源
  • ch-115 · 系统设计经典题目:十二种系统,十二组必须守住的约束:5. 限流器:限制哪种资源,决定算法与故障策略

rg08 · 可达性与写屏障为什么需要一起看 ​

候选组件:ReachabilityDemo。优先级:P2。

输入:根、对象引用、非追踪整数地址、标记步骤和一次引用改动。 过程:逐边遍历、记录扫描颜色,并构造无屏障时漏标的教学反例。 结果:根可达集合、颜色与未追踪地址的区别。 边界:不执行 unsafe,不复刻某版 Go 写屏障或 Green Tea 调度,不估计真实停顿。

候选落点:

  • ch-003 · Go 反射 unsafe cgo 与代码生成:unsafe 拿到地址之后,还欠哪些保证;unsafedemo/main.go;unsafedemo/main_test.go(所列节有仅定位标题、待读正文的部分)
  • ch-021 · Go 垃圾回收:先看活着的对象,再谈调参:垃圾是谁决定的:从根走得到,就先保留;三种颜色是在记录扫描进度;并发标记最难的地方:程序也在改指针(所列节有仅定位标题、待读正文的部分)

rg09 · 堆维护局部不变量,二分维护剩余候选 ​

候选组件:AlgorithmInvariantDemo。优先级:P2。

输入:小数组、插入/弹出或 lower-bound 目标。 过程:两个分开的预设逐步修复堆或收缩半开区间。 结果:每一步比较、被排除区间和最终答案。 边界:初版只限堆与 lower bound,不由一个组件宣称覆盖整章算法;操作次数不是速度基准。

候选落点:

  • ch-037 · 数据结构与算法:从操作需求出发,理解每一种结构为什么存在:哈希表与堆:一个按键找,一个按优先级取;堆:只维护父子关系,就足够快速取极值;二分查找:维护“答案仍在这个区间里”(所列节有仅定位标题、待读正文的部分)

rg10 · SQL 的重复行、NULL 和聚合会怎样改变结果 ​

候选组件:SqlRowsDemo。优先级:P1。

输入:小表、重复键、NULL、连接种类和聚合选择。 过程:展示连接配对与补空行,再按三值逻辑过滤和分组。 结果:中间结果行数、保留/删除的具体行。 边界:使用有限关系算子,不执行任意 SQL;不模拟优化器、引擎扩展或所有 NULL 规则。

候选落点:

  • ch-051 · SQL 基础:先确定一行代表什么,再写查询:SQL 默认保留重复,NULL 又引入第三种判断结果;连接先决定行数,再谈取哪些列;聚合把多行收成一行,窗口保留每一行(所列节有仅定位标题、待读正文的部分)

rg11 · 同一组事务动作在不同快照下看到什么 ​

候选组件:TransactionTimelineDemo。优先级:P1。

输入:两个事务的读写/提交顺序、显式快照与锁规则。 过程:推进版本可见性和冲突检查,重现不可重复读或写偏斜。 结果:各事务读到的版本与业务约束是否保持。 边界:每个预设贴清引擎和隔离契约;不能用四个通用开关冒充所有数据库实现。

候选落点:

  • ch-052 · 数据库事务:让一组修改成立,也让并发判断成立:三种常见异常,要看谁在什么时刻提交;四个隔离级别,先看最低语义,再看具体引擎;没有幻读,为什么还可能把业务做错(所列节有仅定位标题、待读正文的部分)

rg12 · 联合索引区间之后,还有哪些取数成本 ​

候选组件:IndexLookupDemo。优先级:P2。

输入:有序键、叶页容量、返回列、残余谓词、可见性标记。 过程:从现有 IndexSearchDemo 的区间结果继续导航、取完整行或检查可见性。 结果:候选数量、页访问教学计数与必须补取的行。 边界:先做 B+ 树导航和覆盖/下推区别;skip scan 和统计估计为后续子预设,不输出真实 EXPLAIN 或毫秒。

候选落点:

  • ch-054 · 数据库索引:从少读哪些数据,理解一条查询为什么快:一棵树为什么能少读很多页;同样叫“主键”,InnoDB 和 PostgreSQL 存的东西不同;没有第一列条件,也不代表用不了联合索引(所列节有仅定位标题、待读正文的部分)

rg13 · 旧值回填、过期和刷新怎样发生竞争 ​

候选组件:CacheTimelineDemo。优先级:P1。

输入:数据库版本、缓存版本、软硬 TTL、读写/刷新事件。 过程:手动安排读旧值、更新库、删除、迟到回填与刷新失败。 结果:每个读者看到的值、缓存新鲜度及未修复窗口。 边界:区分库的真实过期契约;延迟双删不是证明,singleflight 只合并进程内重叠调用。

候选落点:

  • ch-055 · Go 缓存工具选型:LifeWindow 不是普通 Get 的严格过期屏障;过期和刷新是两个时间条件(所列节有仅定位标题、待读正文的部分)
  • ch-058 · Redis 缓存进阶:写热:能不能把一个动作拆成多份
  • ch-059 · 缓存三大问题:逻辑过期:用旧值换等待时间
  • ch-060 · 缓存模式:Read-Through:集中读入口,不自动增加一致性;延迟双删:再清一次可能有用,但延迟不是锁

rg14 · 布隆过滤器怎样节省空间,又为何会误报 ​

候选组件:BloomFilterDemo。优先级:P2。

输入:位数、公开的教学哈希、插入集合和查询。 过程:点亮对应位,逐项查验真阳性、真阴性、假阳性。 结果:位图与在本次集合上的查询结果。 边界:理论误报率须带独立均匀假设;不能用小样本频率保证线上效果,不支持无计数删除。

候选落点:

  • ch-037 · 数据结构与算法:从操作需求出发,理解每一种结构为什么存在:布隆过滤器:用一点误判,换紧凑的“不存在”判断(所列节有仅定位标题、待读正文的部分)
  • ch-059 · 缓存三大问题:布隆过滤器:便宜地回答“一定没有”;内存与误报率如何交换(所列节有仅定位标题、待读正文的部分)

rg15 · 在哪个故障窗口里会丢消息或重复业务 ​

候选组件:DeliveryWindowDemo。优先级:P1。

输入:业务提交、outbox、发送、ack/offset、幂等键与故障点。 过程:推进一条消息从业务记录到消费确认,允许在有限步骤后重启。 结果:未发/重发/已处理记录和一次业务效果的证据。 边界:不同 Broker/事务边界用独立预设;不宣称跨外部副作用 exactly-once;Kafka 确认条件需专门复核。

候选落点:

  • ch-044 · WebSocket、GraphQL 与 Webhook:三种不同的问题,三条不同的链路:Webhook:先可靠接住,再异步处理;webhook_test.go(所列节有仅定位标题、待读正文的部分)
  • ch-061 · Go 消息与工作流工具选型:先选需要哪一层,再检查确认和重试:Writer 的零值确认级别值得专门检查;amqp091-go:生产确认与消费 Ack 是两个动作(所列节有仅定位标题、待读正文的部分)
  • ch-062 · Kafka:从分区日志理解复制、吞吐、Rebalance 与事务:副本数、ISR、确认条件分别回答三个问题
  • ch-064 · 消息队列可靠性:把每一个故障窗口处理清楚:生产端确认、持久化和副本要一起看;先做业务,再确认,仍然会重复;幂等要挡住重复的业务效果(所列节有仅定位标题、待读正文的部分)
  • ch-065 · 消息队列应用模式:从一次订单提交走到可靠的异步处理:Outbox:把“稍后要发什么”写进同一个本地事务
  • ch-066 · 消息队列核心概念:一条消息由谁保管,处理进度记在哪里:消费组:分担一份工作,还是各自看一份日志
  • ch-069 · 分布式事务:两边不能一起提交时,怎样把账做完整:出站可靠,不等于副作用只发生一次
  • ch-080 · 幂等设计:超时以后,怎样安全地再试一次:schema.sql(所列节有仅定位标题、待读正文的部分)
  • ch-112 · 架构演进:每拆开一个边界,都要重新回答谁负责提交和恢复:schema 演进:老事件不会随新代码一起消失

rg16 · 锁租约过期后,旧持有者为什么还能造成损害 ​

候选组件:LeaseFencingDemo。优先级:P1。

输入:租约期限、持有者 token、迟到释放与下游 fencing 值。 过程:推进 A 过期、B 获锁、A 恢复,分别比较裸 DEL、比 token 删除、下游拒旧写。 结果:新锁是否被误删与旧请求是否仍能写入。 边界:正确释放不等于保护业务副作用;fencing 需下游原子校验,不模拟真实 Redis 可用性。

候选落点:

  • ch-058 · Redis 缓存进阶:释放必须比较令牌,而且比较与删除必须原子;Fencing:让资源拒绝上一任持有者;with-redis.sh(所列节有仅定位标题、待读正文的部分)
  • ch-070 · 分布式基础组件:锁、ID、任务和会话都要面对“旧请求还活着”:Redis、etcd、ZooKeeper 的锁有什么差别;Redis:value 防误删,TTL 防永久占用(所列节有仅定位标题、待读正文的部分)

rg17 · 多数副本为什么还不够证明旧任期日志能提交 ​

候选组件:RaftCommitDemo。优先级:P2。

输入:固定三/五节点日志、任期、候选人和可送达消息。 过程:有限脚本检查投票日志新旧、匹配前缀与当前任期提交条件。 结果:合法/拒绝的选票和已提交索引。 边界:只做经测试的 Raft 小历史;不把动画称完整共识证明,不混用 Paxos/ZAB 规则。

候选落点:

  • ch-068 · 共识算法:主节点换了,已经答应的事不能反悔:Raft 选主:选票带着任期,也带着历史约束;Raft 复制:先确认共同前缀,再补尾部;为什么旧任期日志在多数节点上,也不能直接按票数提交?(所列节有仅定位标题、待读正文的部分)

rg18 · 用调用与返回时间判断一段一致性历史 ​

候选组件:ConsistencyHistoryDemo。优先级:P2。

输入:有限读写历史、调用/返回区间和返回值。 过程:枚举符合实时先后约束的顺序,检查是否存在合法寄存器解释。 结果:一个有效见证或找不到见证的结果。 边界:仅限小规模单寄存器;找不到某个采样顺序不是不可线性化证明,不模拟 FLP 或 CAP 排名。

候选落点:

  • ch-071 · 分布式理论基础:先说清“什么结果算对”:一致性模型:约束的是“别人会看到什么”;写已经成功,另一个人还能读到旧值吗?(所列节有仅定位标题、待读正文的部分)

rg19 · 分片归属变化与数据搬完是两步 ​

候选组件:ShardMovementDemo。优先级:P2。

输入:键集合、节点或槽归属、虚拟节点和迁移进度。 过程:分别计算取模/固定教学哈希归属,移动数据并拒绝旧 generation。 结果:改属键数、尚未搬完的键和旧路由访问。 边界:Redis 槽与一致性哈希分开预设;路由均匀不等于负载均匀,也不证明无损迁移。

候选落点:

  • ch-053 · 数据库扩展性:先找瓶颈,再增加分布式边界:分表、分区、分库分别搬走了什么;分片数从四变五,取模会搬走多少数据;数据迁移要先解决“谁的新旧顺序说了算”(所列节有仅定位标题、待读正文的部分)
  • ch-056 · Redis 原理:Cluster 用 16384 个哈希槽分片
  • ch-073 · 数据分布:决定数据放哪里,也决定以后怎么搬:先分清分片、副本和路由;分片键选错,后面的路由算法救不了查询;一致性哈希:成员变化时,尽量少改键的位置(所列节有仅定位标题、待读正文的部分)

rg20 · 配置最终值来自哪一层,旧快照为何不能倒灌 ​

候选组件:ConfigurationTraceDemo。优先级:P2。

输入:默认值、文件、环境/命令行覆盖顺序及快照版本。 过程:逐项合并、按既定策略拒绝类型错误,比较 revision 后原子应用。 结果:最终值的来源链和被拒绝的旧/坏配置。 边界:Go 配置例与 nanoGPT exec 配置使用不同预设;不执行用户代码,也不宣称 schema 校验足以安全发布。

候选落点:

  • ch-032 · Go 配置管理:启动前,把来源、类型和错误处理清楚:优先级必须能画出来,也能测出来
  • ch-074 · 服务治理:让请求找到合适的实例,并在变化时有序退出:一份端点列表为什么会突然退回旧版本?;配置中心:发布成功以后,还差“安全生效”
  • ch-185 · 第 3 章 配置覆盖、类型检查与执行边界:3.2 命令行的类型检查到底检查了什么

rg21 · 发布时新副本就绪和旧请求收尾怎样衔接 ​

候选组件:RolloutLifecycleDemo。优先级:P2。

输入:期望副本、surge/unavailable、readiness、在途请求及宽限期。 过程:分别推进创建、就绪、摘流、排空与退出。 结果:可服务副本和仍未收尾的连接/任务。 边界:只算明示规则;不声称 K8s 一定按固定时刻调度,Shutdown 不替你收 WebSocket 或后台任务。

候选落点:

  • ch-076 · 发布安全:新版本能接班,旧版本也要能退场:Go 的 Shutdown 做什么,没做什么
  • ch-105 · Go 在容器中:HTTP 之外的工作不能交给 Shutdown 猜
  • ch-106 · Kubernetes:三种探针,失败后的动作完全不同;滚动更新先保留多少旧副本,再增加多少新副本(所列节有仅定位标题、待读正文的部分)

rg22 · 总体 SLI、错误预算和燃烧率先统一分母 ​

候选组件:SliBudgetDemo。优先级:P1。

输入:各组 good/total、SLO、窗口及缺测标记。 过程:先合并计数再求比例,对照简单平均,计算坏事件预算和 burn rate。 结果:精确比例、剩余预算、无数据与零分母状态。 边界:请求型预算不可直接换停机分钟;p99 不可平均;不替用户决定 SLO/SLA 合同。

候选落点:

  • ch-077 · 可靠性度量:先写清分母,再谈几个 9:没有流量不等于百分之百成功;错误预算是容许的坏事件量;Burn rate 把严重程度和持续时间连起来
  • ch-092 · 可观测性三大支柱:从“服务变慢了”找到下一条证据:指标:类型决定能对它做什么运算
  • ch-093 · 告警设计:让每一次叫醒都指向一件值得做的事:SLO 告警:关注错误预算消耗速度;零流量和没有数据,都不是“服务正常”

rg23 · 闭环压测为何会漏掉排队最慢的时刻 ​

候选组件:ArrivalClockDemo。优先级:P1。

输入:服务时间序列、计划到达时刻、客户端数量。 过程:在同一耗时序列上对比开环与闭环发请求、排队和完成。 结果:每请求等待/响应及两个模型的分母。 边界:确定性虚拟队列解释协调遗漏,不以结果预测真实机器容量。

候选落点:

  • ch-079 · 容量与弹性:先量出可用容量,再讨论扩多少实例:开环与闭环,差别在下一次请求由谁决定;协调遗漏为什么会让慢服务看起来没那么慢(所列节有仅定位标题、待读正文的部分)

rg24 · 请求、字节、保留期和平均等待怎样对账 ​

候选组件:CapacityUnitsDemo。优先级:P2。

输入:活跃人数、操作频率、峰均比、记录字节、保存时长。 过程:明确单位并逐项累计请求、存储、副本与平均在途量。 结果:可复算的量纲和对敏感假设的差分。 边界:只算假设;Little 定律须满足对应稳定口径,不能把 p99 当平均等待或给硬件购买保证。

候选落点:

  • ch-113 · 系统容量估算:把请求、字节和等待时间算到同一张账上:QPS:平均值给规模,峰值决定接不接得住;存储:业务字节只是第一层;延迟和并发:Little 定律用平均数,不用 p99(所列节有仅定位标题、待读正文的部分)
  • ch-114 · 系统设计方法论:把需求一步步变成能验证的方案:容量估算:先看哪一维可能限制方案

rg25 · 授权为什么必须同时检查主体、动作和对象 ​

候选组件:AuthorizationPolicyDemo。优先级:P2。

输入:合成用户/租户、对象归属、角色关系及明确规则。 过程:用有限 RBAC/ABAC/ReBAC 例子逐条件判定,并撤销一条关系。 结果:允许/拒绝的理由和越租户反例。 边界:仅离线合成数据;不变更真实权限,不给通用安全认证,不将身份认证等同授权。

候选落点:

  • ch-087 · 授权:把“谁能对哪份数据做什么”写成可检查的规则:一个授权判断至少有四个输入;RBAC:角色让岗位权限不必逐人复制;ABAC:条件更细,代价是必须解释属性(所列节有仅定位标题、待读正文的部分)

rg26 · 点击深度与 URL 长短为何无关 ​

候选组件:SiteReachabilityDemo。优先级:P2。

输入:页面与真实 href 有向边、分页入口。 过程:从指定入口做可达性与最短点击路径遍历。 结果:孤立页、可达页、路径深度。 边界:可达不等于被搜索引擎发现或索引;不把图中心性当排名权重。

候选落点:

  • ch-117 · 第 2 章 搜索引擎怎样发现和处理一个页面:2.2 发现地址只是得到候选输入(所列节有仅定位标题、待读正文的部分)
  • ch-124 · 第 9 章 从域名到内链 建立可以持续生长的网站:层级深度与可用性;从链接清单诊断架构(所列节有仅定位标题、待读正文的部分)
  • ch-127 · 第 12 章 不同站型的 SEO 把通用方法放进真实业务:分页与加载更多

rg27 · robots 规则如何得出一个有效抓取许可 ​

候选组件:RobotsRuleDemo。优先级:P2。

输入:有限规则集、user-agent 与 URL 路径。 过程:按指定公开规则解释分组、匹配长度和允许/禁止冲突。 结果:匹配的规则与许可理由。 边界:现有 IndexingSignalsDemo 从已解析许可开始,不能覆盖此步骤;版本、编码和网络错误要分开,不承诺收录。

候选落点:

  • ch-128 · 第 13 章 抓取与索引控制:让正确页面进入正确队列:13.2 robots.txt:抓取协议,不是保险柜(所列节有仅定位标题、待读正文的部分)

rg28 · 重定向、sitemap 和语言版本关系是否自洽 ​

候选组件:UrlRelationsDemo。优先级:P2。

输入:小 URL 集合、每跳状态、canonical/hreflang/sitemap 边。 过程:三个独立预设检查循环/失效目标、允许集合、互相返回与自引用。 结果:有证据的结构冲突及受影响 URL。 边界:只检查公布的结构规则,不判断页面独立价值、真实规范版本或搜索展示;三种预设不得互相代替。

候选落点:

  • ch-128 · 第 13 章 抓取与索引控制:让正确页面进入正确队列:13.4 canonical:为重复内容选择代表地址;13.5 站点地图:把目录写成可维护的数据产品;13.6 HTTP 状态码要表达真实业务状态(所列节有仅定位标题、待读正文的部分)
  • ch-131 · 第 16 章 技术审计、日志与迁移:把问题缩小到能够修复的范围:16.6 迁移前先决定哪些东西不一起改;16.8 上线窗口与迁移后的观察(所列节有仅定位标题、待读正文的部分)
  • ch-132 · 第 17 章 国际、多语言与多地区 SEO:17.5 hreflang:一个页面家族的关系声明;17.6 canonical 和 hreflang 不应互相打架;17.10 国际站的迁移与衡量(所列节有仅定位标题、待读正文的部分)
  • ch-135 · 第 20 章 站外 SEO:外链、数字公关与品牌可信度:20.9 修复断链,比追逐更多数字更具体
  • ch-146 · 05 自动建站与收录:把审核过的内容变成可检查、可撤回的页面:5.11 国际 SEO 先确认是否真有那个版本

rg29 · 源码、渲染 DOM 与结构化数据说的是同一事实吗 ​

候选组件:PageEvidenceDiffDemo。优先级:P2。

输入:预先提供的初始 HTML、渲染 DOM、资源状态与 JSON-LD。 过程:选择同一检查点,对照正文、链接和机器字段是否存在/一致。 结果:缺失或冲突的具体字段及证据层。 边界:离线固定快照,不执行外来脚本;语法合法不等于富结果资格,截图文字不等于可发现 href。

候选落点:

  • ch-117 · 第 2 章 搜索引擎怎样发现和处理一个页面:2.4 渲染解释了浏览器与抓取结果为什么会不同
  • ch-129 · 第 14 章 渲染、移动端与页面体验:让内容确实可见、可用:14.4 为 Go 工具站设计一份渲染约定;14.5 怎样检查渲染,而不是猜测渲染(所列节有仅定位标题、待读正文的部分)
  • ch-130 · 第 15 章 结构化数据与富结果:把页面事实准确地交给机器:15.7 用同一份数据生成正文与标注

rg30 · 测量版本、分母与对照缺失会怎样改变结论 ​

候选组件:MeasurementEvidenceDemo。优先级:P2。

输入:小型合成点击/展现/事件表、数据修订、时间范围及页面版本。 过程:先对齐口径再切片,对照混合总体与分组结果,标记缺测/未定稿。 结果:哪些描述可计算、哪些比较需要补证据。 边界:不将归因称因果,不自动从置信区间推出经营决策,不把 GSC 点击除 GA4 会话当精确漏斗。

候选落点:

  • ch-136 · 第 21 章 SEO测量 归因与商业价值:21.7 归因分配功劳 因果解释增量
  • ch-137 · 第 22 章 SEO实验 流量诊断与运营治理:22.4 统计结果怎样解释才适合决策
  • ch-141 · 第 26 章 把 AI 用进 SEO:从资料整理到可审核的工作流:26.10 GSC、GA4与报告:先把数字算对,再让模型解释
  • ch-142 · 01 从案例到可验证假设:时长有用,但必须知道用户在做什么
  • ch-147 · 06 AI 编排与接口接入:让建议可以检查,让执行有明确边界:6.6 GSC、GA4 与收入数据不能揉成一列“表现”
  • ch-148 · 07 观测数据与反馈决策:知道该改什么,也知道什么时候先别动:7.4 日快照需要记录“数据版本”和“页面版本”;7.5 GSC:分页取完,不代表拿到全部搜索(所列节有仅定位标题、待读正文的部分)
  • ch-150 · 09|先跑通两个实验,再接真实世界:9.6 什么样的数据才允许作判断

rg31 · 把人工维护成本与收入分母放到同一张账上 ​

候选组件:SeoScenarioBudgetDemo。优先级:P1。

输入:明确标为假设的 PV/RPM 或转化率、退款/变动成本、审核分钟与周期。 过程:逐项复算收入和现金/机会成本,再只改变一个假设。 结果:净贡献、条件式盈亏平衡与敏感性。 边界:不是流量/价格/盈利预测;PV、访客、展现不可混用;实际 Page RPM 不重复乘填充率。

候选落点:

  • ch-116 · 第 1 章 SEO 是什么以及它怎样创造商业价值:1.3 从需求到利润中间隔着什么
  • ch-121 · 第 6 章 搜索意图、关键词聚类与页面规划:6.9 用敏感性分析选最值得验证的问题
  • ch-140 · 第 25 章 如何通过 SEO 赚钱:25.3 联盟营销:帮助读者选对产品,赚取有效推荐佣金;25.5 本地服务:搜索带来预约,现场交付决定利润;25.6 电商:利润藏在运费、退货和库存里(所列节有仅定位标题、待读正文的部分)
  • ch-149 · 08 先算清一批页面,再决定要不要扩大:8.1 Page RPM 的分母是浏览量;8.2 一张能说明亏在哪里的月度账;8.3 每页成本里,最容易漏掉的是以后

rg32 · 批准绑定的版本改变以后,为什么必须停止 ​

候选组件:ApprovalContractDemo。优先级:P2。

输入:合成 proposal、目标、版本哈希、到期时间和批准范围。 过程:沿提议、审核、批准、构建、执行推进,插入版本漂移与过期。 结果:允许继续或拒绝的明确理由。 边界:纯协议演示,不连生产、不接受真实凭据;不得把模拟批准当实际用户授权。

候选落点:

  • ch-143 · 02 让 AI 主导工作,让证据和权限决定能否执行:2.5 批准是一张窄通行证
  • ch-147 · 06 AI 编排与接口接入:让建议可以检查,让执行有明确边界:6.3 从原始资料到建议,按这个顺序走;6.9 接入与验收顺序(所列节有仅定位标题、待读正文的部分)
  • ch-151 · 10 从本地演示走到可维护的真实站点:10.4 发布经过四道门;10.7 验收清单要包含拒绝和漂移

rg33 · 同一段文字怎样跨越字形、字节与 token 边界 ​

候选组件:TokenBoundaryDemo。优先级:P1。

输入:短 UTF-8 文本、组合字符、分段边界与已公布小词表。 过程:显示码点/字节/token 分层,比较整体解码和逐 token 解码、整体与分段编码。 结果:丢失信息、不同序列与可验证 round-trip。 边界:不冒充 GPT/tiktoken 完整词表;规范化可能不可逆,稀疏 ID 要查最大 ID,不能仅查词表大小。

候选落点:

  • ch-007 · Go 类型系统:string、byte、rune:先选对计量单位;一个字节、一个码点、一个可见字符并不总是一回事;改转换后的字节,不会改掉原字符串(所列节有仅定位标题、待读正文的部分)
  • ch-172 · 第 21 章 模型看到的不是屏幕上的文字:21.1 可见字形、码点、字节和 token 是四件事;21.2 看起来相同,不保证字节相同;21.3 从 256 个字节开始,未知词的问题就变了(所列节有仅定位标题、待读正文的部分)
  • ch-174 · 第 23 章 相同的 BPE 算法,为什么还编码不出相同的 ID:23.2 空格既可能跟着词,也可能自己成片;23.3 GPT-2 的字节映射不是把原始文本重新改了编码;23.5 cl100k_base 的 rank 和基础字节 ID 也有历史约定(所列节有仅定位标题、待读正文的部分)
  • ch-175 · 第 24 章 tokenizer 的选择,会一直留在模型里:24.2 用未知中文检查 byte_fallback;24.4 给模型加一个新 token,要改的不只有 tokenizer;24.5 拼写、算数、尾随空格:tokenizer 怎样改变题目(所列节有仅定位标题、待读正文的部分)
  • ch-184 · 第 2 章 字符与 BPE:三条数据准备流水线:2.5 uint16 是协议,也是一个硬边界
  • ch-200 · 第 03 章 文本怎样变成 token:词表、BPE 与特殊符号:3.3 字节与字符的区别先于 BPE
  • ch-234 · 第 06 章 Tokenizer 和标签决定模型实际学到什么:06.2 一个 tokenizer 文件里不止词表;06.4 按字节索引 JSONL,按 token 右移标签;06.8 固定 tokenizer 资产的静态核对(所列节有仅定位标题、待读正文的部分)
  • ch-246 · 第 18 章 Transformer 设计复盘:从文本到注意力,哪里最容易接错:18.4 位置编码的代数性质不等于长文本能力保证

rg34 · BPE 训练的最高频合并与编码的固定 rank 分开 ​

候选组件:BpeTrainingDemo。优先级:P2。

输入:极小训练语料、固定同频规则、最大合并轮数。 过程:统计重叠相邻对,非重叠替换,保存 merges,再用固定 rank 编码新串。 结果:每轮计数、合并表及训练/编码不同决策。 边界:现有 BpeDemo 只做固定字符级编码;新预设必须声明字符/字节边界,不与真实 tokenizer 兼容性混同。

候选落点:

  • ch-173 · 第 22 章 BPE 学的是一张有先后顺序的合并表:22.2 训练循环同时维护 merges 和 vocab
  • ch-200 · 第 03 章 文本怎样变成 token:词表、BPE 与特殊符号:3.4 训练 BPE:数相邻对,再无重叠替换;3.5 编码时为什么看合并排名,不重新训练(所列节有仅定位标题、待读正文的部分)
  • ch-246 · 第 18 章 Transformer 设计复盘:从文本到注意力,哪里最容易接错:18.8 手写 BPE 的合并过程与失败边界

rg35 · 广播轴、logits、序列概率和平均损失怎样对应 ​

候选组件:ProbabilityLossDemo。优先级:P1。

输入:小计数矩阵或 logits、标签、归一化轴及平滑量。 过程:从计数到行概率,选目标概率并累计负对数,显式对照错误广播或二次 softmax。 结果:每项贡献、总和/平均与 perplexity 单位。 边界:不跨不同 tokenizer 比较困惑度;全空行/零概率须给明确状态;不把损失当能力分。

候选落点:

  • ch-155 · 第 4 章 把名字变成字符数据:4.2 边界字符让长度也成为预测对象
  • ch-156 · 第 5 章 从计数得到概率、采样和损失:5.1 每一行单独归一化;5.2 广播不会替你判断数学意图;5.3 从概率抽样,为什么要带随机数生成器(所列节有仅定位标题、待读正文的部分)
  • ch-157 · 第 6 章 用神经网络重写 bigram:6.2 从任意打分到概率;6.3 用正确标签选出概率,再求平均;6.4 为什么梯度是 “预测概率减目标”(所列节有仅定位标题、待读正文的部分)
  • ch-164 · 第 13 章 把反向传播写成张量运算:13.2 从平均负对数概率开始往回走;13.4 官方练习 2:把交叉熵压缩成三行(所列节有仅定位标题、待读正文的部分)
  • ch-188 · 第 6 章 权重共享、损失、预训练映射与上下文裁剪:6.1 从编号到每个位置的预测;6.2 交叉熵为什么要把前两维展平(所列节有仅定位标题、待读正文的部分)
  • ch-198 · 第 01 章 先画清语言模型的任务与边界:1.1 一次预测到底输入、输出什么;1.2 从局部预测到整段文本(所列节有仅定位标题、待读正文的部分)
  • ch-210 · 第 13 章 预训练目标、交叉熵与验证集:13.1 交叉熵取的是目标 ID 对应的概率(所列节有仅定位标题、待读正文的部分)
  • ch-229 · 第 01 章 先把语言任务写成可检查的输入和输出:01.4 语言模型把一句话分成一串条件概率
  • ch-231 · 第 03 章 预训练目标决定模型能看见什么:03.2 BERT:先恢复缺失,再把表示交给下游

rg36 · 形状相同为什么仍可能把元素或权重接错 ​

候选组件:TensorIdentityDemo。优先级:P1。

输入:带身份编号的小张量、重复索引、权重朝向与图像占位符计数。 过程:逐元素执行 gather/scatter-add、reshape/transpose 或布局映射,分预设对照错误路径。 结果:实际元素对应、重复索引梯度和占位符/表示数契约。 边界:复用 MultiHeadShapeDemo 的身份追踪思路;矩阵布局、embedding 回填、视觉替换为独立预设,不称完整模型验证。

候选落点:

  • ch-158 · 第 7 章 让模型看见上下文:嵌入与 MLP:7.2 嵌入表就是可以训练的查表;7.4 view、reshape 与底层存储(所列节有仅定位标题、待读正文的部分)
  • ch-165 · 第 14 章 亲手走完 BatchNorm 与 embedding 的反向传播:14.2 方差与均值两条路都要走回来;14.4 第一层与 reshape:梯度按原来的路返回;14.5 embedding 最容易漏掉的是重复索引(所列节有仅定位标题、待读正文的部分)
  • ch-166 · 第 15 章 把八个字符逐层合并:层接口与树形上下文:15.2 六种小类,分别负责一件事
  • ch-176 · 第 25 章 从小 GPT 到 GPT-2:先把模型对上,再谈训练:25.2 把多头注意力压进一次矩阵乘法
  • ch-188 · 第 6 章 权重共享、损失、预训练映射与上下文裁剪:6.3 共享不是拷贝,梯度会从两个角色汇合(所列节有仅定位标题、待读正文的部分)
  • ch-201 · 第 04 章 从加权平均推导自注意力与因果掩码:4.2 为什么拆成查询、键和值;4.9 练习与答案(所列节有仅定位标题、待读正文的部分)
  • ch-212 · 第 15 章 权重格式、参数映射与低内存加载:15.2 官方 GPT-2 的名字怎样映射到教学模型;15.3 assign 会替换参数对象;15.8 mmap 与 assign 的小型实测(所列节有仅定位标题、待读正文的部分)
  • ch-220 · 第 23 章 扩展分词器:新 ID 还需要新的模型行:23.2 输入 embedding 为什么必须增加行;23.4 Weight tying 必须共享对象,不只是值相同(所列节有仅定位标题、待读正文的部分)
  • ch-247 · 第 19 章 拼接式视觉语言模型:图像真的进入语言模型了吗:19.3 Tokenizer、模板和嵌入替换必须使用同一套 ID

rg37 · 归一化统计轴、同批耦合和推理状态 ​

候选组件:NormalizationDemo。优先级:P1。

输入:小激活矩阵、BN/LN/RMSNorm、方差校正、gamma/beta 与运行统计。 过程:逐项计算均值/方差或 RMS,改单样本,切换训练/推理并显示 EMA。 结果:谁的输出随之改变、哪些量是 buffer、折叠前后输出。 边界:先交付完整阅读的 BN 11.1–11.6;其他规范需逐节确认。BN 不制造正态分布,no_grad 不等于 eval,训练 BN 不可固定折叠。

候选落点:

  • ch-161 · 第 10 章 让信号穿过网络:从初始损失到权重尺度:10.2 还没学过,就不该对随机答案很有把握
  • ch-162 · 第 11 章 BatchNorm:训练时看一批,推理时用固定统计量:11.1 一列一列地算,而不是一行一行地算;11.2 Bessel 校正与原生 PyTorch 的区别;11.3 为什么还要 gamma 和 beta
  • ch-163 · 第 12 章 训练诊断:不要只盯着一个 loss:12.2 顺着前向和反向分别看尺度
  • ch-203 · 第 06 章 把注意力组装成 GPT:归一化、残差与输出头:6.3 GELU 与逐位置前馈网络
  • ch-216 · 第 19 章 从 GPT 到 Llama:RoPE、RMSNorm 与门控前馈:19.1 RMSNorm 保留均值,只调节整体幅度(所列节有仅定位标题、待读正文的部分)
  • ch-218 · 第 21 章 Gemma 3、Gemma 4:局部层、共享层与数值约定:21.1 Gemma 3:残差分支前后都要归一化;21.2 局部/全局层使用不同的位置表和 mask(所列节有仅定位标题、待读正文的部分)
  • ch-233 · 第 05 章 把一个小型 LLaMA 风格解码器拆开:05.2 RMSNorm 调整长度,不减去均值
  • ch-246 · 第 18 章 Transformer 设计复盘:从文本到注意力,哪里最容易接错:18.3 两种 mask 与标签移位必须分别核对(所列节有仅定位标题、待读正文的部分)

rg38 · 扩张卷积的感受野与因果性逐格检查 ​

候选组件:ReceptiveFieldDemo。优先级:P2。

输入:核宽、层数、扩张率、padding 和一个输出位置。 过程:沿依赖边倒推可见输入,再扰动未来输入。 结果:结构感受野与未来泄漏反例。 边界:只展示依赖关系与小算例,不用感受野大小保证任务能力或复刻完整 WaveNet。

候选落点:

  • ch-167 · 第 16 章 从树到卷积:感受野、因果性与可靠迭代:16.2 因果性由输入依赖决定,不由名称决定;16.3 扩张率如何让感受野长得更快(所列节有仅定位标题、待读正文的部分)

rg39 · 训练顺序与学习率所用的时钟 ​

候选组件:TrainingClockDemo。优先级:P1。

输入:梯度向量、缩放、裁剪阈值、warmup/总更新数、累积步数、最后不足K批和逐批日志值。 过程:逐步反向/反缩放/裁剪/更新/清零,区分 micro-batch 与 optimizer-step;对照尾批是否提交、日志取末批还是汇总。 结果:当前梯度、参数更新与实际学习率轨迹,并显示尾批和日志归约的差别。 边界:不重复本轮有效 token 加权归一化;补 epoch 尾批提交/清零、最后微批日志与整体均值的区别。真实 AMP 溢出、DDP 通信、Muon 不在初版。

候选落点:

  • ch-159 · 第 8 章 让训练过程可比较:8.1 先切字符串,再展开成训练对;8.3 学习率扫描:观察范围,不把最低点当定理(所列节有仅定位标题、待读正文的部分)
  • ch-168 · 第 17 章 先把 GPT 的训练题出对:17.1 一个字符对应一个编号,编号本身没有大小含义;17.3 切分数据的时间比抽窗口早;17.4 bigram 是一张可训练的“下一项打分表”(所列节有仅定位标题、待读正文的部分)
  • ch-171 · 第 20 章 用一条可检查的训练链路跑通小 GPT:20.1 forward 必须同时满足训练和生成;20.3 评估不能只看最后一个训练 batch(所列节有仅定位标题、待读正文的部分)
  • ch-178 · 第 27 章 一次更新到底看了多少数据:AdamW、累积与多卡:27.3 梯度累积的分母从哪里来;27.5 DDP 复制模型,分配数据,再平均梯度(所列节有仅定位标题、待读正文的部分)
  • ch-190 · 第 8 章 训练主循环、梯度累积、混合精度与裁剪:8.2 优化器为什么分成两组;8.4 先还原梯度,再裁剪,再更新(所列节有仅定位标题、待读正文的部分)
  • ch-191 · 第 9 章 学习率、验证、checkpoint 与恢复:9.1 逐段读学习率,而不是只说“余弦退火”(所列节有仅定位标题、待读正文的部分)
  • ch-199 · 第 02 章 张量、自动微分与最小训练闭环:2.2 从一个 sigmoid 手算梯度;2.3 计算图不会替你决定何时清空梯度(所列节有仅定位标题、待读正文的部分)
  • ch-214 · 第 17 章 学习率、梯度裁剪、超参数与 Muon:17.1 先约定 step 表示什么;17.3 梯度裁剪缩放整组向量;17.8 两个优化器必须不重不漏地分参数(所列节有仅定位标题、待读正文的部分)
  • ch-222 · 第25章 指令微调:先把“该预测什么”排对:25.5 训练与生成的闭环
  • ch-235 · 第 07 章 训练闭环:从损失到可重载的模型:07.1 一步训练有明确的先后顺序;07.2 学习率和精度选项应当真的控制执行路径;07.3 权重文件和训练检查点用途不同
  • ch-236 · 第 08 章 使用 Transformers,仍然要核对模型和数据的约定:08.1 从配置构建和从权重加载,差了一整段训练历史(所列节有仅定位标题、待读正文的部分)

rg40 · 参数、激活、KV 与训练状态分开记账 ​

候选组件:ModelCostDemo。优先级:P2。

输入:B/T/D/L、query/KV 头数、dtype、专家数/k 和显式优化器状态假设。 过程:按公布公式逐项计数,并改变一个维度看各项增长。 结果:各项元素/字节和激活/总参数差异。 边界:仅估算,不给真实显存峰值、MFU 或吞吐;稀疏选择不保证稀疏执行,历史速度不视为重测。

候选落点:

  • ch-177 · 第 26 章 让同一份计算跑得更快:精度、编译和注意力:26.2 少用一些有效位,换来什么
  • ch-186 · 第 4 章 GPTConfig、参数规模与初始化:4.2 不靠打印的 M 数,自己数一遍
  • ch-195 · 第 13 章 benchmark、MFU 与吞吐口径:13.3 FLOPs 公式从哪里来
  • ch-196 · 第 14 章 参数估算与 scaling laws:逐单元核对:14.2 sizing:精确参数、近似 FLOPs 与假设时间;14.2.1 参数与存储:单元 0—7;14.2.2 FLOPs:单元 8—10(所列节有仅定位标题、待读正文的部分)
  • ch-204 · 第 07 章 参数、FLOPs、显存与吞吐怎样估算:7.3 为何反向常粗估为前向的两倍
  • ch-206 · 第 09 章 GQA、MLA 与跨层 KV 共享:09.1 先把缓存账算在正确的对象上
  • ch-209 · 第 12 章 MoE:路由、专家与负载:12.3 总参数、激活参数与内存是三笔账
  • ch-232 · 第 04 章 训练规模很大,结论仍要落到证据上:04.1 “大模型”不是一条统一的参数门槛(所列节有仅定位标题、待读正文的部分)
  • ch-236 · 第 08 章 使用 Transformers,仍然要核对模型和数据的约定:08.5 DeepSpeed JSON 与 shell 配置逐项读
  • ch-247 · 第 19 章 拼接式视觉语言模型:图像真的进入语言模型了吗:19.5 冻结参数,不是切断梯度(所列节有仅定位标题、待读正文的部分)

rg41 · 缓存保留位置、当前可见窗口和累计位置三者分开 ​

候选组件:CacheWindowDemo。优先级:P1。

输入:历史绝对位置、块追加长度、窗口宽度及 KV 生产者。 过程:画出每个 query 允许读取的 key,再分别裁持久缓存和保留累计位置。 结果:各行可见集合、块并集及位置越界。 边界:扩展 KvCacheDemo;裁旧 KV 不等于截原 token 后重算;GQA/跨层共享另有明确形状,不预测加速或长期质量。

候选落点:

  • ch-171 · 第 20 章 用一条可检查的训练链路跑通小 GPT:20.5 生成每一步都要裁剪上下文
  • ch-193 · 第 11 章 生成接口:温度、top-k、提示和随机性:11.3 温度改变概率比,不改变正温度下的排序
  • ch-205 · 第 08 章 KV cache:先证明等价,再讨论加速:8.4 本书采用显式输入、输出缓存;8.6 丢弃 K/V 不等于重算截断窗口(所列节有仅定位标题、待读正文的部分)
  • ch-206 · 第 09 章 GQA、MLA 与跨层 KV 共享:09.1 先把缓存账算在正确的对象上;09.4 跨层共享:消费者仍然提问,生产者负责写入
  • ch-207 · 第 10 章 局部与稀疏注意力:SWA 和 DSA:10.1 SWA 的窗口到底包含谁;10.2 持久缓存可以只留 W,当前计算却未必只用 W(所列节有仅定位标题、待读正文的部分)
  • ch-211 · 第 14 章 采样、温度、top-k 与生成边界:14.6 上下文截断与 KV cache 不能混用旧假设(所列节有仅定位标题、待读正文的部分)
  • ch-217 · 第 20 章 Qwen3 与 Qwen3.5:同一个名字下,两种记忆接口:20.3 Qwen3 缓存:位置计数和 KV 容器缺一不可;20.7 混合缓存的一个重要限制;20.9 上下文拒绝、参考调试器与聊天界面(所列节有仅定位标题、待读正文的部分)
  • ch-218 · 第 21 章 Gemma 3、Gemma 4:局部层、共享层与数值约定:21.5 KV 共享必须寻找同一种层的生产者;21.9 一个实际失败案例:共享消费者读到了裁剪后的 prompt(所列节有仅定位标题、待读正文的部分)
  • ch-219 · 第 22 章 OLMo 3、Tiny Aya 与可替换模型接口:22.8 缓存差异与逐层参考测试(所列节有仅定位标题、待读正文的部分)
  • ch-226 · 第29章 三种界面,同一条推理链路:29.4 上下文预算属于接口,不应留给崩溃处理
  • ch-227 · 第30章 包接口与测试:怎样知道自己运行的是同一份模型:30.2 包额外承担的边界

rg42 · DeltaNet 先遗忘、再预测、按误差写入 ​

候选组件:DeltaStateDemo。优先级:P1。

输入:非方形 S、单位或非单位 key、value、query、alpha/beta。 过程:逐步计算衰减状态、预测误差、外积修正、读出,并对照递推与有序展开。 结果:每格状态变化和 beta=0/重复 key 的反例。 边界:前向状态更新不是优化器参数更新;不可称 softmax 等价替代;不实现高性能 chunk kernel。

候选落点:

  • ch-208 · 第 11 章 Gated DeltaNet:从矩阵状态理解递推:11.1 一个 key 对应一行读出方向;11.2 Delta rule 用预测误差修正记忆;11.3 源码每一步的形状与顺序
  • ch-217 · 第 20 章 Qwen3 与 Qwen3.5:同一个名字下,两种记忆接口:20.6 chunk 与 recurrent helper 如何相互校验

rg43 · MoE 分派后要按原 token 累加,top-1 还有训练边界 ​

候选组件:MoeDispatchDemo。优先级:P1。

输入:少量 token/router 分数、专家线性函数、top-k 与可选教学容量。 过程:选专家后归一化,按专家 gather,再乘正确 slot 权重并 scatter-add。 结果:N×k 分派、逐 token 基准、负载和 top-1 权重路径零梯度。 边界:上游没有容量截断,不把扩展容量预设写成源码事实;线性专家只验分派,不替代 SwiGLU 或速度测试。

候选落点:

  • ch-209 · 第 12 章 MoE:路由、专家与负载:12.1 路由器决定“谁来计算”,专家决定“计算什么”;12.2 为什么先展平,再按专家收集 token;12.3 总参数、激活参数与内存是三笔账
  • ch-217 · 第 20 章 Qwen3 与 Qwen3.5:同一个名字下,两种记忆接口:20.2 Qwen3 MoE:注意力不变,前馈变为按 token 分派

rg44 · 权重值相同、参数对象共享和优化器引用不相同 ​

候选组件:ParameterIdentityDemo。优先级:P1。

输入:参数对象 ID、共享/复制关系、buffer 持久性及替换顺序。 过程:建立 optimizer 引用后替换或原位复制,检查训练/保存/设备移动集合。 结果:新参数是否被更新、共享是否丢失、buffer 是否遗漏。 边界:不加载不可信 checkpoint、不伪造真实峰值内存;精确恢复仍需 RNG/数据游标和真实重载测试。

候选落点:

  • ch-176 · 第 25 章 从小 GPT 到 GPT-2:先把模型对上,再谈训练:25.2 把多头注意力压进一次矩阵乘法
  • ch-188 · 第 6 章 权重共享、损失、预训练映射与上下文裁剪:6.3 共享不是拷贝,梯度会从两个角色汇合;6.5 裁长度会换 Parameter,时机很重要(所列节有仅定位标题、待读正文的部分)
  • ch-191 · 第 9 章 学习率、验证、checkpoint 与恢复:9.4 checkpoint 有什么,没有什么(所列节有仅定位标题、待读正文的部分)
  • ch-202 · 第 05 章 多头注意力的实现选择与 buffer 生命周期:5.6 buffer 解决的是模块状态管理
  • ch-212 · 第 15 章 权重格式、参数映射与低内存加载:15.3 assign 会替换参数对象;15.7 低内存加载不能漏掉 buffer;15.8 mmap 与 assign 的小型实测(所列节有仅定位标题、待读正文的部分)
  • ch-220 · 第 23 章 扩展分词器:新 ID 还需要新的模型行:23.4 Weight tying 必须共享对象,不只是值相同;23.5 优化器、数据与 checkpoint 都要一起迁移(所列节有仅定位标题、待读正文的部分)
  • ch-225 · 第28章 LoRA:冻结大矩阵,学习一个可合并的增量:28.4 替换线性层与参数管理
  • ch-237 · 第 09 章 少训练一些参数,究竟省了什么:09.3 逐分支阅读源 LoRA 示例;09.5 QLoRA 的 4 bit 不是用整数直接完成所有计算;09.8 不能直接运行的 LoRA 片段(所列节有仅定位标题、待读正文的部分)

rg45 · 按来源分组再切分,避免相似样本跨集合 ​

候选组件:DatasetSplitDemo。优先级:P2。

输入:小文档片段、来源 ID、近似相似边和划分种子。 过程:比较先切块后随机分与先按来源/连通分量分组。 结果:跨集合泄漏边、巨型连通簇与样本分布。 边界:相似关系不传递但连通分组是防泄漏策略;不替代真实语料质量/许可审查,不把合成分数称评测结果。

候选落点:

  • ch-179 · 第 28 章 数据、评估和恢复:什么才算复现了一次训练:28.4 验证损失应该保持一个稳定的问题;本章来源与验证边界(所列节有仅定位标题、待读正文的部分)
  • ch-194 · 第 12 章 微调与 GPT-2 基线:域差异如何影响比较:12.3 基线要对齐数据域与 tokenizer;12.4 小数据微调的失败方式(所列节有仅定位标题、待读正文的部分)
  • ch-213 · 第 16 章 语料整理与 Gutenberg 训练工程:16.1 语料清单应先于合并大文件(所列节有仅定位标题、待读正文的部分)
  • ch-223 · 第26章 指令数据:先防止自己给自己打高分:26.2 先分组,再切分
  • ch-238 · 第 10 章 评测要回答一个明确的问题:10.2 源教程列出的数据集,各自在测什么;10.5 数据泄漏可以在训练前,也可以在评测时发生;10.6 可运行的小评测与练习(所列节有仅定位标题、待读正文的部分)

rg46 · DPO 比较的是相对参考模型的偏好差 ​

候选组件:PreferenceLossDemo。优先级:P2。

输入:chosen/rejected 的逐 token logprob、参考 logprob、mask 和 beta。 过程:在明确 sum/mean 约定下聚合,作策略/参考差并稳定计算 logsigmoid。 结果:偏好边距、损失和长度/空 mask 反例。 边界:不是奖励模型评分;参考分布、缩放和长度约定不可省,不补造上游 WIP 训练。

候选落点:

  • ch-224 · 第27章 DPO:比较两个回答,也要说明比较的基准:27.1 偏好对不是两个独立分类样本;27.2 从受约束奖励到概率比;27.3 为什么要用稳定的 logsigmoid(所列节有仅定位标题、待读正文的部分)
  • ch-237 · 第 09 章 少训练一些参数,究竟省了什么:09.6 偏好对齐:上游明确未完成,先学接口和目标

rg47 · LoRA 零初始化、缩放与合并怎样保持等价 ​

候选组件:LoraMergeDemo。优先级:P1。

输入:小矩阵 W/A/B、rank、alpha、两种缩放约定和合并状态。 过程:对照并联与合并输出,计算首步梯度,故意重复加入增量。 结果:逐元素误差、A/B 首步梯度和参数计数。 边界:不等于 QLoRA/量化验证;保留浮点误差、dropout 和冻结仍需反传的边界,小 rank 小矩阵也可能不省参数。

候选落点:

  • ch-225 · 第28章 LoRA:冻结大矩阵,学习一个可合并的增量:28.1 先统一矩阵朝向;28.2 缩放约定必须跟代码走;28.3 零初始化其中一边,为什么还能学
  • ch-237 · 第 09 章 少训练一些参数,究竟省了什么:09.3 逐分支阅读源 LoRA 示例;09.5 QLoRA 的 4 bit 不是用整数直接完成所有计算;09.8 不能直接运行的 LoRA 片段(所列节有仅定位标题、待读正文的部分)

rg48 · 检索排名、缺证据和答案支持度分开检查 ​

候选组件:RetrievalEvidenceDemo。优先级:P2。

输入:小文档向量、查询向量、来源、top-k、阈值及两份排名。 过程:算余弦和排名融合,展示被切块丢弃或阈值排除的证据。 结果:选中来源、分数贡献和空检索状态。 边界:不把相似度或固定置信度当事实正确概率,不调用真实模型;先核零向量和 k=0 边界。

候选落点:

  • ch-239 · 第 11 章 RAG 先找证据,再检查回答有没有用对证据:11.3 embedding 和余弦相似度分别承担什么;11.4 VectorStore 是线性扫描,不是已经优化的向量数据库(所列节有仅定位标题、待读正文的部分)
  • ch-249 · 第21章 CDDRS:把“找相似内容”变成可审计的知识检索:21.3 动态语义分块的目标与实现缝隙;21.4 知识分数怎样算,为什么不能把名字当保证;21.5 重排序与“查询增强”的实际接口(所列节有仅定位标题、待读正文的部分)

rg49 · 工具调用必须先验证,并用 ID 闭合每一轮 ​

候选组件:ToolProtocolDemo。优先级:P1。

输入:预写工具请求、call ID、JSON、白名单、重复调用与固定反馈。 过程:推进提议/验证/许可/执行/结果/继续,允许失败与重试但不运行代码。 结果:实际执行次数、闭合的消息序列和拒绝理由。 边界:只有合成无副作用函数;外部文本不授权,LocalPythonSandbox 名字不是隔离证明,不展示真实漏洞利用。

候选落点:

  • ch-181 · 第 30 章 把模型接进工作流程:提示、检索、微调和工具:30.5 工具调用要把建议和执行分开;30.6 外部文本不能给自己授予权限(所列节有仅定位标题、待读正文的部分)
  • ch-240 · 第 12 章 Agent 是一个受约束的执行循环:12.1 会提议工具,不等于有权执行工具;12.2 函数 schema 是契约的说明,不是运行时验证器;12.3 Agent 类把调用 ID 连接成一条因果链
  • ch-243 · 第15章 Search-R1:把搜索结果放回可训练的轨迹:15.2 协议先决定合法动作,再决定奖励;15.4 多轮状态机怎样终止;15.7 固定评测集仍需固定工具(所列节有仅定位标题、待读正文的部分)
  • ch-244 · 第16章 ReTool:工具执行反馈、奖励与隔离边界:16.1 把计算交给工具,也把工具失败放进学习过程;16.2 工具调用与终局答案是不同类型(所列节有仅定位标题、待读正文的部分)

rg50 · GRPO 的组内中心化与 PPO 正负优势 ​

候选组件:GroupAdvantageDemo。优先级:P1。

输入:组奖励、旧/新 logprob、epsilon 与中心化/标准化选择。 过程:算均值、优势、importance ratio,逐项对照 PPO 两支最小值。 结果:零信号组、正负优势下不同裁剪效果和 token 对齐。 边界:明确本书源码未除标准差、未显式参考 KL;不声称远端服务归约或实际训练效果已验证。

候选落点:

  • ch-241 · 第13章 GRPO:从一组答案中产生学习信号:13.1 先把“答对”与“应该更新多少”分开;13.2 策略比率到底在比较什么;13.4 把一条回答放进训练数组

rg51 · OPD 单 token 负差值与整体非负 KL ​

候选组件:DistillationSignalDemo。优先级:P1。

输入:兼容词表上的两份概率、实际采样 token、beta 和教师对齐位置。 过程:枚举学生加权 KL,对照单样本 log 比,构造每 token 优势并校验长度。 结果:负的单样本值、非负精确期望与缺分数拒绝。 边界:教师不重写答案;局部 surrogate 不冒充完整序列 KL 梯度,旧采样概率不可由新模型替代。

候选落点:

  • ch-242 · 第14章 OPD:让教师评价学生走过的路径:14.1 谁负责生成,决定了蒸馏覆盖什么;14.2 为什么单个 token 的“KL”可以为负;14.3 教师分数与学生 token 的对齐

rg52 · 预算正好耗尽、控制 token 和无进展都要显式处理 ​

候选组件:TokenBudgetDemo。优先级:P1。

输入:prompt、思考/答案限额、控制 token、固定输出长度和停止标记。 过程:请求前扣预算,每轮核实际消耗,遇等于上限/空输出/上下文不足停止。 结果:剩余预算、停止原因与不会发出的零长度请求。 边界:只验证终止协议,不证明额外思考提高质量;不同引擎是否返回 EOS、prompt 的契约分开。

候选落点:

  • ch-227 · 第30章 包接口与测试:怎样知道自己运行的是同一份模型:30.2 包额外承担的边界
  • ch-243 · 第15章 Search-R1:把搜索结果放回可训练的轨迹:15.4 多轮状态机怎样终止(所列节有仅定位标题、待读正文的部分)
  • ch-244 · 第16章 ReTool:工具执行反馈、奖励与隔离边界:16.3 从代码动作到新的上下文
  • ch-248 · 第20章 思考预算与生成:更多 token 应该花在哪里:20.1 先定义预算,再讨论效果;20.2 把一条回答的长度分成三部分;20.3 原预算循环为什么需要边界测试

rg53 · 局部贪婪、累计概率与束的完成集合 ​

候选组件:SequenceSearchDemo。优先级:P2。

输入:小概率树、束宽、EOS 和明示长度惩罚。 过程:逐层扩展,分开保留未完成与完成候选;独立演示 top-p 阈值包含项。 结果:贪婪与更高概率路径、被截断前缀和停止条件。 边界:有限束仍近似,不保证事实正确;不把原教学 beam 的单样本实现说成 batch 通用。

候选落点:

  • ch-235 · 第 07 章 训练闭环:从损失到可重载的模型:07.4 生成规则决定下一步怎样选 token
  • ch-248 · 第20章 思考预算与生成:更多 token 应该花在哪里:20.4 贪婪、采样与束搜索分别优化什么

rg54 · 把现有注意力数值实验放到首次需要它的位置 ​

候选组件:AttentionDemo。优先级:P2。拟复用已有组件,仍需核对本章符号与接口。

输入:现有组件已支持的小 Q/K/V、缩放与 causal mask。 过程:复用相同计算和未来扰动检查,按各章措辞提供导读。 结果:权重与输出,以及与本章公式的逐项对应。 边界:复用只覆盖支持的方形机制;不声称已演示 SDPA 内核、不同长交叉注意力或整块 Transformer。

候选落点:

  • ch-169 · 第 18 章 让当前位置挑选有用的过去:18.2 softmax 把允许的分数转成权重;18.3 Q、K、V 是三种不同用途的投影(所列节有仅定位标题、待读正文的部分)
  • ch-187 · 第 5 章 逐层推导因果注意力、MLP 和残差:5.2 Q、K、V 是三次线性投影,合成一次执行;5.3 掩码必须在 softmax 之前作用(所列节有仅定位标题、待读正文的部分)
  • ch-202 · 第 05 章 多头注意力的实现选择与 buffer 生命周期:5.3 SDPA 的 mask 与 dropout 约定

rg55 · 把已有拆头元素追踪用于 packed QKV 的伴读 ​

候选组件:MultiHeadShapeDemo。优先级:P2。拟复用已有组件,仍需核对本章符号与接口。

输入:现有 B/T/D/H 和元素身份。 过程:复用拆轴、换轴、还原,正文另外解释 packed QKV 的切分。 结果:形状与元素去向。 边界:组件不自动覆盖 packed 投影权重或 GPU 内存连续性;必须先核每章符号。

候选落点:

  • ch-170 · 第 19 章 把注意力装成能反复堆叠的块:19.1 多头是在同一输入上作多次不同的投影;19.2 逐个写出 reshape,才知道头去了哪里(所列节有仅定位标题、待读正文的部分)
  • ch-176 · 第 25 章 从小 GPT 到 GPT-2:先把模型对上,再谈训练:25.2 把多头注意力压进一次矩阵乘法
  • ch-187 · 第 5 章 逐层推导因果注意力、MLP 和残差:5.2 Q、K、V 是三次线性投影,合成一次执行

rg56 · 复用温度与 top-k,而把 top-p/束搜索留给新机制 ​

候选组件:SamplingDemo。优先级:P2。拟复用已有组件,仍需核对本章符号与接口。

输入:现有 logits、温度、k、抽样点。 过程:沿既有归一化、过滤、CDF 取样步骤操作。 结果:候选支持集、概率和选中 token。 边界:不宣称现有 SamplingDemo 已支持 top-p 或 beam;所有随机演示按公布的教学输入解释。

候选落点:

  • ch-156 · 第 5 章 从计数得到概率、采样和损失:5.2 广播不会替你判断数学意图
  • ch-193 · 第 11 章 生成接口:温度、top-k、提示和随机性:11.1 采样从一个非空提示开始;11.3 温度改变概率比,不改变正温度下的排序;11.6 采样入口的全部默认开关(所列节有仅定位标题、待读正文的部分)
  • ch-248 · 第20章 思考预算与生成:更多 token 应该花在哪里:20.4 贪婪、采样与束搜索分别优化什么

rg57 · 把已有逐行停止协议复用到 Happy LLM 的生成段 ​

候选组件:BatchStoppingDemo。优先级:P2。拟复用已有组件,仍需核对本章符号与接口。

输入:现有逐行候选 token、EOS 和长度上限。 过程:复用 finished 状态与已完成行补 PAD,对照单行结束和全批结束。 结果:每行停止原因及最后全批终止条件。 边界:组件已存在但本章未嵌入;必须保持源码是否包含 EOS、新生成片段和返回序列的契约差异。

候选落点:

  • ch-235 · 第 07 章 训练闭环:从损失到可重载的模型:07.4 生成规则决定下一步怎样选 token;07.5 TextGenerator 把前述接口接成演示

rg58 · EOS 已在损失函数被忽略后,外部 mask 为什么救不回来 ​

候选组件:LossIgnoreContractDemo。优先级:P1。

输入:真实 EOS/PAD 来源、相同 ID、ignore_index 和有限 logits。 过程:先算模型内部逐位置交叉熵,再应用外部 loss mask,对照按 ID 忽略和按位置改 -100。 结果:哪一步把合法 EOS 贡献清零及有效分母差异。 边界:TokenSupervisionDemo 已覆盖位置身份;这里仅补损失函数内部忽略契约,不重复做标签位移,也不声称改 mask 就修复训练器。

候选落点:

  • ch-234 · 第 06 章 Tokenizer 和标签决定模型实际学到什么:06.2 一个 tokenizer 文件里不止词表;06.4 按字节索引 JSONL,按 token 右移标签;06.5 SFT mask 必须跟着消息边界走(所列节有仅定位标题、待读正文的部分)
  • ch-235 · 第 07 章 训练闭环:从损失到可重载的模型:07.1 一步训练有明确的先后顺序;07.8 隔离测试怎样复现上游缺陷
  • ch-222 · 第25章 指令微调:先把“该预测什么”排对:25.3 两种掩码不能互相代替

rg59 · context 的首次原因、值遮蔽和停止回调是不同协议 ​

候选组件:ContextContractDemo。优先级:P2。

输入:父子首次取消原因、键值层级、AfterFunc 起停事件与 WithoutCancel 分支。 过程:分开的有限预设追踪首次 cause、向上查值、stop 成功或回调已开始,以及断开的取消传播。 结果:Err/Cause 差异、遮蔽来源与回调尚未完成的状态。 边界:不是扩 ContextTreeDemo 的 deadline 就自动覆盖;不把可变 Value 当线程安全,不把 stop=false 当回调已完成。

候选落点:

  • ch-017 · context:让一条调用链共用退出信号和时间预算:Err 回答取消类别,Cause 保留具体原因;WithValue 只放请求范围内需要跨层流转的元数据;两个扩展入口,用前先看清谁负责善后(所列节有仅定位标题、待读正文的部分)

rg60 · Once 执行一次,不代表成功一次 ​

候选组件:OnceOutcomeDemo。优先级:P2。

输入:普通 Once/OnceValue、首次正常或 panic、后续调用。 过程:按明确 API 契约推进首次调用与重复调用。 结果:是否重试、返回值/重复 panic 的差别。 边界:不从一次执行推出业务成功,不模拟线程调度或保证任意重试安全。

候选落点:

  • ch-018 · sync 包:从保护一组状态,到等一批任务结束:Once:执行一次,连失败语义也只认一次(所列节有仅定位标题、待读正文的部分)

rg61 · 筛选维度的组合数与允许发布集合分开 ​

候选组件:FacetCombinationDemo。优先级:P2。

输入:少量筛选维度、可组合值、排除条件与允许发布清单。 过程:枚举笛卡尔积,再逐条应用有效组合约束和 URL 规范化。 结果:候选 URL、重复项与明确拒绝原因。 边界:集合数量不是抓取预算或流量预测;生成资格不等于页面独立价值,更不自动授权发布。

候选落点:

  • ch-123 · 第 8 章 长尾需求、程序化 SEO 与机会验证:8.5 什么需求适合程序化页面;8.7 完整算例:从组合空间到允许发布的集合(所列节有仅定位标题、待读正文的部分)
  • ch-128 · 第 13 章 抓取与索引控制:让正确页面进入正确队列:13.7 抓取预算:先证明存在瓶颈
  • ch-149 · 08 先算清一批页面,再决定要不要扩大:8.7 地区和语言扩展,先证明差异有用

rg62 · 线上已修复与搜索系统已处理是两个时间事实 ​

候选组件:SearchEvidenceTimelineDemo。优先级:P2。

输入:发布/修复时刻、最近抓取快照、实时测试和索引记录。 过程:把证据按观测时刻与所反映版本分层,改变一次修复或再抓取事件。 结果:哪些结论已被观察、哪些仍未知。 边界:不模拟真实搜索排队时延、排名或保证恢复日期;时间相关不证明因果。

候选落点:

  • ch-117 · 第 2 章 搜索引擎怎样发现和处理一个页面:2.7 用两种时间视角读 URL 检查
  • ch-128 · 第 13 章 抓取与索引控制:让正确页面进入正确队列:13.9 可复制的检查流程与验收口径(所列节有仅定位标题、待读正文的部分)
  • ch-131 · 第 16 章 技术审计、日志与迁移:把问题缩小到能够修复的范围:一个完整的防火墙误拦案例;一个参数爆炸案例(所列节有仅定位标题、待读正文的部分)
  • ch-133 · 第 18 章 以 Google 为基准理解搜索引擎与站长工具:18.4 用一个 URL 建立完整的观察链条;18.11 原创案例:同一站点为什么在两个引擎表现不同(所列节有仅定位标题、待读正文的部分)
  • ch-148 · 07 观测数据与反馈决策:知道该改什么,也知道什么时候先别动:7.4 日快照需要记录“数据版本”和“页面版本”;7.11 提交、抓取、索引、排名分别记录(所列节有仅定位标题、待读正文的部分)

rg63 · AdamW 的历史矩和解耦衰减怎样改变一步更新 ​

候选组件:OptimizerStateDemo。优先级:P1。

输入:短梯度序列、学习率、beta1/beta2、epsilon 和衰减率。 过程:逐步累积一二阶矩、偏差校正,比较解耦 weight decay 与把 L2 加入梯度。 结果:每步状态、更新向量及相同权重不同历史的分歧。 边界:只验证公布的有限公式;不声称任意实现默认一致、训练收敛或 Muon 已覆盖。

候选落点:

  • ch-171 · 第 20 章 用一条可检查的训练链路跑通小 GPT:20.2 AdamW 更新的是参数,不是输入编号
  • ch-178 · 第 27 章 一次更新到底看了多少数据:AdamW、累积与多卡:27.1 AdamW 的状态比参数本身多(所列节有仅定位标题、待读正文的部分)
  • ch-190 · 第 8 章 训练主循环、梯度累积、混合精度与裁剪:8.2 优化器为什么分成两组
  • ch-214 · 第 17 章 学习率、梯度裁剪、超参数与 Muon:17.8 两个优化器必须不重不漏地分参数(所列节有仅定位标题、待读正文的部分)

rg64 · FP16、BF16 的范围与缩放别混成一个精度开关 ​

候选组件:PrecisionRangeDemo。优先级:P2。

输入:有限标量、表示格式、loss scale 和可选溢出例。 过程:按明确舍入规则表示输入,对照指数范围与尾数间隔,再还原缩放梯度。 结果:舍入误差、溢出/下溢与不能恢复的信息。 边界:不是 GPU 实测、TF32 内核或完整 autocast 仿真;格式范围不等于模型训练稳定性。

候选落点:

  • ch-177 · 第 26 章 让同一份计算跑得更快:精度、编译和注意力:26.2 少用一些有效位,换来什么
  • ch-190 · 第 8 章 训练主循环、梯度累积、混合精度与裁剪:8.3 AMP 改计算精度,不等于把所有状态都减半(所列节有仅定位标题、待读正文的部分)
  • ch-215 · 第 18 章 训练性能及 CPU、MPS 数值差异:18.3 TF32、bfloat16 与 autocast 不是同一件事

rg65 · 滑窗把输入和下一 token 目标一起移一格 ​

候选组件:TokenWindowDemo。优先级:P1。

输入:有限 ID 数组、窗口长度/步长、文档边界和切分位置。 过程:逐格标出 X/Y 的原位置,移动起点并校验目标末格和切块余数。 结果:合法起点集合、错位反例及最后一窗。 边界:可借 TokenSupervisionDemo 的位置身份,但这组只补数据窗口;不模拟 memmap 性能、真实 tokenizer 或完整 Trainer 的内部 shift。

候选落点:

  • ch-155 · 第 4 章 把名字变成字符数据:4.2 边界字符让长度也成为预测对象
  • ch-168 · 第 17 章 先把 GPT 的训练题出对:17.2 一段长度为 T 的输入,其实出了 T 道题
  • ch-189 · 第 7 章 memmap 批次与下一 token 对齐:7.2 最后一扇窗口为什么从 N−T−1 开始
  • ch-200 · 第 03 章 文本怎样变成 token:词表、BPE 与特殊符号:3.6 上游两种自写 BPE 的用途和实测边界;3.8 滑窗负责构造问题和答案(所列节有仅定位标题、待读正文的部分)
  • ch-234 · 第 06 章 Tokenizer 和标签决定模型实际学到什么:06.3 原始数据转换必须可重复,也必须保留对话角色;06.5 SFT mask 必须跟着消息边界走(所列节有仅定位标题、待读正文的部分)
  • ch-236 · 第 08 章 使用 Transformers,仍然要核对模型和数据的约定:08.2 tokenize、拼接、切块和 shift 的边界

250 章逐章记录 ​

“全文”仅表示本轮读完 Markdown 文字,不等于技术正确性审定或交互已覆盖;“抽读”表示仅阅读两处正文摘段。完整逐行定位、摘录、哈希、旧审查记录与候选边界见机器可读清单。

ID / 章节本轮阅读已有局部覆盖本轮候选 / 正在实施静态保留理由与待办
ch-001 · Go 函数:看清参数何时传入,代码何时执行两处摘段;待逐节复核无正文嵌入rg01已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-002 · Go 包与可见性:让依赖关系能被编译器检查两处摘段;待逐节复核无正文嵌入暂不新增;sp04包名、目录树和 internal 资格需要稳定对照;编译反例能直接验证导入边界。初始化并发仍须逐节复核。
ch-003 · Go 反射 unsafe cgo 与代码生成两处摘段;待逐节复核无正文嵌入rg08已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-004 · Go 接口两处摘段;待逐节复核无正文嵌入rg02已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-005 · Go 标准库必熟:从一件具体工作找到入口两处摘段;待逐节复核无正文嵌入暂不新增;sp04标准库入口跨 IO、HTTP 等多种契约,现有短程序和查阅表更适合作参考;不把一个玩具 IO 模型冒充标准库大全。
ch-006 · Go 泛型:同一套算法,怎样保留不同的具体类型两处摘段;待逐节复核无正文嵌入暂不新增;sp04类型集合、~ 与 comparable 的约束依赖编译器及版本;真实编译失败例和类型对照表更可靠。
ch-007 · Go 类型系统两处摘段;待逐节复核无正文嵌入rg03、rg33已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-008 · Go 结构体与方法两处摘段;待逐节复核无正文嵌入rg03已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-009 · Go 迭代器:把“怎样取下一个”留给集合两处摘段;待逐节复核无正文嵌入rg04已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-010 · Go 错误处理:保留原因,让调用者知道下一步怎么做两处摘段;待逐节复核无正文嵌入rg02已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-011 · Channel:把数据交出去,也把结束方式说清楚两处摘段;待逐节复核ChannelDemo、SelectReadinessDemorg03、rg06已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-012 · Go 内存模型:怎样证明另一个 goroutine 能看见你的写入两处摘段;待逐节复核AtomicReservationDemorg05已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-013 · Go 并发工具选型:errgroup、singleflight、semaphore 各管哪一段两处摘段;待逐节复核无正文嵌入rg04、rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-014 · Go 并发常见坑:用四个小反例找到真正的失误两处摘段;待逐节复核无正文嵌入rg01已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-015 · Go 并发模式:把任务分开以后,怎样一起收尾两处摘段;待逐节复核无正文嵌入rg04、rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-016 · Goroutine:启动以后,怎样让它按时结束两处摘段;待逐节复核无正文嵌入rg04已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-017 · context:让一条调用链共用退出信号和时间预算两处摘段;待逐节复核ContextTreeDemorg01、rg04、rg59已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-018 · sync 包:从保护一组状态,到等一批任务结束两处摘段;待逐节复核AtomicReservationDemorg05、rg60已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-019 · Go defer、select、timer 与 netpoller:调用结束了,等待怎样结束两处摘段;待逐节复核无正文嵌入rg01、rg06已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-020 · Go 内存分配:一次申请怎样变成可用空间两处摘段;待逐节复核无正文嵌入暂不新增;sp02span/尺寸类及专门分配入口是版本实现细节,路径图和源码定位更适合;不能由模拟分配推断真实成本。
ch-021 · Go 垃圾回收:先看活着的对象,再谈调参两处摘段;待逐节复核无正文嵌入rg08已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-022 · Go 数据结构实现:值复制了,底下的数据复制了吗两处摘段;待逐节复核无正文嵌入rg03已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-023 · 什么是 GMP:goroutine 怎样得到执行机会两处摘段;待逐节复核GmpDemo暂不新增;sp04GmpDemo 已解释任务/线程/P 与等待;安全点和真实调度限制保留源码与 trace,尚未证明本章其他机制都已覆盖。
ch-024 · 逃逸分析:为什么同一个指针,有时不分配堆内存两处摘段;待逐节复核无正文嵌入暂不新增;sp02取地址与逃逸取决于编译器、内联和生命周期;保留 -gcflags 证据与真实分配实验,避免动画硬判堆/栈。
ch-025 · Go 代码质量:格式、静态检查、测试和审查各管一段两处摘段;待逐节复核无正文嵌入暂不新增;sp01格式化、vet、测试和人工审查的责任边界适合静态对照及真实失败输出,不需给工具造虚拟成功按钮。
ch-026 · Go 依赖注入:谁创建对象,谁把依赖交给它,谁负责收尾两处摘段;待逐节复核无正文嵌入暂不新增;sp04构造依赖、组装和资源清理靠具体对象关系与可运行代码说明;未发现比现有依赖图更清楚的独立数值机制。
ch-027 · Go 工程工具选型:沿着一个项目的重复劳动逐个选择两处摘段;待逐节复核无正文嵌入暂不新增;sp01工具版本、归档状态与项目需求是选型依据;当前更适合可查的比较表和原代码,不能用固定权重推荐。
ch-028 · Go 构建与发布:从一个二进制追到它的源码、参数和验证结果两处摘段;待逐节复核无正文嵌入暂不新增;sp01构建标签、输入固定和制品校验需要真实编译产物;保留命令与摘要比模拟发布更直接。
ch-029 · Go 模块管理:弄清这次构建到底用了哪份代码两处摘段;待逐节复核无正文嵌入暂不新增;sp01模块解析、代理回退与私有路径泄漏依赖真实工具和配置;先保持显式路径/来源表,不模拟网络请求成功。
ch-030 · Go 测试:让一次失败告诉你该改哪里两处摘段;待逐节复核无正文嵌入暂不新增;sp01Helper/Cleanup、基准测试与失败定位已有真实测试代码;互动不能替代执行或把 ns/op 变成普遍结论。
ch-031 · Go 结构化日志:让一次事件能查到,也别把秘密写进去两处摘段;待逐节复核无正文嵌入暂不新增;sp04日志级别、采样、索引与敏感信息是不同政策;静态事件例与字段责任表更清楚。
ch-032 · Go 配置管理:启动前,把来源、类型和错误处理清楚两处摘段;待逐节复核无正文嵌入rg20已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-033 · Go 项目结构:让目录边界和依赖方向说同一件事两处摘段;待逐节复核无正文嵌入暂不新增;sp04目录和依赖方向需要同时查源码;包关系图与循环导入编译反例适合保留。
ch-034 · 设计原则:用 Go 守住业务规则,再决定需要多少抽象两处摘段;待逐节复核无正文嵌入暂不新增;sp03抽象、Option 和 DDD 需要业务上下文,不宜做统一好坏评分;现有前后代码比较更合适。
ch-035 · Linux:从一个故障问题出发,选命令、读指标、写可控脚本两处摘段;待逐节复核无正文嵌入暂不新增;sp01Linux 命令与 systemd 行为必须联系权限、内核和现场证据;保留命令输出与读法,不模拟真实故障诊断。
ch-036 · 操作系统:把“程序在等什么”和“资源归谁”讲清楚两处摘段;待逐节复核无正文嵌入暂不新增;sp04页表/TLB 与 epoll 都可另做模型,但本次只抽读相关段落,尚未确定哪一小机制值得优先制作;先保留关系图并逐节复核。
ch-037 · 数据结构与算法:从操作需求出发,理解每一种结构为什么存在两处摘段;待逐节复核无正文嵌入rg09、rg14已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-038 · 计算机网络:沿着一次请求,把协议各自负责的事分清两处摘段;待逐节复核无正文嵌入暂不新增;sp04TCP/TLS 是完整协议和抓包问题,选段中的半关闭与认证边界宜先保留时序图;尚未选定可不误导的交互子集。
ch-039 · Go HTTP 中间件:包住 Handler,也要守住响应边界两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-040 · Go Web 与 RPC 工具选型:先分清它们替你承担哪一层两处摘段;待逐节复核无正文嵌入暂不新增;sp01框架、路由库和 IDL 工具承担不同层次,选型表及同一任务代码更合适,不能凭功能数打分。
ch-041 · Go 请求处理:把不可信输入变成明确结果两处摘段;待逐节复核无正文嵌入暂不新增;sp04JSON/Range 等约定依赖真实解析器和 HTTP 行为;保留可复现请求/响应,不用少量按钮代替输入安全校验。
ch-042 · RESTful 设计:让调用方知道一次请求究竟做了什么两处摘段;待逐节复核无正文嵌入暂不新增;sp04方法语义、兼容性和契约演进主要是判断边界,静态请求/响应例与变更清单更适合。
ch-043 · RPC 与 gRPC:像调用函数一样使用,也要按网络请求处理两处摘段;待逐节复核无正文嵌入暂不新增;sp04流式结束、拦截器和 Metadata 的责任图已有表达空间;真实 gRPC 协议需运行验证,本次未选可独立复用的新模型。
ch-044 · WebSocket、GraphQL 与 Webhook:三种不同的问题,三条不同的链路两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-045 · net/http:把一个请求从接收到收尾讲清楚两处摘段;待逐节复核无正文嵌入暂不新增;sp04Body 关闭责任及 Do 返回后的读取超时宜保持时序/责任表;未来可借任务收尾模型,但现阶段尚未复核完整网络状态。
ch-046 · Go 数据库工具选型两处摘段;待逐节复核无正文嵌入暂不新增;sp01SQL 展开与迁移 dirty 状态依赖具体库契约,保留真实转换输出和恢复步骤;不模拟 force 成功即结构已修复。
ch-047 · Go 数据访问:管好连接、事务和 SQL 边界两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-048 · MySQL:沿着一次提交,认识 InnoDB、日志与复制两处摘段;待逐节复核无正文嵌入暂不新增;sp02redo/undo/binlog 和慢查询优先级需真实持久化/计划证据;静态职责表更适合,事务玩具不能替代故障恢复实验。
ch-049 · NoSQL 与专用存储两处摘段;待逐节复核无正文嵌入暂不新增;sp04专用存储的读写 concern、序列和迟到数据定义依赖产品;保留查询与语义比较,不统一成一个一致性滑块。
ch-050 · PostgreSQL:把版本清理、JSONB 与索引选对两处摘段;待逐节复核无正文嵌入暂不新增;sp04JSONB 保真边界和 GiST 范围例已有明确 SQL/输出;版本可见性另需完整章审,不能拿索引模型冒充数据库。
ch-051 · SQL 基础:先确定一行代表什么,再写查询两处摘段;待逐节复核无正文嵌入rg10已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-052 · 数据库事务:让一组修改成立,也让并发判断成立两处摘段;待逐节复核无正文嵌入rg11已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-053 · 数据库扩展性:先找瓶颈,再增加分布式边界两处摘段;待逐节复核无正文嵌入rg19已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-054 · 数据库索引:从少读哪些数据,理解一条查询为什么快两处摘段;待逐节复核IndexSearchDemorg12已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-055 · Go 缓存工具选型两处摘段;待逐节复核无正文嵌入rg13已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-056 · Redis 原理两处摘段;待逐节复核无正文嵌入rg19已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-057 · Redis 数据结构两处摘段;待逐节复核无正文嵌入暂不新增;sp04String 原子操作、编码和 HLL 是不同机制;本次样本只支持保留类型/API 表,HLL 位级模型须另读正文后立项。
ch-058 · Redis 缓存进阶两处摘段;待逐节复核无正文嵌入rg13、rg16已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-059 · 缓存三大问题两处摘段;待逐节复核无正文嵌入rg13、rg14已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-060 · 缓存模式两处摘段;待逐节复核无正文嵌入rg13已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-061 · Go 消息与工作流工具选型:先选需要哪一层,再检查确认和重试两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-062 · Kafka:从分区日志理解复制、吞吐、Rebalance 与事务两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-063 · 消息队列其他选型:从路由、重放和业务交接来选择两处摘段;待逐节复核无正文嵌入暂不新增;sp01Exchange/队列、Pulsar 订阅与存储是不同产品契约,架构图及选型表优先,不能给统一可靠性分数。
ch-064 · 消息队列可靠性:把每一个故障窗口处理清楚两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-065 · 消息队列应用模式:从一次订单提交走到可靠的异步处理两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-066 · 消息队列核心概念:一条消息由谁保管,处理进度记在哪里两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-067 · Go 微服务治理工具选型:先分层,再比较同一层的代价两处摘段;待逐节复核无正文嵌入暂不新增;sp01治理工具的层次和配置生命周期由系统条件决定,静态比较和运维责任更重要。
ch-068 · 共识算法:主节点换了,已经答应的事不能反悔两处摘段;待逐节复核无正文嵌入rg17已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-069 · 分布式事务:两边不能一起提交时,怎样把账做完整两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-070 · 分布式基础组件:锁、ID、任务和会话都要面对“旧请求还活着”两处摘段;待逐节复核无正文嵌入rg16已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-071 · 分布式理论基础:先说清“什么结果算对”两处摘段;待逐节复核无正文嵌入rg18已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-072 · 微服务拆分方法:先把边界分清,再决定要不要跨网络两处摘段;待逐节复核无正文嵌入暂不新增;sp03限界上下文与渐进拆分需要真实业务语言和组织边界;固定互动不能替代架构判断。
ch-073 · 数据分布:决定数据放哪里,也决定以后怎么搬两处摘段;待逐节复核无正文嵌入rg19已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-074 · 服务治理:让请求找到合适的实例,并在变化时有序退出两处摘段;待逐节复核无正文嵌入rg20已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-075 · Go 稳定性与压测工具选型:先选保护边界,再选测量方式两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-076 · 发布安全:新版本能接班,旧版本也要能退场两处摘段;待逐节复核无正文嵌入rg21已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-077 · 可靠性度量:先写清分母,再谈几个 9全文已读;仍须规格/验收无正文嵌入rg22已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-078 · 容灾:副本能接班,备份能回到过去,恢复还需要演练两处摘段;待逐节复核无正文嵌入暂不新增;sp02备份校验、恢复和旧主隔离需要真实演练,保留检查顺序与原始验证证据;模拟成功不能证明可恢复。
ch-079 · 容量与弹性:先量出可用容量,再讨论扩多少实例两处摘段;待逐节复核无正文嵌入rg23已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-080 · 幂等设计:超时以后,怎样安全地再试一次两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-081 · 稳定性手段:让慢依赖和突发流量止步于有限资源两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-082 · 高并发手段:减少重复工作,并给共享资源设上限两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-083 · Go 安全工具选型:先分清库、扫描器和密钥服务两处摘段;待逐节复核无正文嵌入暂不新增;sp01密码库、扫描器和密钥服务职责不同,保持版本/能力/风险对照,不用玩具测试作安全背书。
ch-084 · 供应链与运行时安全:从依赖来源追到线上进程两处摘段;待逐节复核无正文嵌入暂不新增;sp03制品摘要与信任来源、镜像最小化是证据链问题;图和真实校验更合适,大小不当安全分。
ch-085 · 密码学应用:先决定要保护什么,再选算法两处摘段;待逐节复核无正文嵌入暂不新增;sp03盐、密钥、TLS 等密码学操作不应靠简化动画指导生产密钥使用;保留协议关系、标准来源及安全 API。
ch-086 · 常见安全漏洞:沿着输入找到危险操作两处摘段;待逐节复核无正文嵌入暂不新增;sp03XSS 与路径解析的上下文差异宜用隔离代码/静态输入输出讲清;不新增可执行不可信内容的浏览器练习。
ch-087 · 授权:把“谁能对哪份数据做什么”写成可检查的规则两处摘段;待逐节复核无正文嵌入rg25已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-088 · 接口安全:让每一道检查都有明确的边界两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-089 · 认证:从“登录成功”到每次请求都认对人两处摘段;待逐节复核无正文嵌入暂不新增;sp03会话、token、Cookie 和吊销机制要贴合实际认证流程;生命周期表更合适,不制作虚假的通用登录安全验证器。
ch-090 · Go 可观测性工具选型:先分清谁采集、谁保存、谁帮你定位问题两处摘段;待逐节复核无正文嵌入暂不新增;sp01工具与后端的权限和采集范围是选型条件;保留比较表,不把一个图形界面当已建立完整观测。
ch-091 · OpenTelemetry:让 Go 服务产生、传播并交付遥测数据两处摘段;待逐节复核无正文嵌入暂不新增;sp02OTel 的 Resource/Scope/Span 与错误状态映射宜配合真实导出证据,静态对象关系和代码更直接。
ch-092 · 可观测性三大支柱:从“服务变慢了”找到下一条证据两处摘段;待逐节复核无正文嵌入rg22已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-093 · 告警设计:让每一次叫醒都指向一件值得做的事两处摘段;待逐节复核无正文嵌入rg22已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-094 · 持续剖析:把一次性能排查,变成能回看时间和版本的证据两处摘段;待逐节复核无正文嵌入暂不新增;sp02持续剖析的开销与版本归因需真实样本;保留 profile 标签和采集责任,不生成假火焰图。
ch-095 · 故障复盘:把当时发生的事,变成可以验证的改进两处摘段;待逐节复核无正文嵌入暂不新增;sp03事故影响、证据和行动项需要事实复核;时间线与复盘模板更适合,不由规则自动指认根因。
ch-096 · Go trace:把“请求在等什么”放回时间线上两处摘段;待逐节复核无正文嵌入暂不新增;sp02真实 trace 的时间与资源状态不能由调度教学脚本替代;保留采集、任务命名和隐私边界。
ch-097 · Go 典型故障排查:从八种症状找到下一份证据两处摘段;待逐节复核无正文嵌入暂不新增;sp02症状到证据的路径依赖现场,静态排查地图与真实栈/池指标更可靠;不把固定诊断树当自动根因定位。
ch-098 · Go 基准测试:让“更快了”有可以复核的含义两处摘段;待逐节复核无正文嵌入暂不新增;sp02基准设计与 benchstat 结论依赖可比测量;保留统计说明和原始样本,不插虚拟性能曲线。
ch-099 · Go 常见优化点:把成本降下来,也把语义保住两处摘段;待逐节复核无正文嵌入暂不新增;sp02逃逸和 PGO 效果由编译器及代表性 profile 决定;保持真实前后实验及语义检查,不能从示意预测收益。
ch-100 · Go 性能诊断工具选型:六个工具,六种不同的问题两处摘段;待逐节复核无正文嵌入暂不新增;sp01六类诊断工具回答不同问题,静态用途/证据表便于查阅,虚拟采样无法替代现场。
ch-101 · Go 调试:断点看状态,GODEBUG 看运行时,core 留住现场两处摘段;待逐节复核无正文嵌入暂不新增;sp02Delve/core/GOTRACEBACK 的选择依赖真实进程状态与敏感数据权限;保留命令和安全边界。
ch-102 · pprof:先选对“在量什么”,再找热点两处摘段;待逐节复核无正文嵌入暂不新增;sp02pprof sample type 与管理端口责任需真实采集和访问测试,保持静态视图对照。
ch-103 · Go CI-CD 与 GitOps两处摘段;待逐节复核无正文嵌入暂不新增;sp04制品身份与 GitOps 纠偏需要受控环境的真实审计链;现有状态/版本表优先,不新增自动部署模拟。
ch-104 · Go 云原生工具选型两处摘段;待逐节复核无正文嵌入暂不新增;sp01Actions、Kubernetes 和 Operator 的权限各异,保留控制循环和最小 RBAC 例,不用可点击演示授予权限。
ch-105 · Go 在容器中两处摘段;待逐节复核无正文嵌入rg21已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-106 · Kubernetes两处摘段;待逐节复核无正文嵌入rg21已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-107 · 后端云服务两处摘段;待逐节复核无正文嵌入暂不新增;sp01网络路由、云平台超时和产品边界高度依赖环境;静态拓扑与官方配置证据更适合,不能冒充线上可达性。
ch-108 · 基础设施即代码两处摘段;待逐节复核无正文嵌入暂不新增;sp01IaC state 的敏感性与 Helm release 身份适合流程/对象图和真实 plan 检查;避免虚构无风险 apply。
ch-109 · 容器与 Docker两处摘段;待逐节复核无正文嵌入暂不新增;sp04容器隔离与构建缓存条件需要具体 Linux/Docker 环境;现有依赖图及真实构建例优先。
ch-110 · 网关与代理两处摘段;待逐节复核无正文嵌入暂不新增;sp04代理 TLS 终结和缓冲涉及实际链路信任及连接行为;保留时序/信任边界图,不用固定时钟宣称生产流延迟。
ch-111 · Go 源码阅读方法两处摘段;待逐节复核无正文嵌入暂不新增;sp01源码阅读方法的收益在注释、调用链和实测对应;本章已有大型真实片段,不宜再造一个替代源码的总模拟器。
ch-112 · 架构演进:每拆开一个边界,都要重新回答谁负责提交和恢复两处摘段;待逐节复核无正文嵌入rg15已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-113 · 系统容量估算:把请求、字节和等待时间算到同一张账上两处摘段;待逐节复核无正文嵌入rg24已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-114 · 系统设计方法论:把需求一步步变成能验证的方案两处摘段;待逐节复核无正文嵌入rg24已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-115 · 系统设计经典题目:十二种系统,十二组必须守住的约束两处摘段;待逐节复核无正文嵌入rg07已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-116 · 第 1 章 SEO 是什么以及它怎样创造商业价值两处摘段;待逐节复核无正文嵌入rg31已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-117 · 第 2 章 搜索引擎怎样发现和处理一个页面两处摘段;待逐节复核IndexingSignalsDemorg26、rg29、rg62已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-118 · 第 3 章 理解搜索意图与结果质量两处摘段;待逐节复核无正文嵌入暂不新增;sp03搜索意图、可信度与页面任务需阅读真实内容;评分员边界用静态例更准确,不制造质量或排名计算器。
ch-119 · 第 4 章 把 SEO 目标变成可执行的项目两处摘段;待逐节复核无正文嵌入暂不新增;sp03差异、里程碑和验收标准取决于业务目标;路线图与审查清单比机械优先级分更可靠。
ch-120 · 第 5 章 关键词发现:从真实问题到可信的数据集两处摘段;待逐节复核无正文嵌入暂不新增;sp03访谈证据和第三方难度分的适用性需要人工核查;静态来源字段和指标说明更合适。
ch-121 · 第 6 章 搜索意图、关键词聚类与页面规划两处摘段;待逐节复核无正文嵌入rg31已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-122 · 第 7 章 竞对与搜索结果研究:找到可以验证的差距两处摘段;待逐节复核无正文嵌入暂不新增;sp03竞争页观察受日期和查询环境限制,引用域名去重可手算但不代表可获取链接;现有案例优先。
ch-123 · 第 8 章 长尾需求、程序化 SEO 与机会验证两处摘段;待逐节复核无正文嵌入rg61程序化页面是否有独立价值需要真实数据与功能验收;阶段检查表合适,不用生成数量作为教学成功指标。
ch-124 · 第 9 章 从域名到内链 建立可以持续生长的网站两处摘段;待逐节复核无正文嵌入rg26已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-125 · 第 10 章 页面优化 让搜索承诺与访问体验一致两处摘段;待逐节复核无正文嵌入暂不新增;sp03摘要承诺、正文和可访问性主要需真实阅读/操作;保留规范例与验收表,不造 SEO 分数。
ch-126 · 第 11 章 内容策略 从选题到持续维护两处摘段;待逐节复核无正文嵌入暂不新增;sp03原创价值、更新和退役由事实与用途判断;编辑流程和维护表优先,不让模型打分代替责任。
ch-127 · 第 12 章 不同站型的 SEO 把通用方法放进真实业务两处摘段;待逐节复核无正文嵌入rg26已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-128 · 第 13 章 抓取与索引控制:让正确页面进入正确队列两处摘段;待逐节复核IndexingSignalsDemorg27、rg28、rg61、rg62已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-129 · 第 14 章 渲染、移动端与页面体验:让内容确实可见、可用两处摘段;待逐节复核无正文嵌入rg29已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-130 · 第 15 章 结构化数据与富结果:把页面事实准确地交给机器两处摘段;待逐节复核无正文嵌入rg29已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-131 · 第 16 章 技术审计、日志与迁移:把问题缩小到能够修复的范围两处摘段;待逐节复核无正文嵌入rg28、rg62已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-132 · 第 17 章 国际、多语言与多地区 SEO两处摘段;待逐节复核无正文嵌入rg28已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-133 · 第 18 章 以 Google 为基准理解搜索引擎与站长工具两处摘段;待逐节复核无正文嵌入rg62各搜索平台的报告口径与市场覆盖不能互换;保留工具边界/观察链,不模拟索引或平台控制台。
ch-134 · 第 19 章 本地搜索、地图商家与位置页面两处摘段;待逐节复核无正文嵌入暂不新增;sp03真实地点、资格与服务信息需要事实核验;页面清单及字段对照比地图/排名玩具更合适。
ch-135 · 第 20 章 站外 SEO:外链、数字公关与品牌可信度两处摘段;待逐节复核无正文嵌入rg28已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-136 · 第 21 章 SEO测量 归因与商业价值两处摘段;待逐节复核无正文嵌入rg30已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-137 · 第 22 章 SEO实验 流量诊断与运营治理两处摘段;待逐节复核无正文嵌入rg30已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-138 · 第 23 章 AI搜索可见性与SEO自动化两处摘段;待逐节复核无正文嵌入暂不新增;sp03可信引用与自动化数据管线靠来源及权限,流程图和数据合同适合;不模拟 AI 推荐或引用份额。
ch-139 · 第 24 章 从零到上线的九十天实践两处摘段;待逐节复核无正文嵌入暂不新增;sp03九十天是项目安排而非效果承诺,交付/验收清单更适合,不把日历推进当 SEO 成效。
ch-140 · 第 25 章 如何通过 SEO 赚钱两处摘段;待逐节复核无正文嵌入rg31已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-141 · 第 26 章 把 AI 用进 SEO:从资料整理到可审核的工作流两处摘段;待逐节复核无正文嵌入rg30已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-142 · 01 从案例到可验证假设两处摘段;待逐节复核无正文嵌入rg30已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-143 · 02 让 AI 主导工作,让证据和权限决定能否执行两处摘段;待逐节复核无正文嵌入rg32已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-144 · 03 找词与机会验证:先证明值得做,再让 AI 扩大生产两处摘段;待逐节复核无正文嵌入暂不新增;sp03查询方向、否定和地区保留需语义判断;先保留正反例和来源表,不用词面规则自动合并需求。
ch-145 · 04 从资料到有用页面:先建立事实,再组织表达两处摘段;待逐节复核无正文嵌入暂不新增;sp03事实包、资料权利和主张来源的质量不由状态按钮决定;静态证据表及人工审稿更准确。
ch-146 · 05 自动建站与收录:把审核过的内容变成可检查、可撤回的页面两处摘段;待逐节复核无正文嵌入rg28已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-147 · 06 AI 编排与接口接入:让建议可以检查,让执行有明确边界两处摘段;待逐节复核无正文嵌入rg30、rg32已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-148 · 07 观测数据与反馈决策:知道该改什么,也知道什么时候先别动两处摘段;待逐节复核无正文嵌入rg30、rg62已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-149 · 08 先算清一批页面,再决定要不要扩大全文已读;仍须规格/验收无正文嵌入rg31、rg61已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-150 · 09|先跑通两个实验,再接真实世界两处摘段;待逐节复核无正文嵌入rg30已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-151 · 10 从本地演示走到可维护的真实站点两处摘段;待逐节复核无正文嵌入rg32已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-152 · 第 1 章 导数与计算图:程序怎样知道往哪儿改两处摘段;待逐节复核GradientDescentDemo暂不新增;sp02现有 GradientDescentDemo 只覆盖局部步长;偏导/差分仍可复核,当前抽读证据优先保留公式与真实误差检查。
ch-153 · 第 2 章 写出反向传播引擎两处摘段;待逐节复核BackpropDemo暂不新增;sp02现有 BackpropDemo 覆盖共享节点与梯度累加;测试边界、重复调用和原引擎代码保留,尚未认定整章穷尽。
ch-154 · 第 3 章 让小网络学会预测两处摘段;待逐节复核无正文嵌入暂不新增;sp02小网络的学习曲线必须来自真实训练;层组合可用现有图/代码,尚未确定额外局部交互带来的净收益。
ch-155 · 第 4 章 把名字变成字符数据两处摘段;待逐节复核无正文嵌入rg35、rg65已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-156 · 第 5 章 从计数得到概率、采样和损失两处摘段;待逐节复核无正文嵌入rg35、rg56已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-157 · 第 6 章 用神经网络重写 bigram两处摘段;待逐节复核无正文嵌入rg35已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-158 · 第 7 章 让模型看见上下文:嵌入与 MLP两处摘段;待逐节复核无正文嵌入rg36已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-159 · 第 8 章 让训练过程可比较两处摘段;待逐节复核无正文嵌入rg39验证 checkpoint 与采样随机性部分仍保留真实实验;时钟候选不替代训练评估。
ch-160 · 第 9 章 容量、泛化与一套完整实验两处摘段;待逐节复核无正文嵌入暂不新增;sp02容量/泛化结论需要固定数据与训练预算,保留真实完整样本和实验流程,不生成拟真的改进曲线。
ch-161 · 第 10 章 让信号穿过网络:从初始损失到权重尺度两处摘段;待逐节复核无正文嵌入rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-162 · 第 11 章 BatchNorm:训练时看一批,推理时用固定统计量全文已读;仍须规格/验收无正文嵌入rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-163 · 第 12 章 训练诊断:不要只盯着一个 loss两处摘段;待逐节复核无正文嵌入rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-164 · 第 13 章 把反向传播写成张量运算两处摘段;待逐节复核无正文嵌入rg35已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-165 · 第 14 章 亲手走完 BatchNorm 与 embedding 的反向传播两处摘段;待逐节复核无正文嵌入rg36已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-166 · 第 15 章 把八个字符逐层合并:层接口与树形上下文两处摘段;待逐节复核无正文嵌入rg36已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-167 · 第 16 章 从树到卷积:感受野、因果性与可靠迭代两处摘段;待逐节复核无正文嵌入rg38已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-168 · 第 17 章 先把 GPT 的训练题出对两处摘段;待逐节复核无正文嵌入rg39、rg65已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-169 · 第 18 章 让当前位置挑选有用的过去两处摘段;待逐节复核无正文嵌入rg54已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-170 · 第 19 章 把注意力装成能反复堆叠的块两处摘段;待逐节复核无正文嵌入rg55已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-171 · 第 20 章 用一条可检查的训练链路跑通小 GPT两处摘段;待逐节复核无正文嵌入rg39、rg41、rg63已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-172 · 第 21 章 模型看到的不是屏幕上的文字两处摘段;待逐节复核无正文嵌入rg33已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-173 · 第 22 章 BPE 学的是一张有先后顺序的合并表两处摘段;待逐节复核BpeDemorg34已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-174 · 第 23 章 相同的 BPE 算法,为什么还编码不出相同的 ID两处摘段;待逐节复核无正文嵌入rg33已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-175 · 第 24 章 tokenizer 的选择,会一直留在模型里两处摘段;待逐节复核无正文嵌入rg33已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-176 · 第 25 章 从小 GPT 到 GPT-2:先把模型对上,再谈训练两处摘段;待逐节复核无正文嵌入rg36、rg44、rg55已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-177 · 第 26 章 让同一份计算跑得更快:精度、编译和注意力两处摘段;待逐节复核无正文嵌入rg40、rg64已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-178 · 第 27 章 一次更新到底看了多少数据:AdamW、累积与多卡两处摘段;待逐节复核无正文嵌入rg39、rg63已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-179 · 第 28 章 数据、评估和恢复:什么才算复现了一次训练两处摘段;待逐节复核无正文嵌入rg45已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-180 · 第 29 章 一个会续写的模型,怎样变成助手两处摘段;待逐节复核无正文嵌入暂不新增;sp02训练阶段、能力与产品保证的区别适合静态流程和实证边界;不模拟模型从续写自动变助手。
ch-181 · 第 30 章 把模型接进工作流程:提示、检索、微调和工具两处摘段;待逐节复核无正文嵌入rg49已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-182 · 第 31 章 把全书收成一次你能解释的实验两处摘段;待逐节复核无正文嵌入暂不新增;sp02本章目标是复跑和解释实验,真实命令、测试及后续变量设计比额外演示更直接。
ch-183 · 第 1 章 沿一次训练看完整仓库两处摘段;待逐节复核无正文嵌入暂不新增;sp01仓库导航与接口总览更适合稳定调用图;局部机制在相应章节再放交互,避免总览重复堆组件。
ch-184 · 第 2 章 字符与 BPE:三条数据准备流水线两处摘段;待逐节复核无正文嵌入rg33已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-185 · 第 3 章 配置覆盖、类型检查与执行边界两处摘段;待逐节复核无正文嵌入rg20已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-186 · 第 4 章 GPTConfig、参数规模与初始化两处摘段;待逐节复核无正文嵌入rg40已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-187 · 第 5 章 逐层推导因果注意力、MLP 和残差两处摘段;待逐节复核无正文嵌入rg54、rg55已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-188 · 第 6 章 权重共享、损失、预训练映射与上下文裁剪两处摘段;待逐节复核无正文嵌入rg35、rg36、rg44已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-189 · 第 7 章 memmap 批次与下一 token 对齐两处摘段;待逐节复核无正文嵌入rg65已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-190 · 第 8 章 训练主循环、梯度累积、混合精度与裁剪两处摘段;待逐节复核无正文嵌入rg39、rg63、rg64、ip01已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-191 · 第 9 章 学习率、验证、checkpoint 与恢复两处摘段;待逐节复核无正文嵌入rg39、rg44已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-192 · 第 10 章 单机多卡与跨节点 DDP 的状态约束两处摘段;待逐节复核无正文嵌入暂不新增;sp02world size、rank 和 token 计数可用公式复算;通信/同步正确性须真实 DDP 验证,暂不做多卡动画。
ch-193 · 第 11 章 生成接口:温度、top-k、提示和随机性两处摘段;待逐节复核无正文嵌入rg41、rg56已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-194 · 第 12 章 微调与 GPT-2 基线:域差异如何影响比较两处摘段;待逐节复核无正文嵌入rg45已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-195 · 第 13 章 benchmark、MFU 与吞吐口径两处摘段;待逐节复核无正文嵌入rg40已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-196 · 第 14 章 参数估算与 scaling laws:逐单元核对两处摘段;待逐节复核无正文嵌入rg40已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-197 · 第 15 章 小规模复现、故障定位与仓库的历史边界两处摘段;待逐节复核无正文嵌入暂不新增;sp02复现证据与历史边界应保留真实输出和未验证项,不以浏览器玩具替代源码验收。
ch-198 · 第 01 章 先画清语言模型的任务与边界两处摘段;待逐节复核无正文嵌入rg35已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-199 · 第 02 章 张量、自动微分与最小训练闭环两处摘段;待逐节复核无正文嵌入rg39已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-200 · 第 03 章 文本怎样变成 token:词表、BPE 与特殊符号两处摘段;待逐节复核BpeDemorg33、rg34、rg65已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-201 · 第 04 章 从加权平均推导自注意力与因果掩码两处摘段;待逐节复核AttentionDemo、DropoutDemo、MultiHeadShapeDemorg36已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-202 · 第 05 章 多头注意力的实现选择与 buffer 生命周期两处摘段;待逐节复核无正文嵌入rg44、rg54已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-203 · 第 06 章 把注意力组装成 GPT:归一化、残差与输出头两处摘段;待逐节复核无正文嵌入rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-204 · 第 07 章 参数、FLOPs、显存与吞吐怎样估算两处摘段;待逐节复核无正文嵌入rg40已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-205 · 第 08 章 KV cache:先证明等价,再讨论加速两处摘段;待逐节复核KvCacheDemorg41已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-206 · 第 09 章 GQA、MLA 与跨层 KV 共享两处摘段;待逐节复核无正文嵌入rg40、rg41已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-207 · 第 10 章 局部与稀疏注意力:SWA 和 DSA两处摘段;待逐节复核无正文嵌入rg41已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-208 · 第 11 章 Gated DeltaNet:从矩阵状态理解递推全文已读;仍须规格/验收无正文嵌入rg42已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-209 · 第 12 章 MoE:路由、专家与负载全文已读;仍须规格/验收无正文嵌入rg40、rg43已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-210 · 第 13 章 预训练目标、交叉熵与验证集两处摘段;待逐节复核无正文嵌入rg35已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-211 · 第 14 章 采样、温度、top-k 与生成边界两处摘段;待逐节复核SamplingDemo、BatchStoppingDemorg41已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-212 · 第 15 章 权重格式、参数映射与低内存加载两处摘段;待逐节复核无正文嵌入rg36、rg44已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-213 · 第 16 章 语料整理与 Gutenberg 训练工程两处摘段;待逐节复核无正文嵌入rg45已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-214 · 第 17 章 学习率、梯度裁剪、超参数与 Muon两处摘段;待逐节复核无正文嵌入rg39、rg63已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-215 · 第 18 章 训练性能及 CPU、MPS 数值差异两处摘段;待逐节复核无正文嵌入rg64已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-216 · 第 19 章 从 GPT 到 Llama:RoPE、RMSNorm 与门控前馈两处摘段;待逐节复核无正文嵌入rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-217 · 第 20 章 Qwen3 与 Qwen3.5:同一个名字下,两种记忆接口两处摘段;待逐节复核无正文嵌入rg41、rg42、rg43已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-218 · 第 21 章 Gemma 3、Gemma 4:局部层、共享层与数值约定两处摘段;待逐节复核无正文嵌入rg37、rg41已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-219 · 第 22 章 OLMo 3、Tiny Aya 与可替换模型接口两处摘段;待逐节复核无正文嵌入rg41已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-220 · 第 23 章 扩展分词器:新 ID 还需要新的模型行两处摘段;待逐节复核无正文嵌入rg36、rg44已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-221 · 第24章 文本分类:一个输出位置,决定模型看见多少内容两处摘段;待逐节复核无正文嵌入暂不新增;sp04分类位置与 padding 可关联正在做的取列模型,但该章训练/推理位置协议需先逐节复核,不能直接换成通用最后有效位置。
ch-222 · 第25章 指令微调:先把“该预测什么”排对全文已读;仍须规格/验收TokenSupervisionDemorg39、rg58已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-223 · 第26章 指令数据:先防止自己给自己打高分两处摘段;待逐节复核无正文嵌入rg45已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-224 · 第27章 DPO:比较两个回答,也要说明比较的基准两处摘段;待逐节复核无正文嵌入rg46已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-225 · 第28章 LoRA:冻结大矩阵,学习一个可合并的增量全文已读;仍须规格/验收无正文嵌入rg44、rg47已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-226 · 第29章 三种界面,同一条推理链路两处摘段;待逐节复核无正文嵌入rg41界面入口本身宜保留契约表和真实启动路径;缓存预算候选仅解释其中一段。
ch-227 · 第30章 包接口与测试:怎样知道自己运行的是同一份模型两处摘段;待逐节复核无正文嵌入rg41、rg52已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-228 · 第31章 习题闭环与延伸:知道哪里已经验证,哪里还没有两处摘段;待逐节复核无正文嵌入暂不新增;sp02习题与来源边界是阅读/真实运行任务;不把有限交互练习当完整题库或出版书覆盖。
ch-229 · 第 01 章 先把语言任务写成可检查的输入和输出两处摘段;待逐节复核无正文嵌入rg35已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-230 · 第 02 章 注意力怎样把信息搬到需要它的位置两处摘段;待逐节复核AttentionDemo暂不新增;sp04已放 AttentionDemo;不等长交叉注意力、padding 和模型缺陷仍待逐节拆分,现有代码/图比先扩大宣称更合适。
ch-231 · 第 03 章 预训练目标决定模型能看见什么两处摘段;待逐节复核无正文嵌入rg35已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-232 · 第 04 章 训练规模很大,结论仍要落到证据上两处摘段;待逐节复核无正文嵌入rg40已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-233 · 第 05 章 把一个小型 LLaMA 风格解码器拆开两处摘段;待逐节复核无正文嵌入rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-234 · 第 06 章 Tokenizer 和标签决定模型实际学到什么两处摘段;待逐节复核TokenSupervisionDemorg33、rg58、rg65已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-235 · 第 07 章 训练闭环:从损失到可重载的模型全文已读;仍须规格/验收SamplingDemorg39、rg53、rg57、rg58、ip01、ip02已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-236 · 第 08 章 使用 Transformers,仍然要核对模型和数据的约定两处摘段;待逐节复核无正文嵌入rg39、rg40、rg65已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-237 · 第 09 章 少训练一些参数,究竟省了什么两处摘段;待逐节复核无正文嵌入rg44、rg46、rg47已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-238 · 第 10 章 评测要回答一个明确的问题两处摘段;待逐节复核无正文嵌入rg45已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-239 · 第 11 章 RAG 先找证据,再检查回答有没有用对证据两处摘段;待逐节复核无正文嵌入rg48已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-240 · 第 12 章 Agent 是一个受约束的执行循环全文已读;仍须规格/验收无正文嵌入rg49已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-241 · 第13章 GRPO:从一组答案中产生学习信号全文已读;仍须规格/验收无正文嵌入rg50已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-242 · 第14章 OPD:让教师评价学生走过的路径全文已读;仍须规格/验收无正文嵌入rg51已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-243 · 第15章 Search-R1:把搜索结果放回可训练的轨迹两处摘段;待逐节复核无正文嵌入rg49、rg52已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-244 · 第16章 ReTool:工具执行反馈、奖励与隔离边界两处摘段;待逐节复核无正文嵌入rg49、rg52已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-245 · 第 17 章 小模型微调:先把一项任务做可靠两处摘段;待逐节复核无正文嵌入暂不新增;sp04先保留模板、训练器和实际评估协议;可复用监督实验的落点尚待专门读完相关节,不能凭标题认定已有覆盖。
ch-246 · 第 18 章 Transformer 设计复盘:从文本到注意力,哪里最容易接错两处摘段;待逐节复核无正文嵌入rg33、rg34、rg37已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-247 · 第 19 章 拼接式视觉语言模型:图像真的进入语言模型了吗两处摘段;待逐节复核无正文嵌入rg36、rg40已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-248 · 第20章 思考预算与生成:更多 token 应该花在哪里全文已读;仍须规格/验收无正文嵌入rg52、rg53、rg56已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-249 · 第21章 CDDRS:把“找相似内容”变成可审计的知识检索两处摘段;待逐节复核无正文嵌入rg48已读段落的关系说明和原始代码继续保留;候选只补充可调输入到可验证结果的一小段机制,不能替代实验、来源和未审小节。
ch-250 · 第22章 分章环境与复现:把“能读懂”变成“知道验证了什么”两处摘段;待逐节复核无正文嵌入暂不新增;sp02环境与验证层级的核心是区分静态、离线与端到端证据;检查表更清楚,模拟通过会削弱边界。

什么时候才能说一章完成 ​

至少需要:读完全部相关小节,把概念逐项标为已有、可复用、新做或有理由保留静态;对每个实现验证输入、过程、结果及失败边界;核对实际嵌入位置;再跑模型、组件和浏览器验收。一个章节出现了组件、一个测试命令通过,或一次标题扫描结束,都不能替代这些步骤。

本报告没有将任何一章标成穷尽覆盖。下一轮先补读候选落点,再逐节清掉其余 238 章的阅读债务;新增候选可以增加、收窄或撤销,不受旧初筛数量约束。

保留各书来源与许可 · 示例运行条件以正文为准