返回 文章 学习 CMS 文章

SWE-Serve:揭示本地测试与实时服务之间差距的推理服务基准

SWE-Serve 用 53 个真实推理服务任务证明:能通过本地测试的补丁,未必能通过实时服务验证。

SWE-ServeSGLang推理服务编码代理
成长分 / 100 73 综合收获、行动、留存与影响

SWE-Serve:揭示本地测试与实时服务之间差距的推理服务基准
为什么值得读首次系统量化了 AI 编码代理在推理服务软件中‘本地测试通过但实时服务失败’的差距,约每三个通过其他检查的补丁就有一个在实时服务测试中失败。

提供了 53 个源自 SGLang 已合并 PR 的可执行任务,覆盖推测性解码、模型启用、内核量化、服务 API、缓存和分布式调度六大推理工程类别。

关键洞察
  1. 在 19 个带实时服务检查的任务中,相同 627 个补丁在完整验证器下通过率为 45.9%,排除实时服务测试后升至 69.4%,147 个补丁从失败变为通过。
  2. 跨多个运行时域的任务通过率(47.7%)比局限于单一运行时域的任务(69.0%)低 21.3 个百分点,每个模型设置都显示相同方向差异。
  3. 模型性能差异显著:最佳配置下平均 pass@1 范围为 34.6% 至 75.5%,没有模型在全部六个工程类别中领先。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:9507

AI 编码智能体提交的补丁可能通过了测试,却在服务器加载真实模型并处理请求时失败。因此,评估对推理服务软件的修改,需要检查完整的服务路径,包括系统能否通过其公共接口返回正确结果。

SWE-Serve 在 SGLang 团队的参与下开发,用 53 个任务来评估这一差距,这些任务源自对 SGLang(一个用于部署大语言模型服务的开源系统)已合并的修改。在 19 个带有实时服务检查的任务中,同样的补丁在排除这些检查时通过率为 69.4%,而使用完整验证器时仅为 45.9%。通过其他检查的补丁中,约有三分之一未能通过实时服务测试。

快速链接:阅读论文 | 浏览排行榜 | 在 GitHub 上运行 SWE-Serve

SWE-Serve 测试什么

现有的仓库级基准测试评估编码智能体在通用软件工程任务上的表现,而推理基准测试往往集中于内核生成或性能优化。SWE-Serve 则测试贯穿整个推理服务栈的仓库级修改,包括模型适配、解码、缓存、调度、服务 API 和运行时性能。

为了评估这种更广泛的工程工作,SWE-Serve 将 83 个已合并的 SGLang pull request 转化为 53 个可执行任务,涵盖六大推理工程类别。

表 1. SWE-Serve 的 53 个任务在六大推理工程类别中的分布

工程类别 任务数
推测解码与高级解码 14
模型与后端适配 12
内核、量化与性能 8
服务 API 与运行时正确性 8
缓存与运行时状态 7
分布式执行与调度 4

12 个任务在 CPU 上运行,41 个使用单块 NVIDIA H100。首个版本不评估其他推理引擎、多 GPU 执行或多节点服务。

37 个任务来自单个上游 pull request,其余 16 个合并了 2 至 6 个相关修改。基准测试总共取材于 83 个已合并的 SGLang pull request。SGLang 团队是 SWE-Serve 的发布合作伙伴,他们提供了识别有挑战性任务的思路,推荐了要求特别高的 pull request,并帮助我们确定了验证正确性的方法。

每个任务都会给智能体一条指令,以及目标修改之前的一份容器化 SGLang 代码检出。若智能体的补丁在声明的硬件上满足任务的隐藏验证器,则视为通过。它从不与参考实现进行比较。

这些都是规模可观的修改。参考解决方案的中位数是修改 7 个文件共 553 行。典型的验证器有 7 个针对新行为的测试和 10 个回归测试。19 个任务会启动真实服务器,3 个任务在 H100 上强制执行经过校准的性能门槛。

一个任务是什么样子

其中一个任务要求智能体为稠密和混合专家(MoE)版本的 Qwen3.5 模型添加服务支持。从一个尚不支持 Qwen3.5 的版本出发,智能体必须让 0.8B 稠密模型和 35B-A3B MoE 模型都能在单块 H100 上通过常规 SGLang 接口加载并提供服务。

其验证器会检查模型注册、配置与权重加载、图像和视频输入、兼容 OpenAI 的请求、原生批量生成、对数概率,以及通过 MoE 模型的路由专家执行。

实时服务测试能发现什么

有些失败只有在真实服务器启动后才会出现。SGLang 团队提供了端到端验证的思路,包括针对特定模型服务测试的建议。SWE-Serve 包含 19 个任务,它们会加载所需模型,并通过实时服务接口测试智能体的补丁。

在这些任务中,同样的 627 个补丁在完整验证器下的通过率为 45.9%。排除实时服务测试后,该比率升至 69.4%。换句话说,排除实时服务测试后,有 147 个补丁从失败变成了通过。

这 19 个任务包含 276 个实时服务测试。其中 242 个取自或改编自 SGLang。其余 34 个覆盖相应已合并修改所引入的行为,因为当时没有合适的上游测试可用。

