Qihoo-T2X — An Efficient Proxy-Tokenized Diffusion Transformer for Text-to-Any-Task

DeepLearning-Paper-with-Code · Diffusion Model · arXiv(2024) / ICLR(2025) · 360 AI Research · Jing Wang, Ao Ma et al.
核心论点关键概念实证证据方法论

🎮 费曼一分钟

问题:DiT 全局 self-attention 对视觉 token 是 $O(N^2)$,高分辨率图/长视频算不动;且 PixArt 注意力图显示同窗口内 token 对远处位置注意力几乎一样——大量全局注意力是冗余的。

PT-DiT:每个时空窗口做 平均池化 得一个 proxy token;proxy 之间做 self-attention(GIIM)建模全局,再 cross-attention 广播回全部 latent;局部细节用 Swin 式 window + shift-window attention(TCM)补纹理。

Qihoo-T2X 家族:同一 PT-DiT 骨架 → T2I / T2V / T2MV(文生图、文生视频、文生多视角)。压缩比随分辨率变:(1,2,2)→(1,4,4)→(1,8,8)→(1,16,16)。

效率:同参数量下 GFLOPs ≈ DiT 的 51%、PixArt-α 的 66%;T2V 上 FVD 384(DiT 系 SOTA),显存随帧数增长远慢于 EasyAnimateV4 全 3D attention。

Abstract

原文翻译解析

Global self-attention in DiT is redundant because visual information is sparse/repetitive; tokens in the same window have similar attention to distant locations.

PT-DiT: sparse representative (proxy) token attention — average per spatial-temporal window → proxy SA → cross-attn to all latents; plus window/shift-window attention for detail.

Qihoo-T2X: T2I, T2V, T2MV. ~49% complexity reduction vs DiT, ~34% vs PixArt-α.

视觉信息稀疏重复 → 全局注意力冗余;同窗口 token 对远处注意力图几乎相同。

用窗口平均 proxy token 做稀疏全局建模 + cross-attn 注入;window/shift-window 补局部纹理。

推出 Qihoo-T2I/V/MV;算力显著低于 DiT/PixArt-α。

与 DAM / AgentAttention

DAM 用 mediator token 代理 Q/K;本文用空间先验平均得 proxy,再 GIIM+TCM 分工。比「直接砍 attention 矩阵」更保留局部邻域差异(TCM 负责)。

📄 Figure 1:Qihoo-T2I 样例

Qihoo-T2I 生成样例
高保真、美学良好、文本对齐。点击放大。

1. Introduction

Sora/Vidu/CogVideoX/Lumina-T2X 等证明 DiT 可扩展,但全局 attention $O(N^2)$ 阻碍高分辨率与长视频。

3D full attention 强于 2D+1D temporal,但算力爆炸;2D+1D 时空建模弱。

Key observation (Fig. attn): within a $4\times4$ window, attention to distant tokens is nearly identical across window tokens; neighboring tokens differ — dense long-range SA is redundant, local SA is critical.

DiT 质量好但全局注意力贵;全 3D attention 强但不可扩展。

核心观察:同窗口内 token 对「远处」注意力几乎一样 → 可用少量 proxy 代表;对「近处」差异大 → 需 window attention。

设计分裂

GIIM = 廉价全局(proxy SA + cross);TCM = 昂贵但局部的 window/shift-window。与 RelaCtrl「按层选条件」正交——本文是按空间稀疏化 token 参与全局 attention

📄 Figure 2:PixArt-α 注意力冗余可视化

注意力图
同窗口 16 token 对全图注意力:横轴位置相同则纵轴几乎平行(远处冗余);近邻 token 差异明显。点击放大。
简版读图

左图:$N\times N$ self-attention,$N=h\times w$(latent patch 网格展平后的 token 数)。格子 $(i,j)$ = token $i$ 对 token $j$ 的权重;对角线亮 = 看自己及空间近邻权重大。

右上Latent Code 为 $w\times h$ 二维网格,浅蓝框 = 其中一个 $4\times4$ 空间窗;Token Index 为展平后的 1D 序列(省略号表示全长),浅蓝格 = 窗内 token 的 index(行优先时四行 index 段间常隔 $w$,不一定连续);Attention Map 每条横线 = 某 token 对全图 $N$ 个 target 的一行权重。

右下:每条横带 = 窗内 1 个 token 的 attention 行;图只画 4 条示意,论文实际 assemble 16 条($4\times4$)。单行内近处 target 亮、远处暗,属正常分布。

