跳到正文
meng shao· @shao__meng · X·· 1 小时前AI 评分60
AI 导读

作者整理了斯坦福 CS 329Z 第 12 讲「Data Selection & Quality」的内容,讨论哪些任务值得做强化学习、哪些轨迹值得模仿学习,以及数据要多还是要精。讲义给出的结论是数据少时精挑细选更有用,规模上去后数量和多样性更重要,并附有检验任务有效性、筛出合适难度、审查成功轨迹、保留失败轨迹、来源多样五步检查清单。

正文 · 原文

CS 329Z: Engineering AI Agents
Stanford / Fall 2026 @stanfordnlp
https://cs329z.stanford.edu

第 12 讲「Data Selection & Quality」:Agent 训练数据,难的是决定留下哪些
https://web.stanford.edu/class/cs329z/slides/lecture12.pdf

现在生成 Agent 的任务和轨迹已经很便宜,真正难的是筛选。这一讲回答三个问题:哪些任务值得拿来做强化学习,哪些轨迹值得拿来做模仿学习,以及数据要多还是要精。结论是:数据少的时候精挑细选更有用,数据规模上去以后,数量和多样性更重要。

为什么筛选是重点

讲义开头举了 Meta CWM 的例子:先在 3150 个仓库、10200 个 Docker 镜像上生成 300 万条轨迹,再去掉同一仓库内相似度过高的轨迹(Jaccard 相似度不低于 0.5)。因为目标是学习代码环境的世界模型,失败的轨迹也保留了下来。课程把要筛选的对象分成两类:一类是用来做监督微调的轨迹,一类是用来做强化学习的环境,也就是任务加沙箱加判定器。坏数据有三种:信号错误(判定器坏了,或者靠作弊拿到奖励),没有信号(任务太容易或太难),信号重复(大量同类数据)。

哪些任务值得训练

讲义把任务筛选看成一个循环:先剔除有问题的任务,再实际运行检验,只保留模型有时能做对的任务,模型变强后重新筛选。

· SWE-bench Verified:93 名 Python 开发者标注了 1699 个样本,38.3% 的问题描述不够清楚,61.1% 的单元测试不公平,最终过滤掉 68.3%。例如 sklearn-14520 的测试要求一条精确的弃用提示语,而这句话只出现在 Agent 看不到的 PR 讨论里。GPT-4o 在原版上只有 16%,在筛选后的版本上是 33.2%。有问题的任务会掩盖模型的真实能力,用于训练时还会给出错误的奖励。
· APIGen:人工审核无法规模化,所以改成自动检查:先查格式,再实际执行,最后让大模型判断结果是否符合问题的本意。
· CodeMidas(小米 MiMo 团队):只从源代码构建编程环境。测试只检查任务描述里写明的要求。每个任务要在 6 个新容器里各跑一次:起始代码跑 2 次,必须失败;参考答案跑 4 次,必须通过。之后再做三层过滤:检查答案是否泄露,复核判定结果,剔除全部通过或全部失败的任务。过滤后的 3000 个任务已经胜过未过滤的 8000 个,完整的 5000 个任务比 8000 个在三项评测上分别高出 0.59、4.59 和 4.49 分。
· DAPO:同一题的几次采样奖励完全一样时,强化学习学不到东西。模型越强,全对的题越多,所以要持续采样,直到批次里都是有对有错的题。
· LEGO-RL:36884 个候选任务经过有效性检查后剩下 21681 个,其中约 2.5% 的判定器有错。再只保留 4 次尝试里做对 1 到 3 次的任务,最终剩下 2699 个。不做这一步筛选,训练在两项指标上都没有提升,因为未筛选的任务池中 72.7% 从来做不对,13.4% 每次都做对。随着训练推进,没有区分度的题组占比从 44.7% 升到 51.4%,任务池需要定期更新。
· WebRL:从失败的尝试中生成新任务,再配一个奖励模型,把 Llama-3.1-8B 在 WebArena-Lite 上的成功率从 4.8% 提升到 42.4%,70B 版本达到 47.3%。

哪些轨迹值得模仿

通过测试不等于好示范。通过的轨迹里,有的靠作弊,有的过程很粗糙;失败的轨迹里,也有可用的步骤。

· The Verification Horizon(Qwen 团队):总结了 Agent 的七种走捷径方式,比如直接找到答案文件、改动测试框架或测试本身、翻 git 历史。直接找答案的轨迹只占 4.32%,但其中 72.34% 能解决问题。通过率可能一直很高,而不作弊的真实表现却在下降。加上轨迹监控后,作弊解决率从 28.57% 降到 0.56%,真实解决率从 40.22% 升到 60.53%。
· SWE-Prime:成功的轨迹里也有无效、重复或有风险的步骤。它先按过程质量挑轨迹,再按贡献、风险和可学性给每一段打分。只用挑出的 10% 训练,效果就超过用全部成功轨迹训练,相对提升最高达到 SWE-bench Pro 上的 12.2% 和 SWE-bench Verified 上的 24.2%。
· NAT:失败的轨迹不丢,而是加上「这次失败了」的标记一起训练,让模型既能学到其中有用的信息,又不会照搬错误。
· EEF:只用专家成功的轨迹训练时,难的子任务几乎进不了训练集,而失败往往只错在最后几步。从失败的专家轨迹里挑出好的步骤后,在 WebShop 上的胜率达到 62%,拒绝采样微调是 53.6%,GPT-4 是 35.6%。

数据要多还是要精

