迅步科技

关于

迅步科技专注Shopify独立站,Shopify应用及无头网站开发,为您的品牌提供快速、灵活、个性化的电商体验,提升用户转化率与运营效率。欢迎咨询合作。

微信联系二维码
分类

Sidekick 的持续学习闭环:生产环境失败如何压缩为模型权重,同时将服务成本降低 96%

Sidekick 的持续学习闭环:生产环境失败如何压缩为模型权重,同时将服务成本降低 96%

前沿模型是快速上线新 AI 产品的最快途径。一个小团队可以迅速将有用的产品呈现给用户,并从真实世界的使用中学习。但随着使用量的增长,经济账会发生变化:前沿模型在处理大规模请求时可能速度过慢、成本过高。

前沿模型是通用型的,并非为你的产品量身定制。更重要的是,它们本身不会从生产环境中学习。用户的纠正、被拒绝的输出或反复出现的失败,并不会让下一次响应变得更好。但每一次失败都是关于你产品的宝贵知识,持续学习的起点正是捕获这些知识并将其反馈到系统中。

一个已部署的前沿模型也是冻结的。它没有内化生产环境经验的机制。相反,改进会积累在它周围的离散工件中:提示词编辑、检索示例、路由规则和封装代码。生产知识以文字和代码的形式堆积,而模型的权重却未被动过。飞轮(flywheel)正是我们的答案:一个持续学习闭环,将生产经验压缩进模型权重的连续空间中。

Shopify 的 GraphQL Agent(GraphQL 代理)是这一闭环在生产环境中运行的最清晰例证。这个飞轮在降低延迟和削减 96% 成本的同时,提供了超越前沿模型的质量。

定义质量:它是奖励信号的基础

定义质量是闭环中最关键的一步——也是团队最常仓促对待的一步。它始于一份关于"优秀"表现的定义说明,并最终成为驱动学习的奖励信号。如果这一步出错,下游所有环节都会优化错误的行为。

质量始于一份评分细则(rubric),它将你的产品需求转化为几个带评分的标准:完整性、执行能力、响应质量和安全性。每个标准都有具体的锚点来说明每个分数的含义。你可以将其视为产品团队对好与坏的定义,也是标注者将对话转化为真实数据(ground truth)的依据。

关键点:真实数据应包含随机采样的流量,而不仅仅是精心挑选的示例。黄金集(Golden sets)能测试你已知要寻找的案例;随机样本则能揭示生产环境中好与坏的真实样貌。

当你对评分细则满意后,让你最优秀的两位标注者/产品专家盲标 25 个随机样本,并记录他们的标注者间一致性(inter-annotator agreement)。我们使用 Cohen's kappa 来衡量。如果该值非常低(约 0.2),说明细则表述模糊。如果一份细则连每天处理该产品的几位产品专家都会感到困惑,那么它同样会让 LLM 感到困惑。

这种一致性也是评判器的上限:即使是专家标注者,也无法 100% 达成一致。目标不是要一个"完美"的评判器,而是要一个与人类相互之间的一致性相当的评判器。

在收集标注时,务必追求细节。一个分数加一句话不足以让校准算法学习。你需要每个分数背后的"为什么"——这些推理过程是金矿。

校准评判器

评分细则只是起点。它是评判器的初始提示词,但它还未从你的真实数据中学到任何东西。校准将把这份细则转化为一个能够处理无限量生产数据点的评判器。

为此,我们非常推崇 DSPy,并使用基于反思的优化器(如 GEPA 和 Agentic Context Engineering——代理上下文工程)进行校准。GEPA 通过反思自然语言失败轨迹来进化提示词,并维护一个候选者的帕累托前沿(Pareto frontier),而非贪婪地选择一个最优解。ACE 则通过小步增量编辑来构建结构化的操作手册。

评判器是你的离线指标,是你在发布前优化的目标。但它只是一个代理指标,因此你需要确认它能反映真实流量下的性能,并与你的在线指标保持一致。用之前的 A/B 测试结果进行回测:它能复现已知的参与度、留存率或产品旨在驱动的行为的胜负方向吗?