论文结论(竖着比行):固定横轴某一列(同一 target)——若 target 远离 该窗,16 行在该列几乎同色 → 重复计算 → GIIM 用窗口 mean proxy;若 target 靠近 窗,16 行明显不同 → 不能压成 1 个 proxy → TCM 用 window / shift-window 保留邻域差异。冗余指「行间对 distant target 几乎平行」,不是「远处暗就可删」。

GFLOPs 对比
PT-DiT/L vs PixArt-α 多分辨率 GFLOPs(约 −33%)。点击放大。

3. Method

原文翻译解析

Latent $z \in \mathbb{R}^{C\times F\times H\times W}$ → patch embed → $z_s \in \mathbb{R}^{N\times D}$ + 3D PE → PT-Block (GIIM + TCM + text cross-attn + MLP).

GIIM (Eq. GIIM): reshape $z_s$ to $f\times h\times w$; per window $p_t\times p_h\times p_w$ average → proxy $P_a$; $\mathrm{SA}(P_a)$ then $\mathrm{CS}(z_s, \cdot)$; zero-init linear for stability.

$$z_s = \mathrm{CS}\big(z_s,\; \mathrm{SA}(\mathrm{Averaging}(z_s))\big)$$

3D VAE latent patch 化后进 PT-Block。

GIIM:窗口平均得 proxy → proxy 自注意力 → latent 作 Q、proxy 作 KV 的 cross-attention 广播全局信息。

复杂度

全 SA:$2N^2D$。GIIM+TCM:$2\frac{N^2}{(p_fp_hp_w)^2}D + 2\frac{N^2}{p_fp_hp_w}D + \cdots$。2048² 时仅剩全 attention 的 2.3%(论文式 17)。

📄 Figure 3:PT-DiT 架构

PT-DiT 架构
GIIM(proxy-tokenized 全局)+ TCM(window/shift-window 纹理)+ 文本 cross-attn。点击放大。

TCM (Eq. TCM): reshape to windows; $\hat{z_s}=\mathrm{WSA}(z_s)+z_s$; $z_w=\mathrm{SWSA}(\hat{z_s})+\hat{z_s}$ — Swin-style shift avoids grid artifacts (Fig. ablation_shift).

Compression ratios (image): $(p_f,p_h,p_w)$ = (1,2,2)/(1,4,4)/(1,8,8)/(1,16,16) at 256/512/1024/2048 — keep window count stable across resolutions for curriculum training.

Video: $p_f=4$ fixed; proxy compresses across time → efficient 3D spatiotemporal modeling.

TCM:窗口内 self-attention + 移位窗口,补 GIIM 稀疏全局丢掉的纹理细节。

分辨率越高压缩比越大,但窗口总数保持一致以利低→高分辨率训练。

视频固定时间维压缩 $p_f=4$。

消融要点

w/o TCM:FID 19.30→69.07(ImageNet 256);w/o GIIM:23.71;w/o shift-window:23.59 + 明显 grid。Proxy 提取:Average 19.30 > Top-Left 20.84 > Random 21.00。

flowchart TB
  subgraph PTBlock [PT-Block]
    Z[Latent tokens z_s] --> GIIM
    subgraph GIIM [GIIM]
      Avg[Window average → proxy P_a] --> PSA[Proxy self-attention]
      PSA --> CSA[Cross-attn: z_s Q, proxy KV]
    end
    CSA --> TCM
    subgraph TCM [TCM]
      WSA[Window self-attention] --> SWSA[Shift-window attention]
    end
    SWSA --> TXT[Text cross-attention + MLP]
  end
自绘:单 PT-Block 数据流(点击放大)。

💻 代码对照 — MindSpeed-MM PT-DiT

官方推理代码在昇腾 MindSpeed-MM/examples/qihoo_t2x(GitHub 360CVGroup/Qihoo-T2X 为 README/权重索引)。核心实现:mindspeed_mm/models/predictor/dits/pt_dit_diffusers.pyProxyTokensTransformerBlock

论文模块代码说明
GIIM · Averagingget_proxy_token(..., mode="mean")compress_ratios 窗口 reshape 后 mean → proxy
GIIM · Proxy SAproxy_attn1proxy token 间 self-attention
GIIM · Cross broadcastpvisual_attn2 + linear_1_visual (zero-init)latent Q × proxy KV;zero_module 稳定训练
TCM · Window SAattn1 on window-grouped tokens每窗口内 self-attention
TCM · Shift-windowwindow_shift / window_Ishift3D cyclic shift,对应 SWSA
压缩比compress_ratios, proxy_compress_ratios分辨率相关 $(p_f,p_h,p_w)$
推理入口inference_qihoo.py + qihoo_pipeline.pyexamples/qihoo_t2x/inference_qihoo.sh

