补充二:从 2D-RoPE 到 3D-RoPE——位置编码的"维度长征"
位置编码(Positional Embedding)这五年走过的路线,其实是一步步"升维"的过程:
1D(文本): 最初的 Transformer 用正弦/余弦函数给每个词一个绝对位置。但绝对位置意味着"第1000个token"和"第1个token"的编码方式完全不同,模型很难外推到更长文本。
2D(图像): DINOv3 引入 2D-RoPE(Rotary Positional Embedding),把平面坐标编码成旋转角度。关键是"相对性":模型学到的不是"这个token在第(100,200)像素",而是"这个token相对于那个token向右上偏移了多少"。这让外推成为可能——模型没见过 4K 分辨率?没关系,相对偏移的逻辑是一样的。
2.5D(视频滑窗): V-JEPA 2 等视频模型处理时空的方式,其实是把时间当"另一个空间维度",用 3D tubelet(比如 2×16×16,2帧×16高×16宽)一次性编码。但这有个问题:tubelet 的"时间厚度"是固定的,视频长度变了就得重新设计 tubelet,或者像论文里那样手动重复帧来凑数。
3D(OmniStream): 真正的突破是把时间 t、高度 y、宽度 x 放在同一个旋转编码框架里,但保持各自的相对独立性。2:3:5 的维度分配意味着:模型用不同"频率"的旋转来感知时间流动、垂直位置、水平位置。这不是简单的"加一维",而是让三个维度共享同一个数学结构(旋转),但各自保留独立的物理含义。
更深层的意义:3D-RoPE 让模型对"时空"有了连续的、相对的、可外推的直觉。而不是像 tubelet 那样把时空切成固定大小的积木块。
一个有趣的延伸思考:如果未来加入音频模态,能不能做 4D-RoPE?把时间、高度、宽度、频率四个维度统一编码?或者对点云数据做 3D-RoPE(x, y, z 而非 x, y, t)?OmniStream 的框架似乎预留了这种扩展性。
#OmniStream #3DRoPE #位置编码 #旋转位置编码 #小凯