本地部署 EVE: Unveiling Encoder-Free Vision-Language Models

本地部署 EVE: Unveiling Encoder-Free Vision-Language Models

  • 0. 引言
  • 1. 快速开始
  • 2. 运行 Demo

0. 引言

EVE (Encoder-free Vision-language model) 是一种创新的多模态 AI 模型,主要特点是去除了传统视觉语言模型中的视觉编码器。

核心创新

架构创新:EVE 采用纯解码器架构,摒弃了常见的视觉编码器-语言解码器结构。这种设计简化了模型架构,同时保持了强大的性能。
效率提升:

数据效率:仅使用 33M 公开可用的图像-文本对进行预训练。
训练效率:使用有限的计算资源(两个 8-A100 节点)在约 9 天内完成训练。

性能表现:在多个视觉语言任务上,EVE-7B 优于同类的 Fuyu-8B 模型,并接近现有的模块化编码器基础的大型视觉语言模型(LVLMs)。
灵活性:能够处理任意纵横比的图像输入。

技术细节

预训练数据:使用从 OpenImages、SAM、LAION 等公开数据集筛选的 33M 数据。
微调数据:

EVE-7B:使用 665K LLaVA SFT 数据。
EVE-7B (HD):额外使用 1.2M SFT 数据。

基础模型:基于 Vicuna-7B 构建。
训练策略:

LLM 引导的预对齐阶段
生成式预训练阶段
监督微调阶段

评估指标:在 VQAv2、GQA、VizWiz、SQA_I、TextVQA、POPE、MME_P、MMBench、SEED、MM_Vet 等多个基准测试上进行了评估。

意义与展望

模型效率:EVE 展示了如何在不牺牲性能的情况下,大幅提高视觉语言模型的训练和推理效率。
架构创新:为纯解码器多模态架构提供了一种可行且高效的训练策略。
开源贡献:通过开源代码和模型权重,促进了视觉语言模型研究的透明度和可复现性。
未来方向:

整合更多模态到统一的 EVE 网络中。
开发完整的 EVE 系列,包括不同规模的模型和基于更优秀基础模型的版本。

EVE 代表了视觉语言模型研究的一个重要方向,为构建更高效、更通用的多模态 AI 系统提供了新的思路。

1. 快速开始

创建虚拟环境和安装依赖模块,

git clone https://github.com/baaivision/EVE.git
cd EVE
conda create -n eve_envs python=3.10 -y
conda activate eve_envspip install --upgrade pip
pip install -e .
# pip install -e ".[train]"
pip install flash-attn --no-build-isolation

下载依赖模型,

