适配结论的工况绑定与可复现性判定

一次适配跑完,程序启动、模型出结果、没有报错,只说明这一次运行发生过,覆盖面仅限当次请求形态、上下文长度与软件栈版本。要让结论可复核、可复用,需把「它在什么条件下成立」写成字段。

「跑通」证明了什么

已证明:

未证明:

工况维度与取值

「某模型在某平台上可用」丢掉了全部有用信息;同一模型、同一软件栈下,任一维度变化结论都可能翻转:

维度 取值区间或机制
请求形态 模板固定的 system prompt 加单轮短问题,与开放长文、多轮对话
上下文长度分布 512 / 2K / 32K / 128K 档及占比;512 与 128K 档的 prefill、KV cache 占用差一个量级以上
前缀复用程度 共享前缀 token 数占 prompt 的比例;模板固定时高,开放长文下趋近 0
输出长度分布 decode 步数区间,如 1–64 步短答、512–2K 步长生成
并发与批次构成 --max-num-seqs 并发上限、continuous batching 批构成;长短交错时同批填充开销不同
采样参数 temperature / top_p / top_k / max_tokens;temperature 高时难命中 Speculative Decoding
负载是否混合 纯短 / 纯长 / 长短交错;混合负载批内序列长度方差大,碎片形态不同

前缀复用的机制与命中条件

Prefix Caching 以块为单位复用:每个块由固定 block_size 个 token 的 id 序列算哈希,块级命中则整块 KV 复用。命中要求满块:参与复用的前缀长度须为 block_size 整数倍,末尾不满一块的部分不计入。block_size 决定粒度与元数据开销:取 16 命中更细、可复用尾段更长、元数据更多;取 32 元数据更省、颗粒更粗,尾部一段常被浪费。落入哈希的文本混进易变项会拉低命中率:时间戳、request id、随机化的 system prompt,或会话拼接顺序变化,都会让本应相同的块算出不同哈希。

一次运行被抬举成普遍结论的三个环节

  1. 单条样例代替负载:一个典型请求通过,就默认整套服务可用。
  2. 当时环境代替环境描述:没记运行时版本、算子库、权重转换产物,事后说不清结论来自哪个组合。
  3. 一次结果代替对照:没有开关两组、没有前后两组,只剩「开了之后更快」。

结论的字段化记录

结论落库时,把成立前提、适用工况、运行环境、证据、适用边界写成字段,运行环境写到整机规格粒度:

结论: <一句话裁决,含被优化的算子路径或开关>
成立前提:
  前缀复用: 共享前缀 token 占 prompt 比例 >= <阈值>
  请求模式: <模板固定 / 多轮对话 / 开放长文>
适用工况:
  上下文长度: <512 / 2K / 32K / 128K 档及占比>
  输出长度: <decode 步数区间>
  并发: --max-num-seqs=<值>, continuous batching 批构成
  采样: temperature=<值>, top_p=<值>, top_k=<值>, max_tokens=<值>
  负载混合: <纯短 / 纯长 / 长短交错>
运行环境:
  设备: **** 的 ****(8 卡,单卡 64GB HBM,卡间互联 392 GB/s)
  软件栈: **** v<版本>
  构建物: <权重转换产物 / 编译产物标识>
  精度: <FP16 / BF16 / W8A8 / INT8 / FP8>
证据:
  对照设置: <开关两组 / 前后两组>
  观测项: <TTFT / TPOT / 吞吐 / 显存占用>
  记录: <日志文件或指标路径>
适用边界:
  外推: 离开上述工况不外推
  已知失效条件: <列出>

外推的受控做法

工况边界写清后,外推有两种受控做法。在相近工况重复验证:把新工况关键维度(上下文档、并发、前缀复用比例)控制在与原结论相近范围内重测,得到同样裁决即可复用。声明新工况不在覆盖范围内:偏离较大时标注不在覆盖范围,单独记账。

小结

「跑通」是功能证据里最低的一层,可复现要求的是工况维度的明确覆盖。结论落库时把前提、工况、环境、证据、边界写成字段,他人才能判断自己的工况是否落在覆盖范围内。