跳到正文

复杂度与KV cache

55 分钟

复杂度与KV cache

先把一个真实预测问题缩到能手算

今天解决:估上下文翻倍的计算和缓存。先写预测时刻能看到哪些字段、标签何时产生、模型输出怎样触发行动,再构造五到十个样本的小表。我们先在纸上完成一轮训练或评估,得到程序必须复现的真值;这样不会把库函数成功返回误当成模型正确。(问题锚:ai-02-shendu/u8/l06/复杂度与KV cache/question。)

为什么这一节出现在这里

上一节《Transformer块》留下的数据、假设或评估协议,现在成为《复杂度与KV cache》的输入。 本章主线是“从查询键值、mask、位置和残差完整推导Transformer块。”。若旧工具只能拟合训练集,我们补泛化协议;若只能输出分数,我们补概率和决策;若平均指标掩盖风险,我们补切片与区间;若离线结果无法维持,我们补数据契约、监控和回滚。每个新对象都有明确缺口,不堆算法名。

对象、公式和条件必须一起写

逐项说明样本、特征、标签、参数、损失、概率、阈值或指标的形状与单位;说明数据是否 IID,预处理在哪里拟合,哪些超参数由验证集选择,测试集是否仍封存。公式脱离数据生成、切分协议和适用条件不能单独使用。(定义锚:ai-02-shendu/u8/l06/复杂度与KV cache/conditions。)

教师推导:从小表到可测结果

针对“估上下文翻倍的计算和缓存”,第一步列数据与前提;第二步构造目标函数或统计量;第三步保留至少四行代数、计数、梯度或状态更新;第四步得到预测、损失、指标或决策;第五步代回原定义核对。解析推导和直接枚举必须在小样本上得到同一答案。(推导锚:ai-02-shendu/u8/l06/复杂度与KV cache/derivation。)

完整例题要包含基线和对照

先算不会学习的常数或规则基线,再算本节方法;只改变一个因素,比较训练、验证和测试角色。除最终数值外,还要报告数据划分、预处理参数、随机种子或确定性顺序、误差来源和资源成本。若方法未稳定胜过基线,应保留失败结论而不是挑一次最好结果。(例题锚:ai-02-shendu/u8/l06/复杂度与KV cache/worked-example。)

《复杂度与KV cache》还要提交一张逐行数据审计表:每个字段写来源、产生时间、部署可用时间、缺失机制、允许范围和是否参与标签构造;再用其中两行手算预处理前后数值。把这张表与模型输入逐列核对,能比训练完成后的猜测更早暴露泄露、单位错位和线上线下不一致。(审计锚:ai-02-shendu/u8/l06/复杂度与KV cache/data-audit。)

最容易让结论失效的边界

本节危险说法是:prefill和逐token decode瓶颈不同。请构造最小反例并定位首个坏步骤,优先检查时间/实体泄露、分母为零、类别基率、特征尺度、共线性、数值溢出、调参污染、分布漂移和把相关当因果。只写“真实数据复杂”不得分。(反例锚:ai-02-shendu/u8/l06/复杂度与KV cache/failure。)

从离线指标走到行动

模型输出不是终点。写出阈值、排序容量或人工复核规则,把 FP、FN、延迟和资源换成可讨论代价;再按群体、时间、设备和置信度切片。若标签延迟,区分即时数据质量代理和最终真实性能。每个上线结论都必须有停止、降级或回滚条件。(决策锚:ai-02-shendu/u8/l06/复杂度与KV cache/decision。)

可运行实验怎样验收

程序只用 Python 3 标准库,从标准输入读取小数据并输出可复算结果;至少四测覆盖手算正常值、边界、非法输入和曾经失败的回归。涉及浮点时写容差和稳定形式,涉及拟合时保存初始化与迭代条件。一次曲线漂亮不证明算法或评估协议正确。(实验锚:ai-02-shendu/u8/l06/复杂度与KV cache/code。)

随课四题严格分工

单选检查假设与角色,多选检查证据链,数值题要求逐步计算,工程解释题按10分验收:问题与数据2分,推导3分,评估与决策2分,反例/漂移2分,可复现性1分。只写算法优缺点或软件调用不得分。

交给下一节的接口

下一节《最小Transformer验收》会直接复用本节产物。 闭卷回答:预测时刻是什么?数据怎样产生?哪部分拟合、调参、最终评估?公式怎样从小表反查?部署分布变化时哪里先坏?能换一个代价矩阵或时间窗口重做,才算真正学会。(交接锚:ai-02-shendu/u8/l06/复杂度与KV cache/handoff。)

深度学习专用的形状账本

围绕《复杂度与KV cache》建立逐算子表:输入 shape/dtype/device,参数 shape 与共享方式,输出 shape,训练期缓存,反向梯度 shape,以及推理期是否仍存在。先让 、长度或空间边长很小的张量逐元素可算,再推广到批量。任何“维度自动对上”的实现都要核对轴语义和广播来源。(形状锚:ai-02-shendu/u8/l06/复杂度与KV cache/shape-ledger。)

先手推一条梯度,再相信自动微分

选一个标量损失路径,写局部导数、上游梯度和向量—Jacobian积,至少核对一个参数元素的中心差分。若自动梯度与数值梯度不符,按原地修改、detach、mask、reduction、训练/推理模式和浮点精度顺序排查。(梯度锚:ai-02-shendu/u8/l06/复杂度与KV cache/gradient-check。)

从单卡小批到生产系统

先要求极小数据可过拟合,再扩大数据和模型;同时记录随机种子、数据顺序、优化器/调度器状态、混合精度缩放、检查点步数和硬件环境。上线前逐输出比对训练框架与导出运行时,并给动态形状、空输入、超长序列、资源耗尽和回滚测试。(系统锚:ai-02-shendu/u8/l06/复杂度与KV cache/system-check。)

Practice

本课练习

6

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

1单选:复杂度与KV cache 2 积分
通用 · 未定难度

要可靠解决“估上下文翻倍的计算和缓存”,哪项方案正确?

登录 后答题可以领积分
2多选:复杂度与KV cache 3 积分
通用 · 未定难度

验收《复杂度与KV cache》必须提交哪些证据?

多选题:必须选全正确项,漏选或多选均不得分。

登录 后答题可以领积分
3计算:复杂度与KV cache 3 积分
通用 · 未定难度

《复杂度与KV cache》第8-6组数据:序列长度T=256,完整注意力分数矩阵有多少元素(单头单样本)?

登录 后答题可以领积分
4严格工程解释:复杂度与KV cache 4 积分
通用 · 未定难度

从 O(T^2d),\quad cache=O(TLd) 出发完成“估上下文翻倍的计算和缓存”;写数据生成与切分、四行关键推导、基线与指标、针对“prefill和逐token decode瓶颈不同”的最小反例,以及上线监控/回滚条件。

登录 后答题可以领积分
5可运行深度学习实验:注意力与Transformer:张量元素计数
通用 · 未定难度代码题

完成《注意力与Transformer:张量元素计数》:输入若干正整数维度,输出乘积。仅用Python 3标准库,从标准输入读取并输出;不得使用第三方包。

5 积分进入编程工作台 →
6U8 独立题 06:复杂度与KV cache 4 积分
通用 · 未定难度

验收《复杂度与KV cache》需要哪些材料?

多选题:必须选全正确项,漏选或多选均不得分。

登录 后答题可以领积分