Gemma 4 MoE 任务让这一结果更为具体。33 个补丁中有 16 个通过了其他所有检查,却至少未通过一个实时服务测试。这些测试涵盖模型加载、专家路由、文本和图像服务,以及顺序与对数概率均正确的批量生成。

两幅柱状图比较通过率:全部测试下为 45.9%,排除模型服务端到端测试后为 69.4%;多运行时域任务为 47.7%,单运行时域任务为 69.0%。
图 1. 含与不含实时服务测试的通过率(A),以及按运行时域广度划分的通过率(B)

SWE-Serve 的“通过”含义很窄:补丁满足基准测试的验证器。SWE-Serve 的测试并不等同于 SGLang 的上游评审流程。它们并不能证明某个智能体补丁或基准测试的参考解决方案可以部署、可以合并,或得到 SGLang 维护者的认可。

智能体得分较低的地方

我们把从请求到输出的路径划分为四个运行时域:请求处理与 I/O、调度与请求生命周期、模型执行,以及 KV 缓存与运行时资源管理。

取 11 个模型各自的最佳设置,仅限于一个运行时域的 26 个任务通过率为 69.0%。跨越多个运行时域的 27 个任务通过率为 47.7%,相差 21.3 个百分点。每个模型设置都呈现相同方向的差异。

各模型之间表现差异很大

模型表现差异显著。取每个模型测试过的最佳配置,平均 pass@1 在 34.6% 到 75.5% 之间。没有哪个模型在所有任务类别中得分最高,总体得分相近的配置,成本和运行时间也可能相差很大。

我们使用 mini-swe-agent(一个只使用 Bash 的极简软件工程智能体)在闭卷条件下评估了 11 个模型、31 种模型-强度配置。两个 Claude 模型和三个 GPT-5.6 模型在五种强度级别下测试,其余六个模型各使用一种设置运行。

每种配置都完整运行 53 个任务的基准测试三次。每个智能体会话上限为 210 分钟和 350 步。只有当智能体的补丁在任务声明的硬件上通过完整验证器时,任务才算解决。表格列出每个模型得分最高的强度设置。

表 2. 每个模型在 SWE-Serve 全部 53 个任务、三次运行中的最佳推理设置。Pass@1 显示均值 ± 标准差;成本和耗时为每任务均值。API 模型的成本使用记录的词元用量和固定价格;可下载模型的成本使用托管价格估算。

模型 推理设置 pass@1
(均值 ± SD,3 次运行)
每任务平均成本 平均耗时
Claude Opus 5 max 75% ± 3% $17.40 57.5 分钟
GPT-5.6 Sol max 75% ± 6% $12.26 29.5 分钟
Claude Sonnet 5 xhigh 64% ± 3% $6.61 40.6 分钟
Kimi K3 max 64% ± 5% $7.24 99.9 分钟
GPT-5.6 Luna max 64% ± 4% $0.95 28.9 分钟
GPT-5.6 Terra max 64% ± 4% $5.06 25.5 分钟
DeepSeek V4 Flash (0731) max 55% ± 4% $0.69 36.4 分钟
GLM-5.2 max 48% ± 2% $2.10 34.0 分钟
Gemini 3.6 Flash high 48% ± 6% $4.84 37.3 分钟
Laguna S 2.1 max 46% ± 5% $0.33 56.9 分钟
Inkling S xhigh 35% ± 3% $0.44 17.6 分钟

原生运行框架没有改善两位领先者:GPT-5.6 Sol 在 Codex 中得分 73.6%,Claude Opus 5 在 Claude Code 中得分 69.8%,而使用 mini-swe-agent 时两者均为 75.5%。

成本与表现并不呈清晰的对应关系。在并列 64% 的四个模型中,每任务平均成本从 0.95 美元到 7.24 美元不等,平均耗时从 25.5 分钟到 99.9 分钟不等。

没有哪个模型在六大工程类别中全面领先,总体得分相同的模型也可能各有所长。最高分表明,许多 SWE-Serve 任务是当前智能体力所能及的;而分数的离散程度表明,表现远非均匀。

我们如何验证基准测试

我们筛选了 786 个潜在任务来源,构建了 156 个可执行候选任务,最终收录 53 个。

每个收录的任务都在其声明的硬件上经过测试。未修改的仓库必须在针对新行为的测试上失败,同时继续通过回归测试。参考补丁必须通过完整验证器。我们还用智能体生成的补丁对验证器进行了挑战,一旦发现具体问题,就会对任务进行修复、收窄或排除。

报告的评估均为闭卷。我们屏蔽了公共网络和上游源码仓库,仅允许访问 Hugging Face 以获取模型权重,因为一次开放网络的试点显示模型会检索针对该任务的上游代码。我们审计了排行榜背后的全部 1,749 次试验;共有 196 次被禁止的检索尝试被拦截,无一成功。论文描述了完整的资格认定和评估完整性流程。

运行 SWE-Serve

SWE-Serve 包含任务环境、验证器和基线配置。它使“通过本地检查”与“在完整服务路径上正常工作”之间的差距变得可以衡量。

浏览 SWE-Serve 排行榜,然后在 GitHub 上运行 SWE-Serve,评估你的编码智能体在 SGLang 推理工程任务上的表现。