OneRec - V2 lazy decoder为什么效率高

目录

背景:

模型结构:

[Context Processor](#Context Processor)

[Lazy Decoder Block](#Lazy Decoder Block)

Tokenizer:

[Block Structure :](#Block Structure :)

[Lazy Cross-Attention: KV-Sharing](#Lazy Cross-Attention: KV-Sharing)

[Grouped Query Attention, GQA](#Grouped Query Attention, GQA)

实验部分:

总结:

(1)计算效率飞跃

(2)可扩展性突破

问题:


背景:

  • Encoder-Decoder 架构的适配性
    • Encoder 专门负责编码历史物品序列(上下文),处理 "理解用户偏好" 的任务;
    • Decoder 专门负责基于上下文生成最新物品(预测目标),处理 "生成推荐结果" 的任务;
    • 两者通过交叉注意力机制联动,完美匹配 "历史上下文编码→最新物品生成" 的分工需求。

encoder的编码计算是 "辅助计算",但在传统架构中占用了大量资源(如 OneRec-V1 中占 97.66% FLOPs)。在参数量相同的情况下,编码器 - 解码器(Encoder-Decoder)架构相比经典纯解码器(Decoder-Only)架构节省近半数计算量

  • OneRec-V1 的 Encoder-Decoder 架构虽适配该数据组织方式,但带来了计算资源分配低效(Encoder 占 97.66% FLOPs)的问题;
  • OneRec-V2 的核心挑战是:如何在保持 "历史上下文编码 + 最新物品生成" 分工的前提下,移除独立 Encoder,实现更高效的架构;
  • 最终 OneRec-V2 通过 "惰性上下文处理 + 轻量化交叉注意力" 实现了这一目标:将历史物品的编码逻辑融入 Decoder,既保留了 "上下文 - 目标分离" 的适配性,又解决了计算低效问题。

模型结构:

Context Processor

为了有效融合多模态用户行为,能够与下游解码器模块实现无缝集成。

具体而言,用户画像(user profile)、行为记录(behavior)等异构输入被拼接为一个统一序列(即上下文 context)。上下文序列中的每个元素均被映射至相同维度,满足:

其中,表示注意力头维度, 为键值头组数, 为键值拆分系数, 为键值层数。

context会被切分为* 份,每一份的维度为*

对于每一层

计算归一化后的key-value pairs:

最终输出为

总结:在encoder-decoder的基础上,将context信息进行拆解,

拆解到L层中的key,value值,省去encoder部分;

所以是没有context之间的attention交互的,而是只计算了context与候选item之间的cross attention还有候选item之间的causal self-attention;

Lazy Decoder Block

Tokenizer:

对于每个目标物品,我们采用与 OneRec-V1(Zhou 等人,2025)一致的语义分词器,生成 3 个语义标识(semantic IDs,SID),以捕捉物品的多维度特征。训练阶段,我们使用前 2 个语义标识,并在序列头部添加一个序列起始标识(beginning-of-sequence, BOS),构成输入序列:

Block Structure :

其中,(根均方层归一化)用于保障训练稳定性。

为在保持计算效率的同时提升模型容量,我们采用混合架构:将深层的稠密前馈网络替换为混合专家(Mixture-of-Experts, MoE)模块。借鉴 DeepSeek-V3(Liu 等人,2024)的设计,我们引入无辅助损失的负载均衡策略,确保专家网络的高效利用。

Lazy Cross-Attention: KV-Sharing

  • 降低计算冗余:Context Processor 无需生成与解码器层数相同的 KV 对(如 12 组),仅需生成组(如 6 组),内存减少 50%。

Grouped Query Attention, GQA

查询投影(query projection)仍保持 个注意力头,而键值对仅使用 个键值头组(key-value head groups),且通常满足 。该设计大幅降低了上下文表征的内存占用,同时减少了注意力计算过程中的内存访问开销,(为什么)使模型能够高效扩展至更长的上下文序列和更大的批量大小(batch sizes)。

输出层(Output Layer) 最后一个解码器模块的最终隐藏表征,经位置特异性 RMSNorm(position-specific RMSNorm) 和全连接层(Linear layer)处理后,生成每个语义标识(semantic ID)的预测结果。训练阶段,模型通过最大化目标物品的语义标识序列 \([s_1, s_2, s_3]\) 的对数似然(log-likelihood)进行优化。

OneRec-V2 的 Lazy Cross-Attention 通过 "跨层 KV 复用、键值绑定、GQA" 三大创新,完美解决了生成式推荐模型的 "内存瓶颈" 和 "计算瓶颈":

  1. 内存层面:KV 缓存占用减少 80% 以上,支持更长上下文和更大批量;
  2. 计算层面:注意力计算量减少 94%,推理延迟降至 30ms 内;
  3. 性能层面:通过位置特异性归一化、键值绑定的性能补偿,确保推荐精度不下降。

实验部分:

fewer FLOPs and lower activation memory, our lazy decoder-only architecture achieves comparable losses compared to traditional approaches.

FLOPs 量化了模型完成一次训练迭代(或一次推理)所需的浮点运算总量(如加法、乘法),其本质是 "模型的计算复杂度"------FLOPs 越高,意味着需要越多的计算资源(GPU 算力、电力)来完成任务

低 FLOPs 意味着用更少资源完成相同任务,或在相同资源下支撑更大规模、更高并发的业务

MOE变体:总参数量为 4B 的 MoE 变体(激活参数量 0.5B)收敛损失达 3.22,其性能优于 2B 稠密模型,且计算需求与 0.5B 稠密基准模型相当。该配置相比 0.5B 稠密模型的损失降低了 0.11,充分验证了稀疏架构在推荐任务中的有效性。

分组查询注意力(GQA)通过在多个查询头(query heads)间共享键值头(key-value heads)实现优化。在我们的惰性解码器架构中,该优化减少了交叉注意力操作中的激活内存(activation memory)占用与内存访问瓶颈,从而在对模型性能影响极小的前提下,显著提升了训练吞吐量(training throughput)。我们在一个含 14 个注意力头的 1B 参数稠密惰性解码器模型上,探究了不同键值头组数(\(G_{\text{kv}} \in \{1,2,7\}\))对模型的影响。

总结:

(1)计算效率飞跃
  • 总计算量减少 94%,训练资源消耗降低 90%:通过剥离冗余辅助计算,目标解码的计算占比从 < 3% 提升至 90% 以上,资源利用率大幅提升;
  • 推理延迟降低:上下文编码的轻量化与惰性更新,使实时推理 latency 从 200ms + 降至 30ms 内,满足工业级推荐的低延迟要求。
(2)可扩展性突破
  • 支持 8B 参数规模:有效计算占比的提升,让相同计算预算下可分配给目标解码的参数量大幅增加,模型表征能力显著增强;
  • 遵循缩放定律:随着参数量扩大,损失呈平滑下降趋势(无性能饱和),为后续扩展至 10B + 参数奠定基础。

问题:

  1. 为什么encoder-decoer但仍存在 97% 资源浪费?
  1. 为什么GQA可以降低内存访问开销?
  1. 传统编码器是基于attetnion来建模context的相关信息的,但是one-vec v2没有对context进行attention计算,而是直接作为解码器的k,v值。所以相比encoder-decoer在相同的参数配置下,应该是减少了参数量的,对吧?比如encoder self-attention的k,v值与FFN。
相关推荐
ChatPPT_YOO1 小时前
AIPPT工具主题生成深度对比:为什么ChatPPT更胜一筹?
人工智能·信息可视化·powerpoint·ai生成ppt·ppt制作
轻竹办公PPT1 小时前
学校要求开题报告 PPT,有没有模板?
人工智能·python·powerpoint
大雾的小屋1 小时前
【1-1】基于深度学习的滚动轴承故障诊断系统:从数据处理到交互式界面全流程解析
人工智能·pytorch·深度学习·系统架构·人机交互·pyqt·用户界面
一路向北he1 小时前
你的注意力所在之处,决定了你的世界
人工智能
Mintopia1 小时前
🧠 AI驱动的B端服务架构猜想
人工智能·安全·架构
极客BIM工作室1 小时前
AI导读AI论文: CAD-Assistant: Tool-Augmented VLLMs as Generic CAD Task Solvers
人工智能·机器学习
神奇的代码在哪里1 小时前
C++的演进与我的编程学习之旅:从底层基础到AI应用
c++·人工智能·python·学习·程序人生·个人开发
海岸线科技1 小时前
人、智能体和机器人:麦肯锡最新报告引发的思考
人工智能·机器人·制造·质量·qms