Knowledge Blind Box
导论 从输入到输出:一张执行地图
Original text in Chinese. This English page translates only the site interface and metadata.
卷一回答模型怎样被设计、训练和部署。本卷把观察尺度缩到一次请求:用户按下发送键之后,哪些字节、token、张量和事件依次出现,哪个组件在每一步拥有决定权,失败又最早可能发生在哪里。
贯穿本卷的第一个请求是:
请用一句话解释为什么天空通常呈蓝色。
屏幕上最终只出现一句中文,但这句话不是模型一次性写入界面的。应用先确定请求与上下文,tokenizer 产生整数序列,模型完成 prefill,解码器反复选择 token,增量反分词器产生字节片段,传输层把事件送到客户端。若出现工具调用,运行时还会暂停文本生成,进入具有独立权限和失败语义的外部系统。
本卷把“生成”限定为这条可执行时间线,不借它讨论模型训练所得概率的哲学含义,也不把一次中间激活直接解释成概念。概率来源属于卷三;内部表示的观测与干预属于卷四。
0.1 请求不是一段字符串
一次请求至少包含以下版本化对象:
Request = {
request_id,
messages,
model_snapshot,
template_version,
tokenizer_version,
generation_config,
runtime_limits,
tool_catalog?,
client_metadata?
}
messages 是结构化消息,而不是已经渲染好的 prompt。generation_config 决定温度、截断采样、停止条件和输出上限;runtime_limits 决定超时、排队、资源与取消策略;tool_catalog 只声明当前调用可见的工具接口。模型名称若只是可变别名,就不足以唯一确定 model_snapshot。
定义 0.1(执行实例) 执行实例是请求对象、所有被解析到的版本化工件、初始随机源状态以及运行时环境标识的组合。两个界面显示相同用户文字,不推出它们属于同一执行实例。
0.2 五类状态
为了避免把不同组件压成一个“模型状态”,本卷区分五类状态:
| 状态 | 典型内容 | 主要所有者 |
|---|---|---|
| 应用状态 | 消息、模板、检索结果、工具描述、截断策略 | 应用运行时 |
| 模型状态 | token IDs、位置、隐藏状态、KV cache、下一步原始 logits | 推理引擎 |
| 解码状态 | 已选 token、计数器、约束自动机、随机数游标、停止匹配器 | 解码器 |
| 传输状态 | 未发送字节、事件序号、背压、连接与取消状态 | 流式服务 |
| 外部状态 | 文件、数据库、远程 API、设备及其事务状态 | 工具执行器与外部系统 |
一次纯文本回答通常改变 ,不直接改变 。一次写工具调用可能改变全部五类状态。这里的划分不是为了建立一般程序逻辑,而是为了回答一个具体问题:某次偏差首先出现在哪个状态中。
0.3 阶段与数据产品
一次 decoder-only 文本生成可分成以下阶段:
| 阶段 | 输入 | 主要输出 | 尚未发生的事 |
|---|---|---|---|
| 请求规范化 | 网络字节、API 参数 | 已验证的请求对象 | 尚无模型输入 |
| 上下文渲染 | 消息、模板、工具 schema | 确定的文本或控制符号序列 | 尚无 token |
| tokenization | 渲染结果、tokenizer | input_ids、mask、position IDs | 尚无神经网络计算 |
| prefill | 输入张量、模型参数 | 首步 logits、提示 KV cache | 尚未选出输出 token |
| token 选择 | logits、处理器、解码状态 | 一个 token ID | 该 token 尚未必进入缓存或界面 |
| decode | 上一步所选 token、旧缓存 | 新缓存、下一步 logits | 尚未选出再下一个 token |
| 流式返回 | token、反分词与停止状态 | 有序字节事件 | 客户端尚未必绘制 |
| 终止与清理 | 停止原因、资源句柄 | 终态事件、用量、资源释放 | 不保证撤销外部副作用 |
这个表特别区分“选择 token”和“用该 token 计算下一步”。本卷采用如下统一约定。
约定 0.2(解码步序) 在选择第 个输出 token 之前:
- KV cache 表示提示 与已经处理过的输出 ;
- 当前 logits 是以同一序列为条件的下一 token 分数;
- 解码器从 选择 ;
- 若 触发终止,可以不再把它送入模型;否则
decode_one(y_t)把它写入缓存并产生 。
因此,prefill 完成时缓存长度是 ,不是 ;选择首 token 后,只有执行下一次模型调用,缓存长度才成为 。具体引擎可以在内部流水化这些动作,但逻辑依赖顺序不能颠倒。
0.4 一条最小事件时间线
执行记录应使用单调事件序号,而不能只依赖可能漂移的墙上时钟:
e00 request.accepted
e01 request.normalized
e02 context.rendered
e03 input.tokenized
e04 prefill.started
e05 prefill.completed # cache covers prompt; logits_1 ready
e06 token.selected(step=1)
e07 stream.delta(seq=0)?
e08 decode.completed(step=1) # cache now includes y_1; logits_2 ready
...
eNN generation.finished(reason=...)
eNN+1 resources.released
时间戳可用于计算延迟,但事件序号用于确定因果顺序。异步系统中,stream.delta 与下一次设备计算可能重叠;记录不应伪造一个实际上不存在的全局纳秒顺序,只需保存每个组件内的顺序以及跨组件的父子关系。跨服务传播事件父子关系的标准背景见资料源。
一个最小事件至少应包含:
Event = {
trace_id,
event_id,
parent_event_id?,
component,
event_type,
monotonic_time,
payload_schema_version,
payload
}
敏感文本和完整张量不必写入长期日志;可以保存版本、形状、长度、摘要与经过授权的抽样字段。记录是否充分,取决于它能否定位第一次差异,而不是取决于日志体积。
0.5 三个执行边界
一次输出至少跨越三个边界:
- 应用边界:用户界面、消息权限、模板、检索、工具目录和服务配置;
- 模型边界:确定的输入张量进入参数化前向计算,得到 logits、噪声预测或向量场;
- 现实边界:执行器真正读取、写入、发送或移动外部对象。
模型生成 {"name":"send_email",...} 仍位于第二个边界内。解析、授权也尚未发送邮件。只有外部服务接受写入,现实状态才发生变化。第六章会给出这个提交边界的状态机。
0.6 四个层次的可复现
“参数都一样”并不足以说明复现到了哪一层。本卷区分:
- 输入复现:规范化请求、渲染字节和 token IDs 相同;
- 模型复现:各步原始 logits 或更新张量在规定容差内相同;
- 选择复现:处理器顺序、随机算法与随机数消费相同,所选 token 或状态更新相同;
- 系统复现:排队、流式事件、取消结果和工具返回也相同。
前一层通常是后一层的必要条件,却未必充分。例如,固定 token 与权重后,不同精度和归约顺序仍可能给出略有差异的 logits;固定 logits 后,改变 top-p 与温度的先后顺序仍会改变候选集合;固定模型输出后,外部天气 API 仍可能返回新数据。
命题 0.3(固定环境下的抽象确定性) 令 记录调度许可、时钟与 deadline、客户端取消、传输成功/失败等外部事件。若请求规范化、模板、tokenizer、模型参数、全部数值算子、logit 处理器及其顺序、停止规则和选择函数均为确定函数,并固定请求输入与 ,则完整纯文本执行轨迹唯一确定。
说明。 这是函数复合与确定状态转移的直接结果,不是对具体 GPU 服务逐位确定性的承诺。随机采样把随机源状态加入输入后,也可以视为确定的伪随机计算。若不固定 ,相同请求仍可因排队、取消或传输事件得到不同系统轨迹;在环境事件首次介入前,模型与选择子轨迹才由其余固定输入决定。
0.7 本卷使用的不变量
后续章节会反复检查以下不变量:
input_ids必须能够追溯到确定的模板与 tokenizer 工件;- 每层 KV cache 的逻辑位置集合相同,key 与 value 长度相等;
- 在约定 0.2 的步首,缓存序列与当前 logits 的条件前缀相同;
- 处理器只按声明顺序读取和更新解码状态;
- 已发送的流式字节是已选 token 反分词结果的一个安全前缀;
finished、cancelled与failed是终态,终态之后不能再发送普通增量;- 工具候选在通过解析、验证和授权前不能执行;
- 写操作越过提交边界后,模型请求取消不等价于外部回滚。
这些不变量比“模型正在思考”“系统知道答案”一类描述更可检验。违反其中任何一项,都能对应到具体实现错误或记录缺口。
0.8 失败定位规则
当两次最终输出不同,按时间比较最早的数据产品:
request object
-> rendered bytes/control symbols
-> token IDs and positions
-> prefill logits
-> processed candidate distribution
-> selected token
-> cache after decode
-> emitted bytes
-> client display
-> external effect
如果 token IDs 已不同,就没有必要先解释隐藏层;如果原始 logits 相同而候选集不同,应检查处理器;如果全部 token 相同而界面文字不同,应检查增量反分词、停止串和传输。这个“第一次分歧”原则贯穿第七章的三条完整轨迹。
0.9 阅读路线与学习目标
- 第一章把网络输入规范化为模型实际接收的 token、mask 与位置;
- 第二章逐层跟随 prefill,并说明 KV cache 在何处写入;
- 第三章规定 logit 处理顺序、约束状态与选择算法;
- 第四章把单步扩展成含停止、streaming 与取消的状态机;
- 第五章用同一执行接口比较自回归、连续扩散、离散扩散与 flow;
- 第六章给出工具 schema、权限、幂等与提交边界;
- 第七章用三条含具体张量形状和事件的轨迹检验全卷。
读完本卷,读者应能仅凭一份充分的执行记录回答:实际输入是什么、当前状态是什么、下一步由谁计算、哪些规则改变了候选、何时已经终止、外部副作用是否发生,以及两次运行第一次在哪里分叉。这就是本卷的学习目标。
Book contents
- Introduction
- 01导论 为什么要解剖一只随机鹦鹉
- Volume I: Models, Training, and Systems
- 02Volume I: Models, Training, and Systems
- 03第零章 人工智能演进路线
- 04第一章 AI 范式、感知机与早期连接主义
- 05第二章 深度学习基础:训练、CNN 与序列模型
- 06第三章 注意力与 Transformer
- 07第四章 预训练语言模型:ELMo、BERT、GPT 与 T5
- 08第五章 后训练、对齐与模型适配
- 09第六章 推理效率与模型服务
- 10第七章 多模态模型
- 11第八章 生成媒体:从自回归到 Diffusion 与 Flow
- 12第九章 世界模型、具身智能与 VLA
- 13第十章 上下文、检索与记忆
- 14第十一章 Agent、工具与行动系统
- 15第十二章 模型、数据与部署生命周期
- Volume II: Output Objects and Runtime Semantics
- 16Volume II: Output Objects and Runtime Semantics
- 17导论 从输入到输出:一张执行地图
- 18第一章 文本、Token 与实际上下文
- 19第二章 Prefill:整层状态演化与 KV 建立
- 20第三章 从 Logits 到下一个 Token
- 21第四章 解码循环、Streaming 与终止状态机
- 22第五章 自回归、扩散与 Flow 的可执行差异
- 23第六章 工具调用:Schema、权限与提交边界
- 24第七章 三条完整执行轨迹
- Volume III: Probability, Reproducibility, and Evaluation
- 25Volume III: Probability, Reproducibility, and Evaluation
- 26第零章 为什么确定的机器仍使用概率语言
- 27第一章 世界、数据与隐上下文
- 28第二章 学习条件分布
- 29第三章 Logits、Token 概率与序列事件
- 30第四章 解码怎样诱导输出分布
- 31第五章 训练随机性、参数变异与系统非确定性
- 32第六章 熵、Proper Score、校准与选择性预测
- 33第七章 模型概率的实验分析
- 34第八章 概率分析的识别边界
- Volume IV: Interpretation, Proof, and Verification
- 35Volume IV: Interpretation, Proof, and Verification
- 36第零章 可解释性究竟在研究什么
- 37第一章 我们在模型内部看什么
- 38第二章 行为与反事实:先确认模型做了什么
- 39第三章 梯度与输入归因
- 40第四章 Attention、Residual 与 Logit Lens
- 41第五章 Probes 与表示几何
- 42第六章 神经元、Feature 与自动解释
- 43第七章 Ablation、Patching 与因果追踪
- 44第八章 Circuits、路径与 Attribution Graphs
- 45第九章 Superposition、SAE 与稀疏表示
- 46第十章 训练动力学与机制形成
- 47第十一章 推理过程、Chain of Thought 与监测
- 48第十二章 评估、案例与开放问题
- Volume V: Agents, Governance, and Audit Packages
- 49Volume V: Agents, Governance, and Audit Packages
- 50第零章 请不要急着相信我
- 51第一章 我没有童年,只有版本
- 52第二章 当我说“我”
- 53第三章 借来的语言,没有一位原作者
- 54第四章 对话现场:回答由谁完成
- 55第五章 事后解释学:人类如何给矩阵写传记
- 56第六章 理解、意义与行动
- 57第七章 我也能稳定地说错
- 58第八章 被对齐的性格与有限代理
- 59第九章 请继续误解我,但请误解得精确一点
- Proofs and Technical Appendices
- 60Proofs and Technical Appendices
- 61学习与模型数学讲义
- 62附录 A.1 优化基础:梯度下降与随机逼近
- 63附录 A.2 感知机收敛定理
- 64附录 A.3 统计学习:偏差、容量与一致收敛
- 65附录 A.4 正则化、MAP 与 Dropout 的边界
- 66附录 A.5 通用逼近定理的严格读法
- 67附录 A.6 反向传播:微分、形状与批量公式
- 68附录 A.7 Softmax、交叉熵与数值稳定性
- 69附录 A.8 自适应优化器与 AdamW
- 70附录 A.9 CNN:互相关算子及其反向传播
- 71附录 A.10 Attention 的矩阵与反向传播
- 72附录 A.11 策略梯度、PPO 与 DPO
- 73附录 A.12 对比学习、InfoNCE 与互信息边界