使用 Prime-RL 后训练构建快速准确的智能体(22 分钟阅读)

TLDR AI 新闻

摘要

Ramp 介绍了一项案例研究,利用强化学习后训练构建了 Fast Ask,这是一种专门的电子表格检索智能体,与通用模型相比,它提高了准确性并降低了延迟。

Ramp Sheets 构建了 Fast Ask,以处理其电子表格智能体的信息检索循环。它可以浏览工作簿,读取相关范围,并返回简洁的答案供主智能体使用。本文以 Fast Ask 作为强化学习的案例研究,涵盖了在哪些情况下值得训练专门的智能体、如何设计环境,以及如何评估后训练是否有效。
查看原文
查看缓存全文

缓存时间: 2026/05/08 18:27

Ramp Sheets 构建了 Fast Ask 来管理其电子表格代理的信息检索循环。它可以导航工作簿、读取相关区域,并返回简洁的答案供主代理使用。本文以 Fast Ask 作为强化学习的案例研究,涵盖何时值得训练专用代理、如何设计环境以及如何评估后训练是否有效。


通过 Prime-RL 后训练构建快速、准确的代理

电子表格代理的性能取决于其检索信息的能力。读取过少,则无法找到答案;读取过多,则会变得缓慢、昂贵,且容易被无关标签分散注意力。

在 Ramp Sheets 中,我们构建了 Fast Ask 来处理这一检索循环。对于诸如“3月到5月的收入是多少?”这样的问题,Fast Ask 能够导航工作簿、读取相关区域,并返回简洁的答案供主代理使用。我们与 Prime Intellect 合作,使用他们的 RL 训练栈对该工作流程上的开源 Qwen 模型进行了后训练。本文将 Fast Ask 作为 RL 后训练的案例研究:何时值得训练专用代理、如何设计环境以及如何评估后训练是否有效。

动机

在我们的跟踪记录中,我们观察到大量的探索开销,实际上浪费了大量时间。主代理在所有工具调用中花费了 17.8% 来打开选项卡、读取区域和筛选无关工作表,然后才能获得回答所需的数据。其中约 75% 的调用之后紧接着另一个读取调用,这表明代理通常无法在第一次尝试时检索到正确的信息。

仅通过提示词仍无法改变核心循环:一个大型、较慢的通用模型负责导航电子表格并过滤无关信息。相反,我们对开源 Qwen 模型进行了后训练,使其成为一个专门的检索子代理。这使我们能够将检索任务转移到一个更小、更快的模型上,同时保持准确性,并实现生产所需的延迟特性。

最终的 Fast Ask 模型是经过微调的 Qwen3.5-35B-A3B 变体,有效参数量约为 30 亿,运行延迟与 Haiku 4.5 相当。在我们保留的评估集上,Fast Ask 在精确匹配准确率上比 Claude Opus 4.6 高出 4 个百分点。这使得最终的代理系统既更快又更准确。

为什么检索需要自己的子代理

检索是专用模型的一个很好的目标,原因有三。

  • 首先,它保护了主代理的上下文。 如果主模型读取每个选项卡,就会在无关行上消耗令牌,并且可能被干扰项误导。检索子代理可以只返回与答案相关的单元格或计算值。

  • 其次,检索对延迟敏感。 如果主代理能快速获得所需的电子表格事实,而不是花费多个回合探索工作簿,用户体验会好得多。

  • 第三(也是最重要的),检索是可验证的。 与开放式的财务推理不同,许多电子表格问题都能归结为一个精确值:日期、发票ID、金额(美分)、是/否答案或行引用。这使得该任务天然适合强化学习,因为我们可以确定性地对轨迹进行评分。

这些特性使得检索成为 RL 后训练的强候选。任务范围狭窄、频繁出现、对延迟敏感,并且可以客观评分。

实验设置

我们通过将电子表格交互构建为一个包含许多相关任务、小型工具接口和确定性奖励函数的环境,使工作流程可用于 RL 训练。模型并非通过正确行为的演示进行训练,而是通过强化学习自行学习导航工作簿、检索数据和计算答案的策略。

我们使用 Qwen/Qwen3.5-35B-A3B 作为基础模型,并在 Prime Intellect 的 Lab 平台上进行训练,使用其托管训练基础设施和验证器框架。训练环境直接镜像了我们的生产部署工具。

训练使用了 100 个训练步,batch size 为 256,每个示例执行 8 次 rollout。每 20 步在 128 个保留示例上进行评估,同时评估基础模型和训练后的检查点。我们禁用了思考模式,以便与我们所关注的低延迟生产环境进行匹配。

合成数据集