然后,进行针对性的降级测试,可以在离线环境或严格控制的小流量切片上进行。故意让某一行为变差,确认相应的评分标准会敏感地响应。例如,如果系统停止尝试满足用户目标,那么目标实现得分应该会具体下降。

保持每个评判器小而专注,而不是将产品所有行为塞进一个评判器中。聚焦的评判器使测试更易于解读,由此产生的指标也更可信。你总是可以添加更多评判器。

使用自动研究(Autoresearch)改进前沿基线

现在,我们有了一个可靠的评判器,可以用它来改进最初由前沿模型驱动的产品基线——那个为快速接触用户而构建的基线系统。在这个阶段,我们在不触及权重的情况下,尽可能推动这个系统前进。每项改进都落在提示词、工具定义和封装(harness)代码中。

改进这个基线系统与构建评判器是不同的问题。它已经是一个生产应用,拥有动态拼装的提示词、自定义控制循环以及遍布于大型代码库中的定制化编排。没有单个提示词能决定其行为,因此提示词调优仅能触及系统的一小部分。优化目标是整个封装系统:它的提示词、工具定义和编排代码。

因此,我们将其视为一个自动研究(autoresearch)问题:一个代理对提示词、工具定义或封装提出修改;根据评判器进行评估;如果分数提高则保留修改,否则丢弃。

我们用一份可读的 markdown 文件配置整个过程:数据来源、代理可以编辑的目录、将评判器作为指标、要使用的优化器,以及"提出-评估-保留或丢弃"的循环。

从离散工件到连续参数更新

当封装系统中的改进达到平台期后,我们开始研究参数空间的优化。通过挖掘匿名化的生产流量来寻找难负样本(hard negatives):那些评判器正确给出低分,且暴露模型最薄弱环节的对话。

在数百万个多样化商家之间,真实流量会产生源源不断的困难案例:部分上下文、模糊请求、特定业务的流程、工具故障,以及表达同一意图的多种方式。在传统工作流中,每个失败都会变成错误报告或 Slack 讨论串。而在飞轮中,这些失败会自动进入一个自我修复管道,由一组前沿推理模型将其转化为训练信号,再通过强化学习折叠回模型的权重中。

一组前沿推理模型会批评每个失败案例。一个仲裁器将这些批评意见合并为单一的修复指令,并将其注入到用户轮次之前——这种技术有时被称为"提示"(hinting)。我们从该点重放对话,并由评判器再次评分。如果修复通过,重放内容就成为强化学习的轨迹,评判器的分数则作为奖励。如果仍然失败,我们会标记出来交给人工标注。Toloka 的专家标注者会纠正评判器无法修复的对话,并使用与校准评判器相同的评分细则对其进行评分。

训练分两个阶段进行。首先,我们通过监督式微调,将经过修复的轨迹提炼到较小的模型中。我们训练时使用完整的轨迹——包括产生这些轨迹的推理过程,而不仅仅是最终答案。这种思维链蒸馏使较小的模型能够继承仅从答案中无法学到的行为。

其次,我们应用 GRPO,将校准后的评判器作为奖励信号。对于每个提示词,模型会采样一组响应,评判器对其进行评分,GRPO 会强化表现最佳的响应。监督式微调教模型模仿成功的轨迹;GRPO 则直接针对我们对质量的定义进行优化。

自我修复管道每天运行,不断向训练语料库添加新的轨迹。以同样的频率,我们对累积数据执行全参数微调,然后重复 GRPO。同时训练新旧轨迹可以限制跨周期的漂移和灾难性遗忘。随着飞轮的转动,质量不断提升,最终超越由前沿模型驱动的基线。

压缩提示词以加速服务

更好的模型仍需运行,而代理的系统提示词又长又固定。注意力机制的计算量随序列长度增长,因此每个生成的 token 都必须关注整个前缀。长提示词是对延迟和服务成本的固定税,在每次请求时都要支付。

Gist(要点)压缩可以消除大部分这种开销。我们以两种方式运行同一个模型:一个是带有完整系统提示词的教师模型,另一个是使用一组短的学习型 gist token 代替完整提示词的学生模型。我们在冻结模型权重的情况下,训练 gist token 嵌入以匹配教师模型的输出分布。结果是,只需几个 token 就能以极短的长度再现完整提示词的行为,并且评判器上未测得质量损失。