① Proxy token 提取 — 对应 Eq. GIIM Averaging

# pt_dit_diffusers.py — get_proxy_token def get_proxy_token(hidden_states, compress_ratios, scale_ratio, window_number, mode='first'): # reshape to (batch, f, h, w, window_tokens, dim) then pool ... if mode == 'mean': proxy_hidden_states = proxy_hidden_states.mean(1) # 论文默认:窗口平均 proxy_hidden_states = rearrange(proxy_hidden_states, "(b p) n c -> b (p n) c", p=window_number) return proxy_hidden_states

消融表:mean(19.30) > top-left(20.84) > random(21.00) — 与论文 Table proxy 一致。

② PT-Block forward — GIIM → TCM 顺序

# ProxyTokensTransformerBlock.forward (简化) # 1. GIIM: proxy self-attention proxy_hidden_states = self.get_proxy_token(hidden_states, compress_ratios, self.scale_ratio, window_number, mode="mean") proxy_hidden_states = self.proxy_attn1(self.proxy_norm1(proxy_hidden_states), ...) + proxy_hidden_states # 2. GIIM: proxy → all latent cross-attention (zero-init linear_1_visual) pvisual_out = self.pvisual_attn2(a_hidden_states, encoder_hidden_states=proxy_hidden_states, ...) hidden_states = hidden_states + self.linear_1_visual(pvisual_out) # 3. TCM: window self-attention hidden_states = self.attn1(norm_hidden_states, ...) + hidden_states # 4. TCM: shift-window (if shift_window=True) if self.shift_window: shifted = self.window_shift(hidden_states, window_number, compress_ratios, num_frames, height, width) ... # shift-window attn + window_Ishift 还原

③ 推理配置

examples/qihoo_t2x/inference_model_image.json 指定权重路径;demo.txt 写 prompt;T5-XXL + Open-Sora-Plan VAE 1.2。权重:HuggingFace qihoo360/Qihoo-T2X

4. Experiments

TaskMetricQihooBest baseline
T2ICOCO FID-30k↓15.70Imagen 7.27
T2VUCF FVD↓384.03PixelDance 242.82 (U-Net)
T2VMSR-VTT FVD↓375.23DynamiCrafter 219.31
T2V DiTUCF FVD384CogVideoX 680

训练:PT-DiT/XL 1.1B;T2I 50M(32M LAION+18M HQ)三阶段 256→512→1024;T2V WebVid 10M + 3M HQ video。v-prediction, T5, cfg=6, 50 steps。

T2I FID 受数据分布影响非 SOTA,但质量定性可比 Flux/PixArt。T2V 在 DiT 系 UCF/MSR-VTT FVD 领先 CogVideoX/EasyAnimateV4。

64GB Ascend 910B 可训 PT-DiT/XL:图 2048² 或视频 512²×288 帧。

效率 Fig.8–9

PT-DiT/H vs Lumina-Next:512/2048 上 GFLOPs −82%。PT-DiT/XL T2V 算力仅为 CogVideoX/EasyAnimate 的 50%;训练显存随帧数近线性,EasyAnimate 全 3D attention 陡增。

📄 Figure 5–7:T2I / T2V / T2MV 定性

T2I 对比
vs PixArt-α、Flux 等。点击放大。
T2V 对比
vs EasyAnimateV4、CogVideoX。点击放大。
T2MV
纯文本生成 512×512×24 多视角,无相机参数。点击放大。

📄 Figure 8–10:算力对比 & Shift-window 消融

T2I GFLOPs
多尺度 PT-DiT vs Lumina-Next / DiT / DAM。点击放大。
T2V GFLOPs 显存
左:GFLOPs;右:训练显存 vs 帧数。点击放大。
shift window 消融
无 shift-window 出现 grid 伪影。点击放大。

5. Conclusion

PT-DiT uses proxy-tokenized attention + window/shift-window for efficient DiT on T2I/T2V/T2MV. Competitive quality, major FLOPs/memory savings — especially for long video sequences.

用 proxy 稀疏全局 + 局部 window 补细节;一套架构覆盖文生图/视频/多视角;为长高分辨率 DiT 提供可扩展路径。

局限

COCO FID 非顶尖;推理依赖昇腾 MindSpeed 栈;T2MV 仅 40k Objaverse 子集;与 FlashAttention/稀疏 kernel 未联合报告。

符号速查表

符号含义
PT-DiTProxy-Tokenized Diffusion Transformer
GIIMGlobal Information Interaction Module(proxy SA + cross)
TCMTexture Complement Module(WSA + SWSA)
$P_a$窗口平均得到的 proxy token 集合
$(p_f,p_h,p_w)$时间/高/宽压缩比
Qihoo-T2I/V/MV文生图 / 文生视频 / 文生多视角产品

