Project Icon

EVE

无编码器视觉语言模型实现高效性能

EVE项目开发了一种无编码器的视觉语言模型架构,通过高效训练策略和精选数据集实现了与现有编码器基础模型相当的性能。该模型支持任意纵横比图像输入,在多项基准测试中表现优异。EVE-7B和EVE-7B-HD两个版本在视觉语言任务中展现了强大能力,为跨模态纯解码器架构提供了高效实用的开发方法。

EVE:揭示无编码器的视觉语言模型

揭示无编码器的视觉语言模型 的官方 PyTorch 实现。

📜 新闻

[2024/07/01] 我们发布了训练代码EVE-7B 权重!🚀
[2024/06/23] 我们发布了评估代码EVE-7B-PretrainEVE-7B-HD 权重!🚀
[2024/06/18] 论文已发布!💥

💡 动机

  • 我们能否从视觉语言模型中移除视觉编码器?

  • 如何高效稳定地将大语言模型转换为无编码器的视觉语言模型?

  • 如何弥合无编码器和基于编码器的视觉语言模型之间的性能差距?

🛸 架构

💡 亮点

  • 🔥 卓越能力: 原创的无编码器大规模视觉语言模型,支持任意图像宽高比,性能超越对应的 Fuyu-8B,接近现有的模块化基于编码器的大规模视觉语言模型。

  • 🔥 数据效率: 仅从 OpenImages、SAM、LAION 中筛选 3300万 公开可用数据进行预训练;利用 66.5万 LLaVA SFT 数据训练 EVE-7B,额外使用 120万 SFT 数据训练 EVE-7B (HD)

  • 🔥 训练效率: 使用两个 8-A100 (40G) 节点训练约 9 天或四个 8-A100 节点训练约 5

  • 🔥 开创性路线: 我们尝试提供一种高效透明实用的训练策略和流程,用于开发跨模态的纯解码器架构。

🤖 模型库

EVE 检查点的使用应遵守基础大语言模型的许可证:Llama 2

模型LLM权重VQAv2GQAVizWizSQA_ITextVQAPOPEMME_PMMBenchSEED/SEED_IMM_Vet
EVE_7B_PretrainVicuna_7BHF_link------------------ / ----
EVE_7BVicuna_7BHF_link75.460.841.863.051.983.61217.349.554.3 / 61.325.6
EVE_7B_HDVicuna-7BHF_link78.662.651.164.956.885.01305.752.356.8 / 64.625.7

👨‍💻 待办事项

  • 将更多模态融入统一的 EVE 网络。
  • 使用更多数据、不同规模和更好的基础模型训练完整的 EVE 系列。

目录

安装

环境

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

准备工作

下载 vicuna_model 并解压到 lmsys/ 路径:

下载 preprocessor 并解压到 openai/ 路径:

lmsys
├── vicuna-7b-v1.5
│   │── config.json
│   │── ...
openai
├── clip-vit-large-patch14-336
│   │── config.json
│   │── ...
├── eve-patch14-anypixel-672
│   │── preprocessor_config.json
│   │── ...
├── eve-patch14-anypixel-1344
│   │── preprocessor_config.json
│   │── ...

快速使用

示例代码
from eve.model.builder import load_pretrained_model
from eve.mm_utils import get_model_name_from_path
from eve.eval.run_eve import eval_model

model_path = "BAAI/EVE-7B-HD-v1.0 的绝对路径"

tokenizer, model, image_processor, context_len = load_pretrained_model(
    model_path=model_path,
    model_base=None,
    model_name=get_model_name_from_path(model_path)
)

查看 eve/model/builder.py 中的 load_pretrained_model 函数了解详细信息。

您也可以使用 eve/eval/eval_one_sample.py 轻松获取输出。这样,您可以在下载此仓库后直接在 Colab 上使用此代码。

# 运行脚本
CUDA_VISIBLE_DEVICES=0 python eve/eval/eval_one_sample.py

演示

你也可以使用以下脚本在本地搭建演示:

# 运行脚本
python tools/app.py

数据

你应该按照Data.md中的说明来管理数据集。目前,我们提供网络数据的直接下载访问。但是,为了避免潜在的争议,我们计划在不久的将来发布这些数据集的URL,而不是原始数据。

训练

(1) LLM引导的预对齐阶段: 我们只使用33M图像-文本数据中的16M(EVE-cap16/33M)来训练图像块嵌入和对齐层。这确实对高效训练很重要,因为它可以防止崩溃并加速整个过程的收敛。

模型轮次批量大小学习率学习率调度预热比例最大长度权重衰减优化器DeepSpeed
EVE_Prealign15124e-4余弦衰减0.0320480AdamWzero3

EVE_Prealign的训练脚本如下:

bash scripts/eve/eve7b_prealign.sh ${node_rank} ${master_addr}

(2) 生成式预训练阶段: 我们使用全部33M图像-文本对(EVE-cap33M)来训练图像块嵌入和对齐层,以及完整的LLM模块。

模型轮次批量大小学习率学习率调度预热比例最大长度权重衰减优化器DeepSpeed
EVE_Pretrain15124e-5余弦衰减0.0120480AdamWzero3

EVE_Pretrain的训练脚本如下:

bash scripts/eve/eve7b_pretrain.sh ${node_rank} ${master_addr}

(3) 监督微调阶段: 我们使用LLaVA-mix-665K对EVE-7B的整个架构进行微调,对于EVE-7B (HD)则额外使用120万SFT对话数据。

模型轮次批量大小学习率学习率调度预热比例最大长度权重衰减优化器DeepSpeed
EVE_Finetune11282e-5余弦衰减0.012048/40960AdamWzero3

EVE_7B和EVE_7B_HD的训练脚本如下:

bash scripts/eve/eve7b_finetune.sh ${node_rank} ${master_addr}
bash scripts/eve/eve7b_finetune_hd.sh ${node_rank} ${master_addr}

[注意]:
如果使用较少的GPU进行训练,你可以减小per_device_train_batch_size并相应增加gradient_accumulation_steps。始终保持全局批量大小不变:per_device_train_batch_size x gradient_accumulation_steps x num_gpus

评估

为了确保可重复性,我们使用贪婪解码评估模型。我们不使用束搜索进行评估,以使推理过程与实时输出的聊天演示保持一致。

详见Evaluation.md

❤️ 致谢

  • LLaVA, ShareGPT: 感谢他们出色的工作和代码!
  • Vicuna: 令人惊叹的开源大型语言模型系列!

✒️ 引用

如果EVE对您的研究有帮助,请考虑点赞 ⭐ 和引用 📝 :

@article{diao2024EVE,
  title={Unveiling Encoder-Free Vision-Language Models},
  author={Diao, Haiwen and Cui, Yufeng and Li, Xiaotong and Wang, Yueze and Lu, Huchuan and Wang, Xinlong},
  journal={arXiv preprint arXiv:2406.11832},
  year={2024}
}

📄 许可证

本项目内容本身根据LICENSE许可。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号