本文来自 Google / YouTube,是首个在工业规模推荐系统中将 LLM 智能体端到端部署并成功提升线上北极星指标的完整框架。核心贡献是一套"双循环自进化系统"(Self-Evolving System),由 Offline Agent(高频内循环)和 Online Agent(低频外循环)构成,LLM 扮演专业 MLE 角色,自主发现优化器、网络结构、奖励函数的改进,无需人工逐步介入。
1.1 问题背景
YouTube 等全球视频平台的推荐系统正在向强化学习(RL)范式演进:系统不再简单预测 CTR,而是作为 Agent 与用户环境交互,最大化用户长期满意度。这要求设计复杂的奖励函数(复合多种信号)和精密的模型结构。
1.2 现有方法局限
传统 AutoML 方法在数值超参数调优上表现良好(如 Bayesian Optimization 调 learning rate),但存在三大核心挑战:
C1:结构设计不可穷举
优化器类型、激活函数、注意力机制等是离散设计选择,搜索空间几乎无限大,AutoML 缺乏推理能力来导航开放设计空间。
C2:奖励工程的语义鸿沟
奖励函数需要融合观看时长、调查问卷、留存率等异构信号,近似"用户长期满意度",这是需要深度语义理解的推理任务,梯度方法无能为力。
C3:人工迭代的扩展性瓶颈
每次实验都需要工程师将假设翻译为代码、配置训练器、设置 A/B 测试——实验吞吐量线性依赖于工程师数量,大量配置空间从未被探索。
研究空白
将 AI Agent + 工业级推荐系统结合的工作几乎空白。现有 AutoML 只能调数值参数,现有 LLM Agent 研究缺乏真实生产部署验证。
2.1 系统总览:双循环自进化架构
整个系统的核心思路是将"发现"与"验证"两个任务解耦,形成快慢两个循环,围绕一个共享的实验日志(Experiment Journal)运转:
高频·代理指标
低频·北极星指标
Experiment Journal
`"
/>
这套设计的精妙在于:内循环使用廉价的代理指标(离线损失、SQL 相关性分析)大量筛选候选,只有通过内循环筛选的高潜力候选才进入外循环进行昂贵的线上 A/B 实验。这形成了一个严格的过滤漏斗,既保证了实验吞吐量,又保证了线上流量质量。
假设 Offline Agent(Optimizer Persona)在某次迭代中同时启动 50 个候选训练任务(调整学习率、动量、优化器类型等不同组合)。每个任务训练完成后,Persona 用 compute_loss 工具获取验证损失,排序后选出 top-3。这 3 个候选进入 Online Agent 的 PROPOSED 队列,等待依次通过编译检查 → 模型训练 → 线上 A/B 测试 → 北极星指标收集,最终结果回写到实验日志。下一轮内循环时,LLM 读取"RMSprop + 特定超参表现最好"这条历史记录,开始在这个方向上进一步探索。
2.2 Offline Agent(内循环)
Offline Agent 是整个框架的认知核心和快速测试引擎。它的目标是在廉价的离线代理信号上快速遍历配置空间,将大量候选筛选到少数高潜力方案。
Prompt 构建
每次调用 LLM 前,会动态构建 Prompt,包含以下几个关键部分:
- 1Persona 设定:告知模型它是"具有卓越编程和分析能力的专家 MLE",并根据不同任务注入专属角色(优化器专家 / 架构专家 / 奖励工程专家)。
- 2主要目标:明确优化方向(最小化离线损失 or 最大化相关信号),并要求 LLM 在"探索(Exploration)、利用(Exploitation)、创新(Innovation)"三者间取得平衡,避免只做微小调整。
- 3安全护栏:明确告知某些指标的回退阈值(如"Metric#3 回退不得超过 +1%"),防止奖励黑客攻击和生产漂移。
- 4基线配置 + Schema:提供当前生产模型配置、训练日志 Schema。
- 5实验日志:结构化历史记录,包含过去所有实验的 diff(代码变更)及其离线/线上结果,让 LLM 从历史中学习。
2.3 三类专业 Reasoning Persona
为避免单一 Persona 因接触过多无关 Schema 而产生"上下文腐烂"和幻觉,系统为三类不同任务实例化独立 Persona,各自携带专属工具:
🔬 Optimizer Persona
工具:compute_loss
职责:优化器算法选择(Adagrad / RMSprop 等)及其内部超参(学习率、动量、batch size)。
评估方式:损失函数 $\mathcal{L}_{proxy}$ 不变,直接排序 $\mathcal{L}_{proxy}(\Phi_A) < \mathcal{L}_{proxy}(\Phi_B)$ 即可比较候选优劣。
并行化:同时启动多个异步训练任务,按验证损失排序筛选。
🏗️ Architecture Persona
工具:compute_loss
职责:解析 Keras/TensorFlow 模型定义,提出神经拓扑结构突变(如引入新的 Gating 机制、层归一化、激活函数替换等)。
区别于 NAS:不是从固定菜单中选择层,而是可以写全新的自定义代码,例如引入"门控路径(Gating Path)"机制。
🎯 Reward Persona
工具:run_sql_query(不能用 compute_loss)
职责:修改排名模型的训练标签(ground-truth reward)逻辑。
为什么不用 loss 排序:修改奖励后 $\mathcal{L}_{proxy}$ 的定义本身就变了——"仅点击"奖励的损失天然低于"点击+满意度"复合奖励的损失,不可比较。
做法:用 SQL 对训练日志做大规模特征-标签相关性分析,找到与用户长期满意度高度相关的信号。
Reward Persona 的 LLM 提出假设:"用户在观看结束后是否继续浏览同频道内容"可能是长期满意度的强信号。随后它调用 run_sql_query 工具,对 TB 级训练日志执行:
SELECT corr(channel_affinity_signal, long_term_retention) FROM training_logs WHERE ...
如果相关性系数超过阈值(如 0.35),该信号被标记为候选奖励组件,进入后续代码实现阶段。最终系统发现了"活跃参与度信号"、"用户-频道关系"、"视频质量信号"三个组件,构成了超越人工设计基线的复合奖励函数。
Think-Code-Verify 循环
- 1假设生成(Think):LLM 先提出策略(如"当前模型对点击诱饵过拟合,应在奖励中惩罚短时观看点击")。
- 2代码实现(Code):将假设翻译为精确的配置 diff 或代码修改。
- 3LLM 精化(Verify):生成的代码传给"linter Persona",负责修复语法错误、验证 Schema 合规性。
- 4工具调用:调用
compute_loss或run_sql_query定量评估候选质量。
LLM 被要求生成相对于生产文件的 diff(增量),而非完整配置文件。实践发现,要求输出完整配置文件时,LLM 极易遗漏未改动但必要的参数,或引入语法错误(幻觉);而只要求输出 diff 则大幅提升了代码有效性。
2.4 Online Agent(外循环)
Online Agent 是框架的安全门控和结果收集器。它负责将通过内循环筛选的候选推进到生产环境,通过 A/B 实验验证北极星指标,并将结果回写到实验日志。它对每个候选维护一个状态机,通过五阶段 DAG 确保安全。
2.5 五阶段 DAG
① 内循环(Offline Agent):LLM 提出将 Adagrad 替换为 RMSprop(特定学习率、衰减率、动量),生成配置 diff → 异步启动训练 → compute_loss 返回验证损失 z-score 为 -0.85(优于基线),进入外循环。
② PROPOSED:配置 manifest 入队,等待调度。
③ VALIDATED:Agent 检查配置语法、数据量是否充足 → 通过。
④ TRAINING:完整训练(Θ(hours)),Agent 轮询推理服务器,权重上传成功后进入下一阶段。
⑤ LIVE:分配 YouTube 生产流量,持续监控指标,watch time 持续正向 → 实验正常结束。
⑥ COMPLETED:获取 YouTube 级 +0.06%、Surface 级 +0.12% 提升,写入日志。下一轮内循环 LLM 读取"RMSprop 路线成功",继续沿此方向探索(如进一步调整动量)。
3.1 线上 A/B 实验结果汇总
| 任务类型 | Agent 发现的改进 | YouTube 级指标 | Surface 级指标 |
|---|---|---|---|
| Optimizer | 切换为 RMSprop | +0.06%* | +0.12%* |
| Optimizer | 训练效率 4× 提升 | −0.01% | +0.06% |
| Optimizer | 训练效率 2× 提升 | +0.01% | +0.09%* |
| Architecture | 门控路径(GLU) | +0.06%* | +0.14%* |
| Architecture | 激活函数精化(GELU + LayerNorm) | −0.02% | +0.12%* |
| Reward | 多目标奖励合成 | +0.03%* | +0.13%* |
* 表示在 95% 置信水平下统计显著。这些是北极星业务指标(如 Watch Time)的相对提升。
关键发现亮点
- Adagrad → RMSprop:因为手动调优成本高,优化器配置长期静止不动。Agent 自主发现切换到特定超参的 RMSprop 可显著提升,且线上统计显著。
- GLU 门控路径:Architecture Persona 探索了从注意力机制到 MoE 的数百个方案,最终发现类似 Gated Linear Units 的乘法门控机制最优,是所有方案中线上增益最高的。
- GELU + LayerNorm:在 GLU 成功的基础上,Agent 进一步将 sigmoid 门替换为 GELU 激活 + 层归一化,体现了"先探索新结构,再精化胜者"的两阶段策略。
- 多目标奖励合成:Agent 通过 SQL 数据分析发现了"活跃参与度"、"用户-频道亲密度"、"视频质量"三个新奖励组件,合成的复合奖励函数超越了人工设计基线。
- 训练效率:Agent 还优化了系统层面的训练效率,先后实现 4× 和 2× 的训练时间压缩,总计 8× 加速,且不损失业务指标——这是人工优化通常不会花时间做的事。
3.2 消融实验:上下文工程的影响
在 Optimizer 任务上进行了 6 次独立运行(每次探索 70 个配置)的消融研究:
opt_2p5(基线)
Gemini 2.5 Pro + 专家 Persona + 完整历史(按 loss 排序)
→ 最优表现
opt_flash
将 Pro 换成 Gemini 2.5 Flash
→ 性能明显下降,说明算法发现任务需要大模型的"深度思考"能力
opt_no_role
移除专家 MLE Persona 设定
→ 显著变差,说明 Persona 框架对提案质量至关重要
opt_no_sort / opt_top_k / opt_no_context
提供未排序历史 / 只给 top-k 历史 / 不提供历史
→ 均不如完整排序历史,说明 完整且按质量排序 的历史是有效迭代的关键
3.3 实验速度对比
| 指标 | 人工工作流 | Agent 工作流 |
|---|---|---|
| 实验吞吐量 | Θ(1)–Θ(10) 次 / 周 | Θ(100) 次 / 周 |
| 每次实验的工程成本 | Θ(1)–Θ(10) 工时 / 周 | 0 工时 / 周 |
通过将高频离线发现与低频线上验证解耦,工程师从实验执行的关键路径上解脱出来,实验吞吐量提升约 10-100 倍,工程成本降为 0(人工只需在起始时提供研究方向、在结束时审查结果)。
让 LLM 输出 diff(增量修改)而非完整配置文件。完整配置文件会导致 LLM 遗漏未改参数或引入语法错误(幻觉);diff 模式大幅提升了提案有效率。
若不在 Prompt 中明确要求"平衡探索、利用与创新",LLM 会强烈倾向于安全的微小调整(如连续提出 lr=0.1, 0.11, 0.12)。必须主动促使模型进行跨越式探索。
实验日志为空时,Agent 倾向提出教科书式的通用改进,缺乏特定系统知识。需要经过一段"热身期"积累历史试验后,性能才会显著提升。
在成熟系统中,最大的杠杆点来自结构和语义突变(新奖励逻辑、新架构组件),而非精调数值超参。Agent 的语义推理能力(尤其是 Reward Persona)提供了纯数值优化无法实现的创新。
将相同的双 Agent 框架部署到另一个特征 Schema、训练集、模型配置完全不同的 YouTube 推荐 Surface,Agent 在最初几次迭代内成功适应,并提升了北极星指标。说明框架优化的是"发现过程"本身,而非记忆特定数据集。
5.1 核心亮点
区别于大量停留在 toy 问题或 benchmark 的 LLM+ML 研究,本文在 YouTube 真实生产流量上进行了 A/B 测试,且多个结果统计显著。这是极高的工程可信度保证。
将"高频创意生成(内循环,廉价代理指标)"与"低频生产验证(外循环,昂贵北极星指标)"解耦,是非常正确的系统工程决策。两者各自优化,通过共享日志形成闭环,实现了成本和质量的最优权衡。
Reward Persona 使用 SQL 相关性分析取代 loss 评估,是极其有创意的设计——它正确地意识到不同 reward 的 loss 不可比较,转而从数据语义出发做信号发现,这是人工 reward 工程中长期依赖的核心能力。
10-100× 的实验吞吐量提升、0 工时的执行成本,这些数字清晰地量化了自动化的价值,也为后续在更多团队推广提供了业务理由。
5.2 不足与局限
消融实验显示 Gemini 2.5 Flash 明显不如 Pro,说明系统强依赖顶级 LLM 的推理能力。对于算力受限的团队,这是重要的成本约束。
空实验日志时 Agent 能力受限,论文承认了这一点但未提出系统性解法(如预热策略或外部知识注入)。
论文未详细说明"指标 Metric#3"具体是什么北极星指标,"Surface 级"和"YouTube 级"指标的定义也比较模糊,部分结果难以复现或对比。
代码工具(compute_loss、run_sql_query)、Schema 格式、实验日志结构均深度绑定 YouTube 内部基础设施,通用化路径尚未讨论。
5.3 对推荐系统研究的启发
- Agent 驱动的 Reward Engineering:SQL 相关性分析驱动奖励函数发现,是一个可以大规模复制的范式,值得在其他平台验证。
- 双循环框架泛化:快慢双循环 + 共享历史日志的框架,可以应用于任何需要在"快速离线筛选"和"慢速线上验证"之间权衡的 ML 系统。
- 自动化 NAS 与结构突变:Architecture Persona 可以写自定义层代码,而非从固定菜单选择,这是突破传统 NAS 限制的重要方向。
- MLE 角色的重新定义:系统自动执行重复性实验工作,工程师聚焦于战略护栏和高层视野——这是 AI 辅助工程的未来形态。