Infimm Zephyr
模型概述
模型特點
模型能力
使用案例
🚀 InfiMM
InfiMM受Flamingo架構啟發,憑藉獨特的訓練數據和多樣化的大語言模型(LLM)脫穎而出。這種方法使InfiMM在保留Flamingo核心優勢的同時,還具備了更強的能力。作為該領域首個開源的變體,InfiMM在社區協作的推動下,在可訪問性和適應性方面表現卓越。它不僅僅是對Flamingo的模仿,更是視覺語言處理領域的一項創新。
本模型是對DeepMind論文 “Flamingo: A Large-scale Visual Language Model for Multimodal Understanding” 中成果的又一次嘗試。與之前的開源嘗試(OpenFlamingo 和 IDEFIC)相比,InfiMM提供了更靈活的模型,適用於廣泛的應用場景。特別是,InfiMM將最新的LLM模型集成到視覺語言模型(VLM)領域,揭示了不同規模和架構的LLM的影響。
請注意,InfiMM目前處於測試階段,我們正在不斷努力改進它。
🚀 快速開始
使用以下代碼開始使用基礎模型:
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"},
"Please explain this image to me.",
],
}
]
inputs = processor(prompts)
# use bf16
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)
✨ 主要特性
- 受Flamingo架構啟發,結合獨特訓練數據和多樣化LLM,保留核心優勢並增強能力。
- 作為開源變體,具備良好的可訪問性和適應性,由社區協作驅動。
- 集成最新LLM模型到VLM領域,揭示不同規模和架構LLM的影響。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
基礎用法
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"},
"Please explain this image to me.",
],
}
]
inputs = processor(prompts)
# use bf16
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)
高級用法
文檔未提及高級用法代碼示例,故跳過此部分。
📚 詳細文檔
模型詳情
屬性 | 詳情 |
---|---|
開發者 | 中國科學院自動化研究所和字節跳動 |
模型類型 | 視覺語言模型(VLM) |
語言 | 英語 |
大語言模型(LLMs) | Zephyr、LLaMA2 - 13B、Vicuna - 13B |
視覺模型 | EVA CLIP |
自然語言處理語言 | 英語 |
許可證 | 見 許可證部分 |
模型家族
模型 | 大語言模型(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 | 是 |
訓練詳情
我們採用三個階段來訓練模型:預訓練(PT)、多任務訓練(MTT)和指令微調(IFT)。各階段的詳細配置如下:
預訓練(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 LLM的模型,不用於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的混合訓練集。對於圖像描述任務,我們在問題前添加 “Please describe the image.” 等前綴;對於問答任務,我們添加 “Answer the question using a single word or phrase.”。具體來說,對於VizWiz VQA,我們使用 “When the provided information is insufficient, respond with 'Unanswerable'. Answer the question using a single word or phrase.”;對於ScienceQA - image,我們使用 “Answer with the option's letter from the given choices directly.”。
指令微調(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過程中,與預訓練類似,對於基於聊天的LLM(Vicuna和Zephyr),我們凍結ViT和LLM;對於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 - 圖像 | MME | MM - VET | InfiMM - 評估 | MMbench | MMMU - 驗證集 | MMMU - 測試集 |
---|---|---|---|---|---|---|---|
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 - 驗證集分割結果

MMMU - 測試集分割結果
🔧 技術細節
文檔中關於技術細節的描述分散在訓練詳情和評估部分,已在詳細文檔中體現,故此處不再單獨列出。
📄 許可證

本項目採用 CC BY - NC 4.0 許可證。
圖像版權歸原作者所有。
更多信息請見 LICENSE。
引用
@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}
}
聯繫我們
如果您有任何問題,請隨時通過電子郵件 infimmbytedance@gmail.com 與我們聯繫。