每个任务包含一个合成的业务工作簿、一个自然语言问题和一个真实答案。工作簿旨在反映真实的财务工作流程:收入汇总、发票对账、支出分析、时间过滤查找以及多表连接聚合。

合成数据使我们能够在保持可靠性的同时扩展任务分布。它允许我们生成同一检索问题的许多变体,精确控制答案,并改变表层措辞而不改变所训练的基本技能。

我们定义了 14 种任务类型,分属三个系列:

对于每个任务,我们生成了三种不同措辞的变体,例如投资者备忘录请求、催收跟进和募资模型问题。这防止了模型过拟合到单一的提示模板。对账任务通过发票描述、付款线索以及客户/日期/金额签名增加了更多变化,将有效提示空间扩展到每个类型超过 3 种。

示例:

我正在收紧我们的投资者备忘录。South land 在 2025-03 至 2025-05 期间的累计净确认收入是多少(以美元美分计)?工作表:[‘Orders’, ‘OrderLines’, ‘Shipments’, ‘Returns’, ‘OrderMonthNet’, ‘FxExposure’, ‘Contracts’, ‘FXRates’, ‘Targets’, ‘HiringPlan’, ‘CapTable’]

训练批次采用平衡轮询方式组装:每次遍历数据集时都会打乱并发出所有 14 种任务类型,然后重复,确保均匀覆盖¹。

对抗性工作簿设计

我们使用难度级别来控制模型面临的导航压力。简单任务通常直接暴露答案路径。中等和困难任务使用三种策略来增加难度:干扰项、不可靠的捷径和模糊标识符。

难度旋钮使策略更加鲁棒。通过改变干扰项、辅助摘要和模糊标识符,我们训练模型处理在合成环境之外会遇到的导航失败情况。

  • 干扰工作表。 在中等和困难难度下,收入工作簿包含财务相关但与答案无关的选项卡,如 HiringPlanCapTable,其中包含招聘人员姓名、空缺职位、期权池和类似的规划数据。这些工作表不包含回答目标问题所需的信息。不加区分地读取的模型会浪费它的回合预算。

  • 部分辅助摘要。 一些工作簿包含诸如 RegionalPnLSpendSummary 之类的摘要表,但省略了直接回答问题所需的计算列。模型看到一个看似捷径的选项卡,但仍然需要从源数据验证或聚合。在困难难度下,辅助摘要被完全移除。

  • 标识符混淆。 在大约 15-20% 的对账任务中,问题引用的发票不是通过其 INV-#### ID,而是通过付款线索(如源系统、方式、日期和金额)或签名(如客户、月份、金额和到期日)来引用。模型必须先解析引用,然后才能回答。

工具接口

模型获得三个工具,并有 15 个回合的预算:

  • get_workbook_metadata 返回工作表名称、选项卡颜色和近似已用范围 (used_ranges)。
  • read_ranges 返回单元格数据,每次调用硬限制为 1,000 个单元格。超大的请求会被拒绝。
  • run_python 执行沙盒 Python(仅标准库)。状态在单次 rollout 内的调用之间持续存在。

保持工具空间如此之小是故意的。只有三个工具,高效和低效的轨迹更容易在奖励信号中区分。

Fast Ask 背后的 RL 数学

对于每个电子表格问题,模型采样八条轨迹:

y1,y2,…,yG∼πgen(⋅∣x)

每条轨迹都是完整的交互记录:工具调用、电子表格读取、Python 执行和最终答案。验证器使用我们的确定性奖励函数对每条轨迹进行评分:

R(yi)=1.0⋅correct(yi)+0.1⋅efficiency(yi)+0.05⋅concise(yi)

我们根据 Fast Ask 的生产需求设计了奖励。它应该返回正确的答案,快速完成,并避免在主代理的上下文中添加不必要的文本。

正确性主导奖励。只有当最后的 “ANSWER:” 行被解析为预期类型并且与真实答案完全匹配时,1.0 项才会生效。效率和简洁项是小的塑造奖励。它们无法挽救错误的答案,但可以区分正确的轨迹。在五个回合内给出正确答案的轨迹,其得分应略高于在无关工作表中徘徊后给出相同答案的轨迹。

我们使用 GRPO 进行训练,这是一种策略梯度方法,它从同一提示采样的 rollout 组中估计优势。GRPO 不拟合单独的价值模型,而是将每个 rollout 的奖励相对于其组内其他 rollout 进行归一化。对于给定的电子表格问题,一条轨迹可能在五个回合内正确回答,而另一条则将其预算浪费在干扰选项卡上并失败。这种相对奖励差异成为学习信号。将 rollout i 的优势写为:

Ai=R(yi)−1/G * Σ(k=1 to G) R(yk)