论证总览

观察:同窗口 token 对远处注意力几乎相同 → 全局 dense SA 冗余

GIIM:窗口平均 proxy → SA(proxy) → CS(latent, proxy)

TCM:window + shift-window 补局部纹理(防 grid)

分辨率自适应压缩比 + 视频 p_f=4 → 同一骨架 T2I/T2V/T2MV

算力:≈51% DiT / 66% PixArt;T2V FVD DiT 系 SOTA;显存随帧数缓增
强项:动机有注意力可视化支撑;GIIM+TCM 分工清晰;一套 PT-DiT 统一多任务;开源推理+HF 权重。
弱项:T2I 零样本 FID 一般;工程绑定 Ascend;与 Mamba/线性 attention 路线未充分对比。

🧩 结构化十问(AI 解构)

Q1 · 解决什么问题?
DiT 全局 self-attention 对高分辨率图和长视频算力为 $O(N^2)$,且视觉 token 在窗口内对远处位置的注意力高度冗余。需要保留全局语义同时砍掉冗余计算
Q2 · PT-DiT 核心机制?
每时空窗口平均出一个 proxy token;proxy 间 self-attention 建模全局;cross-attention 把信息广播回所有 latent;再用 window/shift-window attention 补局部纹理。
Q3 · 与 DAM / AgentAttention 区别?
DAM 用 mediator 改 Q/K 路径;AgentAttention 面向 ViT 理解。本文针对扩散生成,用空间平均 proxy + 独立 TCM,并给出 T2V 三维压缩与多任务产品化。
Q4 · 为什么用平均而不是取左上角 token?
消融:Average FID 19.30 vs Top-Left 20.84 vs Random 21.00。单点 token 不能代表窗口整体语义,损害 proxy 全局建模。
Q5 · 压缩比怎么设?
图像:256/512/1024/2048 对应 (1,2,2)/(1,4,4)/(1,8,8)/(1,16,16),保持窗口数量跨分辨率一致以利课程学习。视频:$p_f=4$ 固定。
Q6 · TCM 为什么必要?
去掉 TCM 后 ImageNet FID 从 19.30 崩到 69.07——稀疏全局无法刻画细纹理。Shift-window 再避免 window 边界 grid(FID 19.30→23.59)。
Q7 · Qihoo-T2X 包含哪些任务?
T2I Qihoo-T2I(PT-DiT/XL 1.1B,三阶段分辨率);T2V Qihoo-T2V(WebVid+HQ);T2MV 纯文本生成 24 视角(G-Objaverse 40k)。
Q8 · 实验效果?
T2V UCF FVD 384、MSR-VTT FVD 375,DiT 系优于 CogVideoX/EasyAnimateV4;GFLOPs/显存显著更低。T2I COCO FID 15.7 受数据域影响,定性可比 SOTA。
Q9 · 代码在哪?
推理:MindSpeed-MM/examples/qihoo_t2x;模型 pt_dit_diffusers.py;权重 HuggingFace qihoo360/Qihoo-T2X。GitHub 360CVGroup/Qihoo-T2X 主要为文档入口。
Q10 · 与 CogVideoX / FancyVideo 关系?
同 360 系(Ao Ma 等):CogVideoX 用全 3D expert attention;FancyVideo 改 cross-frame 文本。Qihoo-T2X 走另一条效率路线——proxy 稀疏化 attention,可视为 DiT 架构层优化而非条件注入层优化。

🔬 深挖

「远处冗余、近处关键」的设计含义

GIIM 负责低频全局布局(谁在哪、整体色调);TCM 负责高频邻域关系(边缘、纹理)。这与多尺度信号处理直觉一致,也解释为何不能只砍 attention 而不加 window。

T2MV = 静态物体「假视频」

把环绕物体的多视角当作 $F=24$ 视频,复用 PT-DiT 时空压缩——同一套 proxy 机制在「帧间冗余极大」时收益最高。

批判性思维

  • FID 基准:MS-COCO 零样本对自有 50M 混合数据不友好,需更多 in-domain 指标。
  • 与 kernel 融合:proxy 减的是有效 $N$,FlashAttention 减的是常数;二者是否可叠加未测。
  • 平均池化信息损失:极高压缩比 (1,16,16) 下单 proxy 能否代表复杂语义?Table ratio 在 (1,4,4) 已开始退化。
  • 生态:主力代码在 Gitee+Ascend,PyTorch/CUDA 社区复现门槛高于 CogVideoX。