CogVLM: Visual Expert for Pretrained Language Models 简读

devtools/2025/3/6 0:41:37/
背景与模型信息

其原始论文《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/devtools/164869.html

相关文章

android13打基础: 控件alertdialog

测试alertdialog的activity // todo: 高级控件alertdialog public class Ch4_AlertDialogActivity extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);…

机器学习决策树

一、香农公式 熵: 信息增益: 信息增益信息熵-条件熵 前者是初始信息熵大小,后者是因为条件加入后带来的确定性增加 信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度 信息增益越大说明影响越大 二、代码 ""&…

神策数据严正声明

近日,我们发现有不法分子冒充神策网络科技(北京)有限公司(以下简称”神策数据”)的名义,发布虚假的招聘广告、面试邀请,企图误导求职者并进行不法行为。对此,我司发布严正声明&#…

python学习笔记——Thread常用方法

Thread对象中的一些方法: 以前说过多线程,用到threading模块中的Thread对象,其中的start和run方法比较熟悉了,start()是重载了Thread对象中的run方法,其实作用还是,当执行这个start…

第十五届蓝桥杯:dfs之数字接龙

#include <iostream> using namespace std; const int N 300; int a[N][N];//存值 int b[N][N];//判断某个点是否出现过 int n,k; string path; int dx[] {-1,-1,0,1,1,1,0,-1}; int dy[] {0,1,1,1,0,-1,-1,-1}; bool dfs(int x,int y,int cur,int pos) {if(pos n*n…

本地部署 DeepSeek:从 Ollama 配置到 Spring Boot 集成

前言 随着人工智能技术的迅猛发展&#xff0c;越来越多的开发者希望在本地环境中部署和调用 AI 模型&#xff0c;以满足特定的业务需求。本文将详细介绍如何在本地环境中使用 Ollama 配置 DeepSeek 模型&#xff0c;并在 IntelliJ IDEA 中创建一个 Spring Boot 项目来调用该模型…

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

前言——25机械考研复试专业面试问题汇总 机械复试超全流程攻略 机械复试看这一个专栏就够用了!机械复试调剂英语自我介绍口语专业面试常见问题总结 机械保研面试-CSDN博客https://blog.csdn.net/weixin_56510835/article/details/143101233 本专栏包含的所有文章内容,可以看…