Agent 训练数据怎么获取?
合成数据、人类反馈、环境交互三种策略详解
原题:请阐述大模型Agent训练所需数据的获取途径和方法,包括合成数据生成、人类反馈收集、环境交互等不同策略。
Agent · 小米真题
30 秒回答
- 区分冷启动数据与迭代优化数据的不同获取策略
- 掌握合成数据生成的具体方法(模型蒸馏、Self-Instruct、多Agent互评)
- 理解人类反馈的收集形式与质量控制
- 说明环境交互数据的采集与回放机制
回答与解析
答案要点
- 区分冷启动数据与迭代优化数据的不同获取策略
- 掌握合成数据生成的具体方法(模型蒸馏、Self-Instruct、多Agent互评)
- 理解人类反馈的收集形式与质量控制
- 说明环境交互数据的采集与回放机制
- 能结合具体场景权衡不同数据策略的优劣
Agent训练数据获取的三类核心途径
一、合成数据生成(解决规模化冷启动)
主流方法:
- 模型蒸馏:用GPT-4/Claude等强模型生成高质量轨迹,作为SFT监督信号
- Self-Instruct演进:种子指令→模型生成→过滤去重→迭代扩增,如ToolBench的API调用数据构建
- 多Agent互评:构建"执行Agent+评判Agent"的对抗体系,自动生成带奖励标签的数据
关键技巧: 引入多样性控制(温度采样+输出约束)和事实性校验(工具执行验证),避免"幻觉传染"。
二、人类反馈收集(对齐真实需求)
| 反馈类型 | 应用场景 | 成本/质量权衡 |
|---|---|---|
| 专家标注轨迹 | 复杂工具链使用(如数据分析Agent) | 高成本、高质量 |
| 众包偏好对比 | 通用对话Agent的回复选择 | 中等成本、需清洗 |
| 用户隐式反馈 | 生产环境的点击/完成率 | 低成本、噪声大 |
实践要点: 建立标注指南+抽样质检机制;偏好数据需满足Bradley-Terry模型的可比性假设。
三、环境交互数据(闭环能力提升)
- 真实环境采集:沙箱隔离+操作审计,记录(状态-动作-奖励)三元组
- 仿真环境加速:如WebArena、OSWorld构建可重置的交互基准
- 离线到在线的过渡:先用行为克隆(BC)预热,再开在线探索收集RL数据
策略选择建议
| 阶段 | 主导策略 | 典型配比 |
|---|---|---|
| 冷启动 | 合成数据+专家演示 | 合成:真实 ≈ 10:1 |
| 迭代优化 | 环境交互+人类偏好 | 在线数据占比逐步提升至30%+ |
| 持续学习 | 用户反馈回流 | 建立数据飞轮机制 |
小米场景的特殊考量: 手机/IoT生态的Agent需重点采集跨设备协同的交互数据,这类长尾场景合成覆盖率低,必须依赖真实用户日志的脱敏挖掘。
口语版讲法(约4分钟)
- 一句话定位:Agent训练数据的核心矛盾
- 合成数据:冷启动的工程化方法
- 人类反馈:对齐真实需求的代价
- 环境交互:闭环迭代的关键
- 策略选择与风险
这道题问的是Agent训练数据怎么来,其实核心就一句话:怎么在成本、质量和规模之间找到平衡。我理解面试官是想看我对数据获取的工程落地有没有系统认知,而不是背几个方法名称。
先说合成数据。这是冷启动阶段的主力,因为真实数据太贵太慢。具体怎么做呢?主流是三条路:模型蒸馏、Self-Instruct演进、多Agent互评。模型蒸馏说白了就是拿GPT-4或Claude这类强模型去生成高质量轨迹,然后做SFT。Self-Instruct呢,就是拿种子指令让模型自己扩,再过滤去重,像ToolBench里构建API调用数据就是这样。多Agent互评更有意思,搞一个执行Agent和一个评判Agent互相对抗,自动产出带奖励标签的数据,省掉人工标注。
但这里有个坑:合成数据容易传播幻觉。如果强模型本身有错,蒸馏后错上加错。所以我会特别在意多样性控制和事实性校验。多样性靠温度采样加输出约束,事实性就用工具执行结果去验证,比如让Agent调一次真实API,看返回对不对,不对就丢掉。说白了,合成数据只能做启动燃料,不能一直依赖。
再一个就是人类反馈。合成数据对齐的是模型自身的分布,不是真人的需求。所以RLHF里需要人类偏好数据。收集形式分几档:专家标注轨迹,成本高但质量好,适合复杂工具链场景,比如数据分析Agent要操作多个工具;众包偏好对比,成本中等,但数据噪声大,得做清洗和质检;还有用户隐式反馈,比如点击率、完成率,成本低但信号弱。
落地时我会特别关注标注质量。得建标注指南加抽样质检,否则众包工人乱点,模型学坏。另外偏好数据要满足Bradley-Terry模型的可比性假设,就是说两个回复得有可比性,不能一个长一个短、一个有用一个没用,否则训练会不稳定。
第三类是环境交互数据。这是让Agent真正变强的关键,因为只有从真实反馈中学习,才能闭环提升。做法分两步:先建沙箱隔离环境,记录状态-动作-奖励三元组,再逐步开放到真实环境。仿真环境能加速,比如WebArena、OSWorld这些可重置的基准,但仿真和真实总有差距。所以我的策略是先行为克隆预热,再开在线探索收集RL数据。
举个例子,手机厂商做智能助理Agent,比如小米生态,需要跨设备协同的交互数据,比如让手机控制电视、音箱。这种长尾场景合成数据覆盖率很低,必须靠真实用户日志脱敏挖掘。我会优先采集这类数据,因为这是产品差异化所在。
那说到这,其实还有个更前沿的方向:利用Agent自身的反思机制自动生成纠错数据。比如让Agent执行任务后,自己复盘哪里错了,再生成修正轨迹,这样就能持续自我进化。
最后说说策略选择。冷启动阶段,合成数据和专家演示配比大概10比1,合成为主。迭代优化阶段,环境交互和人类偏好占比逐步提升到30%以上。持续学习阶段,建立用户反馈回流的数据飞轮。我会警惕一个常见失败场景:过度依赖合成数据,导致Agent在真实场景里泛化差。所以上线前一定要在真实环境做小流量验证,看指标有没有掉。
总的来说,我更倾向于把数据获取看成一条动态管线,不同阶段用不同策略,而且永远保持对数据质量的敬畏。
关键一句:利用Agent自身的反思机制自动生成纠错数据,实现自我进化
面试官还可能这样问
- 问法 1 · 场景切入
假设我们做智能客服Agent,需要教会它调用查订单、退换货等工具。冷启动时没有训练数据,你打算怎么获取第一批高质量数据来训练这个Agent?
- 问法 2 · 层层追问
训练一个能自主调用工具的Agent,数据从哪来?……合成数据具体怎么生成?光靠大模型自己造会不会有幻觉?……那人类反馈怎么收集更高效?……环境交互数据又怎么用?
- 问法 3 · 直球架构
聊一下大模型Agent训练数据的获取途径。合成数据、人类反馈、环境交互这三种策略,分别怎么实现?各自优缺点是什么?你会如何组合使用?