VLM技术介绍

news2024/9/24 19:15:15

1、背景

        视觉语言模型(Visual Language Models)是可以同时从图像和文本中学习以处理许多任务的模型,从视觉问答到图像字幕。

        视觉识别(如图像分类、物体保护和语义分割)是计算机视觉研究中一个长期存在的难题,也是自动驾驶、遥感、机器人等无数计算机视觉应用的基石。随着深度学习的出现,视觉识别研究通过利用端到端可训练深度神经网络(DNN)取得了巨大成功。 然而,从传统机器学习向深度学习的转变带来了两个新的巨大挑战,即在 "从零开始深度学习 "的经典设置下 DNN 训练收敛缓慢以及 DNN 训练中大规模、特定任务和人群标签数据的费力收集

        最近,一种新的学习范式 “预训练、微调和预测”(Pre-training, Fine tuning and Prediction)已在广泛的视觉识别任务中显示出极大的有效性。 在这种新范式下,DNN 模型首先使用某些现成的大规模训练数据(有注释或无注释)进行预训练,然后使用特定任务的注释训练数据对预训练模型进行微调。通过预训练模型学到的全面知识,这种学习范式可以加速网络收敛,并为各种下游任务训练出性能良好的模型。

2、什么是视觉语言模型

        视觉语言模型被广泛定义为可以从图像和文本中学习的多模态模型。它们是一种生成式模型,可以接受图像和文本输入并生成文本输出。

        大型视觉语言模型具有良好的零样本能力,具有良好的泛化能力,并且可以处理多种类型的图像,包括文档、网页等。用例包括谈论图像、通过指令进行图像识别、视觉问答、文档理解、图像字幕等。一些视觉语言模型还可以捕获图像中的空间属性。当系统提示检测或分割特定主题时,这些模型可以输出边界框或分割掩码,也可以定位不同的实体或回答有关其相对或绝对位置的问题。现有的大型视觉语言模型集、它们所训练的数据、它们对图像的编码方式以及它们的能力都存在很大差异。

3、VLM分类

        VLM按训练范式分成了四类:

        第一类是对比式训练(contrastive training),这是一种使用正例和负例对来训练模型的常用策略。VLM 的训练目标是为正例对预测相似的表征,为负例对预测不同的表征。

        第二类是掩码(masking),其方法是根据某些未被遮掩的文本来重建被遮掩的图块。类似地,通过遮掩描述中的词,也可以让 VLM 根据未被遮掩的图像来重建这些被遮掩的词。

        另一类是基于预训练骨干网络来训练 VLM,这往往是使用 Llama 等开源 LLM 来学习图像编码器(也可能是预训练的)和 LLM 之间的映射关系。相比于从头开始训练文本和图像编码器,学习预训练模型之间的映射关系的计算成本往往更低。大部分这类方法都是使用中间表征或部分重建,而生成式 VLM 则能生成图像或描述。有鉴于这类模型的性质,它们的训练成本通常是最高的。

        需要说明:这些范式并不是互斥的,很多方法都混合使用了对比、掩码和生成范式。

3.1 基于 Transformer 的 VLM 早期研究

        通过使用 Transformer 架构,BERT(使用 Transformer 的双向编码器表征)一诞生,就超过了当时所有的语言建模方法。之后不久,BERT 就被扩展用来处理视觉数据。visual-BERT 和 ViLBERT 是其中两个代表,它们的做法是将文本与图像 token 组合到一起。

        这些模型有两个训练目标:1) 经典的掩码建模任务,目标是预测给定输入中缺失的部分;2) 句子 - 图像预测任务,目标是预测图像标注是否描述了图像内容。通过利用这两个目标,这些模型在多种视觉 - 语言任务上表现出色,这主要是得益于 Transformer 模型有能力学会通过注意力机制将词与视觉线索关联起来

3.2 基于对比的 VLM

        基于对比的训练往往能通过基于能量的模型(EBM)更好地解释,即模型的训练目标是为观察到的变量分配低能量,为未被观察到的变量分配高能量。来自目标分布的数据的能量应该较低,其它数据点的能量应该较高。

3.3 使用掩码目标的 VLM

        在深度学习研究中,掩码是一种常用技术。它可被视为一种特定形式的去噪自动编码器,其中的噪声有一种空间结构。它也与修复(inpainting)策略有关,该策略曾被用于学习强大的视觉表征。BERT 也在训练阶段使用了掩码式语言建模(MLM)来预测句子中缺失的 token。掩码方法非常适合 Transformer 架构,因此输入信号的 token 化使得随机丢弃特定的输入 token 变得更容易。

        已经有一些研究在图像方面探索这一方法,即掩码式图像建模(MIM),具体案例包括 MAE 和 I-JEPA。很自然地,也有人将这两者组合起来训练 VLM。其一是 FLAVA,其使用了掩码在内的多种训练策略来学习文本和图像表征。另一个是 MaskVLM,这是一种独立模型。

