大型语言模型 (LLM) 处理视觉信息的方式是先将图像转换为与其基于文本的架构兼容的格式。虽然 LLM 主要处理文本标记,但它们可以通过使用单独的编码器模型将图像转换为嵌入向量——类似于文本标记的数字表示形式来整合视觉数据。例如,图像可以由诸如 CLIP 或 Vision Transformer (ViT) 之类的视觉编码器处理,该编码器将图像分解为块并将其转换为向量序列。然后,这些向量在模型的上下文窗口中被视为附加标记,从而允许 LLM 在推理过程中与文本标记一起处理它们。
视觉数据整合到上下文窗口中的方式取决于模型的架构设计。一些架构,例如 GPT-4V 或 LLaVA,会将图像嵌入向量与文本标记交错排列。例如,当用户提交图像及其相关问题时,图像首先被编码为嵌入向量序列。这些嵌入向量被插入到输入序列的特定位置,例如文本提示之前或之后。然后,LLM 处理组合序列,使用其注意力机制在视觉和文本元素之间建立连接。这种方法允许模型通过分析嵌入的视觉特征并将它们与文本中相关概念联系起来,回答诸如“描述图像中的图表”之类的问题。
然而,也存在一些实际挑战。图像嵌入向量会消耗上下文窗口中的大量标记,特别是对于高分辨率图像。为了解决这个问题,模型通常会对图像进行下采样或使用压缩技术。例如,ViT 可能会将图像分割成 16x16 像素的小块,从而减少所需的总标记数。此外,训练这些模型需要包含配对图像和文本的数据集,以教会 LLM 视觉和语言模式之间的关联。尽管采取了这些步骤,LLM 仍然不像人类那样“看”图像——它们处理视觉特征的抽象表示,这限制了它们处理细粒度细节或超出编码器捕获范围的空间关系的能力。使用多模态 LLM 的开发者必须平衡图像分辨率、标记使用量和任务需求,以优化性能。