修订提示法:让工业级 LLM 流程更快更省
通过向 LLM 提供原输入、原输出与差异 diff,让模型生成增量补丁而非完整重跑,可减少约 80% 时间与 65% 成…
在工业级 LLM 流水线中,同一条指令常常需要针对多份输入反复运行。当输入被更新时,最朴素的方案是直接重跑整条指令,但这既带来 LLM 输出与原结果不一致的问题,也意味着重复的完整 token 开销与等待时间。「修订提示法」(Revision Prompting)通过让模型只生成「补丁」,把原输出作为上下文一起喂回,从而在一致性、耗时与成本三个维度同时改善这一流程。
工业提示与即兴提示的区别
文中把 LLM 的使用方式分为两类:
- 即兴提示(Ad-hoc prompting):人工针对每次调用定制指令,例如让编程智能体实现新功能、或让聊天机器人起草一封邮件。
- 工业提示(Industrial prompting):作为自动化流程的一部分,同一条指令跨多份输入反复运行,例如从发票中抽取结构化字段、或把文档站翻译成多种语言。
工业提示的典型形态是「输入 + 指令 → 输出」。当输入更新后,若直接对新输入再跑一次完整指令,会出现两个问题:一是 LLM 本身具有非确定性,更新后的输出与原输出之间的差异会超出输入变更所必需的范围;二是即便只有一小段输入变了,也要付出完整输出的时间与 token 成本。
修订提示法的工作机制
修订提示法的核心思路是不再重跑整条指令,而是让模型基于差异生成补丁。具体做法是把原指令改写为如下形态:
指令:原输入 已产生输出:[原输出] 输入更新如下:diff(原输入, 更新后输入) 请生成一个补丁来更新输出。
LLM 返回一段「输出补丁」(OutputPatch),应用在原输出上即可得到更新后的输出。
文中给出一个翻译示例:一段介绍电动自行车的英文页面原本被完整翻译为德文,当电池续航从 80 km 升级到 100 km 后,修订提示法只让模型针对那一句差异产出补丁,例如:
- 「Das E-Bike Vela 3 hat eine Reichweite von 80 km.」
- +「Das E-Bike Vela 3 hat eine Reichweite von 100 km.」
未改动的内容与原译文保持完全一致,输出补丁往往只包含两行文本,而非整段重译。
为什么会更快、更省、更一致
- 一致性:补丁只覆盖输入差异所必需的部分,输出中未被补丁触及的部分与原输出逐字相同,因此更新结果与原结果天然一致。
- 时间与成本:模型只需生成一段较短的补丁,大部分 token 从「输出侧」迁移到「输入侧」。由于推理耗时大致随输出长度增长,整体处理时间被显著压缩;同时昂贵的输出 token 被替换为相对便宜的输入 token。如果重跑距离原运行只有几分钟,借助提示缓存(prompt caching),部分输入 token 成本还可进一步降低。
落地实践要点
- 差异与补丁的格式:差异部分可使用 POSIX diff 这类通用格式;如果原指令的输出是 JSON,则 JSON Patch 格式往往更合适。
- 节省幅度的影响因素:时间与成本的下降幅度,取决于「输入变更占整体输入的比例」以及「输出对输入变更的敏感程度」。变更越小、输出越局部化,节省越明显。
- 作者自报数据:在其自身的工业提示场景中,修订提示法把处理时间降低约 80%,成本降低约 65%。该数字未附带公开的 benchmark 细节,仅作为经验值参考。
总体而言,修订提示法并不是新模型或新训练方法,而是一种面向「同指令、批输入、增量更新」场景的工程化提示范式。它把传统软件工程中「diff + patch」的思路引入 LLM 调用链,用最小的生成量换取最大的一致性与成本效率。对于维护文档翻译、报表抽取、内容改写等长周期流水线,这一思路值得作为默认选项纳入设计考量。
