“闭门造车”之多模态思路浅谈:位置编码

9d311492e493e2055936e4cb8e2adc74.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 科学空间

研究方向 | NLP、神经网络

在前面的文章中,我们曾表达过这样的观点:多模态 LLM 相比纯文本 LLM 的主要差异在于,前者甚至还没有形成一个公认为标准的方法论。这里的方法论,不仅包括之前讨论的生成和训练策略,还包括一些基础架构的设计,比如本文要谈的“多模态位置编码”。

对于这个主题,我们之前在《Transformer升级之路:多模态位置编码的简单思考》就已经讨论过一遍,并且提出了一个方案(RoPE-Tie)。然而,当时笔者对这个问题的思考仅处于起步阶段,存在细节考虑不周全、认识不够到位等问题,所以站在现在的角度回看,当时所提的方案与完美答案还有明显的距离。

因此,本文我们将自上而下地再次梳理这个问题,并且给出一个自认为更加理想的结果。

fde90eaeea66a185f474da3d2300cf73.png

多模位置

多模型模型居然连位置编码都没有形成共识,这一点可能会让很多读者意外,但事实上确实如此。对于文本 LLM,目前主流的位置编码是 RoPE(RoPE 就不展开介绍了,假设读者已经熟知),更准确来说是 RoPE-1D,因为原始设计只适用于 1D 序列。后来我们推导了 RoPE-2D,这可以用于图像等 2D 序列,按照 RoPE-2D 的思路我们可以平行地推广到 RoPE-3D,用于视频等 3D 序列。

然而,以上说的只是单一模态输入,当多种模态混合输入时,困难就出现了:文本是 1D 序列,所以它的位置只是一个标量 n;图像是 2D 的(“宽”和“高”),所以表达它的位置需要一个二维向量 (x,y);视频则在图像的基础上新增了一个时间维度(或者说“帧”),所以它的位置是一个三维向量 (x,y,z)。当我们希望用同一个模型去处理三种模态的数据时,就要想办法糅合这三种不同形式的位置信息。

大家都知道,RoPE 在实现上是绝对位置编码,但结合基于内积的 Attention 来用时,内积之后位置会自动作差,从而实现了相对位置编码的效果。可同一大小的向量可以作差,不同大小的向量怎么作差呢?这就是多模态位置编码的困难所在。

不少工作选择“逃避”这个困难,直接 Flatten 所有模态然后使用 RoPE-1D,这不失为一种解决办法,但终究显得不够优雅。此外,强行 Flatten 也可能会降低模型性能的天花板,因为《VisionLLaMA: A Unified LLaMA Backbone for Vision Tasks》[1] 等工作已经表明,RoPE-2D 助于提升模型效果尤其是变分辨率输入的效果。

24c3ab0c220c3cefb7777c7b493cd056.png

向后兼容

所以,我们希望设计一种多模态位置编码,它既可以多模态混合使用,在单模态下又能退化为对应的 RoPE-1D/2D/3D,以充分解锁每个模态的能力。

刚才我们说,多模态位置编码的主要困难是不同大小的位置向量无法作差,既要保留完整的位置信息又要允许作差,那么我们就只能统一升维到最高维度。下面我们以图文混合模态为例,由于图像是 2D 的,所以我们将文本的位置编码也提升到二维,然后统一用 RoPE-2D。怎么升维都可以吗?并不是,我们希望它具有向后的兼容性,即当输入是纯文本时,它跟 RoPE-1D 完全等价。

为此&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值