2026-04-04· 约 2 分钟
EditEAGER:让代码生成和执行同时进行
LLM 生成代码时你在干等?EAGER 让生成和执行并行,端到端延迟降低最高 55%。
EAGER:让代码生成和执行同时进行
📄 预印本 | PDF
作者:Zhensu Sun*, Zhihao Lin*, Zhi Chen, Chengran Yang, Mingyi Zhou, Li Li, David Lo
* 共同一作
一句话概括
现在的 LLM 代码生成是"先写完再跑",我们提出 EAGER:边写边跑,用流水线并行大幅减少等待时间。
痛点:生成快,等待长
你用 Copilot 或 Claude 写代码时,工作流通常是这样的:
[LLM 生成代码] ──等待──> [执行代码] ──等待──> [看结果]
问题是:LLM 是逐 token 生成的,但执行必须等到完整代码生成完毕。如果生成一段代码需要 10 秒,执行需要 5 秒,你就得等 15 秒。
但仔细想想——LLM 在生成第一行代码时,后面的代码还没出来,但前面已经生成的部分可能已经可以开始执行了。
EAGER 的核心思想
Executing As you GEneRate —— 一边生成,一边执行。
[LLM 生成 token 1-10] ──>
[开始执行前 10 个 token 对应的代码]
[LLM 生成 token 11-20] ──>
[继续执行...]
就像流水线一样:不是等整个产品做完再质检,而是每个环节做完就传给下一个环节。
技术挑战
这件事说起来简单,但有几个核心难点:
- 什么时候可以开始执行? 不是每个 token 都可以立即执行——你得等到一个完整的语句或代码块生成完
- 执行失败怎么办? 如果中间执行出错,后面生成的代码可能需要回滚
- 依赖关系处理:后面的代码可能依赖前面代码的执行结果(比如变量赋值)
我们的解决方案
- 智能切分:通过语法分析确定安全的执行切分点
- 推测执行:在某些情况下乐观地提前执行,出错时回退
- 状态管理:维护执行状态的快照,支持高效回滚
效果
- 端到端延迟降低最高 55%
- 对生成结果的正确性没有影响(该生成什么还是生成什么)
- 用户体验大幅提升——感觉代码"刚写完就跑出结果了"
为什么这个方向重要
随着 LLM Agent 越来越多地被用于自动化编程任务(写代码 → 运行测试 → 修 Bug → 再测试),每个环节的延迟都会累积。如果每轮迭代能省 55% 的时间,10 轮迭代下来就是巨大的效率提升。
这不只是一个优化技巧,而是 LLM 编程范式从"批处理"走向"流式处理"的一个重要信号。
这是我和 Zhensu Sun 合作的工作,目前是预印本阶段。我们认为这个方向有很大的发展空间,欢迎交流讨论。