首页/新闻资讯/正文详情

【Open AI】Large Language Monkeys 实战:用重复采样扩展 LLM 推理计算,SWE-bench 配置与验证

发布时间:2026/9/26 10:51:07 来源:云帆数科 栏目:资讯中心
【Open AI】Large Language Monkeys 实战:用重复采样扩展 LLM 推理计算,SWE-bench 配置与验证
1. 从 SWE-bench 单次通过率说起为什么重复采样值得认真对待如果你最近在跑 SWE-bench Lite大概率会遇到一个让人不太舒服的数字单次尝试的通过率往往卡在 15% 到 20% 之间。哪怕换成更强的模型提升也有限。但 Large Language Monkeys 这篇工作给了一个很反直觉的结论——同一个模型只要把采样次数从 1 提到 250通过率能从 15.9% 拉到 56%。这不是换模型换来的而是把推理计算当成一个可以扩展的轴。重复采样Repeated Sampling的核心逻辑其实很朴素让模型对同一个问题独立生成多个候选解再用自动验证器单元测试、证明检查器挑出正确的那个。它适合谁适合手里有中等规模模型、但预算不足以一直调用顶级闭源模型的团队也适合做 Agent 编码、自动化修 bug 的开发者。你不需要重新训练只需要把推理侧的采样参数和验证流程搭好。这篇就聚焦 SWE-bench 场景给你一套可复制的采样参数配置骨架以及通过 TaoToken 统一 Key/API 通道接入的方式最后附上验证动作跑通一次采样任务并对比单次与多次采样的通过率。2. TaoToken 前置统一 Key 与 API 通道怎么接在动手写采样脚本之前先把通道打通。TaoToken 的作用是把不同模型的调用收敛到一个 API 入口这样你在做重复采样时切换模型、调整并发都不用改代码结构。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。API 基址是 https://taotoken.net/api 注意这个地址不带 UTM 参数直接用于代码里的 base_url。你需要先拿到 Key。进入控制台创建 API Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。创建后复制那串 sk- 开头的字符串后面配置里会用到。如果你只是想先验证模型能不能正常对话可以用模型对话页面快速试一下https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。但做 SWE-bench 重复采样我们主要走 API。接入文档在这里遇到参数问题可以对照https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。注意不要把 Key 硬编码进提交到 Git 的脚本里。用环境变量后面配置骨架会体现这一点。3. 可复制配置settings.json 与 config.toml 采样参数骨架重复采样的参数分两层一层是 API 通道配置一层是采样策略配置。我把它拆成两个文件方便你直接抄。3.1 settings.jsonAPI 通道与模型映射这个文件负责告诉脚本“去哪里调用、用哪个模型、并发多少”。{ api: { base_url: https://taotoken.net/api, api_key_env: TAOTOKEN_API_KEY, timeout_seconds: 120, max_retries: 3 }, models: { coder: deepseek-v2-coder-instruct, fallback: gpt-4o }, sampling: { temperature: 1.6, top_p: 0.95, max_tokens: 4096, n_samples: 250, concurrency: 8 }, swebench: { dataset: SWE-bench_Lite, agent_framework: moatless-tools, max_turns_per_attempt: 1, verify_with_tests: true } }这里几个参数值得说明。temperature 设成 1.6 是论文里在 SWE-bench Lite 上做温度扫描后选的值比常见的 0.7 高不少目的是增加样本多样性。n_samples 先设 250这是论文里覆盖率提升最明显的档位。concurrency 控制并发别一上来就拉满先 8 路跑通再往上加。3.2 config.toml采样任务与验证流程如果你更习惯 TOML可以用这个版本逻辑一样。[api] base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY timeout_seconds 120 max_retries 3 [models] coder deepseek-v2-coder-instruct fallback gpt-4o [sampling] temperature 1.6 top_p 0.95 max_tokens 4096 n_samples 250 concurrency 8 [swebench] dataset SWE-bench_Lite agent_framework moatless-tools max_turns_per_attempt 1 verify_with_tests true两个文件选一个用就行。核心是 base_url 指向 TaoToken 的 API 地址api_key 从环境变量读。3.3 环境变量与依赖安装在终端里设置 Key别写进文件export TAOTOKEN_API_KEYsk-你的key然后装依赖。SWE-bench 的评测通常需要 Docker 环境来跑单元测试Python 侧需要这些pip install openai datasets swebench moatless-tools如果你用的是 conda建议单独建一个环境避免和系统里的包冲突。4. 验证请求跑通一次采样任务并对比通过率配置好了接下来跑一个最小验证。目标不是一次跑完 250 个样本而是先确认通道通、采样逻辑对、验证器能工作。4.1 单次采样基线先写一个单次采样的脚本确认 API 能返回结果。import os from openai import OpenAI client OpenAI( base_urlhttps://taotoken.net/api, api_keyos.environ[TAOTOKEN_API_KEY] ) def single_sample(problem_statement): resp client.chat.completions.create( modeldeepseek-v2-coder-instruct, messages[ {role: system, content: You are a coding agent. Output only the patch.}, {role: user, content: problem_statement} ], temperature1.6, top_p0.95, max_tokens4096 ) return resp.choices[0].message.content if __name__ __main__: problem Fix the bug in astropy where ... patch single_sample(problem) print(patch[:500])跑通后你会看到模型返回的补丁片段。这一步只验证通道不验证正确性。4.2 多次采样与通过率对比接下来把采样次数提上去并对每个样本跑单元测试。下面是一个简化版的多采样循环import os from concurrent.futures import ThreadPoolExecutor from openai import OpenAI client OpenAI( base_urlhttps://taotoken.net/api, api_keyos.environ[TAOTOKEN_API_KEY] ) def sample_once(problem_statement, idx): resp client.chat.completions.create( modeldeepseek-v2-coder-instruct, messages[ {role: system, content: You are a coding agent. Output only the patch.}, {role: user, content: problem_statement} ], temperature1.6, top_p0.95, max_tokens4096 ) return idx, resp.choices[0].message.content def run_repeated_sampling(problem_statement, n_samples250, concurrency8): results [] with ThreadPoolExecutor(max_workersconcurrency) as executor: futures [ executor.submit(sample_once, problem_statement, i) for i in range(n_samples) ] for f in futures: results.append(f.result()) return results def verify_patch(patch, test_command): # 这里接入 SWE-bench 的 Docker 评测逻辑 # 返回 True / False pass if __name__ __main__: problem Fix the bug in astropy where ... samples run_repeated_sampling(problem, n_samples250, concurrency8) passed 0 for idx, patch in samples: if verify_patch(patch, pytest tests/test_xxx.py): passed 1 print(f通过样本数: {passed} / {len(samples)}) print(f覆盖率: {passed / len(samples):.2%})实际跑的时候verify_patch 要接 SWE-bench 官方的评测容器。论文里用的是 Moatless Tools 作为 Agent 框架每个样本是一次完整的多轮轨迹但为了控制成本他们把每个问题的尝试次数限制在 250 次且各次独立。4.3 对比结果怎么看跑完之后你会得到两个数字单次采样的通过率和 250 次采样的覆盖率。论文里的参考值是单次 15.9%、250 次 56%。你自己的数字会因为模型版本、温度、评测子集不同而有差异但趋势应该是一致的——覆盖率随样本数增加而上升且上升曲线在对数坐标下接近线性。如果你只想快速看趋势可以先跑 10 次、50 次、100 次三个档位画一条曲线。不用一上来就 250 次那样成本高、调试慢。5. 本篇常见错排查5.1 报错 401 Unauthorized最常见的原因是 Key 没设对。检查环境变量echo $TAOTOKEN_API_KEY如果输出为空说明 export 没生效或者你在新的终端窗口里没重新设置。另一个可能是 Key 复制时带了空格重新从控制台复制一次。5.2 报错 429 Too Many Requests并发设太高了。把 settings.json 里的 concurrency 从 8 降到 4 或 2再试。重复采样本身会产生大量请求如果同时跑多个问题总并发会叠加。建议先用单问题、低并发跑通再逐步加。5.3 采样结果高度重复如果 250 个样本里大部分补丁长得差不多说明 temperature 太低或者 top_p 太保守。SWE-bench 场景下论文用的是 temperature 1.6你可以从这个值开始调。但注意温度太高会导致语法错误率上升需要平衡。5.4 单元测试结果不稳定论文里专门提到SWE-bench Lite 中有 11.3% 的问题测试套件本身不稳定同一个补丁跑多次可能有时通过有时失败。如果你发现某个样本反复跑结果不一致先排除是不是测试套件的问题。可以对该样本跑 11 次测试用多数投票决定是否通过。5.5 覆盖率上不去先确认验证器是不是正确识别了通过的样本。如果验证器有假阴性覆盖率会被低估。可以手动检查几个被判定为失败的样本看看补丁是不是其实正确但测试没覆盖到。另外确认 n_samples 是不是真的跑满了有时候并发任务中途失败会被静默吞掉。6. 接入与长期编码按场景选对入口如果你只是想把 TaoToken 接进现有脚本做一次性验证用 API Keys 页面创建 Key 就够了https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。接入过程中遇到参数问题对照接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你要长期跑编码 Agent、做重复采样这类吞吐型任务建议了解一下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。它更适合这种“同一问题多次采样、追求整体吞吐”的工作负载而不是低延迟的聊天场景。最后如果你在配置采样参数时想快速对比不同模型的实际输出可以先用模型对话页面手动试几次https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。确认模型行为符合预期后再写进采样脚本里批量跑。

