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

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

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_envs

pip 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 ]; then
    echo "Usage: $0 <Google Drive file ID> <output filename>"
    exit 1
fi

FILE_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.zip

git 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

相关推荐

  1. StarRocks本地部署

    2024-07-14 05:22:01       57 阅读
  2. 本地部署 SalesGPT

    2024-07-14 05:22:01       39 阅读
  3. 本地部署 RAGFlow

    2024-07-14 05:22:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 05:22:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 05:22:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 05:22:01       57 阅读
  4. Python语言-面向对象

    2024-07-14 05:22:01       68 阅读

热门阅读

  1. Layer2是什么?为什么需要Layer2?

    2024-07-14 05:22:01       25 阅读
  2. SpinalHDL之实用工具(上篇)

    2024-07-14 05:22:01       22 阅读
  3. 自监督学习和对比学习举例讲解(附代码)

    2024-07-14 05:22:01       20 阅读
  4. web黑马课总结笔记(持续更新)

    2024-07-14 05:22:01       24 阅读
  5. 天童教育:要增强孩子的自理能力

    2024-07-14 05:22:01       24 阅读
  6. 测试工程师面试热门问题(六)

    2024-07-14 05:22:01       19 阅读
  7. JVM:自动垃圾回收

    2024-07-14 05:22:01       24 阅读
  8. 使用openssl生成自签名证书

    2024-07-14 05:22:01       26 阅读
  9. 【TS】如何使用联合类型和交叉类型

    2024-07-14 05:22:01       26 阅读
  10. C语言——printf、scanf、其他输入输出函数

    2024-07-14 05:22:01       26 阅读