跳到正文

Agent 训练数据怎么获取?

合成数据、人类反馈、环境交互三种策略详解

原题:请阐述大模型Agent训练所需数据的获取途径和方法,包括合成数据生成、人类反馈收集、环境交互等不同策略。

Agent · 小米真题

30 秒回答

  1. 区分冷启动数据与迭代优化数据的不同获取策略
  2. 掌握合成数据生成的具体方法(模型蒸馏、Self-Instruct、多Agent互评)
  3. 理解人类反馈的收集形式与质量控制
  4. 说明环境交互数据的采集与回放机制

回答与解析

答案要点

  • 区分冷启动数据与迭代优化数据的不同获取策略
  • 掌握合成数据生成的具体方法(模型蒸馏、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. 问法 1 · 场景切入

    假设我们做智能客服Agent,需要教会它调用查订单、退换货等工具。冷启动时没有训练数据,你打算怎么获取第一批高质量数据来训练这个Agent?

  2. 问法 2 · 层层追问

    训练一个能自主调用工具的Agent,数据从哪来?……合成数据具体怎么生成?光靠大模型自己造会不会有幻觉?……那人类反馈怎么收集更高效?……环境交互数据又怎么用?

  3. 问法 3 · 直球架构

    聊一下大模型Agent训练数据的获取途径。合成数据、人类反馈、环境交互这三种策略,分别怎么实现?各自优缺点是什么?你会如何组合使用?

同模块相关题目