20260706:新增一些文章
This commit is contained in:
47
concepts/lazyar.md
Normal file
47
concepts/lazyar.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: "LazyAR (Lazy Autoregressive Decoder)"
|
||||
created: 2026-06-28
|
||||
updated: 2026-06-28
|
||||
type: concept
|
||||
tags: [generative-recommendation, inference-optimization, decoder-architecture]
|
||||
sources: [GR4AD]
|
||||
---
|
||||
# Lazy Autoregressive Decoder (LazyAR)
|
||||
|
||||
LazyAR 是 [[GR4AD]] 提出的**懒惰自回归解码器**架构,释放逐层自回归依赖以提升多候选生成吞吐量。在保持推荐效果的前提下,LazyAR 将近翻倍推理 QPS。
|
||||
|
||||
## 动机
|
||||
|
||||
标准自回归解码中,UA-SID 的每一级 token 的生成都需要完整的 $L$ 层解码器计算,即:
|
||||
$$m_t(1), m_t(2), ..., m_t(L) = \text{Decoder}(s_{<t})$$
|
||||
|
||||
在 $T$ 级 UA-SID 下,总计算量为 $T \cdot L$ 层。
|
||||
|
||||
观察发现:第一级 UA-SID($s_1$)的损失最大,承载了最关键的语义信息;后续级别($s_2, s_3, ...$)的解码可以在不显著影响效果的前提下共享计算。
|
||||
|
||||
## 架构
|
||||
|
||||
LazyAR 将 $L$ 层解码器分为两段:
|
||||
- **前 $K$ 层(共享段)**:计算与 $s_{t-1}$ 无关的 trunk 表示 $m_t(K)$,所有 UA-SID 级别共享
|
||||
- **后 $L-K$ 层(注入段)**:在第 $K$ 层注入 $s_{t-1}$ 的嵌入,仅这些层需逐级重算
|
||||
|
||||
$$m_t(K) = \text{Decoder}^{1:K}(s_{<t} \setminus \{s_{t-1}\})$$
|
||||
|
||||
$$\hat{m}_t = \text{Decoder}^{K+1:L}(m_t(K) \oplus \text{Emb}(s_{t-1}))$$
|
||||
|
||||
## 速度优势
|
||||
|
||||
$m_t(K)$ 不依赖 $s_{t-1}$,因此前 $K$ 层的结果可以**在所有 UA-SID 级别间复用**。总计算量从 $T \cdot L$ 降至 $1 \cdot K + T \cdot (L-K)$:
|
||||
|
||||
- 若 $K=6, L=9, T=3$:计算量从 $27$ 降至 $6 + 3 \times 3 = 15$,节省 ~44%
|
||||
|
||||
## 与 DeepSeek MTP 的区别
|
||||
|
||||
DeepSeek [[MTP]] 也为所有后续 token 复用前几个 transformer 层,但 MTP 在每个位置都进行融合投影。LazyAR 直接复用 trunk 表示,延迟到第 $K$ 层才注入前级 token——这种"延迟注入"设计在短序列多候选场景中更高效。
|
||||
|
||||
配置:GR4AD 使用 $L=9, K=6$,共享前 6 层。
|
||||
|
||||
## 参考
|
||||
|
||||
- [[GR4AD]]
|
||||
- [[MTP]]
|
||||
Reference in New Issue
Block a user