张芷铭的个人博客

3D RoPE 将传统旋转位置编码从一维扩展到三维(时间+空间),为视频 Transformer 提供时空位置感知能力。

核心原理

维度分配策略

将注意力头维度拆分为三部分:

1
2
3
dim_t = hidden_size_head - 4*(hidden_size_head//6)  # 时间维度
dim_h = (hidden_size_head//6)*2                     # 高度维度
dim_w = (hidden_size_head//6)*2                     # 宽度维度

示例:hidden_size_head=192 时,时间/高度/宽度各占 64 维。

频率张量生成

1
2
3
4
freqs_t = grid_t  ω_t  # 时间频率 (T, dim_t//2)
freqs_h = grid_h  ω_h  # 高度频率 (H, dim_h//2)
freqs_w = grid_w  ω_w  # 宽度频率 (W, dim_w//2)
freqs = broadcat((freqs_t, freqs_h, freqs_w), dim=-1)  # 三维融合

旋转变换

$$\text{rotated_vector} = \text{vector} \cdot \cos\theta + \text{rotate_half}(\text{vector}) \cdot \sin\theta$$

关键技术点

模块功能突破
维度分配头维度拆分为 T/H/W均衡时空位置容量
动态坐标PNP 模式适配裁剪/缩放灵活处理不规则输入
旋转算子复数乘法等价形式等距变换保留特征模长
插值外推缩放位置索引突破训练序列长度限制

视频生成价值

场景作用
运动建模相邻帧特征方向连续变化,学习运动一致性
分辨率泛化空间旋转与像素坐标绑定,支持动态分辨率
计算高效无额外参数,推理速度提升约 15%

该设计已成为 Sora、VideoPoet 等视频生成模型的核心组件。

Comments