当前位置: 首页 > news >正文

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任务方式,作者也有涉及,如下原文:

在这里插入图片描述

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

总结

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

相关文章:

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、摘要二、引言三、模型方法1、模型思路2、融合公式 四、训练方法总结 前言 2023年5月18日清华&智谱AI发布并开源VisualGLM-6B以来,清华KEG&…...

Flink-时间流与水印

时间流与水印 一、背景二、时间语义1.事件时间(event time)2.读取时间(ingestion time)3.处理时间(processing time) 三、水印-Watermarks1.延迟和正确性2.延迟事件3.顺序流4.无序流5.并行流 四、Windows1.…...

BiLSTM-CRF的中文命名实体识别

项目地址:NLP-Application-and-Practice/11_BiLSTM-ner-bilstm-crf/11.3-BiLSTM-CRF的中文命名实体识别/ner_bilstm_crf at master zz-zik/NLP-Application-and-Practice (github.com) 读取renmindata.pkl文件 read_file_pkl.py # encoding:utf-8import pickle# …...

paddle detection 训练参数

#####################################基础配置##################################### # 检测算法使用YOLOv3,backbone使用MobileNet_v1,数据集使用roadsign_voc的配置文件模板,本配置文件默认使用单卡,单卡的batch_size=1 # 检测模型的名称 architecture: YOLOv3 # 根据…...

用bat制作图片马——一句话木马

效果图 代码 ECHO OFF TITLE PtoR MODE con COLS55 LINES25 color 0A:main cls echo.当前时间:%date% %time% echo.欢迎使用图片马制作工具 echo.请确保图片和php在同一路径下 echo.echo 请将图像文件拖放到此窗口并按 Enter: set /p "imagefile&q…...

json_encode() 返回 false

当 json_encode() 返回 false 时,表示 JSON 编码过程失败。这通常是因为要编码的数据包含了无效的 UTF-8 字符,而默认情况下 json_encode() 会对无效的 UTF-8 字符进行严格的处理 通过添加 JSON_INVALID_UTF8_IGNORE 选项,你告诉 json_encod…...

Android-Jetpack--Hilt详解

善学者尽其理,善行者究其难 一,定义 Hilt是针对dagger2的二次封装依赖注入框架,至于什么是依赖注入,在Android开源框架--Dagger2详解-CSDN博客 中已经讲解,建议大家先去了解Dagger2之后,再来看Hilt。这样就…...

Docker 下载加速

文章目录 方式1:使用 网易数帆容器镜像仓库进行下载。方式2:配置阿里云加速。方式3:方式4:结尾注意 Docker下载加速的原理是,在拉取镜像时使用一个国内的镜像站点,该站点已经缓存了各个版本的官方 Docker 镜…...

1091 Acute Stroke (三维搜索)