相关推荐

从多模态融合到具身智能:VLA与World Model的技术路线图
从多模态融合到具身智能:VLA与World Model的技术路线图

多模态和具身智能这两个词,过去两年在各种技术峰会和投资路演里被反复咀嚼,但真正动手做过完整链路的人都知道,从"模型能看懂图"到"模型能在物理世界里干活",中间隔着的不是一代模型,而是好几层工… · 2026/9/26 10:51:01

OpenClaw 必装10个Skills实战:用TaoToken统一Key打通ClawHub智能体工作流
OpenClaw 必装10个Skills实战:用TaoToken统一Key打通ClawHub智能体工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:50:54

周红伟:Qwen3.5、GLM-5、MiniMax M2.5和Kimi K2.5四大开源模型编程能力实测,TaoToken统一Key接入对比
周红伟:Qwen3.5、GLM-5、MiniMax M2.5和Kimi K2.5四大开源模型编程能力实测,TaoToken统一Key接入对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:50:54

Elasticsearch 构建实时语音助手:用 MCP 打通语义搜索链路
Elasticsearch 构建实时语音助手:用 MCP 打通语义搜索链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:17:45

老胡的周刊(第195期):TaoToken 统一 Key 接入 Cline 的 settings.json 配置骨架
老胡的周刊(第195期):TaoToken 统一 Key 接入 Cline 的 settings.json 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:17:38