mkdir lmsys; cd lmsys
git clone https://huggingface.co/lmsys/vicuna-7b-v1.5
vi google_drive_download.sh---
#!/bin/bash# Usage: ./script.sh <Google Drive file ID> <output filename># Check if file ID and output filename are provided
if [ $# -ne 2 ]; thenecho "Usage: $0 <Google Drive file ID> <output filename>"exit 1
fiFILE_ID=$1
OUTPUT_FILE=$2# Get the download URL
CONFIRM=$(curl -sc /tmp/gcookie "https://drive.google.com/uc?export=download&id=${FILE_ID}" | grep -o 'confirm=[^&]*' | sed 's/confirm=//')
DOWNLOAD_URL="https://drive.google.com/uc?export=download&confirm=${CONFIRM}&id=${FILE_ID}"# Download the file
curl -Lb /tmp/gcookie "${DOWNLOAD_URL}" -o "${OUTPUT_FILE}"echo "File downloaded as ${OUTPUT_FILE}"
---
mkdir openai; cd openai./google_drive_download.sh 1f_mA4owjm0v3awrzPv4LOURz6IzVFVZ6 eve-patch14-anypixel-672.zip; unzip eve-patch14-anypixel-672.zip./google_drive_download.sh 1V7hz37X7n9s2KmghoQ9bDVHE6J4HuQ7z eve-patch14-anypixel-1344.zip; unzip eve-patch14-anypixel-1344.zipgit clone https://huggingface.co/openai/clip-vit-large-patch14-336

最后目录如下,
在这里插入图片描述

2. 运行 Demo

下载测试图片,

wget https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/JAPANPOST-DSC00250.JPG/500px-JAPANPOST-DSC00250.JPG -O sample1.png
wget https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Search_and_rescue_at_Unosumai%2C_Kamaishi%2C_-17_Mar._2011_a.jpg/500px-Search_and_rescue_at_Unosumai%2C_Kamaishi%2C_-17_Mar._2011_a.jpg -O sample2.png
wget https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Policeman_at_Tokyo.jpg/500px-Policeman_at_Tokyo.jpg -O sample3.png

运行 Demo,

CUDA_VISIBLE_DEVICES=3,1,0,2 python tools/app.py

使用浏览器打开 http://localhost:7860 进行访问。

reference: https://github.com/baaivision/EVE

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

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

相关文章

C++的deque(双端队列),priority_queue(优先级队列)

deque deque是一个容器,是双端队列,从功能上来讲,deque是一个vector和list的结合体 顺序表和链表 deque的结构和优缺点 开辟buff小数组,空间不够了,不扩容,而是开辟一个新的小数组 开辟中控数组(指针数组)指向buff小数组 将已存在的数组指针存在中控数组中间,可以使用下标访…

MICS2024|数字病理与人工智能在乳腺癌精准诊疗中的应用

小罗碎碎念 这两天在厦大开会&#xff0c;医学图像相关的学术会议。来之前一直在我自己的交流群里宣传这个会议&#xff0c;因为自己的推文与病理相关的比较多&#xff0c;所以群里的同行也比较关注这个会议病理相关的内容。 讲者简介 Scopus主页&#xff1a;https://www.scop…

旋转电连接器抗干扰性有哪几个方面?

旋转电连接器作为一种精密的电气传输装置&#xff0c;它实现了两个相对旋转部件间的功率和信号传输。通过旋转电连接器可以传输高频的交流电、高电压的交流电、大电流的交流电、弱小的直流小信号等多种电信号&#xff0c;但是由仪器之间的距离有限&#xff0c;在如此短的距离内…

蓝桥杯算法周赛开赛啦

提醒&#xff1a;19:00算法双周赛准时开启&#xff01; 单题“一血”可获得云课定制便携风扇&#xff01; &#x1f9e7;入榜最高200元&#xff01;还可抽20&#xff5e;100元现金 &#x1fad8;每月参加2次算法双周赛&#xff0c;额外发放88个实验豆&#xff01; 参赛链接…

C++:类和对象 I(访问限定符、this指针)

目录 类的定义 类的大小 访问限定符 实例化 this指针 类的定义 class就是类&#xff0c;class是C中的一个关键字 当然类也可以是C语言中的struct&#xff0c;C兼容struct&#xff0c;甚至还有一些升级 定义类的方式 class Date {}; 和C语言的struct一样&#xff0c;c…

企业国产操作系统选型适配实施方案

【摘要】企业在推动国产化进程时&#xff0c;需选择一款主流、稳定且安全的服务器操作系统作为其系统软件。在产品投入实际生产环境前&#xff0c;对上游软硬件的适配情况有深入了解至关重要。本文将重点介绍银河麒麟高级服务器操作系统V10&#xff08;以下简称麒麟V10&#xf…

昇思25天学习打卡营第14天|K近邻算法实现红酒聚类

红酒Wine数据集 类别(13类属性)&#xff1a;Alcohol&#xff0c;酒精&#xff1b;Malic acid&#xff0c;苹果酸 Ash&#xff0c;灰&#xff1b;Alcalinity of ash&#xff0c;灰的碱度&#xff1b; Magnesium&#xff0c;镁&#xff1b;Total phenols&#xff0c;总酚&#xf…

算法可以赋能教育业务的哪些场景?

本文内容就一个点&#xff0c;将算法应用到教育系统中的各场景&#xff0c;让每个业务模块都实现智能化 以下列举出所有的需求点 目录 一、千人千面&#xff0c;个性化推荐流&#xff0c;推荐用户感兴趣的内容 实现方案&#xff1a;CTR模型 应用场景&#xff1a;所有的内容…

Perl语言之数组

Perl数组可以存储多个标量&#xff0c;并且标量数据类型可以不同。   数组变量以开头。访问与定义格式如下&#xff1a; #! /usr/bin/perl arr("asdfasd",2,23.56,a); print "输出所有:arr\n"; print "arr[0]$arr[0]\n"; #输出指定下标 print…

NLP任务:情感分析、看图说话

我可不向其他博主那样拖泥带水&#xff0c;我有代码就直接贴在文章里&#xff0c;或者放到gitee供你们参考下载&#xff0c;虽然写的不咋滴&#xff0c;废话少说&#xff0c;上代码。 gitee码云地址&#xff1a; 卢东艺/pytorch_cv_nlp - 码云 - 开源中国 (gitee.com)https:/…

初始c语言 语句

一 认识语句 控制流语句 if-else语句&#xff1a;用于条件判断。for循环语句&#xff1a;用于循环执行一段代码。while循环语句&#xff1a;当条件为真时执行循环。do-while循环语句&#xff1a;先执行一次循环体&#xff0c;然后再判断条件。switch语句&#xff1a;根据不同的…

CEPH 硬盘读写慢问题影响

ceph使用时经常会碰到起不来的情况 第一种就是服务器负载高&#xff0c;这个基本都会觉察到 还有一种就是硬盘问题 硬盘写问题 初始化时ceph会自己进行填充操作 ceph-volume lvm zap /dev/sdx --destroy 我就碰到过没初始化问题 看着一切正常 但看写入速度才几百KB/s 正常都100…

ArrayList模拟实现

ArrayList模拟实现 ArrayList 的初步介绍常见操作 ArrayList 的简单模拟实现 ArrayList 的初步介绍 ArrayList也叫做顺序表&#xff0c;底层是一个数组。 在创建顺序表 时就应该规定 里面元素的数据类型&#xff0c;其中不能直接传基本数据类型&#xff0c;例如int、char。需要…

Java代码初始化块

目录 实例域代码块 静态域代码块 初始化代码块分为静态域代码块和实例域代码块&#xff0c;静态域代码块在类第一次被加载时被执行&#xff0c;实例域代码块在创建对象时被执行&#xff0c;一个类中可以有多个代码块。 实例域代码块 使用方法 可以有输出语句 可以对类的属…

vue实现a-model弹窗拖拽移动

通过自定义拖拽指令实现 实现效果 拖动顶部&#xff0c;可对整个弹窗实施拖拽&#xff08;如果需要拖动底部、中间内容实现拖拽&#xff0c;把下面的ant-modal-header对应改掉就行&#xff09; 代码实现 编写自定义指令 新建一个ts / js文件&#xff0c;用ts举例 import V…

基于modbus tcp通讯的雷赛导轨控制器调试软件

0.前言 之前工作遇到了雷赛电机驱动器设备&#xff0c;主要是用来控制光学导轨移动。雷赛的调试软件用的时串口通讯&#xff0c;还要他们定制的串口线&#xff0c;在现场都是485转网络的接口&#xff0c;调试起来也很不方便。所以我就照着他们的说明书&#xff0c;写了一个简易…

Vue3 引入Vanta.js使用

能搜到这篇文章 想必一定看过demo效果图了吧 示例 Vanta.js - Animated 3D Backgrounds For Your Website (vantajs.com) 1. 引入 在根目录 index.html中引入依赖 <script src"https://cdnjs.cloudflare.com/ajax/libs/three.js/r134/three.min.js"></sc…

基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现:7000字论文+源代码参考

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

底软驱动 | U-boot移植点点滴滴

u-boot 移植要点 一般厂家直接提供 u-boot 源码&#xff0c;做查看、修改(增加新功能) 或 u-boot 版本升级这三大块的用处&#xff1b;后两种都需要对新板子做适配/移植。 如果没有提供 u-boot 源码&#xff0c;那么就从 u-boot 官方版本中找到一个最相近的板子配置进行移植&…

【QT】布局管理器

布局管理器 布局管理器1. 垂直布局2. 水平布局3. 网格布局4. 表单布局5. Spacer 布局管理器 之前使⽤ Qt 在界⾯上创建的控件, 都是通过 “绝对定位” 的⽅式来设定的&#xff1b;也就是每个控件所在的位置, 都需要计算坐标, 最终通过 setGeometry 或者 move ⽅式摆放过去。 …