背景与模型信息
其原始论文《CogVLM: Visual Expert for Pretrained Language Models》由 THUDM 团队在 2023 年 11 月发布于 arXiv。
模型动机
传统视觉语言模型通常使用浅层对齐方法,通过简单投影层将图像特征映射到语言模型的输入空间。这种方法可能限制了视觉和语言特征的深度融合,可能损害语言生成能力。CogVLM 通过引入视觉专家模块解决了这一问题,该模块允许在语言模型的注意力层和 FFN 层中深度融合视觉和语言特征,确保语言处理性能不受影响。
架构细节
CogVLM 的架构由四个主要组件组成:
- 视觉编码器:使用 EVA2-CLIP-E,这是一个基于 ViT 的模型,参数约为 1.8 亿。它的作用是提取图像的视觉特征。
- MLP 适配器:一个MLP,将视觉特征投影到语言模型的嵌入空间。
- 语言模型:使用预训练的大型语言模型,如 Vicuna-7B(7 亿参数)或 Vicuna-13B(13 亿参数),处理文本数据并生成语言输出。
- 视觉专家模块:这是一个可训练的模块,插入到语言模型的每个注意力层和 FFN 层。具体来说,在注意力层中,视觉专家模块通过线性投影将图像特征映射到键(key)和值(value)空间,允许语言模型以与文本特征相同的方式关注图像特征。在 FFN 层中,它可能参与处理两者结合的特征。
论文中提到,CogVLM 有两个版本:
- 7B 版本:视觉编码器为 EVA-CLIP(4 亿参数),语言模型为 Vicuna-7B(7 亿参数),总参数约 7.4 亿。
- 17B 版本:视觉编码器为 EVA2-CLIP-E(1.8 亿参数),语言模型为 Vicuna-13B(13 亿参数),总参数约 14.8 亿。尽管论文称其为“17B 版本”,但实际参数总数接近 15 亿。
训练过程
CogVLM 的训练分两个阶段:
- 预对齐:首先训练视觉编码器和 MLP 适配器,以确保图像特征与文本特征的对齐。这一步通常使用大规模图像-文本对数据,如 CC3M 数据集的子集。
- 多模态微调:在预对齐后,对整个模型进行端到端微调,使用各种跨模态任务的数据集,如图像标注、视觉问答和参照表达任务。训练过程旨在让模型学习如何在不同任务上表现优异。
性能与评估
- NoCaps:无限制图像标注任务。
- Flicker30k 标注:图像描述生成。
- RefCOCO, RefCOCO+, RefCOCOg:参照表达任务,涉及定位图像中的对象。
- Visual7W:视觉问答任务,涉及“what, where, when, why”等问题。
- GQA:复杂视觉问答任务。
- ScienceQA:科学领域的视觉问答。
- VizWiz VQA:辅助技术相关的视觉问答。
- TDIUC:图像理解和描述任务。
在这些任务上,CogVLM-17B 达到SOTA,并在 VQAv2、OKVQA、TextVQA 和 COCO 标注等任务上排名第二,超越或匹配更大的模型如 PaLI-X 55B(55 亿参数)。
其它的一些细节
尽管 CogVLM 使用了相对较小的训练数据,它在某些任务上表现与更先进的模型(如多模态 GPT-4)相当,这表明其视觉专家模块的创新设计可能比预期更有效。
开放性和后续发展
- 代码:CogVLM GitHub 仓库
此外,自原始论文发布后,开发团队推出了 CogVLM2,这是一个基于 Llama3-8B 的新版本。根据 CogVLM2 GitHub 仓库,CogVLM2 提供了以下改进:
- 在 TextVQA 和 DocVQA 等基准测试上显著提升。
- 支持 8K 内容长度。
- 支持高达 1344 x 1344 的图像分辨率。
- 提供支持中文和英文的开源模型版本
关键引用
- CogVLM GitHub 仓库 - a state-of-the-art-level open visual language model
- Original Paper - CogVLM: Visual Expert for Pretrained Language Models
- CogVLM2 GitHub Repository - GPT4V-level open-source multi-modal model based on Llama3-8B
- Medium Article Review - Paper Review: CogVLM: Visual Expert for Pretrained Language Models
- Replicate Model Page - cjwbw/cogvlm – Run with an API on Replicate