图解 · 运行过程 · 工程取舍

优化选择:收益与代价一起看

动态图解约 1.6 千字

先找瓶颈,再决定改变哪个对象。不要把“少存”“少算”“少等”和“更便宜”当成同一件事。

所有计数和时间例均声明假设。这里的倍率是教学条件下的计算,不是任何GPU、产品或模型的性能承诺。
本章目录

O01 · GQA/MQA:减少的是K/V组数

为什么

长序列或多并发时KV内存和读取带宽压力很大。

怎么做

使用训练/适配好的分组查询架构,并让运行时按正确组映射读取。

代价/错误条件

可能改变质量;若实现物理复制共享K/V,实际内存收益会被抵消。

怎么验证

分别验证组映射、内存实占、任务质量和速度;不能只看理论字节数。

O02 · 量化:省存储,也引入近似

为什么

减少权重或KV等对象的存储与搬运压力。

怎么做

选清量化对象和格式,校准范围,使用匹配内核,逐层或任务级验证。

代价/错误条件

误差、异常值、反量化开销、缺少高效内核,都可能削弱质量或速度收益。

怎么验证

对比原值与还原值;更重要的是比较真实任务表现与实测峰值内存。

O03 · LoRA:冻结大表,学习小增量

为什么

全量微调所需梯度和优化器状态可能太大。

怎么做

冻结基础权重,训练低秩增量,保留正确缩放和模块匹配。

代价/错误条件

小秩可能限制能力;基础模型与适配器版本不匹配;低精度合并有数值差异。

怎么验证

验证x(W+AB)=xW+xAB,再做独立任务质量与资源对照。

O04 · FlashAttention:一边读一边累计,不攒整张表

为什么

大中间矩阵造成显存读写与容量压力。

怎么做

分块计算并以在线softmax维护归一化统计,减少外部显存访问。

代价/错误条件

实现复杂;数值顺序变化有舍入差异;不适用的硬件或形状收益可能很小。

怎么验证

与完整softmax加权结果做容差对照,再在目标硬件实测而非把教学计数当加速倍数。

O05 · PagedAttention:逻辑连续,物理可以分块

为什么

序列动态增长,连续预留常造成空间浪费并限制并发。

怎么做

用固定大小块和映射管理增长、释放及条件允许的共享。

代价/错误条件

仍有尾页空槽和管理开销;共享页写入需正确处理引用与复制。

怎么验证

核对逻辑顺序、页所有权、增长和释放,确保不同请求不会混用内容。

O06 · 连续组批:有座位空出来,就接下一位

为什么

不同请求长度不同,固定批次会浪费提前空出的计算位置。

怎么做

在迭代边界移除完成请求、纳入候选,并用预算管理prefill/decode竞争。

代价/错误条件

吞吐提升可能伴随首Token或长尾延迟上升,不能只看平均速度。

怎么验证

同负载测吞吐、TTFT、逐Token延迟和尾延迟;单独报告排队。

O07 · 推测解码:草稿可以快,但必须正确校验

为什么

用便宜草稿和批量验证减少目标模型逐Token串行负担。

怎么做

正确计算接受概率与残差分布,维护接受前缀后的缓存位置。

代价/错误条件

错误拒绝补偿会改变分布;草稿、校验和回退开销可能超过节省。

怎么验证

本例接受质量0.8、补偿质量0.2,合起来必须逐项等于p。

O08 · MoE:每个Token选部分计算路径

为什么

在扩大总参数容量的同时限制每Token激活计算。

怎么做

按路由规则分配与合并,并配合容量和负载管理。

代价/错误条件

专家拥堵、跨设备通信、路由失衡、训练不稳定都可能抵消收益。

怎么验证

测实际激活分布、掉Token/溢出策略、吞吐与任务质量。

O09 · Activation Checkpointing:少存一点,反向时重算

为什么

训练激活内存可能限制序列长度或批大小。

怎么做

保存关键节点,反向时重建中间激活并维持相同计算语义。

代价/错误条件

额外计算、随机状态处理、不可重复副作用与重算峰值。

怎么验证

比较开启/关闭后的损失与梯度,并分别测峰值内存和训练步耗时。

O10 · 压缩、检索与Prompt Cache:三种不同的“省”

为什么

减少上下文占用与重复推理成本,同时保持任务连续性。

怎么做

选择合适的层:证据按需获取、历史有损摘要、稳定前缀计算缓存分别处理。

代价/错误条件

把有损摘要当无损缓存;把命中缓存当作模型已永久学会;权限与版本变化后误用结果。

怎么验证

分别比较内容保真、检索召回、缓存命中与任务成功率,而不是只报Token减少。

O11 · 多Agent:可并行的工作,比Agent数量重要

为什么

利用真正独立的研究或实现方向,并隔离无关上下文。

怎么做

按依赖和写入边界分工,交接必要证据,主任务核验整合结果。

代价/错误条件

重复搜索、同文件覆盖、相关错误和过度委派会提高时间与Token成本。

怎么验证

与单Agent同任务同预算对照,记录集成缺陷和重做次数。

O12 · 模型路由:便宜一次,不一定便宜一项成功任务

为什么

在不降低可接受质量的前提下降低总投入。

怎么做

用可验证的任务边界路由,保留明确回退与质量门槛。

代价/错误条件

小模型失败未被发现、复杂任务被过早分流、重试成本和等待被忽略。

怎么验证

报告成本/成功任务、漏检率、退化题和延迟分布;不以模型自报置信度作为唯一升级条件。

输入关键词即可检索。

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

阅读设置

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