COGVLM论文解读(COGVLM:VISUAL EXPERT FOR LARGE LANGUAGE MODELS)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、摘要
  • 二、引言
  • 三、模型方法
    • 1、模型思路
    • 2、融合公式
  • 四、训练方法
  • 总结


前言

2023年5月18日清华&智谱AI发布并开源VisualGLM-6B以来,清华KEG&智谱AI潜心打磨,又开发并开源了更加强大的多模态大模型CogVLM。CogVLM基于对视觉和语言信息之间融合的理解,是一种新的视觉语言基础模型 。CogVLM 可以在不牺牲任何 NLP 任务性能的情况下,实现视觉语言特征的深度融合,替换以往浅融合模式,使用重要的视觉专家模块。为此,我在阅读了论文后做出该论文解读内容,能帮助更多读者学习。

论文链接:点击这里
代码地址:点击这里
网页测试demo:点击这里
个人原文重点翻译:点击这里


一、摘要

我们提出了CogVLM模型,一个更强的open-sorce视觉语言基准模型。该模型不同于现有受欢迎大模型,是直接使图像特征嵌入语言空间浅对齐的方法。而CogVLM缩小语言模型与图像编码特征融合的gap,在这里语言模型是已训练好且冻结的模型,图像特征编码是使用了attention and FFN layer构建的可训练视觉专家模块编码图像特征。结果是,CogVLM能深度融合视觉语言特征,而不牺牲NLP任务新能。 CogVLM在10中 cross-modal基准上实现最先进性能,基准包含…

在这里插入图片描述

二、引言

VLMS模式是功能强大且应用很广的。很多视觉和多模态任务看做是token的预测,如图像说明、视觉问答、视觉定位与分割等任务。作者特别说到之前方法,以BLIP-2举列,The popular shallow alignment methods represented by BLIP-2,是一个浅对齐模型,使用Q-FORMER结构,速度快但性能不够优秀。引出弱的视觉理解能力导致模型幻觉问题,提到CogVLM保持NLP语言模型能力同时添加一个强大视觉理解模型。为此,作者提到的模型可以解决这些问题,实现深层次融合,作者也提到P-tuning与lora方法,更多细节作者说了2点:

More detailed reasons for the performance degradation of p-tuning and shallow alignment include:
第一点:训练好的语言模型权重被冻结。视觉特征嵌入文本空间无法完美匹配,在多个transformer后,视觉特征无法在更深层匹配。
第二点:在预训练期间,先前视觉描述(如 writing style and caption length) 通过粗浅的align方法编码为视觉特征,在视觉与文本一致性是很差的。

作者继续说现有一种可能方法是联合训练图像-文本,PaLi and Qwen-VL模型使用了该方式,但损害NLP能力,也可能影响以文本为中心的任务,如诗词创作和图像背景介绍。PaLM-E文章对VLM模型在预训练期间让语言模型可以训练导致灾难性遗忘,对8B语言模型掉电87.3% NLG。 为此,CogVLM为语言模型增加了可训练的视觉专家模块。在每一层中,图像特征依次都使用各自QKV矩阵+MLP嵌入到文本特征。Visual expert在保持FLOPs不变的情况下将参数数量加倍。由于原语言模型中的所有参数都是固定的,所以当输入序列不包含图像时,其行为与原语言模型相同。
最后作者也说因为先前更多有名VLM模型代码不公开,如…,我们希望开源CogVLM更好帮助研究者和工业应用。

三、模型方法

1、模型思路

模型方法有四个部分组成,第一个是视觉特征提取,只是选择模型不太一样,之前大模型一般都是VIT模型;第二个是MLP结构,没啥可说的;第三个是预训练的大语言模型,也没啥说的,第四个是视觉专家模块,我个人觉得这是一个很大变化,这个和之前的大模型就不太一样了,如图右可看出需要在每层融合,而其它大模型只在最后一层融合。


图中描述为:这个就是CogVLM结构,a图是说明输入方式,图像被预训练的VIT加工嵌入文本特征。b图是transform结构构建在语言模型种,每一层融合都有相应不同的QKV矩阵和FFN结构,紫色部分是可以训练的,其它是冻结的。
注:b图都是图像特征嵌入!!!

