Meta 广告排序系统 Wukong Turbo:将万亿参数模型的推理成本曲线从线性弯曲为亚线性
1. 问题与动机
Meta 在广告排序领域面临一个核心的 "推理三难困境"(Inference Trilemma):
- 模型复杂度:广告排序效果的提升依赖于更大、更深的模型,业界已验证 LLM 级别的参数量(万亿量级)能带来显著的排序质量增益;
- 延迟约束:广告系统要求亚秒级响应(O(100ms) 量级),这与 LLM 动辄数秒的推理延迟形成尖锐矛盾;
- 成本效率:Meta 每天服务数十亿次广告请求,模型参数量线性增长若导致推理成本同步线性增长,则经济上不可持续。
为什么重要? 传统广告排序模型(DLRM 系列)的 scaling 路线是"加参数 → 加机器 → 加成本",呈线性关系。而 LLM 领域的 scaling law 研究证明更大模型有更好效果,广告排序领域同样适用。但广告系统的实时性和成本敏感性远超 LLM 应用场景——你不可能让用户等 2 秒看到一条广告。Meta 需要回答的问题是:能否在不突破延迟和成本约束的前提下,将排序模型扩展到 LLM 级别?
这本质上是一个 model-system co-design 问题,不能只看模型,也不能只看系统。
2. 方法概述
Wukong Turbo 的核心思路可以用一句话概括:将推理计算的粒度从"逐对 user-ad 打分"提升到"request 级别批处理",从而将计算成本与候选集大小解耦。
架构建立在三大支柱之上:
支柱一:Request-Oriented 计算共享
传统排序模型对每个 (user, ad) pair 独立计算,如果一个 request 有 N 个候选广告,user 侧的特征(行为序列、画像等)会被重复计算 N 次。Wukong Turbo 将 user 信号的计算提取出来,一次计算、广播复用给所有候选广告:
- In-Kernel Broadcast:在 GPU kernel 内部实现 embedding 的跨候选广播,避免数据搬运开销;
- Request-Oriented Sequence Scaling:用户长行为序列只处理一次,结果分发给所有候选,大幅降低 serving 和存储开销。
支柱二:Model-System Co-design(Wukong Turbo 架构)
基于原有 Wukong 架构(分解机 + 序列学习 + cross-layer attention),做了三个针对推理效率的结构性调整:
- No-Bias:移除不稳定的偏置项,在不增加 FLOPs 的前提下提升吞吐;
- Parameter Delegation:将部分参数从 FSDP(全分片数据并行)迁移到 DDP(分布式数据并行),降低网络和内存开销;
- Sparsity-based Simplification:裁剪冗余的线性层。
支柱三:GPU-native 全链路优化
将特征预处理从 CPU 端迁移到远端 GPU 主机,使用紧凑的 tuple-based 格式和 GPU 原生 kernel,消除 CPU 端的数据准备瓶颈(data starvation)。同时将 Top-K 排序的复杂度从 O(N log N) 降至 O(N)。
3. 核心技术贡献
贡献 1:推理成本曲线从线性到亚线性
这是本文最核心的贡献。传统模型的推理成本与候选集大小 N 呈线性关系:Cost = N × C_per_pair。Wukong Turbo 通过 request-oriented 计算共享,将成本拆解为:
Cost = C_user (一次性) + N × C_ad (仅候选侧)
其中 C_user 通常远大于 C_ad(用户侧特征更稠密、序列更长),因此当 N 增大时,总成本的增长远低于线性——推理 scaling 曲线被"弯曲"了。
贡献 2:选择性 FP8 量化
不是全模型 FP8,而是通过 micro-benchmark guided 选择机制,仅在精度损失容忍度高的层应用 FP8 量化。这样做的好处是:
- 充分利用现代异构硬件(如 H100 的 FP8 Tensor Core)的算力;
- 对推荐质量的影响可忽略不计;
- 实测达到 35% Model FLOPs Utilization (MFU),跨多种硬件类型一致。
35% MFU 在推荐系统领域是一个相当高的数字——传统 DLRM 类模型由于 embedding lookup 的 memory-bound 特性,MFU 通常在 10-20%。
贡献 3:万亿级 Embedding 的多卡分片
Embedding 表是推荐模型的参数大头,万亿级参数主要来自这里。解决思路:
- 动态分配:根据特征稀疏度动态调整 embedding 维度;
- Pruning:裁剪未使用的 embedding 行;
- Unified Embeddings:多个特征共享 embedding 表;
- 多卡分片:embedding 表切分后分布到 GPU 集群,且性能与单卡持平。
贡献 4:算子融合与 Grouped GEMM
- 算子融合:减少 HBM 与 SRAM 之间的数据搬运次数;
- Grouped General Matrix Multiply:将多个小矩阵运算合并为计算密集型 kernel,提升 GPU 利用率。
与现有方法的关键区别
| 维度 | 传统 DLRM/DCN | Wukong Turbo |
|---|---|---|
| 计算粒度 | per (user, ad) pair | per request batch |
| User 特征计算 | 重复 N 次 | 计算 1 次,广播复用 |
| 量化策略 | 全模型或不量化 | 选择性 FP8(micro-benchmark guided) |
| Embedding 存储 | 单机内存 | 多卡分片 + 动态裁剪 |
| 预处理 | CPU 端 | GPU-native kernel |
| Scaling 成本 | 线性 | 亚线性 |
4. 实验结果分析
Wukong Turbo 于 2025 Q4 在 Instagram 上线,实测结果:
| 指标 | 提升 |
|---|---|
| 广告转化率(Conversions) | +3% |
| 目标用户 CTR | +5% |
| 推理延迟 | O(100ms) 以内,亚秒级 |
| Model FLOPs Utilization | 35%(跨多种硬件) |
| 模型加载时间 | < 10 分钟(多流下载 + 远端缓存) |
结果解读:
- +3% 转化率 在 Meta 的广告体量下是一个非常显著的数字。Meta 2025 年广告收入约 1600 亿美元,3% 的转化率提升即使仅部分转化为收入增长,也意味着数十亿美元级的影响。
- +5% CTR 说明模型不仅提升了深层转化,在浅层交互指标上也有增益,表明更大模型确实学到了更好的 user-ad 匹配信号。
- 100ms 延迟的维持证明了亚线性 scaling 的实际效果——模型大了几个数量级,但延迟没有同步膨胀。
- 35% MFU 意味着推理阶段 GPU 不再是"大部分时间在等数据",计算效率得到了实质性提升。
5. 局限与未来方向
当前局限
- 信息披露有限:作为工程博客而非学术论文,缺少关键的消融实验(ablation study)——无法量化每个优化技术各贡献了多少增益。
- 硬件依赖性:选择性 FP8 量化和 Grouped GEMM 优化高度依赖特定 GPU 架构(如 H100),在异构硬件环境下的泛化性未知。
- 仅 Instagram 数据:目前仅报告了 Instagram 上的结果,不同广告形态(Feed、Stories、Reels、跨平台)的效果差异未披露。
- 模型鲜度问题:万亿级模型的更新/训练成本未讨论——模型越大,训练和更新越慢,在广告这种数据分布快速漂移的场景下,模型鲜度可能成为新瓶颈。
作者提出的未来方向
- Agentic 优化框架:用自主代理(agent)自动适配新硬件和模型架构,进一步加速 kernel 性能优化。
- 近实时模型更新:探索增量式、就地权重更新(incremental in-place weight updates),实现接近实时的模型适应。
- 极低精度量化:推进模型压缩和超低精度量化方法,以适配多样化的硬件集群。
我认为的额外方向
- 跨请求的计算复用:当前是 request 内复用 user 信号,但同一用户短时间内的多次请求之间,user 信号高度重叠,可以引入 跨请求缓存进一步降低计算量。
- 动态计算分配:不是所有候选广告都需要同等精度的打分,可以结合 early exit 或 cascading 策略,对高置信候选提前输出。
6. 工业实践意义
对广告系统
- 验证了广告排序模型 scaling 到 LLM 级别的可行性和收益。这是业界首次公开披露万亿参数级广告排序模型的完整上线数据,对所有广告平台都是一个重要信号。
- Request-oriented 批处理是最值得借鉴的设计模式。绝大多数推荐/广告系统仍在做 per-pair scoring,切换到 request-level 计算共享是一个架构级的优化机会,且与具体模型结构无关。
对搜索系统
- 搜索排序同样适用 request-oriented 计算共享。搜索场景中 query 侧特征(query embedding、用户画像、session context)同样在所有候选文档间共享,完全可以复用这一思路。
- 选择性量化策略对搜索排序模型同样适用——搜索模型中的语义匹配层通常对精度敏感,而特征交叉层则有较高的量化容忍度。
对推荐系统
- Model-System Co-design 将成为标配。Wukong Turbo 最大的启示不是某个具体技术,而是一种思维方式:模型架构设计必须与推理系统联合优化。单独优化模型或单独优化系统都无法突破 scaling 瓶颈。
- GPU 预处理替代 CPU 端数据准备是一个被低估的优化方向。很多推荐系统的延迟瓶颈不在模型推理本身,而在 CPU 端的特征拼接、序列化和数据传输——将这部分工作搬到 GPU 上可以消除"数据饥饿"问题。
- Embedding 的多卡分片 + 动态裁剪为其他需要超大 embedding 表的系统(如召回模型、向量检索)提供了工程范式。
核心 Takeaway
排序模型的 scaling 瓶颈不在模型大小本身,而在 serving 效率。 通过 request-oriented 计算共享 + 选择性量化 + GPU-native 全链路优化,推理成本可以从与参数量的线性关系弯曲为亚线性关系。这意味着"更大的模型"不再等于"更贵的推理"——对所有受限于推理成本而无法扩大模型的工业系统来说,这是一个范式转换的信号。