language: zh
tags:
- 多模态
- 文本
- 图像
- 图像到文本
datasets:
- HuggingFaceM4/OBELICS
- laion/laion2B-en
- coyo-700m
- mmc4
pipeline_tag: 文本生成
inference: true
InfiMM
InfiMM受Flamingo架构启发,凭借独特的训练数据和多样化的大语言模型(LLMs)脱颖而出。这一方法使InfiMM在保留Flamingo核心优势的同时,提供了更强大的能力。作为该领域的首个开源变体,InfiMM在可访问性和适应性方面表现卓越,由社区协作驱动。它不仅是Flamingo的模仿,更是视觉语言处理领域的创新。
我们的模型是尝试复现DeepMind论文《Flamingo:用于多模态理解的大规模视觉语言模型》中报告结果的又一次努力。与之前的开源尝试(OpenFlamingo和IDEFIC)相比,InfiMM提供了更灵活的模型,适用于广泛的应用场景。特别是,InfiMM将最新的LLM模型集成到VLM领域,揭示了不同规模和架构的LLMs的影响。
请注意,InfiMM目前处于测试阶段,我们正在持续改进它。
模型详情
模型家族
我们的模型包含多个不同模型。详情如下:
模型 |
LLM |
视觉编码器 |
IFT |
InfiMM-Zephyr |
Zehpyr-7B-beta |
ViT-L-336 |
否 |
InfiMM-Llama-13B |
Llama2-13B |
ViT-G-224 |
否 |
InfiMM-Vicuna-13B |
Vicuna-13B |
ViT-E-224 |
否 |
InfiMM-Zephyr-Chat |
Zehpyr-7B-beta |
ViT-L-336 |
是 |
InfiMM-Llama-13B-Chat |
Llama2-13B |
ViT-G-224 |
是 |
InfiMM-Vicuna-13B-Chat |
Vicuna-13B |
ViT-E-224 |
是 |
演示
即将发布。
我们的模型采用Flamingo架构,利用EVA CLIP作为视觉编码器,并采用LLaMA2、Vicuna和Zephyr作为语言模型。视觉和语言模态通过交叉注意力模块连接。
快速开始
使用以下代码开始使用基础模型:
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
processor = AutoProcessor.from_pretrained("Infi-MM/infimm-zephyr", trust_remote_code=True)
prompts = [
{
"role": "user",
"content": [
{"image": "assets/infimm-logo.webp"},
"请向我解释这张图片。",
],
}
]
inputs = processor(prompts)
model = AutoModelForCausalLM.from_pretrained(
"Infi-MM/infimm-zephyr",
local_files_only=True,
torch_dtype=torch.bfloat16,
trust_remote_code=True,
).eval()
inputs = inputs.to(model.device)
inputs["batch_images"] = inputs["batch_images"].to(torch.bfloat16)
generated_ids = model.generate(
**inputs,
min_generation_length=0,
max_generation_length=256,
)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)
print(generated_text)
训练详情
我们采用三个阶段来训练我们的模型:预训练(PT)、多任务训练(MTT)和指令微调(IFT)。每个阶段的详细配置请参考下表。由于预训练数据中存在大量噪声,我们旨在通过引入更高质量的数据来提高模型的准确性。在多任务训练(MTT)阶段,我们使用了来自不同数据集的大量训练数据。然而,由于这些数据中的答案主要由单个单词或短语组成,模型的对话能力有限。因此,在第三阶段,我们引入了大量的图像-文本对话数据(llava665k)来微调模型的指令。
预训练(PT)
我们遵循IDEFICS中使用的类似训练程序。
模型在图像-文本对和非结构化多模态网络文档的混合数据上进行训练。所有数据均来自公开来源。许多图像URL链接已失效,我们只能下载部分样本。我们过滤了低质量数据,以下是所使用的数据:
数据源 |
数据类型 |
源中的标记数 |
源中的图像数 |
样本数 |
轮次 |
OBELICS |
非结构化多模态网络文档 |
- |
- |
101M |
1 |
MMC4 |
非结构化多模态网络文档 |
- |
- |
53M |
1 |
LAION |
图像-文本对 |
- |
115M |
115M |
1 |
COYO |
图像-文本对 |
- |
238M |
238M |
1 |
LAION-COCO |
图像-文本对 |
- |
140M |
140M |
1 |
PMD* |
图像-文本对 |
- |
20M |
20M |
1 |
*PMD仅用于具有13B LLMs的模型,不包括7B Zephyr模型。
在交错图像文本样本的预训练过程中,我们应用了掩码交叉注意力,但我们没有严格遵循Flamingo,后者通过0.5的变化交替关注图像的前后文本。
我们使用以下超参数:
类别 |
参数 |
值 |
感知重采样器 |
层数 |
6 |
|
潜在数 |
64 |
|
头数 |
16 |
|
重采样器头维度 |
96 |
训练 |
序列长度 |
384 (13B) / 792 (7B) |
|
有效批次大小 |
40*128 |
|
每样本最大图像数 |
6 |
|
权重衰减 |
0.1 |
|
优化器 |
Adam(0.9, 0.999) |
|
梯度累积步数 |
2 |
学习率 |
初始最大值 |
1e-4 |
|
衰减计划 |
常数 |
|
预热步率 |
0.005 |
大规模优化 |
梯度检查点 |
假 |
|
精度 |
bf16 |
|
ZeRO优化 |
阶段2 |
多任务训练(MTT)
这里我们使用mix_cap_vqa来表示来自COCO caption、TextCap、VizWiz Caption、VQAv2、OKVQA、VizWiz VQA、TextVQA、OCRVQA、STVQA、DocVQA、GQA和ScienceQA-image的混合训练集。对于caption,我们在问题前添加前缀,如“请描述这张图片。”对于QA,我们添加“用一个单词或短语回答问题。”具体来说,对于VizWiz VQA,我们使用“当提供的信息不足时,回答‘无法回答’。用一个单词或短语回答问题。”而对于ScienceQA-image,我们使用“直接从给定的选项中选择字母回答。”
指令微调(IFT)
在指令微调阶段,我们使用最近发布的LLaVA-MIX-665k。
我们使用以下超参数:
类别 |
参数 |
值 |
感知重采样器 |
层数 |
6 |
|
潜在数 |
64 |
|
头数 |
16 |
|
重采样器头维度 |
96 |
训练 |
序列长度 |
384 (13B) / 792 (7B) |
|
有效批次大小 |
64 |
|
每样本最大图像数 |
6 |
|
权重衰减 |
0.1 |
|
优化器 |
Adam(0.9, 0.999) |
|
梯度累积步数 |
2 |
学习率 |
初始最大值 |
1e-5 |
|
衰减计划 |
常数 |
|
预热步率 |
0.005 |
大规模优化 |
梯度检查点 |
假 |
|
精度 |
bf16 |
|
ZeRO优化 |
阶段2 |
在IFT期间,类似于预训练,我们保持ViT和LLM对于基于聊天的LLM(Vicuna和Zephyr)冻结。对于Llama模型,我们在IFT阶段保持LLM可训练。我们还应用聊天模板来处理训练样本。
评估
预训练评估
我们在以下下游任务上评估预训练模型:图像描述和VQA。我们还与IDEFICS的结果进行了比较。
模型 |
样本数 |
COCO CIDEr |
Flickr30K CIDEr |
VQA v2 准确率 |
TextVQA 准确率 |
OK-VQA 准确率 |
IDEFICS-9B |
0 |
46 |
27.3 |
50.9 |
25.9 |
38.4 |
|
4 |
93 |
59.7 |
55.4 |
27.6 |
45.5 |
IDEFICS-80B |
0 |
91.8 |
53.7 |
60 |
30.9 |
45.2 |
|
4 |
110.3 |
73.7 |
64.6 |
34.4 |
52.4 |
InfiMM-Zephyr-7B |
0 |
78.8 |
60.7 |
33.7 |
15.2 |
17.1 |
|
4 |
108.6 |
71.9 |
59.1 |
34.3 |
50.5 |
InfiMM-Llama2-13B |
0 |
85.4 |
54.6 |
51.6 |
24.2 |
26.4 |
|
4 |
125.2 |
87.1 |
66.1 |
38.2 |
55.5 |
InfiMM-Vicuna13B |
0 |
69.6 |
49.6 |
60.4 |
32.8 |
49.2 |
|
4 |
118.1 |
81.4 |
64.2 |
38.4 |
53.7 |
IFT评估
在我们的分析中,我们专注于评估MLLMs的两个主要基准:1)多项选择题回答(QA)和2)开放式评估。我们观察到,对于像视觉问答(VQA)和Text-VQA这样的任务,评估指标对精确答案匹配过于敏感。这种方法可能会产生误导,特别是当模型提供同义但技术上准确的回答时。因此,为了更精确的评估,这些指标已从我们的比较中省略。评估结果如下表所示。
模型 |
ScienceQA-Img |
MME |
MM-VET |
InfiMM-Eval |
MMbench |
MMMU-Val |
MMMU-Test |
Otter-9B |
- |
1292/306 |
24.6 |
32.2 |
- |
22.69 |
- |
IDEFICS-9B-Instruct |
60.6 |
-/- |
- |
- |
- |
24.53 |
- |
InfiMM-Zephyr-7B |
71.1 |
P: 1406 C:327 |
32.8 |
36.0 |
59.7 |
39.4 |
35.5 |
InfiMM-Llama-13b |
73.0 |
P: 1444.5 C: 337.6 |
39.2 |
0.4559/0.414 |
66.4 |
39.1 |
35.2 |
InfiMM-Vicuna-13B |
74.0 |
P: 1461.2 C: 323.5 |
36.0 |
40.0 |
66.7 |
37.6 |
34.6 |
排行榜详情
MMMU-Val分割结果
MMMU-Test分割结果
引用
@misc{InfiMM,
title={InfiMM: Advancing Multimodal Understanding from Flamingo's Legacy through Diverse LLM Integration},
author={InfiMM Team},
url={https://huggingface.co/Infi-MM/},
year={2024}
}
许可证
本项目采用CC BY-NC 4.0许可证。
图像的版权归原作者所有。
更多信息请参见LICENSE。
联系我们
如有任何问题,请随时通过电子邮件infimmbytedance@gmail.com与我们联系。