RankMixer 能将工业推荐系统的模型浮点运算利用率(MFU)从4.5% 的个位数水平提升至 45%,核心原因是从架构设计根源解决了传统推荐模型 "显存受限、GPU 并行性差、计算碎片化" 的问题,再配合工程级的计算优化,让 GPU 的核心计算资源(CUDA 核心)从大量闲置转为持续高负载工作,实现了从"显存受限(Memory-bound)" 到 "计算受限(Compute-bound)"的关键转变。
结合字节跳动的论文设计细节,其提升 MFU 的核心逻辑分为 ** 架构层面的硬件友好设计(根本原因)和工程层面的计算效率优化(落地保障)** 两大维度,且所有设计均围绕 GPU 的硬件特性(擅长大矩阵并行计算、对碎片化小算子支持差)展开,以下是具体解析:
一、架构设计:从根源消除传统模型的 MFU 损耗
传统推荐模型(如 DLRM、DCNv2、AutoInt)的 MFU 极低,本质是其 CPU 时代的设计导致计算碎片化、显存 IO 开销远大于实际计算开销,GPU 的并行计算能力被完全浪费。而 RankMixer 通过三大架构创新,从源头重构了计算逻辑,让模型计算天然适配 GPU 特性。
1. 用多头 Token Mixing替代自注意力,消除显存密集型的无效计算
自注意力是 NLP 模型的核心,但在推荐场景中是MFU 的最大损耗点,而 RankMixer 的无参数 Token Mixing 从根本上解决了这一问题:
- 传统自注意力的问题:需要计算注意力权重矩阵(T×T,T 为 Token 数),不仅涉及大量显存读写操作(存储权重矩阵、进行矩阵乘),还因推荐特征的异构性导致内积相似度计算无意义,最终是 "高显存开销 + 低计算价值",GPU 大部分时间在做数据搬运,而非浮点运算;
- RankMixer 的优化:多头 Token Mixing 是无参数的张量重组操作,仅将每个 Token 切分为 H 个头后,跨 Token 拼接同维度头部向量,全程无额外权重矩阵、无复杂的相似度计算,显存 IO 开销降至极低。同时该操作是高度并行的张量操作,可完全映射到 GPU 的 CUDA 核心,让计算资源不再被显存搬运挤占。
2. 逐 Token FFN(PFFN):将碎片化计算转化为 GPU 擅长的大矩阵乘法(GEMM)
MFU 的核心提升点是让模型的核心计算由GPU 原生优化的大 GEMM 操作主导 ------GEMM 是 GPU 硬件层深度优化的算子,能充分利用 CUDA 核心的并行性,是提升 MFU 的关键,而 RankMixer 的 PFFN 设计完美实现了这一点:
- 传统模型的问题:特征交叉模块由大量碎片化小算子(如 FM 的内积、DCN 的交叉层、小尺寸 MLP)组成,这些小算子无法形成大尺寸的矩阵计算,GPU 并行核无法被充分利用,且算子间的显存交互会产生大量额外开销;
- RankMixer 的优化:为每个 Token 分配独立的 FFN 参数,且 FFN 的核心计算是固定尺寸的大矩阵乘法(输入为 D 维,隐藏层为 kD 维)。所有 Token 的 PFFN 计算可批量融合为超大 GEMM 操作,完全适配 GPU 的并行计算特性,让 CUDA 核心持续高负载工作。同时 PFFN 在不增加计算复杂度的前提下提升模型容量,实现 "计算效率 + 模型效果" 的双赢。
3. 语义化特征分词:避免 Token 数失衡导致的计算资源分散 / 浪费
Token 数的设计直接影响 GPU 计算的并行度,传统模型的 Token 设计存在两极化问题,而 RankMixer 的语义分词让 Token 数处于最优并行区间:
- 传统问题:要么 "一特征一 Token"(数百个 Token),导致每个 Token 的计算尺寸过小,形成碎片化计算;要么 "单 Token 融合所有特征",退化为简单 DNN,失去特征子空间建模能力;
- RankMixer 的优化:基于领域知识将异构特征语义聚类,分割为少量(如 16/32 个)固定维度的 Token,既保证了特征子空间的独立建模,又让每个 Token 的计算尺寸足够大,能形成高效的大 GEMM 操作,避免 GPU 计算资源因 Token 碎片化而分散。
二、工程优化:让架构的硬件友好性落地,进一步放大 MFU 提升效果
RankMixer 的架构设计为 MFU 提升奠定了基础,而字节跳动的工程级计算优化则将架构的潜力充分释放,核心是通过计算融合、资源调度、参数量与 FLOPs 解耦,消除所有非计算性的 MFU 损耗,让 GPU 的浮点运算能力被极致利用。
1. 核融合(Kernel Fusion):减少 CUDA 核启动开销与显存交互
GPU 执行计算时,每次启动 CUDA 核都会产生固定开销,且不同算子间的显存读写会导致计算中断。RankMixer 将多层级的计算操作融合为单个 CUDA 核:
- 例如将 "Token Mixing + 残差连接 + 层归一化""PFFN + Gelu 激活 + 残差连接" 分别融合为单一核操作,避免了多次核启动的开销;
- 同时融合后的数据可在 GPU 的片上缓存中完成计算,无需频繁与全局显存交互,让计算核心持续工作,进一步提升 MFU。
2. 解耦参数量与 FLOPs,降低单位参数的计算开销
传统模型的参数量与 FLOPs 近似线性正相关,扩大参数量必然导致计算开销激增,显存占用过高进而挤压计算资源;而 RankMixer 通过架构设计实现了参数量与 FLOPs 的解耦:
- 论文中提到,RankMixer 参数量提升70 倍(从 16M 到 1.1B),但 FLOPs 仅提升20 倍,FLOPs/Param 比降至基线模型的 1/3.6;
- 单位参数的计算开销大幅降低,意味着模型在大参数量下的显存占用增长远慢于计算能力增长,GPU 不会因显存不足而限制计算,让计算核心能充分利用硬件的浮点运算能力,MFU 自然提升。
3. 从显存受限转为计算受限,让 GPU 核心成为资源调度的核心
MFU 低的本质是模型的瓶颈在显存 IO,而非计算能力------GPU 大部分时间在等待数据从显存传入计算核心,核心处于闲置状态。而 RankMixer 的所有设计最终实现了资源瓶颈的转移:
- 无参数 Token Mixing、大 GEMM 主导的 PFFN、核融合等设计,将显存 IO 开销降至模型总开销的极低比例,模型的瓶颈从 "显存搬运速度" 变为 "GPU 浮点运算速度";
- 此时 GPU 的计算核心会持续高负载处理浮点运算,不再被显存 IO 闲置,MFU 从原本的个位数直接提升至 45% 的高水平。
三、补充:Sparse-MoE 的优化让大参数量下的 MFU 依然保持高位
RankMixer 为了进一步提升模型容量,将 PFFN 扩展为Sparse-MoE 结构,但传统 MoE 的 "路由不均、专家欠训练" 会导致计算资源闲置,降低 MFU。而 RankMixer 通过ReLU 路由 + DTSI-MoE的设计,在扩大参数量的同时,依然保证了 GPU 计算资源的高效利用:
- ReLU 路由:让高信息 Token 激活更多专家、低信息 Token 激活更少专家,避免计算资源浪费在低价值 Token 上,保证计算的有效性;
- DTSI-MoE:训练时用稠密路由器保证所有专家充分更新,推理时用稀疏路由器减少计算开销,让 GPU 的计算资源仅用在被激活的专家计算上,避免冗余计算导致的 MFU 损耗。
总结:RankMixer 提升 MFU 的核心逻辑(一句话概括)
通过无参数 Token Mixing、大 GEMM 主导的 PFFN、语义化分词的架构创新,从根源消除传统模型的碎片化计算和显存密集型操作,让模型计算天然适配 GPU 的并行特性;再通过核融合、参数量与 FLOPs 解耦、资源瓶颈转移的工程优化,将 GPU 的计算资源从显存 IO 的闲置状态中释放,最终实现模型从 "显存受限" 到 "计算受限" 的转变,让 MFU 实现 10 倍的跨越式提升。
这一设计的关键价值在于:MFU 的提升让模型规模化不再被硬件成本制约------RankMixer 能在参数量提升 70 倍的情况下,保持推理延迟基本不变,且无需增加部署成本,这也是其能在抖音全流量落地 1B 参数量版本的核心原因。