3.4 基于生成的 VLM

        上面的训练范式主要是操作隐含表征来构建图像或文本抽象,之后再在它们之间映射,生成范式则不同,它考虑文本和 / 或图像的生成。

3.5 用预训练骨干网络构建的 VLM

        VLM 的一个缺点是从头开始训练的成本很高。这通常需要成百上千台 GPU,同时还必须使用上亿对图像和文本。因此,也有很多研究者探索使用已有的 LLM 或视觉提取器,而不是从头开始训练模型。这种做法的另一个优势是可以利用现在很多开源且易用的 LLM。通过使用这样的模型,有可能学习到仅在文本模态和图像模态之间的映射。通过学习这样的映射,仅需要少量计算资源就可让 LLM 有能力回答视觉问题

4、将 VLM 扩展用于视频

        之前谈到的 VLM 基本都是在静态视觉数据(图像)上训练和评估的。但是,视觉数据还有动态的,即视频。对 VLM 而言,视频数据既能带来新挑战,也有望为其带来新能力,比如理解物体的运动和动态或在空间和时间中定位物体和动作。用文本检索视频、视频问答和视频生成正在快速成为基础的计算机视觉任务。

        视频的时间属性对存储、CPU 内存来说都是一个巨大挑战(如果把每一帧都视为一张图像,那么帧率越高,成本就越高)。于是对于处理视频的 VLM 而言,就需要考虑多个权衡因素,比如数据加载器中动态视频解码器的压缩格式、基于图像编码器来初始化视频编码器、为视频编码器使用时空池化 / 掩码机制、非端到端 VLM。

        与图像 - 文本模型类似,早期的视频 - 文本模型也是使用自监督指标来从头开始训练视觉和文本组件。但不同于图像模型,对比式视频 - 文本模型并非首选方法,早期时人们更喜欢融合和时间对齐方法,因为相比于计算视频的全局表征,让表征中有更多时间粒度更重要。

        近段时间,视频 - 语言模型领域出现了图像 - 语言模型领域类似的趋势:使用预训练 LLM 并将其与视频编码器对齐,从而增强 LLM 的视频理解能力。视觉指令微调等现代技术也被广泛使用并被适配用于视频。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

据传 OpenAI秘密研发“Strawberry”项目

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

ollama + lobechat 搭建自己的多模型助手

背景 人工智能已经推出了快2年了,各种模型和插件,有渐渐变成熟的趋势,打造一个类似 hao123网站的人工智能模型入口,也变得有需求了。用户会去比较多个ai给出的答案,作为程序员想拥有一台自己的GPU服务器来为自己服务。…

GuLi商城-商品服务-API-品牌管理-统一异常处理

每个方法都加这段校验太麻烦了 准备做一个统一异常处理@ControllerAdvice 后台代码: package com.nanjing.gulimall.product.exception;import com.nanjing.common.exception.BizCodeEnum; import com.nanjing.common.utils.R; import lombok.extern.slf4j.Slf4j; import org…

【UE5.1】Chaos物理系统基础——06 子弹破坏石块

前言 在前面我们已经完成了场系统的制作(【UE5.1】Chaos物理系统基础——02 场系统的应用_ue5)以及子弹的制作(【UE5.1 角色练习】16-枪械射击——瞄准),现在我们准备实现的效果是,角色发射子弹来破坏石柱。…

【算法】单调队列

一、什么是单调队列 单调队列是一种数据结构,其特点是队列中的元素始终保持单调递增或递减,主要用于维护队列中的最小值或最大值。 不同于普通队列只能从队头出队、队尾入队,单调队列为了维护其特征,还允许从队尾出队 不管怎么…

【学习笔记】4、组合逻辑电路(上)

数字电路的分类:组合逻辑电路,时序逻辑电路。本章学习组合逻辑电路。 4.1 组合逻辑电路的分析 给定的逻辑电路,确定其逻辑表达式,列出真值表,得到简化后的逻辑表达式,分析得到其功能。 3位奇校验电路 &…

OSPF.综合实验

1、首先将各个网段基于172.16.0.0 16 进行划分 1.1、划分为4个大区域 172.16.0.0 18 172.16.64.0 18 172.16.128.0 18 172.16.192.0 18 四个网段 划分R4 划分area2 划分area3 划分area1 2、进行IP配置 如图使用配置指令进行配置 ip address x.x.x.x /x 并且将缺省路由…

MQTT——Mosquitto使用(Linux订阅者+Win发布者)

