P1:generation_ms 把流式中段沉默计入墙钟,裸生成时间名不副实 #27

Closed
opened 2026-09-14 10:42:32 +08:00 by iomgaa · 1 comment
Owner

下游 Terminal-Bench 实测 4407 次成功调用:ttft 中位 1.63s 但慢调用 generation_ms 中位 69.4s 中 max_inter_token_ms 中位 54.9s,沉默占全部模型时间 71.3%,且与输入/输出量无关(r=0.05/-0.06)、非模型思考(reasoning_tokens 仅 129 次上报)。generation_ms 现口径=赢家 transport 完整墙钟(retry.py:335-346),流式=流读完才停表,中段沉默全额计入。根因调查与业界范式见 research-wiki/findings/2026-09-11-streaming-stall-hedging-research.md;设计草案 designs/2026-09-11-streaming-stall-design.md。方向(人类已拍板):generation_ms 口径改为墙钟−Σ(超阈值中段沉默),CallStats 增 stall_ms/stall_count 归因字段,阈值 STREAM__STALL_THRESHOLD_MS 默认 1000ms 可调。

下游 Terminal-Bench 实测 4407 次成功调用:ttft 中位 1.63s 但慢调用 generation_ms 中位 69.4s 中 max_inter_token_ms 中位 54.9s,沉默占全部模型时间 71.3%,且与输入/输出量无关(r=0.05/-0.06)、非模型思考(reasoning_tokens 仅 129 次上报)。generation_ms 现口径=赢家 transport 完整墙钟(retry.py:335-346),流式=流读完才停表,中段沉默全额计入。根因调查与业界范式见 research-wiki/findings/2026-09-11-streaming-stall-hedging-research.md;设计草案 designs/2026-09-11-streaming-stall-design.md。方向(人类已拍板):generation_ms 口径改为墙钟−Σ(超阈值中段沉默),CallStats 增 stall_ms/stall_count 归因字段,阈值 STREAM__STALL_THRESHOLD_MS 默认 1000ms 可调。
Author
Owner

已在 1.3.8 修复并发布(外部验证:wheel sha256 051d688b…与 dist 一致、包内含 stall 字段与净口径换算)。

行为变更(重要):generation_ms 口径重定义——1.3.7 是赢家 transport 完整墙钟(中段沉默全额计入),1.3.8 起为净生成时间 = 墙钟 − Σ(所有 > {SCOPE}__STREAM__STALL_THRESHOLD_MS(默认 1000ms,三层可调)的相邻增量 chunk 沉默),仍含 TTFT 与尾部。还原公式:墙钟 = generation_ms + stall_ms。

归因字段:CallStats.stall_ms/stall_count(None = 非流式/增量 chunk<2/无赢家,下游预算公式以 stall_ms is None 为分支条件);遥测表新增同两列(可空 DDL,旧行 NULL 不回填)。排除条款与边界定义见 CHANGELOG 1.3.8 行为变更段与 README 口径表。

已在 1.3.8 修复并发布(外部验证:wheel sha256 051d688b…与 dist 一致、包内含 stall 字段与净口径换算)。 **行为变更(重要)**:`generation_ms` 口径重定义——1.3.7 是赢家 transport 完整墙钟(中段沉默全额计入),1.3.8 起为**净生成时间** = 墙钟 − Σ(所有 > `{SCOPE}__STREAM__STALL_THRESHOLD_MS`(默认 1000ms,三层可调)的相邻增量 chunk 沉默),仍含 TTFT 与尾部。还原公式:**墙钟 = `generation_ms + stall_ms`**。 归因字段:`CallStats.stall_ms`/`stall_count`(None = 非流式/增量 chunk<2/无赢家,下游预算公式以 `stall_ms is None` 为分支条件);遥测表新增同两列(可空 DDL,旧行 NULL 不回填)。排除条款与边界定义见 CHANGELOG 1.3.8 行为变更段与 README 口径表。
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: iomgaa/PolyGateway#27