BLIP-2: 基于冻结图像编码器和大型语言模型的语言-图像预训练引导

BLIP-2: 基于冻结图像编码器和大型语言模型的语言-图像预训练引导

    • 项目地址
    • BLIP-2的背景与意义
    • BLIP-2的安装与演示
    • BLIP-2模型库
    • 图像到文本生成示例
    • 特征提取示例
    • 图像-文本匹配示例
    • 性能评估与训练
    • 引用BLIP-2
    • Hugging Face集成

在语言-图像预训练领域,BLIP-2的出现标志着一项重大进展。本篇博客将深入探讨BLIP-2的背景、意义以及它如何改变零-shot语言-图像任务的格局。
在这里插入图片描述

项目地址

https://github.com/salesforce/LAVIS/tree/main/projects/blip2

BLIP-2的背景与意义

BLIP-2是BLIP-2论文的官方实现,是一种通用且高效的预训练策略,可以轻松地利用预训练视觉模型和大型语言模型(LLMs)进行语言-图像预训练。BLIP-2在零-shot VQAv2上击败了Flamingo(65.0对56.3),在零-shot字幕生成上建立了新的技术水平(在NoCaps上的121.6 CIDEr分数,相对于之前的最佳113.2)。搭载强大的LLMs(如OPT、FlanT5),BLIP-2还为各种有趣的应用解锁了新的零-shot指导的视觉到语言生成能力!
在这里插入图片描述

BLIP-2的安装与演示

安装BLIP-2非常简单,只需执行以下命令:

pip install salesforce-lavis

或者根据LAVIS指令从源代码安装。

你还可以尝试我们的笔记本演示,体验指导式的语言到图像生成。

BLIP-2模型库

BLIP-2提供了多种模型架构和类型,包括:

  • blip2_opt:用于预训练和字幕生成
  • blip2_t5:用于预训练和字幕生成
  • blip2:用于特征提取和检索

图像到文本生成示例

让我们看看如何使用BLIP-2模型执行零-shot指导式的图像到文本生成。首先,我们从本地加载样本图像:

import torch
from PIL import Image

# 设置设备
device = torch.device("cuda") if torch.cuda.is_available() else "cpu"

# 加载样本图像
raw_image = Image.open("../../docs/_static/merlion.png").convert("RGB")
display(raw_image.resize((596, 437)))

然后,我们加载一个预训练的BLIP-2模型及其预处理器(变换):

import torch
from lavis.models import load_model_and_preprocess

# 加载预训练的BLIP-2模型
model, vis_processors, _ = load_model_and_preprocess(name="blip2_t5", model_type="pretrain_flant5xxl", is_eval=True, device=device)

# 准备图像
image = vis_processors["eval"](raw_image).unsqueeze(0).to(device)

给定图像和文本提示,询问模型生成响应:

model.generate({"image": image, "prompt": "Question: which city is this? Answer:"})  # 'singapore'

特征提取示例

BLIP-2支持LAVIS的统一特征提取接口。

图像-文本匹配示例

BLIP-2可以使用与BLIP相同的接口计算图像-文本匹配分数。

性能评估与训练

你可以通过下载数据集并运行相应脚本来评估预训练和微调模型。训练过程分为两个阶段:从头开始的预训练和第二阶段的预训练。

引用BLIP-2

你可以在ICML会议上找到关于BLIP-2的更多信息和引用。

Hugging Face集成

BLIP-2已集成到Hugging Face Transformers库中,并且通过bitsandbytes可以利用int8量化,大大减少了加载模型所需的内存量,而不会降低性能。

以上就是BLIP-2的简要介绍和功能概览,希望能为你提供一个清晰的了解。

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

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

相关文章

Mac M1 Parallels CentOS7.9 Deploy 禅道

禅道官网下载地址: https://www.zentao.net/download/max4.10-83276.html 一、官网下载 二、解压安装 将下载好的包传至CentOS7.9虚拟机 zhinian192 ~ % scp Downloads/ZenTaoPMS-max4.10-zbox_arm64.tar.gz root10.211.55.36:~ ZenTaoPMS-max4.10-zbox_arm64.tar.gz …

LabVIEW振动信号分析

LabVIEW振动信号分析 介绍如何使用LabVIEW软件实现希尔伯特-黄变换(Hilbert-Huang Transform, HHT),并将其应用于振动信号分析。HHT是一种用于分析非线性、非平稳信号的强大工具,特别适用于旋转机械等复杂系统的振动分析。开发了…

VR漫游:赋予用户720度身临其境的沉浸式体验

如今,VR全景技术已经成为了千行百业中不可或缺的一部分,随着用户对交互式、沉浸式体验的需求不断加强,VR漫游逐渐取代了传统图片,为人们带来了流畅且完整的VR宣传观看体验。 VR实景漫游真实的展示了现场环境,不仅增加了…

【yaml 文件使用】pytest+request 框架中 yaml 配置文件使用

