这道题问的是[[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在真实场景里泛化差。所以上线前一定要在真实环境做小流量验证,看指标有没有掉。
总的来说,我更倾向于把数据获取看成一条动态管线,不同阶段用不同策略,而且永远保持对数据质量的敬畏。