Tripo×World Labs黑客松:AI生成3D模型与场景的实战全解析
Tripo×World Labs黑客松:AI生成3D模型与场景的实战全解析

Tripo 和 World Labs 一起办 3D 黑客松这个消息,我第一反应是:3D 生成赛道终于要动真格的了。过去两年,我们见过了太多“生成一张图”的AI比赛,也见过了不少“生成一个模型”的Demo展示,但让做 3D 模型的人和做 3D 世界… · 2026/9/26 13:17:38

文件式与交互式运行:从五个程序实例看后台密码处理
文件式与交互式运行:从五个程序实例看后台密码处理

文件式和交互式,这两个词听起来像是教材里才会出现的概念,但我发现很多写了两三年脚本的人,其实也没完全搞明白它们到底意味着什么。最近在群里又看到有人问“shell脚本放在后台执行,还要交互式输入密码怎么处理”,这个… · 2026/9/26 13:17:38

SpringBoot+Vue3前后端分离商城系统实战:从数据库设计到部署上线
SpringBoot+Vue3前后端分离商城系统实战:从数据库设计到部署上线

去年接了一个服装批发客户的单子,需求很直接:要做一套商城系统,前端能展示商品、加购物车、下单,后台要管商品、订单、库存和会员,还得留出以后接优惠券、拼团这些营销功能的余地。我最终选了SpringBoot Vue3这套组合… · 2026/9/26 13:17:38

OpenClaw-QQBot 测试记录:用 Docker 与 python3 插件接入 TaoToken 的配置骨架
OpenClaw-QQBot 测试记录:用 Docker 与 python3 插件接入 TaoToken 的配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:17:31

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码