又来进步一点点~~ 背景:最近在学习pytestrequest框架写接口测试自动化,使用yaml文件配置更方便管理用例中的数据,这样更方便 yaml 介绍: 什么是 yaml 文件:YAML 是 “YAML Ain’t a Markup Language”(Y…

Sublime的安装及汉化

sublime安装 官网sublime 点击Windows 下载参考:傻瓜式下载 sublime汉化 1)安装 Sublime Text 4 成功后,点击菜单 【Tools】 -> 【Install Package Control】; 注意:安装包控件需要等待一会,点击可…

【mongoDB】文档 CRUD

目录 1.插入文档 批量插入: 2.查询文档 3.更新文档 4.删除文档 deleteOne() deleteMany() findOneAndDelete() 1.插入文档 可以使用 insert () 方法或者 save() 方法向集合中插入文档 语法如下: db.collection_name.insert(document) collectio…

springboot+vue的大学生就业招聘系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

【GitHub项目推荐--不错的Flutter项目】【转载】

01 可定制的图表库 FL Chart是一个高度可定制的 Flutter 图表库,支持折线图、条形图、饼图、散点图和雷达图 。 项目地址:https://github.com/imaNNeoFighT/fl_chart LineChart BarChart PieChart Sample1 Sample2 Sample3 …

存储硬盘不要贪便宜了,守护数据最宝贵-3

第四个避坑点:SSD接口不要选错了 你如果直接购买新电脑,电脑里面的形态基本就不用关心了,你主要关注其他方面。这个主要针对,如果想对自己旧电脑进行硬盘升级的场景。 首先,你需要先了解你电脑上现有存储硬盘的接口&…

C中结合项目使用qsort对结构体进行排序(模拟通讯录排序功能)

项目中通信录要实现排序功能->通讯录相当于一个结构体对象->对一个结构体对象的内容进行排序 test.c #define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h"; void menu() { printf("*****************************\n"); printf(&quo…

数据和C

本文参考C Primer Plus学习 文章目录 _Bool类型float、double和long double复数和虚数类型其他类型 1._Bool类型 _Bool类型,用于表示布尔值,即逻辑值true和false。因为C语言用值1表示true,值0表示false。所以_Bool类型实际上也是一种整数类型…

C#,获取与设置Windows背景图片的源代码

为了满足孩子们个性化桌面的需求。 这里发布获取与设置Windows背景图片的源代码。 1 文本格式 using System; using System.IO; using System.Data; using System.Linq; using System.Text; using System.Drawing; using System.Collections; using System.Collections.Gene…

海外媒体发稿:出口贸易媒体发稿推广8种方法让您事半功倍-华媒舍

通过出口贸易媒体发稿可以帮助企业拓展市场、提升知名度,从而取得更好的出口贸易业绩。在进行媒体发稿时,需要确定目标受众,编写吸引人的标题,提供有价值的内容,并选择合适的媒体平台和发布时间。通过持续改进和优化&a…

九大项目主要页面预览

前后端开发均已完成,以后开发项目,从这些项目中拷贝源码就可以 一、网校平台后台系统 二、音频小说项目 三、仿微信项目 四、视频点播项目 五、商城系统 六、在线教育App 七、在线教育SSR网站 八、直播项目 九、社区交友

通过FileZilla配置FTP

FileZilla服务端的安装 在虚拟机里安装FileZilla服务器 FileZilla的官网 下载一个客户端和一个服务端的FileZilla 如果已经有了一个客户端,可以不下用载。 FileZilla的配置 说明一下:通过FileZilla配置FTP有两种模式,我们先用被动模式 下载…

基于密码技术的身份认证——基于对称密码体制的身份认证

一、符号说明: A→B:表示通信实体A向通信实体B发送消息; Ek(x):表示用认证双方共享的密钥K对x进行加密; Text1,Text2,……,Text n属于可选项; ||:表示比特…

行测-言语:1.片段阅读

行测-言语:1.片段阅读 解题顺序:提问—文段—选项 忠于文段,对比择优 1. 中心理解题 1.1 重点词语 1.1.1 关联词 1.1.1.1 转折关系 A,转折后面是重点,不仅…还… 的内容是带来的结果。规范一定长期利好&#xff0c…

实验:eNSP AR通过telnet远程登录另外一台AR

实验2:eNSP AR通过telnet远程登录另外一台AR 基于实验1的基础上来进行,我们通过AR2220登录AR3260 首先设置远程登录密码 1、user-interface vty 0 4 进入用户的虚拟终端 2、设置密码 set authentication password cipher Huawei 这里的意思就是设置密…

微软 Power Apps Canvas App 画布应用将上传的附件转化为base64编码操作

微软 Power Apps Canvas App 画布应用将上传的附件结合Power Automate转化为base64编码操作 在使用canvas app的过程中,我们有时需要将上传的文件转换为base64存入数据库或者,调用外部接口传参,那么看下如何将文件转化为base64编码格式。 首先…

JVM系列-8.GC调优

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理🔥如果感觉博主的文…