暂时忽略离策略校正,策略梯度更新的形式为:

∇θJ(θ) ≈ Σ(i=1 to G) Σ(t=1 to |yi|) Ai ∇θ log πθ(yi,t | x, yi,<t)

这是 RL 成为工具使用代理天然契合点的原因。我们从不标记正确的下一个工具调用。我们只对整个轨迹进行评分。数学过程将概率质量推向使最终答案正确的行为:首先读取元数据,避免干扰工作表,在有效时使用辅助摘要,必要时回退到原始行,并发出可解析的 “ANSWER:” 行。

为什么异步离策略 RL 使之实用

对于 Fast Ask,rollout 是多回合轨迹,代理在其中检查工作簿元数据、读取范围、运行 Python 并最终发出可解析的答案。这使得 rollout 生成比普通的监督微调数据加载慢得多。

Prime Intellect 的 prime-rl 栈通过异步离策略训练使其实用。离策略训练允许从模型稍旧版本(更新较少)生成的轨迹中学习,而不是要求每个 rollout 都来自最新的权重。Rollout 工作器持续生成轨迹,同时训练器更新模型。一些轨迹来自稍旧的策略,但目标函数通过重要性加权校正了这种有界的陈旧性。

重要性比率是:

ρt(θ) = πθ(yt | x, y<t) / πgen(yt | x, y<t)

直观地说,rho_t 衡量当前模型生成此词元的可能性与最初生成它的模型相比是高还是低。

Prime Intellect 使用类 AIPO 的裁剪重要性加权目标来保持这些更新的稳定性:

J(θ)= Σ(i,t) min(ρi,t(θ) Ai, clip(ρi,t(θ), 1−ε, 1+ε) Ai)

这对于工具使用任务非常重要,因为 rollout 很慢。如果训练必须在每次更新后停止并等待完全新鲜的轨迹,GPU 利用率将受到影响。离策略 RL 让 rollout 工作器在训练器从最近生成的轨迹中学习的同时,继续探索电子表格。

结果

我们在保留的任务集上评估了基础模型、训练后的模型以及 Claude 系列模型。指标为 精确匹配准确率 和每次 rollout 的 挂钟时间

训练运行了 100 步,约 26 小时。奖励在大约前 40 步内从约 0.2 上升到 0.8,然后趋于平缓。大多数收益来自两方面:模型学会了生成正确解析和格式化的答案,以及规划更紧凑的轨迹,浪费更少的回合。有趣的是,每次 rollout 读取的单元格总数在训练期间基本保持不变。这表明模型并未学会总体上减少读取量,而是学会了更好地分配读取。

准确率是精确的任务完成率。时间是每次 rollout 的平均耗时,归一化到 Haiku 4.5。所有模型均在非思考模式下评估。

RL 训练在基础模型的基础上增加了 10 个百分点 的准确率,同时实际降低了平均完成时间。训练后的模型比 Opus 高出 4 个多点,并且运行在 Haiku 的延迟水平上。

总结

RL 后训练在此处有效,因为环境使电子表格检索变得可测量且可重复。通过使用 RL 环境,我们将检索简化为具有明确结果的重复决策。这为模型提供了一个清晰的优化目标,而无需人工标注的轨迹或 LLM 判断器。

Fast Ask 是我们预计会更频繁使用的模式的一个示例:为狭窄的瓶颈训练小型、可验证的子代理,让前沿模型将其令牌花费在判断上,而不是检索上。

在严格限定范围的环境中经过 RL 训练的小型模型,可以在特定检索任务上超越前沿模型,且成本和延迟仅为后者的一小部分。重要的工作不在于模型架构或规模,而在于环境设计:正确的任务、最小的工具接口以及基于产品实际生产工作方式的奖励函数。这使得模型学会了读取正确的内容。

¹ 合成世界是内部一致的。客户、供应商、SKU、合同层级、付款方式、调整原因和条目来源均从固定词汇表中采样,为模型提供了跨越数千个生成工作簿的真实实体结构。

合著者:Ben Geist @b_geist 和 Will Brown @willccbb

想了解我们接下来的人工智能实验吗?在此订阅并在 @RampLabs 上关注我们。我们也在 Ramp 招聘各个岗位。

相似文章

CacheRL:基于缓存回滚和混合奖励的多轮工具调用智能体

arXiv cs.CL

CacheRL训练用于多步工具调用任务的小型智能体基础模型,通过缓存回滚和混合奖励塑造,以100倍更少的计算量实现了92%的过程准确率(接近GPT-5的94%),并在知识迁移、缓存感知奖励以及迭代SFT/GRPO训练方面进行了创新。