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才计算在内…...
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还提供了一个高级特性:同步屏障。本文将深入探讨这一特性,包括它的工作…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