当然,我也将该部分重要内容原文与翻译贴于此。

在这里插入图片描述

2、融合公式

融合公式实际就是transform基本结构,作者也是先分别对图像特征与语言特征获得Q K V,并分别concat后,在使用attention公式,如下:

在这里插入图片描述

四、训练方法

作者也给出了训练方法,总体来说进行了2次预训练与finetune,大体是先做文本部分训练,在做跟框相关的训练,同时作者也给出框预测的相关设计思路,如下原文与部分翻译。
在这里插入图片描述
当然,我个人比较在意是visual grounding任务方式,作者也有涉及,如下原文:

在这里插入图片描述

这里也推荐博客:点击这里

总结

本篇论文重点结构是视觉专家模块,这个也是作者说的深入融合的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/202821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始构造一个Operator(保姆级教程)

文章目录 operator是什么operator如何开发CRD需求分析Operator1. 初始化项目2. 初始化CRD相关文件3. code-generator生成代码4. controller业务逻辑实现5. manager启动6. 本地安装调试7. 部署在集群上8. 卸载清除资源 项目地址:https://github.com/kosmos-io/simple…

java:springboot结合mybatis

背景 前我们在这篇 java:jpa、Hibernate、Spring Data JPA、ORM以及和mybatis的区别 文章中讲了 springbootjpa 的使用,今天来看一下 springboot mybatis 的组合,其实和 jpa 的使用很像,大家可以对照的来看。 Spring Boot Myba…

Day13 qt 高级控件,自定义控件,事件,绘图,定时器

高级控件 QListWidget 列表展示控件 效果 添加数据 ui->listWidget->addItem("A"); QStringList list; list << "B" << "C" << "D"; ui->listWidget->addItems(list); 设置item点击 void Widget::on_l…

Verilator 用法

Verilating … 威尔逊-斯奈德版权所有 2003-2023。 … SPDX 许可证标识符&#xff1a; 仅限 LGPL-3.0 或 Artistic-2.0 验证 Verilator 可通过五种主要方式使用&#xff1a; 使用 --cc 或 :vlopt:-sc 选项&#xff0c;Verilator 将分别把设计翻译成 C 或 SystemC 代码。 将设计…

AI Agents 闭门研讨会报名丨CAMEL、AutoAgents、Humanoid agents作者参与

青源Workshop丨No.27 AI Agents主题闭门研讨会 所谓AI智能体&#xff08;AI Agents&#xff09;&#xff0c;是一种能够感知环境、进行决策和执行动作的智能实体。它们拥有自主性和自适应性&#xff0c;可以依靠AI赋予的能力完成特定任务&#xff0c;并在此过程中不断对自我进行…

Elasticsearch 快照如何工作?

作者&#xff1a;Lutf ur Rehman Elastic 提供许多由讲师指导的面对面和虚拟现场培训以及点播培训。 我们的旗舰课程是 Elasticsearch 工程师、Kibana 数据分析和 Elastic 可观测性工程师。 所有这些课程都会获得认证。有关这些课程的详细介绍&#xff0c;请参考我之前的文章 “…

LeetCode | 二叉树的最大深度

LeetCode | 二叉树的最大深度 OJ链接 这里需要注意的一点是每次有返回值&#xff0c;需要定义变量来保存上一次的值最后取最高的一方加1 int maxDepth(struct TreeNode* root) {if(root NULL)return NULL;int left maxDepth(root->left);int right maxDepth(root->r…

Haskell和http-client库下载代码示例

haskell import Network.HTTP.Client 然后&#xff0c;我们需要定义一个函数来下载视频。这个函数将接收一个URL作为参数&#xff0c;并返回一个IO动作&#xff0c;该动作将下载视频文件到当前目录。 haskell downloadVideo :: String -> IO () downloadVideo url do --…

typora字体不能加粗

解决办法&#xff1a; typora->偏好设置->Markdown 注意里面的Markdown拓展语法部分的选项&#xff0c;直接全钩上就行

[问题解决] no CUDA-capable device is detected

