论文

先思考后约束:大型语言模型的统一解码框架

先思考后约束:大型语言模型的统一解码框架

自然生成允许大型语言模型(LLMs)产生具有丰富推理的自由文本回复,但缺乏结构使得输出难以验证。相反,约束解码确保了标准化格式,却可能因过早施加约束而限制推理能力。 为解决此矛盾,本文提出混合方法 In-Writing,在单次调用中结合自由形式推理与结构化生成。模型先进行无约束推理,仅在生成 触发 token 后应用结构化解码,明确将推理与格式化解耦。实验证明,触发 token 策略几乎能根除 过早触发(约束解码中断推理的失败模式)。 在涵盖分类与推理任务的多个数据集上,In-Writing 相比自然生成准确率提升高达 27%,超越现有最优方法。代码已开源。

论文精读

TL;DR In-Writing 在 LLM 单次调用中先自由推理再触发结构化解码,根除过早约束导致的推理中断,在分类与推理任务上准确率最高提升 27%,显著超越纯自然生成与常规约束解码。

问题

问题背景

大型语言模型(LLM)在推理任务中展现出强大能力,但实际应用(如 Agent 工具调用、评测基准、数据提取)往往要求输出结构化且可解析的格式,以便下游系统可靠消费。因此,如何在不牺牲推理质量的前提下保证输出严格符合预设 schema,成为当前研究热点。

现有方法局限

主流方案分为两类,各有明显短板:

  • 自然生成(NL) 允许模型自由推理,但产生的文本格式多变、难以自动解析。常用后置解析器(regex、LLM 自身)不仅引入额外错误,还会因边界情况导致解析失败,严重影响整体可靠性。
  • 约束解码(constrained decoding) 从生成首 token 起即强制符合语法或 schema,虽能保证格式正确,却会压缩模型的推理空间。早期语法约束(如 CRANE 的 grammar-constrained decoding)极易触发 premature triggering——模型尚未完成推理就被迫输出结构化 token,打断思维链,导致准确率骤降(本研究观察到在 GSM-Symbolic 上推理准确率下降超 20%)。

为什么这个问题难/重要

推理过程天然需要模型在 token 空间中自由探索,即采样的灵活性与生成的结构性要求本质冲突。在单个自回归解码中协调两者,必须精确控制状态切换时机——过早约束会扼杀推理,过晚则破坏格式。该难题直接影响 LLM 在工业场景的落地:智能助理、自动化报告、知识图谱查询等场景同时依赖深度推理与确定性的输出格式;若无法兼顾,则必须牺牲可靠性或容忍脆弱的解析管线,大幅增加工程维护成本。

行业类比

就像代码生成助手必须先理解需求并推导逻辑,再产出语法正确的代码——思考过程与最终格式是解耦的;把格式约束过早强加在思维阶段,无异于强迫程序员在敲出第一行前就必须决定所有语法结构。

核心洞察

  • **解耦推理与格式化是提升结构化生成鲁棒性的关键**:In‑Writing 通过触发 token 将推理阶段与约束解码阶段显式分离,区别于完全自由生成或全程约束的混合方法。这种设计从机制上避免了约束过早介入导致的“过早触发”失败,在需要可靠结构化输出的工程场景(如分类、数学推理)中,能将准确率提升高达 27%,同时保持推理链的完整性。
  • **触发 token 策略的设计空间是无需重新训练即可提升可靠性的杠杆**:论文证明,通过精心设计触发 token(如特殊分隔符)并让模型在无约束下先生成,几乎可根除过早触发。这为部署 LLM 应用的工程师提供了清晰的优化路径——无需微调模型,仅通过解码时的状态控制就能显著增强结构化输出的稳定性,尤其适用于对输出格式有严格要求的 API 或流水线。
  • **统一解码框架能同时保留推理深度与输出确定性,超越现有分步方案**:与先推理后解析(NL‑to‑Format)或全程语法约束(CRANE)的方法相比,In‑Writing 在单次调用内无缝融合自由推理与结构化生成。实验表明,它不仅在解析稳定性上优于依赖外部解析器的方案,也打破了语法约束对推理能力的损害,为构建端到端可验证的 LLM 系统提供了更高效的一体化方案。

方法

输入与整体流程

In-Writing 接收一个提示词(prompt)和待生成的 schema 定义(如 JSON 模板)。整个解码过程在一次调用中完成,分为两个阶段:

  1. 无约束推理阶段:模型自由生成,使用常规采样策略(如 top-p、温度采样)输出自然语言思维链,不施加任何格式限制。该阶段保证了推理的灵活性与丰富性。
  2. 约束生成阶段:当模型输出一个特殊的 触发标记(trigger token,例如 “最终答案:” 或模型自生成的特定短语)时,解码器立即切换至约束模式。之后,仅允许生成符合预定义 schema 的 token,强制输出结构化结果(如 JSON 字段值)。

最终输出同时包含自由形式的推理文本与结构化的答案。