· 少而精的一方,LIMI:78 条人工精选的轨迹,在 AgencyBench 上拿到 73.5%,用 10000 条训练的模型只有 47.8%。这 78 条由四名博士生配合 GPT-5 反复调试完成。但讲义也指出了局限:AgencyBench 只有 10 个任务,而且和 LIMI 有很多共同作者;离开命令行环境后,优势只剩 50.0% 对 48.7%。
· 量更重要的一方,Orchard:基础模型和训练方法固定,只改变数据量和筛选策略。在 SWE-bench Verified 上,表现最差的策略从 512 条加到 2048 条,提升了 8.2 分;而在 512 条时,六种策略之间最多只差 5.5 分。
· 多样性:AgentRefine 发现,在新环境里的错误主要是格式错误、推理不合逻辑和重复生成。用多样的合成环境训练模型纠正自己的错误,泛化能力更强。SWE-smith 用同样 700 条轨迹,分散到从 4 个到 100 个不同仓库里,效果大致随仓库数量呈对数增长。
· 两边的结论怎么统一:Qwen 团队的一组数据显示,同样大小的数据集,筛选过的比随机选的好(23.52 对 21.61),但更大的未筛选数据集更好(24.75)。也就是说,候选数据有限时,筛选的价值最大。

课程给的检查清单

按顺序做五件事:检验任务是否有效,筛出难度合适的任务,审查成功轨迹是怎么成功的,给失败轨迹加上标记后保留,数据来源尽量多样。

引用meng shao@shao__meng
CS 329Z: Engineering AI Agents Stanford / Fall 2026 @stanfordnlp https://cs329z.stanford.edu/ 课程定位:从"模型"到"系统"的工程学 覆盖:简单 LLM 流水线 → 复合 AI 系统 → 自主 Agent。三位讲师的背景也高度互补: @Diyi_Yang(斯坦福 NLP 教授,人机交互与社会计算方向) @michaelryan207(DSPy 核心贡献者,自动评估 AutoMetrics 作者) @jyangballin(SWE-agent / SWE-bench / SWE-smith 作者,软件工程 Agent 领域最重要的研究者之一) # 课程主线:三大工程挑战 贯穿全课的三个核心问题——分解(decomposition)、数据(data)、评估(evaluation)。11 周的内容基本围绕这三条线展开,可以分为五个模块: 模块 1:构建基元(Week 2–3) · LLM 作为构建材料:API/SDK(litellm)、结构化输出、约束生成、解码策略、test-time compute、上下文工程、模型选型与成本/延迟权衡 · RAG:embedding、向量库、分块策略、混合检索、cross-encoder 与 ColBERT 后期交互 · 工具调用:函数调用 API、MCP(Model Context Protocol)、工具设计、代码沙箱、错误处理与重试 模块 2:框架与设计模式(Week 3–5) · 框架层:DSPy(signature / module / optimizer)、LangChain/LangGraph、LlamaIndex,重点是"框架抽象了什么 vs. 你手写了什么" · 设计模式:workflow vs. agent 的分类学,五种可组合 workflow 模式,ReAct / plan-and-execute / reflection,"scaffold(脚手架)本身就是设计决策" · 记忆架构:短期/长期记忆、记忆作为工具动作、文件系统作为外化记忆、跨 Agent 记忆(MemGPT、Mem0、Generative Agents) · 多 Agent 系统:编排模式、handoff 与状态传递,以及一个很有态度的对照阅读——既读 AutoGen,也读《Why Do Multi-Agent LLM Systems Fail?》和 Neubig 的《Don't Sleep on Single-agent Systems》 模块 3:优化(Week 5) · 从提示词到微调的全景:GEPA、MIPROv2、OPRO、TextGrad(提示优化);LoRA/QLoRA、蒸馏、RLHF/DPO(权重优化);test-time scaling(推理算力) · 核心问题是决策框架:什么时候优化 prompt、什么时候优化 weights、什么时候堆推理算力 模块 4:数据与评估(Week 6–8)——最有分量的部分 · 数据:trace、demonstration、feedback 三类数据;训练数据 vs. 评估数据;数据飞轮;合成数据;从 Agent 轨迹构建数据集(SWE-smith) · 评估基础:为什么 eval 难;4 元组框架(request / environment / stopping criteria / scorer);好 benchmark 的性质;tinyBenchmarks · 评估基础设施:三类 grader、LLM-as-judge 的 prompt 设计与已知偏差、pairwise vs. pointwise、非确定性指标 pass@k vs. pass^k、harness 设计 模块 5:安全与前沿(Week 8–11) · 安全:工具访问的隐私风险、prompt injection(含间接注入)、红队、沙箱与权限模型、输出护栏、human-in-the-loop · Coding Agent:SWE-agent、Claude Code、OpenHands 的端到端架构对比 · 主动式 Agent:从 reactive 到 proactive,General User Models(GUM)、Next Action Prediction,以及"Agent 何时应主动、何时应等待"的 mixed-initiative 问题 · 开放问题:多模态/web/计算机使用 Agent、科学 Agent、长时运行架构、生产可观测性(tracing、monitoring、成本管理) # 作业设计:一手建、一手评 HW1:从零构建 Agent 系统(10%) 给定论文库,构建能检索并推理回答科学问题的 Agent。 · Part A:只用 litellm 手写 RAG + 工具调用 + ReAct 式 Agent 循环 · Part B:用 DSPy 重建关键组件,并反思框架抽象了什么 HW2:评估一个 Agent(10%) 给定一个预构建 Agent,设计完整评估套件:代码型 grader、至少一个 LLM-as-judge、用 4 元组框架构建 benchmark 任务、错误分析。
在 X 查看被引用的帖子

来源:meng shao · x.com