Skip to content
View original post on X: meng shao
Published
55/100

Stanford CS 329Z lecture 12 says filtering agent training data matters more than volume

AIMeng Shao reposts Stanford CS 329Z lecture 12 on data selection for agent training, arguing that filtering matters most when data is scarce. The lecture cites SWE-bench Verified, where 68.3% of tasks were filtered out, and LIMI, where 78 curated trajectories scored 73.5% on AgencyBench versus 47.8% for a model trained on 10,000.
meng shaoVerified on X
@shao__meng
View on X

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 任务、错误分析。
View quoted post on X
Source details

meng shao · x.comPublished · added here

Original title: CS 329Z: Engineering AI Agents