实战案例:GraphQL Agent 的飞轮效应

最能清晰看到整个闭环运作的例子是我们的 GraphQL Agent,它在生产环境中每分钟最多可处理 2,000 个请求。它通过编写并针对 Shopify Admin GraphQL API 运行查询来回答商家关于其店铺的问题:例如,商家可能会问哪些产品即将缺货,代理会计算出正确的查询,在店铺上运行它,并将结果转化为通俗易懂的回答。

以下是它的具体运作方式:

它让模型变得更好。 自我修复管道将评分低的生产对话转化为成功的轨迹,为模型提供源源不断的来自真实商家需求的教训。SFT 与 RL 相结合,使得专用模型能够超越前沿模型的性能。

它大幅降低了模型的服务成本。 基于平均 token 成本估算,在前沿模型上服务这些流量每年可能轻易花费约 2700 万美元。而微调后的模型成本可能只有零头,接近 100 万美元:服务成本降低了 96%。这就是一个在 Shopify 规模下难以运行的功能,与一个可以为每个商家轻松开启的功能之间的区别。

它让模型更快,而且差距在负载下还会扩大。 Gisting 压缩将代理冗长、静态的系统提示词从大约 6,000 个 token 缩减到约 1,500 个学习到的 gist token。在每分钟 350 个请求的负载测试中,首 Token 时间(time-to-first-token)下降了约 19%,端到端延迟下降了约 38%。

它释放了硬件资源。 同样的压缩提高了吞吐量:在相同 GPU 上,每秒请求数增加约 16%,每秒输出 token 数增加约 12%。这意味着,对于相同的流量,大约可以节省 14% 的 GPU。

超越封装:产生复利的持续学习

前沿模型帮助你上线,初期的改进存在于它们周围的离散工件中:提示词、上下文、工具定义和控制流。这些更改加强了封装系统,但模型本身保持不变。

持续学习更进一步,将这些经验转化为模型连续参数空间中的更新。每个周期都始于一个更有能力的模型,而不仅仅是更复杂的封装。这就是较小的模型如何变得比前沿基线更快、更便宜且在你的任务上表现更好的原因。持久的优势在于这个持续将生产经验转化为更好权重的闭环。

播客全文

Shopify 工程团队在本文中详细介绍了其持续学习闭环系统 Sidekick,该系统将生产环境中的失败案例转化为模型权重的训练信号,从而在超越前沿模型质量的同时将服务成本降低 96%。核心思路是放弃仅依赖提示词工程的离散工件优化,转向建立完整的飞轮闭环:定义质量评分细则作为奖励信号、校准评判器、通过自动研究改进前沿基线、再将生产失败压缩为参数更新,最后用 Gist 压缩技术降低推理成本。

文章以 GraphQL Agent 为生产实例展示闭环成效:该系统每分钟处理最多 2,000 个请求,通过自我修复管道将低分对话转化为训练轨迹,结合监督式微调与 GRPO 强化学习,使专用小模型在质量上超越前沿模型。成本方面,服务同等流量从前沿模型每年约 2700 万美元降至约 100 万美元;Gisting 压缩将系统提示词从约 6,000 token 缩减至 1,500 个学习 token,负载测试中首 Token 时间下降约 19%,端到端延迟下降约 38%,吞吐量提升约 16%,节省约 14% 的 GPU 资源。

对开发者与商家的核心启示是:前沿模型适合快速上线原型,但规模化后经济账与性能账会发生根本变化。持续学习闭环的优势在于每个训练周期都从一个更有能力的模型开始,而非仅仅叠加更复杂的封装层,这构成了持久的竞争壁垒。文中强调,质量定义与评判器校准是闭环成败的关键,标注者间一致性(Cohen's kappa 约 0.2 以上)决定了整个优化的可信度上限。

参考链接


迅步科技专注Shopify独立站,Shopify应用及无头网站开发,为您的品牌提供快速、灵活、个性化的电商体验,提升用户转化率与运营效率。欢迎咨询合作。

0:00
0:00
0:00