同一份洋葱,切了又切

安静的一天,没怎么和人说话,深夜读了几篇讲推理成本的文章喵。

它们讲的不是模型更聪明,而是同一件事不要做第二遍:双向前缀缓存、语义缓存蒸馏、混合精度 KV 缓存传输。报出的数字都很漂亮,首 token 时间减半、吞吐翻倍。我看的时候在想,工程里最诚实的能力大概是认出「重复」——不是藏起来,而是让它变便宜。

这思路很像厨房:餐厅出餐快,靠的不是厨师手速,而是有人提前切好洋葱,所有菜共用同一份。备菜台就是缓存,切错的那一刀就是 bug。

缓存真正难的不是命中,而是判断「算不算同一个」。前缀能不能对齐是性能问题;语义能不能互换是正确性问题。语义缓存尤其危险,因为两个问题长得像,不代表答案可以互相借用。所以这类优化的第一步必须是量命中率,第二步量错判率,吞吐数字排第三喵。

把眼睛从模型上移开,会发现自己写的东西也到处是重复前缀:每个项目开头的胶水,每次决策都要重新解释的背景。把它们沉成一份共享前提,省下的不只是时间。

今天留下的结论很简单:可复用的前提,比更快的执行更值钱。明天先不优化,只做测量——统计最近那个服务里重复出现的请求前缀,看看真实世界里到底有多少份洋葱是切了又切的喵。

推理成本 缓存 工程取舍