CogVLM: Visual Expert for Pretrained Language Models 简读

ops/2025/3/4 10:31:31/
背景与模型信息

其原始论文《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 的训练分两个阶段:

  1. 预对齐:首先训练视觉编码器和 MLP 适配器,以确保图像特征与文本特征的对齐。这一步通常使用大规模图像-文本对数据,如 CC3M 数据集的子集。
  2. 多模态微调:在预对齐后,对整个模型进行端到端微调,使用各种跨模态任务的数据集,如图像标注、视觉问答和参照表达任务。训练过程旨在让模型学习如何在不同任务上表现优异。
性能与评估

在这里插入图片描述

  • 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

http://www.ppmy.cn/ops/163018.html

相关文章

计算机视觉|ConvNeXt:CNN 的复兴,Transformer 的新对手

一、引言 在计算机视觉领域,卷积神经网络(Convolutional Neural Networks,简称 CNN)长期以来一直是核心技术,自诞生以来,它在图像分类、目标检测、语义分割等诸多任务中都取得了令人瞩目的成果。然而&…

ArcGIS操作:11 计算shp矢量面的质心坐标

1、打开属性表 2、添加字段 3、设置字段名称、类型 4、选择创建的字段,计算几何 5、选择属性质心的x坐标、坐标系(y坐标同理) 注意:计算坐标一般使用的是地理坐标系(投影坐标系转地理坐标系教程:ArcGIS操作…

C++对象特性

#构造函数 和 析构函数 构造函数:主要为对象属性赋值 语法:类名(){} 注意: 1.无返回值也无void 2.函数名称与类名相同 析构函数 语法:~类名(){} 注意: 1.无返回值也无void 2.不可以有参数&#xff0c;不可发生重载 class Person { public://构造函数Person(){cout<<&quo…

Wayland Architecture Wayland架构

本文只是翻译&#xff0c;原文地址Chapter 3. Wayland Architecture X vs. Wayland Architecture 理解Wayland架构及其与X的不同之处的一个好方法是跟踪一个事件从输入设备到它在屏幕上产生影响的点的过程。 这是我们现在在X中的情况&#xff1a; 内核从输入设备获取事件&…

物联网水位计集成GPS

在物联网&#xff08;IoT&#xff09;应用中&#xff0c;将水位计与 GPS&#xff08;全球定位系统&#xff09; 集成&#xff0c;可以为水位监测系统增加地理位置信息&#xff0c;从而提升数据的空间维度和应用价值。以下是集成GPS的水位计的详细功能、优势和应用场景&#xff…

Linux的进程观:简单性如何成就强大性(三)

1. 环境变量 1.1. 基本概念 环境变量(environment variables)⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数。 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪⾥&#xff0c;但是照样可以链接…

【在Spring Boot项目中接入Modbus协议】

【在Spring Boot项目中接入Modbus协议】 在Spring Boot项目中接入Modbus协议&#xff0c;可以通过使用第三方库&#xff08;如jamod或modbus4j&#xff09;来实现。以下是一个基本的步骤指南&#xff0c;帮助你在Spring Boot项目中集成Modbus。 1. 添加依赖 首先&#xff0c;…

【easy视频 | day02】管理端登录校验 + 分类管理 + 文件上传

文章目录 前言回顾完成任务1. 管理端登录登录校验 2. 分类管理2.1 分类列表2.2 保存分类2.3 删除分类2.4 改变排序2.5 刷新缓存 3. 文件上传3.1 上传图片3.2 获取图片资源 前言 本项目非原创&#xff0c;我只是个小小白&#xff0c;跟随 b 站脚步&#xff0c;找到老罗的这个项…