论文:https://arxiv.org/pdf/2405.20797
github:https://github.com/AIDC-AI/Ovis
在多模态大语言模型 (MLLM) 中,不同的嵌入策略有显著的区别。以下是使用基于连接器的方法与 Ovis 方法的比较:
基于连接器的方法-优缺点(connector-based approach)
- 策略:在基于连接器的方法中,视觉嵌入通过连接器(connector)转化为与文本嵌入具有相同维度。
- 具体实现:文本嵌入从一个文本嵌入表中索引,而连接器的作用是将视觉嵌入调整到相同的尺度和形式,使其能够与文本嵌入一起处理。
- 优点:这种方法确保了视觉和文本嵌入在形式上的一致性,方便后续的联合处理。
- 缺点:连接器可能限制了视觉特征的表达能力,无法完全捕捉到视觉输入的复杂模式和细节。
Ovis 方法-优缺点
- 策略:Ovis 引入了一个额外的视觉嵌入查找表,从而生成结构化的视觉嵌入,并对齐两种模态的嵌入策略。
- 具体实现:在 Ovis 中,这个额外的视觉嵌入表的每一行对应一个唯一的视觉词汇,表示不同的视觉模式。Ovis 首先将视觉编码器输出的连续 token 映射为概率 token,通过索引视觉嵌入表多次来生成最终的视觉嵌入。这种方法利用了整个嵌入表的期望值,捕捉了视觉输入的丰富语义。
- 优点:这种方法能够更好地捕捉视觉输入中的复杂模式,提升了视觉信息的表达能力。此外,通过与文本嵌入策略的一致性设计,提高了两种模态信息的融合效果。
- 缺点:引入额外的视觉嵌入表可能增加计算复杂度,需要更多的存储和计算资源。
Ovis 总结
它提出了一种新颖的多模态大语言模型 (MLLM) 架构,称为 “Ovis”。该架构吸收了大语言模型 (LLMs) 的洞见,从而建立视觉输入的结构化嵌入。如图1所示,Ovis 引入了一个额外的可学习视觉嵌入查找表,用以转换连续的视觉tokens,从而与文本嵌入的结构完整性相呼应。图2展示了在各种基准测试中,Ovis 在相同参数范围内优于开源 MLLMs,而 Ovis-14B 在整体表现上也超越了高资源的专有模型 Qwen-VL-Plus。
具体而言,Ovis 包含一个视觉嵌入表,其行对应于唯一的视觉词汇,代表不同的视觉模式。给定由视觉编码器 [22] 输出的视觉块的连续token,Ovis 首先将该token 映射为概率token,展示其在整个视觉词汇表中的相似性。这个概率token 捕捉单个视觉块中的丰富语义,其中可能包含多个视觉词汇的模式,有效地将视觉token视为从视觉嵌入表中基于分布抽样而来。随后,Ovis多次根据概率token 索引视觉嵌入表,生成一个最终的视觉嵌入,即整个嵌入表的嵌入期望。因此,Ovis 将视觉嵌入策略与其文本嵌入结构的本质对齐。
视觉嵌入表的优化和生成概率token 的参数显著影响 MLLM 的性能。与之前方法使用图像上的向量量化自动编码器和各种其他损失不同 [78, 23, 33],Ovis 利用联合文本生成损失,并以三阶段方式优化参数。这种学习过程使得 Ovis 避免了由于缺乏文本指导而在视觉语言任务中表现不足的风险。
以开源的视觉 Transformer 和 LLM 模型作为骨干实现 Ovis,并在不同的多模态基准中评估其性能。结果表明,在大多数基准测试中,Ovis 在相同参数范围内优于流行的开源 MLLMs。具体而言,Ovis-8B 与其竞争对手相比表现出较大的优势,而 Ovis-14B 始终超越了被比较的开源 MLLMs。
首先回顾了多模态大语言模型(MLLMs)中的视觉和文本嵌入策略的差异。接着,我们介绍了提出的架构Ovis,该架构包括用于概率性tokens的线性映射和在大语言模型(LLM)中引入的视觉嵌入查找表。
1 视觉和文本tokens的差异
图像和文本都作为输入被送入MLLM,但它们的标记化策略各不相同。设 I ∈ R C × W × H I \in \mathbb{R}^{C \times W \times H} I∈RC×W×H 为图像的像素值张量,其中 C C C、 W W W、 H H H 分别表示图像的通道数、宽度和高度。图像首先被划分为一系列视觉块(visual patches) { P i ∈ R C × w × h } i = 1 , 2 , … , n \{P_i \in \mathbb{R}^{C \times w \times h}\}_{i=1,2,\ldots,n} {Pi∈RC×w×h}i=1,2,…,n,其中 w w w 和 h h h 分别表示视觉块的宽度和高度, n = ⌈ W w ⌈ ⌈ H h ⌈ n = \left\lceil \frac{W}{w} \right\lceil \left\lceil \frac{H}{h} \right\lceil n=⌈wW⌈⌈hH⌈ 为视觉块的数量。给定预训练的视觉转换器(ViT)骨干网 g θ g_{\theta} gθ ,我们将这些视觉块转换为一系列视觉表示 { r i ∈ R d } i = 1 n \{r_i \in \mathbb{R}^d\}_{i=1}^n {ri∈Rd}i=1n。
对于文本输入,设
{
t
i
}
i
=
1
m
\{t_i\}_{i=1}^m
{ti}i=1m 为文本tokens的输入序列,它们将被 LLM
f
ϕ
f_{\phi}
fϕ 处理。在 MLLM 中,视觉
{
r
i
}
i
=
1
n
\{r_i\}_{i=1}^n
{ri}i=1n 和文本
{
t
i
}
i
=
1
m
\{t_i\}_{i=1}^m
{ti}i=1m 的tokens都需要转换为相同的形式,随后 LLM 处理所有tokens,并生成一个文本tokens的输出序列。我们用
λ
\lambda
λ 来表示图像指示器token的索引,即
t
λ
=
<image >
t_{\lambda} = \text{\textless image \textgreater}
tλ=<image >,多模态输入tokens变成:
[
t
1
,
…
,
t
λ
−
1
,
<image >
,
…
,
t
m
]
(
1
)
[ t_1, \ldots, t_{\lambda-1}, \text{\textless image \textgreater}, \ldots, t_m ] \ \ \ \ \ \ \ \ (1)
[t1,…,tλ−1,<image >,…,tm] (1)由于视觉和文本tokens的维度不同,直接用
{
r
i
}
i
=
1
n
\{r_i\}_{i=1}^n
{ri}i=1n 替换
<image >
\text{\textless image \textgreater}
<image >是困难的。先前的方法引入了额外的线性投影、MLP或transformer架构来将视觉tokens映射成与文本tokens相同的形式。
2 概率性视觉Tokens
在Equation 1中与其使用连续的视觉tokens,我们对齐图像和文本的内部标记化策略以激发MLLM的潜力。为了模拟离散的文本tokens,我们使用一个线性头
R
K
×
d
R^{K \times d}
RK×d 来变换具体的视觉tokens。假设K是视觉词汇表的大小,即唯一视觉词的数量,给定一个视觉token
r
i
r_i
ri,我们首先通过线性投影和softmax归一化将
r
i
r_i
ri 转换为一个
(
K
−
1
)
(K-1)
(K−1) 维的概率单纯形
Δ
K
\Delta^K
ΔK:
v
i
=
softmax
(
W
r
i
)
,
W
∈
R
K
×
d
(
2
)
v_i = \text{softmax}(W r_i), W \in R^{K \times d} \ \ \ \ \ \ \ \ (2)
vi=softmax(Wri),W∈RK×d (2)将
v
i
∈
Δ
K
v_i \in \Delta^K
vi∈ΔK 视为一种概率token,这是一种在包含K个视觉词汇的视觉词汇表上的概率分布。如果
r
i
r_i
ri 更多地与某些模式相关,则
v
i
v_i
vi 中对应的元素应更大。
注:给定一个视觉嵌入表,我们将每个视觉词与其原型 { w i ∈ R d } i = 1 K \{w_i \in R^d\}_{i=1}^K {wi∈Rd}i=1K 关联。为了匹配一个连续的视觉token与嵌入表中的K个视觉词,我们利用内积来计算它们的相似度值。Equation 2是 r i r_i ri 与所有视觉词之间的归一化相似度。
3 视觉嵌入表
在LLMs中,通常采用文本嵌入表将词汇表中的每个词映射到一个嵌入向量。对于以one-hot形式表示的每个文本token t i t_i ti,其嵌入 T i ∈ R d ′ T_i \in R^{d'} Ti∈Rd′ 是由 t i t_i ti 中非零索引指示的文本嵌入表中的行。
类似地,我们引入一个额外的视觉嵌入表,其中每个视觉词(每一行)与一个嵌入向量 e k ∈ R d ′ e_k \in R^{d'} ek∈Rd′ 关联, d ′ d' d′ 是嵌入维度。为了使视觉和文本tokens的嵌入具有兼容的形状,我们将视觉嵌入表的维度设定为与文本嵌入表相同。
相应地,每个视觉token
v
i
v_i
vi 的嵌入可以基于概率性token推导出来:
V
i
=
∑
k
=
1
K
v
i
,
k
e
k
∈
R
d
′
(
3
)
V_i = \sum_{k=1}^K v_{i,k}e_k \in R^{d'} \ \ \ \ \ \ \ \ (3)
Vi=