题目可能看起来很难的样子,但是看懂了其实挺简单的。(众所周知,pat考察英文水平) 题目意思大概是:给你一个L*M*N的01长方体,求全为1的连通块的总体积大小。(连通块体积大于T才计算在内&#xf…...

java elasticsearch 桶聚合(bucket)

Elasticsearch指标聚合,就是类似SQL的统计函数,指标聚合可以单独使用,也可以跟桶聚合一起使用,下面介绍Java Elasticsearch指标聚合的写法。 实例: // 首先创建RestClient,后续章节通过RestClient对象进行…...

【人生苦短,我学 Python】(4)Python 常用内置数据类型 II —— 序列数据类型(str、tuple、list、bytes和bytearray)

目录 简述 / 前言1. str 数据类型(字符串)1.1 str对象1.2 str对象属性和方法1.3 字符串编码1.4 转义字符1.5 字符串的格式化 2. tuple 数据类型(元组)2.1 创建元组对象 3. list 数据类型(列表)3.1 创建列表…...

Android 9.0 系统默认显示电量百分比

Android 9.0 系统默认显示电量百分比 近来收到项目需求需要设备默认显示电量百分比,具体修改参照如下: /frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java private void updateShowPercent() {final boolean showin…...

原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显

作为四星冰系治疗角色,夏洛蒂的实战表现可以说相当让人惊喜。不仅有相当有意思的普攻动作以及技能特效,而且她还有治疗和挂冰等功能性。下面就来详细聊聊夏洛蒂是否值得培养。 【治疗量让人惊喜,但也有缺点】 说实话,在使用夏洛蒂…...

Sublime text 添加到鼠标右键菜单,脚本实现

Sublime text 添加到鼠标右键菜单 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\SublimeText] "Open with Sublime Text" "Icon""D:\\Program Files\\Sublime Text\\sublime_text.exe,0" [HKEY_CLASSES_ROOT\*\shell\Subl…...

【算法】离散化 与 哈希 之间的区别

离散化(Discretization)和哈希(Hashing)是两种不同的数据处理技术,用于处理不同类型的问题。 1. 离散化(Discretization): 离散化是将一组连续的数据映射到有限个离散值的过程。主要…...

Android : GPS定位 获取当前位置—简单应用

示例图: MainActivity.java package com.example.mygpsapp;import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat;import android.Manif…...

目标检测——R-CNN算法解读

论文:Rich feature hierarchies for accurate object detection and semantic segmentation 作者:Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik 链接:https://arxiv.org/abs/1311.2524 代码:http://www.cs.berke…...

基于傅里叶变换的运动模糊图像恢复算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、傅里叶变换与图像恢复 4.2、基于傅里叶变换的运动模糊图像恢复算法原理 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %获取角度 img…...

使用mock.js模拟数据

一、安装mock.js npm i mockjs 二、配置JSON文件 我们创建一个mock文件夹,用于存放mock相关的模拟数据和代码实现。 我们将数据全部放在xxx.json文件夹下,里面配置我们需要的JSON格式的数据。 注意:json文件中不要留有空格,否则…...

Android Handler同步屏障:深入解析

Android Handler同步屏障:深入解析 在Android开发中,Handler和MessageQueue是处理线程间通信的重要组件。除了常见的消息发送和处理功能,Handler还提供了一个高级特性:同步屏障。本文将深入探讨这一特性,包括它的工作…...

个人简介及未来展望

前言(自我介绍):各位浏览者,大家好:我是来自辽宁工程技术大学 电气与控制工程学院 自动化专业的大一新生王阔遒,现在也就是2026年4月5日,我开始书写我的人生第一篇博客,我对编程有着…...

2-3 上下文管理:让AI真正“看懂“你的项目

你有没有遇到过这种情况: 同一个AI编程工具,在Project A里表现得像个资深架构师,能准确遵循项目规范、理解业务逻辑;到了Project B,却像个刚毕业的新手,写出完全不符合规范的代码,甚至提出违背项目基础设计的修改建议。 差距在哪里? 答案:上下文管理(Context Mana…...

药流和人流哪个恢复快?术后修护行业洞察与实用指南

意外怀孕后,药流和人流的恢复差异及术后修护,是女性关注的核心话题,也是孕产修护领域的重点议题。术后修护作为缩短恢复周期、减少并发症的关键,其科学合理性直接影响女性生殖健康。本文结合行业现状与实用经验,探讨药…...

ADS7830 8位I²C模数转换器原理与Arduino/STM32跨平台驱动

1. 项目概述ADS7830 是德州仪器(Texas Instruments)推出的一款低功耗、8位精度、8通道逐次逼近型(SAR)模数转换器,专为嵌入式系统中对成本敏感、空间受限且需多路模拟信号采集的场景而设计。7Semi 公司基于该芯片开发的…...

STM32单片机技术解析与应用实践

1. STM32的崛起背景与市场格局演变在2007年之前,单片机市场呈现"三足鼎立"的格局:以STC为代表的51系列8位机占据教学和工业控制领域,MSP430在低功耗应用场景表现突出,AVR和PIC则在特定细分市场各有所长。这些8位和16位单…...

嵌入式LCD菜单框架:基于FSM的轻量级状态管理方案

1. WSEMenu 库概述WSEMenu 是一个面向嵌入式 LCD 人机交互场景的轻量级状态管理与菜单框架,专为字符型液晶显示屏(典型规格:204 字符)设计。其核心目标并非提供图形渲染能力,而是解决嵌入式系统中普遍存在的“状态跳转…...

知新研学 |AlignMamba:AlignMamba:通过局部和全局跨模态对齐增强多模态 Mamba 技术

导言 多模态表示融合是整合和理解不同模态(如音频、视频、语言)信息的关键技术,对视觉语言理解和音视频分析等应用至关重要。然而,实现有效的跨模态融合面临两大挑战:一是传统的Transformer架构虽然能捕捉动态交互&am…...

07_微服务划分与团队人数之渐进式拆分与团队演进

微服务划分与团队人数之渐进式拆分与团队演进 体系内容 演进方法:单体优先、边界识别、服务化拆分、平台能力沉淀 组织演进:小团队、部落-小队、平台团队、架构治理机制 Spring Cloud Alibaba 路线:Nacos、Gateway、Sentinel、RocketMQ、Seata 逐步引入 决策重点:什么时候…...

08_Neo4j知识体系之企业级特性与高可用架构

08_Neo4j知识体系之企业级特性与高可用架构 体系 企业特性层:集群与高可用、安全与合规、备份恢复、监控运维、Neo4j Ops Manager关联能力:与关键业务系统、金融级稳定性、多环境治理、权限审计、灾备体系密切相关适用对象:企业架构师、DBA、…...

《WebPages 邮局》

《WebPages 邮局》 引言 在互联网的海洋中,WebPages 邮局犹如一座灯塔,为无数用户指引着信息传递的航向。本文将深入探讨 WebPages 邮局的功能、优势以及其在信息时代的重要地位。 WebPages 邮局的功能 1. 邮件收发 WebPages 邮局的核心功能是邮件收发。用户可以通过 We…...