关键模块

  • 解耦概率公式:将整个序列的概率分解为两部分:触发标记之前无约束推理的似然,与触发标记之后受 schema 约束的似然。这种分解确保约束条件不会反向影响推理的生成概率,从根本上避免了 过早触发(premature triggering)——即约束过早干预导致的推理中断或错误。
  • 基于状态的解码算法:解码器维护一个二元状态机(FREECONSTRAINED),根据是否遇到触发标记进行状态跳转。在 FREE 态下,所有 token 均可被采样;在 CONSTRAINED 态下,通过 token 掩码(masking)或受限集束搜索(constrained beam search)仅允许语法有效的 token。
  • 抗过早触发策略:为最大化消除失败模式,In-Writing 设计了针对性策略,如:使用极少在推理中自然出现的高熵触发短语,或结合模型微调以延迟触发位置,确保推理充分完成后再启动结构化生成。

与同类方法的差异

不同于 CRANE 等全程约束解码(从首个 token 即施加语法限制)或两阶段“先生成后解析”方案,In-Writing 在单一前向传播中实现了推理自由与格式严谨的解耦,避免了约束对推理能力的侵入,同时省去了额外解析步骤,在分类与推理任务上取得最高 27% 的准确率提升。

实验

实验设计

In‑Writing 的评估覆盖 分类推理 两大类任务,具体数据集包括 GSM‑Symbolic 等常用基准。实验设置两种对比模式:

  • NL‑to‑Format:先让模型自由生成自然语言,再用解析器提取结构化输出;
  • CRANE:全程施加语法约束解码。

指标包含 准确率解析成功率 以及 令牌效率 ,同时定量衡量 过早触发(premature triggering)的失败率。

关键发现

  1. In‑Writing 通过 触发令牌(trigger token)将推理与格式化解耦,几乎消除了过早触发——传统约束解码常因过早限制而打断推理链。
  2. 在多个推理与分类任务上,In‑Writing 的准确率 最高超过自然生成 27% ,同时保持结构化输出的可解析性。
  3. 解析分析显示,In‑Writing 在 token 开销上优于 NL‑to‑Format,因为后者需要额外的解析步骤且可能失败。

与基线对比的解读

  • NL‑to‑Format 相比,In‑Writing 将结构化生成内化到单一解码过程中,避免了外部解析器的不稳定性;精度提升表明模型在“边写边格式化”时能更好地保持意图。
  • CRANE 类型的全程约束相比,In‑Writing 在前期无约束推理保留了 链式思维 (chain‑of‑thought)的完整性与灵活性,这是约束解码难以做到的——约束解码的强格式限制会扭曲 token 分布,尤其损害多步推理。
  • 因此,In‑Writing 提供了一种 工程友好 的方案:只需在 prompt 中植入触发令牌及格式 schema,无需修改模型权重或训练专用解析器,即可在单个 LLM 调用中同时获得 高精度推理可直接验证的结构输出

行业影响

落地场景

In-Writing 框架最直接的落地场景是需要 结构化输出但不得损害推理质量的 AI 产品,如:

  • 客服系统:先自由推理用户意图与解决方案,再生成标准化工单或 JSON 响应
  • 医疗报告生成:在自由文本中完成临床推理,再输出结构化诊断摘要
  • 金融分析:自由推演市场逻辑后,生成包含关键指标的结构化报表
  • 代码解释或法律文书:在自然语言推理阶段保持灵活性,最终收敛到严格的模板或格式

商业价值

  • 降本:通过消除“过早约束导致推理中断”的失败模式,In-Writing 在推理任务上准确率可提升高达 27%,显著减少人工校验与重试成本
  • 增收:更高的结构化输出准确率使产品可直接用于对可靠性要求极高的场景(如自动合规审查、自动化 RPA 流程),拓宽付费市场
  • 体验提升:用户同时获得流畅的推理过程和可直接机器读取的结构化结果,无需等待后处理或二次格式化

与现有产品/工作流的接口

In-Writing 本质上是一种解码策略增强,可作为插件集成到现有 LLM 推理栈中:

  • 推理引擎:在 vLLM、TGI 等框架中,通过自定义 LogitProcessor 实现触发 token 检测与约束切换
  • Constrained Decoding 库:可与 outlinesguidancelm-format-enforcer 等库协作,在触发 token 后切换到其语法约束流程
  • 应用层:Prompt 中只需加入“先生成推理,再生成 <trigger> 后结构化数据”的指示,无需修改模型权重或训练流程

具体用例

  1. 电商售后工单自动创建
    用户消息经过 LLM 推理分析(如识别退货原因、判定责任方),当 LLM 输出 [TRIGGER] 后切换到 JSON schema 约束,直接生成可被下游系统解析的工单结构,全程一次调用完成。
  2. 自动化财报分析
    输入财报章节,模型先进行自由文本的财务健康度推理,检测到触发标记后强制输出包含 revenue_growth, risk_factors 等字段的结构化摘要,可直接导入 BI 看板,避免幻觉并保证格式一致性。

局限

  • - **Trigger token 依赖**:方法需要人工设计触发词与输出 schema,对推理与格式化边界模糊的任务难以泛化,且 schema 设计可能引入额外人工成本。
  • - **过早触发仍存风险**:尽管策略有效,长或模糊的推理链仍可能导致触发器被意外生成,真实环境的鲁棒性仅在少数基准上验证,未覆盖复杂场景。
  • - **评估范围有限**:实验局限于分类与数学推理等小规模数据集与 7B–8B 模型,缺乏大规模模型(>70B)和开放域生成任务的验证,方法扩展性存疑。
论文Ngoc Trinh Hung Nguyen2026-05-28原文

相关内容