-
滑动窗口模块: 首先,输入图像被划分为不重叠的块,每个块的大小为448x448像素。然后,每个块进一步被细分为14x14像素的更小的补丁,每个补丁被视为一个词符。
-
Transformer块处理: 接着,每个窗口补丁上的词符被送入继承自预训练CLIP模型的Transformer块进行处理。这些Transformer块用于提取和处理每个补丁上的特征。
VIT将每一块patch拉伸成一个向量,向nlp中的词向量的表示看齐。
-
转移窗口注意力: 为了在各个窗口补丁之间建立连接,转移窗口注意力机制被集成到Transformer块中。这种机制有助于捕捉不同补丁之间的上下文关系。
滑动窗口向左上方向循环移位,产生新的窗口。窗口经过移位后,导致窗口数量增加了。
解决的方法是将较小的窗口填充到M×M的大小,并在计算注意力时屏蔽填充值。将左上方小块循环移位填充到右下方,如上图。在这个移位之后,某些窗口内可能由几个在特征图中不相邻的子窗口组成,因此使用掩蔽机制将自注意计算限制在每个子窗口内(这个子窗口是指被移动的不同颜色的小块构成的,这些有颜色的部分会被遮盖)。通过循环移位,窗口的数量与常规窗口分区的数量相同。
为了实现更平滑的训练初始化,作者对转移的窗口注意力进行了修改,允许它们从零初始化开始学习,避免在初始阶段对早期特征进行过度转换。
-
全局特征提取: 输入图像被调整为448x448像素大小,并输入到CLIP模型中以提取全局特征。这些全局特征与子图像的特征一起被共享的图像重采样器处理,以保持与语言域的一致性。
-
图像重采样器: 用于改变图像分辨率或大小的工具或算法。其主要目的是通过添加或删除像素来改变图像的大小,通常是为了适应不同的显示设备、应用场景或处理要求。
-
词符重采样器: 接下来,词符重采样器被用于压缩标记的长度,从而进一步最小化语言空间中的冗余。这有助于减少数据中的噪声和冗余信息。
首先,作者利用词符过滤算法来选择最有价值的token。
为了避免直接丢弃其他token造成的信息损失,作者利用重要的token作为查询,并采用交叉注意力来进一步聚合所有特征。
-
大型语言模型分析: 最后,处理后的特征与输入问题相结合,并由大型语言模型进行分析,以产生所需的答案。这个大型语言模型可能是预训练的,用于处理文本输入并生成答案。
由于 TextMonkey 与其他大语言模型一样被训练来预测下一个标记,因此它只需要在训练时最大化损失的可能性。
其中I是输入图像,Q是问题序列,s~是输出序列,s是输入序列, L是输出序列的长度。