<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>System on LeoDreamer</title>
        <link>https://LeoDreamer2004.github.io/tags/system/</link>
        <description>Recent content in System on LeoDreamer</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Mon, 07 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://LeoDreamer2004.github.io/tags/system/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>论文阅读 - 异步推理</title>
            <link>https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/</link>
            <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
            <guid>https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/</guid>
            <description>&lt;p&gt;Agent 的能力未必和效率成正比. 一次浏览器任务可能包含几十次模型推理和工具调用, 每一步都要等上一步返回, 原本几百毫秒的网络延迟显然很慢.&lt;/p&gt;&#xA;&lt;p&gt;论文 &lt;a class=&#34;link cite-Speculative-Actions&#34;&gt;[&lt;span class=&#34;material-index&#34;&gt;&lt;/span&gt;]&#xA;    &lt;span class=&#34;material-name&#34;&gt;Unknown-material&lt;/span&gt; &#xA;&lt;/a&gt; (ICLR 2026 Oral) 把大模型推测解码 (Speculative Decoding) 的思路从 token 生成推广到 Agent 的动作与 API 调用：让一个快模型提前猜下一步, 并在慢模型给出权威答案之前, 先把可能的后续调用异步发出去. 猜对了, 结果已经在路上; 猜错了, 丢弃分支并照常执行.&lt;/p&gt;&#xA;&lt;h2 id=&#34;推测解码技术&#34;&gt;推测解码技术&#xA;&lt;/h2&gt;&lt;p&gt;在讨论 Agent 之前, 我们先回到 Speculative Decoding.&lt;/p&gt;&#xA;&lt;h3 id=&#34;自回归解码为什么慢&#34;&gt;自回归解码为什么慢？&#xA;&lt;/h3&gt;&lt;p&gt;给定已经生成的前缀 $x_{\lt t}$, 自回归语言模型按顺序采样下一个 token：&lt;/p&gt;&#xA;$$&#xA;p(x_{1:T})=\prod_{t=1}^{T}p(x_t\mid x_{\lt t}).&#xA;$$&lt;p&gt;第 $t+1$ 个 token 依赖第 $t$ 个 token, 所以生成 $T$ 个 token 通常要串行执行 $T$ 次大模型前向传播. 训练时可以并行处理整段序列, 解码时却只能一次向前走一步. 对于参数量很大的模型, 每一步都要重新读取大量模型权重.&lt;/p&gt;&#xA;&lt;p&gt;论文 &lt;a class=&#34;link cite-Speculative-Decoding&#34;&gt;[&lt;span class=&#34;material-index&#34;&gt;&lt;/span&gt;]&#xA;    &lt;span class=&#34;material-name&#34;&gt;Unknown-material&lt;/span&gt; &#xA;&lt;/a&gt; 和 &lt;a class=&#34;link cite-Speculative-Sampling&#34;&gt;[&lt;span class=&#34;material-index&#34;&gt;&lt;/span&gt;]&#xA;    &lt;span class=&#34;material-name&#34;&gt;Unknown-material&lt;/span&gt; &#xA;&lt;/a&gt; 给出一种解法：用便宜的 &lt;strong&gt;草稿模型 (Draft Model)&lt;/strong&gt; 连续生成若干候选 token, 再让昂贵的 &lt;strong&gt;目标模型 (Target Model)&lt;/strong&gt; 一次并行检查整段候选.&lt;/p&gt;&#xA;&lt;p&gt;目标模型验证长度为 $\gamma$ 的草稿, 并接受从开头开始连续通过验证的最长前缀. 只要一次目标模型调用平均能够接受多个 token, 总解码时间就会下降.&lt;/p&gt;&#xA;&lt;h3 id=&#34;为什么它是无损的&#34;&gt;为什么它是无损的？&#xA;&lt;/h3&gt;&lt;p&gt;如果使用贪心解码：草稿 token 与目标模型在相同位置的 argmax 一致就接受, 否则从第一个不一致的位置回到目标模型结果.&lt;/p&gt;&#xA;&lt;p&gt;但采样解码不能简单比较 token 是否相同, 否则输出分布会偏向草稿模型. 设草稿模型分布为 $q(x)$, 目标模型分布为 $p(x)$, 候选 token $x$ 的接受概率为：&lt;/p&gt;&#xA;$$&#xA;P_{\mathrm{accept}}(x)=\min\left(1,\frac{p(x)}{q(x)}\right).&#xA;$$&lt;p&gt;若拒绝这个 token, 则从修正后的残差分布中重新采样：&lt;/p&gt;&#xA;$$&#xA;p&#39;(x)=\operatorname{norm}\left(\max(0,p(x)-q(x))\right).&#xA;$$&lt;p&gt;这个修正拒绝采样保证最终 token 仍然严格服从目标模型分布 $p$. 因此, 推测解码中小模型只负责提出便宜的草稿, 目标模型仍拥有最终解释权.&lt;/p&gt;&#xA;&lt;div class=&#34;math-block math-algo&#34;&gt;&#xA;    &lt;p class=&#34;math-title&#34;&gt;算法&lt;span class=&#34;math-subtitle&#34;&gt;推测解码&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-input&#34;&gt;输入 &amp;gt; &lt;/strong&gt; 当前前缀 $x_{\lt t}$, 草稿模型 $q$, 目标模型 $p$, 草稿长度 $\gamma$.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-output&#34;&gt;输出 &amp;gt; &lt;/strong&gt; 与直接从目标模型采样分布一致的新 token.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;用 $q$ 自回归生成 $\gamma$ 个草稿 token $\tilde{x}_{t:t+\gamma-1}$, 并保存每步分布.&lt;/li&gt;&#xA;&lt;li&gt;用 $p$ 一次并行计算整段草稿位置的目标分布.&lt;/li&gt;&#xA;&lt;li&gt;从左到右按 $\min(1,p(\tilde{x})/q(\tilde{x}))$ 接受草稿 token.&lt;/li&gt;&#xA;&lt;li&gt;一旦拒绝, 从 $\operatorname{norm}(\max(0,p-q))$ 采样修正 token, 并丢弃其后的草稿.&lt;/li&gt;&#xA;&lt;li&gt;若全部接受, 再从目标模型验证结果中额外采样一个 token.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;“快模型提案、慢模型验证、命中就提交、失配就回退”便是整个范式的核心.&lt;/p&gt;&#xA;&lt;h2 id=&#34;从-token-到-action&#34;&gt;从 Token 到 Action&#xA;&lt;/h2&gt;&lt;p&gt;论文 &lt;a class=&#34;link cite-Speculative-Actions&#34;&gt;[&lt;span class=&#34;material-index&#34;&gt;&lt;/span&gt;]&#xA;    &#xA;&lt;/a&gt; 所做的事情, 是把候选 token 换成候选 Action, 把一次前向传播换成一次可能很慢的环境调用.&lt;/p&gt;&#xA;&lt;p&gt;Agent 的一次任务可以建模为马尔可夫决策过程 $(s_t,a_t)$. 策略 $\pi$ 根据当前状态 $s_t$ 决定调用哪个 API, 以及传入什么参数：&lt;/p&gt;&#xA;$$&#xA;(h_t,q_t)\leftarrow\pi(s_t),&#xA;$$&lt;p&gt;其中 $h_t$ 表示 API, $q_t$ 表示参数. API 调用返回动作结果 $a_t$, 环境再转移到：&lt;/p&gt;&#xA;$$&#xA;s_{t+1}=f(s_t,a_t).&#xA;$$&lt;p&gt;这里的 API 是一个很宽泛的抽象：它可以是一次 LLM 请求、搜索或 MCP 工具调用、GUI 操作, 甚至可以是等待人类回复. 共同点在于, 它们都会返回一个 &lt;code&gt;Future&lt;/code&gt;, 而 Agent 通常在 &lt;code&gt;await&lt;/code&gt; 完成前无事可做.&lt;/p&gt;&#xA;&lt;p&gt;论文引入两个角色：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Actor&lt;/strong&gt;：慢但权威的执行者, 负责给出基准系统原本会产生的真实结果;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Speculator&lt;/strong&gt;：便宜而快速的预测器, 猜测 Actor 的结果以及随之而来的下一次调用.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Speculative Actions&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;432px&#34; data-flex-grow=&#34;180&#34; height=&#34;1071&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/speculative-actions.png&#34; srcset=&#34;https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/speculative-actions_hu_84c9561d535e6d14.png 800w, https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/speculative-actions_hu_aad44134cc101525.png 1600w, https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/speculative-actions.png 1929w&#34; width=&#34;1929&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;在 Actor 处理当前请求时, Speculator 同时预测 $k$ 个可能结果 $\hat a_t^{(1)},\ldots,\hat a_t^{(k)}$. 系统分别构造假想状态：&lt;/p&gt;&#xA;$$&#xA;\hat s_{t+1}^{(i)}=f(s_t,\hat a_t^{(i)}),&#xA;$$&lt;p&gt;再让原策略根据每个假想状态计算可能的下一次 API 调用, 并立即异步启动：&lt;/p&gt;&#xA;$$&#xA;(\hat h_{t+1}^{(i)},\hat q_{t+1}^{(i)})&#xA;=\pi(\hat s_{t+1}^{(i)}).&#xA;$$&lt;p&gt;这些尚未完成的调用被存在缓存 $C:(h,q)\mapsto\bar a$ 中. Actor 返回真实 $a_t$ 后, 系统重新计算真正的下一次调用. 如果缓存中有完全匹配的 $(h_{t+1},q_{t+1})$, 就直接复用已经启动的 Future; 否则丢弃所有错误分支, 再按普通串行方式调用.&lt;/p&gt;&#xA;&lt;div class=&#34;math-block math-algo&#34;&gt;&#xA;    &lt;p class=&#34;math-title&#34;&gt;算法&lt;span class=&#34;math-subtitle&#34;&gt;k 路并行调用&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-input&#34;&gt;输入 &amp;gt; &lt;/strong&gt; 初始状态 $s_0$, 环境转移 $f$, 策略 $\pi$, 预测器 $\hat g$, 分支数 $k$, 缓存 $C$.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong class=&#34;algo-output&#34;&gt;输出 &amp;gt; &lt;/strong&gt; 与串行 Actor 相同的已提交动作轨迹.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;对 $t=0,\ldots,T-1$ 重复执行以下步骤.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Policy&lt;/strong&gt;: 计算 $(h_t,q_t)\leftarrow\pi(s_t)$.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cache hit&lt;/strong&gt;: 若 $(h_t,q_t)\in C$, 取出对应的 pending action $\bar a_t\leftarrow C[(h_t,q_t)]$.&lt;/li&gt;&#xA;&lt;li&gt;等待 $a_t\leftarrow\operatorname{await}(\bar a_t)$, 更新 $s_{t+1}\leftarrow f(s_t,a_t)$, 回到 1.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Actor&lt;/strong&gt;: 若未命中缓存, 发起真实请求 $\bar a_t\leftarrow f_{h_t}(q_t)$, 但暂不阻塞.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Speculator&lt;/strong&gt;: 与 Actor 并行生成 $k$ 个候选结果 $\{\hat a_t^{(i)}\}_{i=1}^k\leftarrow\hat g(s_t,(h_t,q_t))$.&lt;/li&gt;&#xA;&lt;li&gt;对每个候选 $i$, 构造假想状态 $\hat s_{t+1}^{(i)}\leftarrow f(s_t,\hat a_t^{(i)})$.&lt;/li&gt;&#xA;&lt;li&gt;根据策略得到候选下一次调用 $(\hat h_{t+1}^{(i)},\hat q_{t+1}^{(i)})\leftarrow\pi(\hat s_{t+1}^{(i)})$.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pre-launch&lt;/strong&gt;: 异步发起 $\bar{\hat a}_{t+1}^{(i)}\leftarrow f_{\hat h_{t+1}^{(i)}}(\hat q_{t+1}^{(i)})$, 并写入缓存 $C[(\hat h_{t+1}^{(i)},\hat q_{t+1}^{(i)})]\leftarrow\bar{\hat a}_{t+1}^{(i)}$.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Validate&lt;/strong&gt;: 等待 Actor 的真实结果 $a_t\leftarrow\operatorname{await}(\bar a_t)$, 更新 $s_{t+1}\leftarrow f(s_t,a_t)$; 回到 1, 下一轮的第 3 步会验证真实调用是否命中某个预启动分支.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;与推测解码一样, Speculator 只影响运算开始时间, 不影响最终结果.&lt;/p&gt;&#xA;&lt;h2 id=&#34;无损的条件&#34;&gt;无损的条件&#xA;&lt;/h2&gt;&lt;p&gt;token 没有外部副作用, Action 却可能真的发送邮件、删除文件或提交订单. 论文的无损性依赖两个关键假设：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;推测准确性 (speculation accuracy)&lt;/strong&gt;: Speculator 有非零概率预测出与真实轨迹相同的下一次调用;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;并发可逆预启动 (Concurrent, reversible pre-launch)&lt;/strong&gt;: 多个调用能够并发预启动, 而且错误调用没有外部可见副作用, 或者可以安全回滚.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;因此, 适合推测的动作通常是只读、幂等、可逆或沙箱化的, 例如预取网页、查询订单状态、在临时分支执行分析. 不可逆动作则必须停留在准备阶段, 等 Actor 验证后才能提交.&lt;/p&gt;&#xA;&lt;p&gt;这里“无损”的含义也与 Speculative Decoding 略有不同. 推测解码严格保持目标模型的输出分布; Speculative Actions 则是在上述保护成立时, 保持与串行 Agent 相同的已提交环境轨迹.&lt;/p&gt;&#xA;&lt;h2 id=&#34;能快多少&#34;&gt;能快多少？&#xA;&lt;/h2&gt;&lt;p&gt;假设 Speculator 延迟服从 $\operatorname{Exp}(\alpha)$, 真实 API 延迟服从 $\operatorname{Exp}(\beta)$, 且 $\alpha&gt;\beta$, 即 Speculator 平均更快. 论文的 Proposition 1 给出了单步、宽度优先推测的渐近运行时间比.&lt;/p&gt;&#xA;&lt;div class=&#34;math-block math-thm&#34;&gt;&#xA;    &lt;p class=&#34;math-title&#34;&gt;定理&lt;span class=&#34;math-subtitle&#34;&gt;渐近运行时间比&lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;在每一步至少有一条候选分支命中真实下一次调用的概率为&lt;/p&gt;&#xA;$$&#xA;p(k)=1-(1-p)^k.&#xA;$$&lt;p&gt;若 Speculator 与 Actor 的调用延迟分别服从 $\operatorname{Exp}(\alpha)$ 和 $\operatorname{Exp}(\beta)$, 且 $\alpha&gt;\beta$, 则当任务长度 $T\to\infty$ 时, 论文 Algorithm 1 的期望运行时间与串行执行的期望运行时间之比为&lt;/p&gt;&#xA;$$&#xA;\frac{\mathbb{E}[T_{\mathrm{spec}}]}&#xA;{\mathbb{E}[T_{\mathrm{seq}}]}&#xA;\longrightarrow&#xA;1-\frac{p(k)}{1+p(k)}\frac{\alpha}{\alpha+\beta}.&#xA;$$&lt;/div&gt;&#xA;&lt;p&gt;这个结果揭示了两个瓶颈：命中率 $p(k)$ 决定并行工作有多少能被复用, $\alpha/(\alpha+\beta)$ 则决定 Speculator 是否真的比 Actor 快. 对于只向前推测一步的宽度优先算法, 即使预测永远正确且 Speculator 瞬间完成, 延迟降低上限也只有 50%. 原因是命中缓存的下一步本身没有新的推测窗口, 系统无法无限流水化.&lt;/p&gt;&#xA;&lt;p&gt;更深的单分支推测可以突破这个上限, 但错误时会浪费整棵后继子树. 论文 &lt;a class=&#34;link ref-Interactive-Speculative-Planning&#34;&gt;&lt;/a&gt; 和 &lt;a class=&#34;link ref-Dynamic-Speculative-Planning&#34;&gt;&lt;/a&gt; 更偏向这种纵向规划; Speculative Actions 的主算法则研究每一步横向铺开多个候选的宽度策略.&lt;/p&gt;&#xA;&lt;h2 id=&#34;四个实验&#34;&gt;四个实验&#xA;&lt;/h2&gt;&lt;h3 id=&#34;国际象棋&#34;&gt;国际象棋&#xA;&lt;/h3&gt;&lt;p&gt;在标准对弈中, 一方思考时另一方只能等待. 论文让等待方用低推理预算的 GPT-5 预测对手下一步, 同时用高推理预算的 GPT-5 对每个预测局面提前思考自己的应对.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;国际象棋中的推测命中率与节省时间&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;266px&#34; data-flex-grow=&#34;111&#34; height=&#34;450&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/chess-results.png&#34; width=&#34;500&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;在 5 次、每次 30 步的实验中, 增加分支宽度同时提高命中率和加速效果：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: right&#34;&gt;推测分支&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: right&#34;&gt;命中率&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: right&#34;&gt;节省时间&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;1&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;31.3%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;11.8%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;2&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;41.3%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;15.0%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;54.7%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: right&#34;&gt;19.5%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;加速与命中率不是线性关系. 猜中一个简单局面可能只省几秒, 猜中需要深度推理的局面则会省很多; 在线 API 延迟本身也有较大波动.&lt;/p&gt;&#xA;&lt;h3 id=&#34;电商客服&#34;&gt;电商客服&#xA;&lt;/h3&gt;&lt;p&gt;在 $\tau$-bench 的零售环境中, Speculator 根据已有对话猜用户接下来会提出什么请求, 并提前调用订单查询、退货资格等 API. 不同单模型和模型组合能准确预测 22%～38% 的 API 调用.&lt;/p&gt;&#xA;&lt;p&gt;低预算模型通常在 2～3 秒内完成推测, 而论文假设用户平均需要约 30 秒输入下一条消息. 因此, 系统可以把本来空闲的“用户打字时间”也当作推测窗口. 不过论文在这里主要报告 API 预测准确率, 并没有直接给出完整会话的端到端加速结果.&lt;/p&gt;&#xA;&lt;h3 id=&#34;多跳搜索&#34;&gt;多跳搜索&#xA;&lt;/h3&gt;&lt;p&gt;HotpotQA Agent 必须根据 Wikipedia 返回的内容决定下一次 &lt;code&gt;Search&lt;/code&gt;、&lt;code&gt;Lookup&lt;/code&gt; 或 &lt;code&gt;Finish&lt;/code&gt;. Speculator 在真实检索返回前猜测网页内容, 再据此预计算下一次搜索调用. 采用 top-3 候选时, 严格匹配下一次 API 名称和参数的准确率最高达到 46%.&lt;/p&gt;&#xA;&lt;p&gt;一个有趣现象是, 更强的模型不一定猜得更准. 强模型会产生更加多样、具体的查询, 而严格字符串匹配把同义改写也视为失败; 较弱模型反而倾向简单而可预测的调用.&lt;/p&gt;&#xA;&lt;h3 id=&#34;操作系统调参&#34;&gt;操作系统调参&#xA;&lt;/h3&gt;&lt;p&gt;论文还给出一个有损扩展, 用 Agent 调节 Linux CFS 的 &lt;code&gt;min_granularity&lt;/code&gt;. Speculator 每秒根据最新指标立即修改参数, Actor 每 10～15 秒分析一次压缩后的历史, 并用自己的决策覆盖 Speculator.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;操作系统调参中的 Actor 与 Speculator&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;874px&#34; data-flex-grow=&#34;364&#34; height=&#34;280&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/os-tuning.png&#34; srcset=&#34;https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/os-tuning_hu_aadc3b2d9e0d1e08.png 800w, https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/os-tuning.png 1020w&#34; width=&#34;1020&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;联合系统在约 13 秒到达最优区域, 而 Actor-only 需要约 200 秒; 恢复阶段平均 p95 延迟从 Actor-only 的 54.00 ms 降到 37.93 ms. 虽然 Speculator 调用频繁, 联合系统因为更早收敛, 总成本反而从 2.18 美分降至 0.17 美分.&lt;/p&gt;&#xA;&lt;h2 id=&#34;时间与成本的均衡&#34;&gt;时间与成本的均衡&#xA;&lt;/h2&gt;&lt;p&gt;$k$ 增大时, $p(k)$ 上升, 但每个错误分支都会消耗 token、API 配额和算力. 论文将问题写成延迟收益与分支成本的权衡. 若每条候选具有置信度 $p^{(1)}\ge\cdots\ge p^{(k)}$, 启动前 $m$ 条分支的命中概率为：&lt;/p&gt;&#xA;$$&#xA;q(m;\mathbf p)=1-\prod_{j=1}^{m}(1-p^{(j)}).&#xA;$$&lt;p&gt;最优分支数具有如下结构：&lt;/p&gt;&#xA;$$&#xA;m_t^*(\mathbf p)\in&#xA;\arg\max_{m\in\{0,\ldots,k\}}&#xA;\left\{q(m;\mathbf p)\Delta_t-cm\right\},&#xA;$$&lt;p&gt;其中 $\Delta_t$ 是未来命中缓存的价值, $c$ 是新增一条分支的边际成本. 直观上, 系统按置信度从高到低添加分支, 直到下一条分支带来的命中率增量不再值回成本.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;置信度感知的分支选择&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;315px&#34; data-flex-grow=&#34;131&#34; height=&#34;350&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://LeoDreamer2004.github.io/p/paper-reading/asynchronous-inference/cost-latency.png&#34; width=&#34;460&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;论文在国际象棋中用 50% 置信度阈值作近似, 得到的额外 token 成本最低, 同时延迟表现优于固定启动一条或两条分支.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