前提:WSL(Ubuntu22)作为订阅者,本机Win10作为发布者。 1、Linux安装Mosquitto 命令行安装。 sudo apt-get install mosquitto 以上默认只安装了mosquitto的服务,不带测试客户端工具mosquitto_sub和mosquitto_pub。如…

持续学习中避免灾难性遗忘的Elastic Weight Consolidation Loss数学原理及代码实现

训练人工神经网络最重要的挑战之一是灾难性遗忘。神经网络的灾难性遗忘(catastrophic forgetting)是指在神经网络学习新任务时,可能会忘记之前学习的任务。这种现象特别常见于传统的反向传播算法和深度学习模型中。主要原因是网络在学习新数据…

全网最详细单细胞保姆级分析教程(二) --- 多样本整合

上一节我们研究了如何对单样本进行分析,这节我们就着重来研究一下如何对多样本整合进行研究分析! 1. 导入相关包 library(Seurat) library(tidyverse) library(patchwork)2. 数据准备 # 导入单样本文件 dir c(~/Desktop/diversity intergration/scRNA_26-0_filtered_featur…

基于TCP的在线词典系统(分阶段实现)(阻塞io和多路io复用(select)实现)

1.功能说明 一共四个功能: 注册 登录 查询单词 查询历史记录 单词和解释保存在文件中,单词和解释只占一行, 一行最多300个字节,单词和解释之间至少有一个空格。 2.功能演示 3、分阶段完成各个功能 3.1 完成服务器和客户端的连接 servic…

WAF基础介绍

WAF 一、WAF是什么?WAF能够做什么 二 waf的部署三、WAF的工作原理 一、WAF是什么? WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。 国际上公认的一种说法是:Web应用防火墙是通过执行一…

电表及销售统计Python应用及win程序2

接着上一篇给代码添加了表格功能,方便更好的处理数据。 import json import os from datetime import datetime from tkinter import * from tkinter import messagebox from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure …

JAVA设计模式>>结构型>>适配器模式

本文介绍23种设计模式中结构型模式的适配器模式 目录 1. 适配器模式 1.1 基本介绍 1.2 工作原理 1.3 适配器模式的注意事项和细节 1.4 类适配器模式 1.4.1 类适配器模式介绍 1.4.2 应用实例 1.4.3 注意事项和细节 1.5 对象适配器模式 1.5.1 基本介绍 1.5.2 …

visual studio 2019版下载以及与UE4虚幻引擎配置(过程记录)(官网无法下载visual studio 2019安装包)

一、概述 由于需要使用到UE4虚幻引擎,我使用的版本是4.27版本的,其官方默认的visual studio版本是2019版本的,相应的版本对应关系可以通过下面的官方网站对应关系查询。https://docs.unrealengine.com/4.27/zh-CN/ProductionPipelines/Develo…

java实现资产管理系统图形化用户界面

创建一个💕资产管理系统的GUI(图形用户界面)❤️画面通常需要使用Java的Swing或者JavaFX库。下面我将提供一个简单的资产管理系统GUI的示例代码,使用Java Swing库来实现。这个示例将包括一个主窗口,一个表格来显示资产…

捷配笔记-如何设计PCB板布线满足生产标准?

PCB板布线是铺设连接各种设备与通电信号的路径的过程。PCB板布线是铺设连接各种设备与通电信号的路径的过程。 在PCB设计中,布线是完成产品设计的重要步骤。可以说,之前的准备工作已经为它做好了。在整个PCB设计中,布线设计过程具有最高的极限…

Web浏览器通过串口读取RFID卡号js JavaScript

本示例使用的读卡器&#xff1a;USB转RS232COM虚拟串口RFID读卡器主动读卡Web浏览器Andro、Linux-淘宝网 (taobao.com) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"…

翁恺-C语言程序设计-05-3. 求a的连续和

05-3. 求a的连续和 输入两个整数a和n&#xff0c;a的范围是[0,9]&#xff0c;n的范围是[1,8]&#xff0c;求数列之和S aaaaaa…aaa…a&#xff08;n个a&#xff09;。如a为2、n为8时输出的是222222…22222222的和。 输入格式&#xff1a; 输入在一行中给出两个整数&#xf…

深入了解 MySQL 的 EXPLAIN 命令

一、什么是 EXPLAIN 命令&#xff1f; EXPLAIN 命令用于显示 MySQL 如何执行某个 SQL 语句&#xff0c;尤其是 SELECT 语句。通过 EXPLAIN 命令&#xff0c;可以看到查询在实际执行前的执行计划&#xff0c;这对于优化查询性能至关重要。 二、EXPLAIN 的基本用法 要使用 EXP…