先说环境&#xff0c;在docker下的gpu环境ffmpeg&#xff0c;然后今天突然无法使用&#xff0c;使用时出现如下图所示&#xff1a; 看着报错大致内容是找不到设备&#xff0c;网上寻找一番没有有用的东西&#xff0c;于是决定自己解决&#xff0c;仔细察看一番后&#xff0c;猜…

改善厦门城市内涝积水问题,实时监测城市易涝积水点

近年来&#xff0c;城市内涝积水问题已成为中国许多城市面临的严峻挑战。特别是在厦门这样的海滨城市&#xff0c;由于其特殊的地理环境和气候条件&#xff0c;内涝问题尤为突出。传统的解决方法主要依赖于人工排查&#xff0c;然而&#xff0c;这种方式存在许多缺陷。 WITBEE万…

一文秒懂|Linux字符设备驱动

我的圈子&#xff1a; 高级工程师聚集地 我是董哥&#xff0c;高级嵌入式软件开发工程师&#xff0c;从事嵌入式Linux驱动开发和系统开发&#xff0c;曾就职于世界500强公司&#xff01; 创作理念&#xff1a;专注分享高质量嵌入式文章&#xff0c;让大家读有所得&#xff01; …

『C++成长记』构造函数和析构函数

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、类的六个个默认成员函数 &#x1f4d2;1.1认识默认成员函数 二、构造函数 …

TA-Lib学习研究笔记(二)——Overlap Studies下

TA-Lib学习研究笔记&#xff08;二&#xff09;——Overlap Studies下 &#xff08;11&#xff09;SAR - Parabolic SAR 抛物线指标 函数名&#xff1a;SAR 名称&#xff1a; 抛物线指标 简介&#xff1a;抛物线转向也称停损点转向&#xff0c;是利用抛物线方式&#xff0c;随…

机器学习-回归问题(Regression)

前言 与KNN分类任务预测的输出为离散型不同. 在机器学习中&#xff0c;回归任务是用于预测连续数值型变量的任务。回归任务在很多领域都有着广泛的应用. 简单的线性回归 在一个回归问题中&#xff0c;很显然模型选择和好坏会直接关系到将来预测结果的接近程度.即寻找到一条直…

苹果输入法怎么换行?3个换行技巧,速速掌握!

在日常打字的时候&#xff0c;我们经常会遇到需要换行的情况。比如&#xff0c;在聊天、写作、编辑文档等场景下&#xff0c;当一行文字输入完成后&#xff0c;我们通常需要将光标移动到下一行再继续输入文字。那么这时候就需要我们进行换行操作。 然而&#xff0c;很多用户对…

Web安全漏洞分析-XSS(上)

随着互联网的迅猛发展&#xff0c;Web应用的普及程度也愈发广泛。然而&#xff0c;随之而来的是各种安全威胁的不断涌现&#xff0c;其中最为常见而危险的之一就是跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称XSS&#xff09;。XSS攻击一直以来都是Web安全领…

HMM(Hidden Markov Model)详解——语音信号处理学习(三)(选修一)

参考文献&#xff1a; Speech Recognition (Option) - HMM哔哩哔哩bilibili 2020 年 3月 新番 李宏毅 人类语言处理 独家笔记 HMM - 6 - 知乎 (zhihu.com) 隐马尔可夫&#xff08;HMM)的解码问题维特比算法 - 知乎 (zhihu.com) 本次省略所有引用论文 目录 一、介绍 二、建模单…

MATLAB中imbothat函数用法

目录 语法 说明 示例 使用底帽和顶帽滤波增强对比度 imbothat函数的功能是对图像进行底帽滤波。 语法 J imbothat(I,SE) J imbothat(I,nhood) 说明 J imbothat(I,SE) 使用结构元素 SE 对灰度或二值图像 I 执行形态学底帽滤波。底帽滤波计算图像的形态学闭运算&#…

从零开始,轻松打造个人化Chrome浏览器插件

说在前面 在我日常开发以及娱乐生活中&#xff0c;浏览器是我使用频率较高的一个应用&#xff0c;当我大学拥有第一部电脑开始&#xff0c;之后不论电脑换成什么&#xff0c;以及使用的是什么系统&#xff0c;我的首选浏览器都是Chrome&#xff0c;不仅仅是因为其速度快&#x…