← 文章 / AI技术
NVIDIA 开发者博客 5小时前 · 2026-09-24 08:10:16 · 4 阅读

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

AI 编码智能体生成的补丁可能通过了测试,却在服务器加载真实模型并处理请求时失败。因此,评估推理服务软件变更时,必须检查完整的服务路径,包括系统能否通过公开接口返回正确结果。

SWE-Serve 在 SGLang 团队的协助下开发,用于评估这一差距。它基于开源大语言模型推理系统 SGLang 的合并变更,衍生出 53 个任务。在 19 个包含实际服务检查的任务中,若排除这些检查,相同补丁的通过率高达 69.4%;但使用完整验证器时,通过率仅为 45.9%。约三分之一的补丁虽然通过了其他检查,却在实际服务测试中失败。

快捷链接: 阅读论文 | 查看排行榜 | 在 GitHub 上运行 SWE-Serve

SWE-Serve 测试内容

现有的仓库级基准测试针对通用软件工程任务评估编码智能体,而推理基准通常侧重于内核生成或性能优化。SWE-Serve 则针对推理服务栈中的仓库级变更进行测试,涵盖模型启用、解码、缓存、调度、服务 API 及运行时性能。

为了评估这项更广泛的工程工作,SWE-Serve 将 83 个合并的 SGLang 拉取请求转化为 53 个可执行任务,分为六大类推理工程领域。

工程类别任务数量
推测解码与高级解码14
模型与后端启用12
内核、量化与性能8
服务 API 与运行时正确性8
缓存与运行时状态7
分布式执行与调度4
表 1. SWE-Serve 的 53 个任务在六大推理工程类别中的分布

其中 12 个任务在 CPU 上运行,41 个使用单张 NVIDIA H100 GPU。该版本尚未评估其他推理引擎、多 GPU 执行或多节点服务场景。

其中 37 个任务源自同一个上游 Pull Request,另外 16 个则整合了两至六个相关变更。整个基准测试共引用了 83 个已合并的 SGLang Pull Request。SGLang 团队作为 SWE-Serve 的启动合作伙伴,不仅协助识别高难度任务、推荐极具挑战性的 Pull Request,还帮助塑造了我们的正确性验证方案。

每个任务为 Agent 提供一条指令和一个目标变更前的容器化 SGLang 代码库。只要 Agent 的补丁在指定硬件上满足任务的隐藏验证器,即视为通过。验证过程绝不与参考实现进行对比。

这些变更体量相当可观。中位参考解决方案涉及七个文件、共 553 行代码的修改。典型的验证器包含 7 项针对新行为的测试和 10 项回归测试。其中 19 个任务需要启动真实服务器,另外 3 个任务则强制在 H100 上执行经过校准的性能门槛测试。

单个任务示例

其中一个任务要求 Agent 为 Qwen3.5 的稠密(dense)和混合专家(MoE)模型添加推理服务支持。Agent 需从一个不支持 Qwen3.5 的版本出发,确保 0.8B 稠密模型和 35B-A3B MoE 模型均能通过正常的 SGLang 接口在单张 H100 上完成加载与推理。

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

实时推理测试能捕获什么问题

某些故障只有启动真实服务器后才暴露出来。SGLang 团队提出了端到端验证的思路,并推荐了特定的模型推理测试用例。SWE-Serve 包含 19 个需要加载指定模型并通过实时推理接口测试 Agent 补丁的任务。

在这些任务中,当使用完整的验证器时,同一组 627 个补丁的通过率为 45.9%;若排除实时推理测试,该比例升至 69.4%。换言之,有 147 个补丁在移除实时推理测试后由失败转为通过。

这 19 个任务共包含 276 项实时推理测试。其中 242 项源自 SGLang 或由其改编,剩余 34 项则覆盖了对应已合并变更引入的行为,用于填补缺乏合适上游测试用例的空白。

Gemma 4 MoE 任务让这个结果变得具体:33 个补丁中有 16 个通过了其他所有检查,却在至少一项线上服务测试中失败。这些测试覆盖模型加载、expert 路由、文本和图像服务,以及带正确顺序和 log 概率的批量生成。

Two bar charts compare pass rates: 45.9% with all tests versus 69.4% with model-serving E2E tests excluded; 47.7% on multi-runtime-domain tasks versus 69.0% on single-runtime-domain tasks.
图 1. 包含与不包含线上服务测试的通过率(A),以及按 runtime 领域跨度划分的通过率(B)

SWE-Serve 的“通过”含义很窄:补丁只需满足基准验证器即可。SWE-Serve 的测试并不等同于 SGLang 上游的审查流程,无法证明 agent 补丁或基准参考方案可以部署、达到合并标准,或得到 SGLang 维护者的认可。

Agent 表现较弱的地方

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

在 11 个模型各自的最佳设置下,局限于单一 runtime 领域的 26 个任务通过率为 69.0%,而跨越多个 runtime 领域的 27 个任务通过率仅 47.7%,相差 21.3 个百分点。每个模型设置都呈现同样的差异方向。

模型之间性能差异悬殊

各模型的表现差异很大。在各自的最佳测试配置下,平均 pass@1 从 34.6% 到 75.5% 不等。没有任何模型在所有任务类别中都排名第一,而总分接近的配置,其成本和运行时长可能相差极大。

我们使用 mini-swe-agent(一个仅依赖 Bash 的极简软件工程 agent)在闭卷条件下评估了 11 个模型和 31 种模型-算力配置。其中两个 Claude 模型和三个 GPT-5.6 模型在五个算力档位下测试,其余六个模型各跑一种设置。

每个配置均完整运行了 53 个任务的基准测试三次。每个智能体会话设定了 210 分钟和 350 步的上限。仅当智能体生成的补丁在任务声明的硬件上通过完整验证器时,该任务才被视为已解决。下表展示了各模型得分最高的算力投入设置。
模型推理设置pass@1
(均值 ± 标准差,3 次运行)
单任务平均成本平均实际耗时
Claude Opus 5max75% ± 3%$17.4057.5 分钟
GPT-5.6 Solmax75% ± 6%$12.2629.5 分钟
Claude Sonnet 5xhigh64% ± 3%$6.6140.6 分钟
Kimi K3max64% ± 5%$7.2499.9 分钟
GPT-5.6 Lunamax64% ± 4%$0.9528.9 分钟
GPT-5.6 Terramax64% ± 4%$5.0625.5 分钟
DeepSeek V4 Flash (0731)max55% ± 4%$0.6936.4 分钟
GLM-5.2max48% ± 2%$2.1034.0 分钟
Gemini 3.6 Flashhigh48% ± 6%$4.8437.3 分钟
Laguna S 2.1max46% ± 5%$0.3356.9 分钟
Inkling Sxhigh35% ± 3%$0.4417.6 分钟
表 2。各模型在全部 53 个 SWE-Serve 任务三次运行中得分最高的推理设置。Pass@1 显示均值 ± 标准差;成本和实际耗时为单任务均值。API 模型成本基于记录的 token 用量和固定价格;可下载模型成本基于托管费率估算
原生测试框架并未提升前两名模型的成绩: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 推理工程任务评估你的编码智能体。

原始来源: NVIDIA 开发者博客

评论 (0)