多模態(tài)視覺-語言大模型的架構演進
本文回顧了多模態(tài)LLM (視覺-語言模型) 近一年來的模型架構演進,對其中有代表性的工作進行了精煉總結,截止2024.04,持續(xù)更新ing...
A Survey on Multimodal Large Language Models(arxiv.org/abs/2306.13549)
Awesome-Multimodal-Large-Language-Models(github.com/BradyFU/Awesome-Multimodal-Large-Language-Models)
這篇綜述一張圖總結了多模態(tài)LLM的典型架構:
BLIP
【2022.01發(fā)布】https://arxiv.org/abs/2201.12086
統(tǒng)一視覺-語言理解和生成,使用captioner+filter高效利用互聯(lián)網(wǎng)有噪數(shù)據(jù)
模型架構:
- Image/text encoder: ITC loss對齊視覺和語言表征,基于ALBEF提出的momentum distillation
- Image-grounded text encoder: ITM loss建模視覺-語言交互,區(qū)分positive/negative圖文對,使用hard negative mining挖掘更高相似度的負例優(yōu)化模型
- Image-grounded text decoder: LM loss實現(xiàn)基于圖像的文本解碼,將雙向self-attention替換為causal self-attention
BLIP的bootstrapping訓練過程:
BLIP-2
【2023.01發(fā)布】https://arxiv.org/abs/2301.12597
使用相對輕量的Q-Former連接視覺-語言模態(tài),通過兩階段訓練:第1階段基于凍住的視覺編碼器,第2階段基于凍住的LLM
第1階段:同樣優(yōu)化ITC/ITM/LM loss,使用不同的self-attention mask,query和text端共享self-attention參數(shù),使得可學習的query embedding提取與text語義最相關的視覺表征;使用BERT-base初始化,32個768維的query作為信息瓶頸
- ITC:計算每個query與text的相似度,取最大的;使用batch內(nèi)negatives,不再使用momentum queue
- ITM:對每個query與text的分類logits取平均,使用hard negatives mining挖掘難負例
- LM:text token和frozen image encoder不能直接交互,要求query能提取有益的視覺特征
第2階段:可基于decoder-only/encoder-decoder LLM進行適配,F(xiàn)C層對齊維度
LLaVA
【2023.04發(fā)布】https://arxiv.org/abs/2304.08485
- 使用僅文本模態(tài)的GPT-4生成視覺-語言指令遵循數(shù)據(jù),用于微調(diào)多模態(tài)LLM
使用圖片的dense captions和bounding boxes作為prompt,可以生成對話、細節(jié)描述、復雜推理等指令
- CLIP ViT-L/14 + Vicuna,使用簡單的線性層進行映射
- 更復雜的:Flamingo中gated cross-attention,BLIP-2中的Q-former
- LLaVA模型的兩階段訓練
stage1. 預訓練特征對齊:凍住vision encoder和LLM,只訓練projection,學習一個兼容的visual tokenizer
stage2. 端到端微調(diào):凍住vision encoder,在單輪/多輪對話數(shù)據(jù)上微調(diào)projection和LLM
MiniGPT-4
【2023.04發(fā)布】https://arxiv.org/abs/2304.10592
stage1. 預訓練:使用image-text pair微調(diào)linear projection layer,vision encoder和LLM保持凍住
stage2. 指令微調(diào):指令格式為:###Human: <Img><ImageFeature></Img><Instruction>###Assistant:
InstructBLIP
【2023.05發(fā)布】https://arxiv.org/abs/2305.06500
stage1. 預訓練:BLIP-2(使用image-text pairs進行兩階段訓練)
stage2. 指令微調(diào):只微調(diào)instruction-aware Q-former,凍住vision encoder和LLM
支持FlanT5(encoder-decoder)和Vicuna(decoder-only)
Qwen-VL 【2023.08發(fā)布】https://arxiv.org/abs/2308.12966
支持中英雙語、多圖像輸入
Qwen-7B + OpenCLIP ViT-bigG,輸入圖像直接resize到視覺編碼器輸入
位置感知的VL adapter:使用基于Q-former的單層的cross-attention,將圖像特征維度壓
縮到256,在query-key pairs中引入2D絕對位置編碼增強位置信息
圖像輸入:<img>256-dim圖像特征</img>
bounding box輸入輸出:<box>(X_topleft, Y_topleft), (X_bottomright, Y_bottomright)</box>, <ref>…</ref>標記box所指內(nèi)容
三階段訓練:
stage1. 預訓練:基于大規(guī)模、弱標注、網(wǎng)絡爬取的圖像-文本對,輸入分辨率224x224,凍住LLM,訓練ViT和Q-former,主要目的是模態(tài)對齊
stage2. 多任務預訓練:基于7種下游視覺-語言理解任務的高質(zhì)量、細粒度標注數(shù)據(jù)訓練,輸入分辨率448x448,圖像/文本數(shù)據(jù)交錯,訓練整個模型
stage3. 指令微調(diào):提升指令遵循和多輪對話能力,凍住ViT,訓練LLM和Q-former
Qwen-VL-Plus和Qwen-VL-Max提升了視覺推理能力、圖像細節(jié)的識別/提取/分析能力(尤其是文本導向的任務)、支持高分辨率和極端縱橫比的輸入圖像;在部分中文場景超過了GPT-4V和Gemini
InternLM-XComposer
【2023.09發(fā)布】https://arxiv.org/abs/2309.15112
交錯圖文構成:自動在輸出文本中插入合適的圖片
EVA-CLIP ViT + InternLM-7B + Q-former (將圖像特征壓縮到64個embedding)
兩階段訓練:
stage1. 預訓練:凍住ViT,訓練LLM和Q-former
stage2. 監(jiān)督微調(diào):包括多任務訓練和指令微調(diào),凍住ViT和LLM,訓練Q-former,對LLM進行LoRA微調(diào),增強指令遵循和圖文混排能力
Fuyu-8B
【2023.10發(fā)布】https://huggingface.co/adept/fuyu-8b
模型架構和訓練過程簡單,易于scaling;支持任意圖像分辨率;推理速度快
decoder-only的transformer,沒有專門的圖像編碼器;image patch直接線性映射到transformer第一層
LLaVA-1.5
【2023.10發(fā)布】https://arxiv.org/abs/2310.03744
仍使用MLP作為模態(tài)連接,突出了訓練的數(shù)據(jù)高效性
CogVLM
【2023.11發(fā)布】https://arxiv.org/abs/2311.03079
深度視覺-語言模態(tài)融合,而不影響LLM原有的語言能力:凍住LLM和ViT,在attention和FFN層訓練一份視覺專家模塊
CogAgent
【2023.12發(fā)布】https://arxiv.org/abs/2312.08914
針對GUI場景的多模態(tài)理解和導引,使用高分辨率-低分辨率雙編碼器,支持1120x1120的屏幕輸入
高分辨率分支使用更輕量的ViT,基于cross-attention將高分辨率圖像特征與LLM每層進行融合
VILA
【2023.12發(fā)布】https://arxiv.org/abs/2312.07533
探索了視覺-語言模型訓練的設計選擇:
- 預訓練階段凍住LLM雖然能取得較好的zero-shot性能,但上下文學習能力依賴對LLM的微調(diào)
- 圖文交錯的預訓練數(shù)據(jù)是有益的,只用圖文數(shù)據(jù)對效果不夠好
- 將純文本的指令微調(diào)數(shù)據(jù)加入SFT階段有助于緩解純文本任務的能力退化,同時也能夠增強視覺-語言任務的準確性
LLaVA-Next
【2024.01發(fā)布】https://llava-vl.github.io/blog/2024-01-30-llava-next/
相對于LLaVA-1.5,保持了極簡的設計和數(shù)據(jù)高效性:
- 提高了輸入圖像的分辨率 (4x),支持3種縱橫比:672x672, 336x1344, 1344x336
- 更好的視覺推理和OCR能力:更好的指令微調(diào)數(shù)據(jù)配比
- 更好的多場景視覺對話:更好的世界知識和邏輯推理
- 更高效的部署和推理:SGLang
動態(tài)高分辨率:視覺編碼器支持336x336的圖像輸入,對于672x672的圖像,按照{(diào)2,2}的grid split成4個圖像patch過encoder,downsample到336x336也過encoder,特征拼接作為visual tokens輸入到LLM中
收集高質(zhì)量用戶數(shù)據(jù),包括真實場景中反映用戶更廣泛意圖的指令數(shù)據(jù),利用GPT-4V進行數(shù)據(jù)構造
多模態(tài)文檔/圖表數(shù)據(jù),增強文檔OCR和圖表理解能力
InternLM-XComposer2
【2024.01發(fā)布】https://arxiv.org/abs/2401.16420
提出了新的模態(tài)對齊方法partial LoRA:只在image token上添加LoRA參數(shù),保證預訓練語言知識的完整性,這樣一個更輕量的視覺編碼器同樣有效
OpenAI CLIP ViT-L/14 + InternLM2-7B + partial LoRA (rank=256)
兩階段訓練:
stage1. 預訓練:凍住LLM,微調(diào)ViT和partial LoRA模塊,包括通用語義對齊(理解圖像基本內(nèi)容)、世界知識對齊(進行復雜的知識推理)、視覺能力增強(OCR、物體定位、圖表理解)
stage2. 監(jiān)督微調(diào):微調(diào)整個模型,包括多任務訓練、自由形式圖文排布
InternLM-XComposer2-4KHD
2024.04發(fā)布了4KHD版本:https://arxiv.org/abs/2404.06512
支持動態(tài)分辨率(336px → 4K (3840x1600)):改進了patch division范式,保持訓練圖像原有的縱橫比,自動變化patch數(shù)目,基于336x336的ViT配置layout
動態(tài)圖像劃分:將輸入圖像resize and pad到336的整數(shù)倍寬高
結合圖像的global和local視角:global視角由輸入直接resize到336x336,使用sep token分隔兩種視角的token
圖像2D結構的換行符:可學習的\n token分隔圖像token行
Mini-Gemini
【2024.03發(fā)布】https://arxiv.org/abs/2403.18814
使用雙視覺編碼器提取低分辨率embedding作為query,高分辨率特征區(qū)域作為key/value,兩者之間做cross-attention,輸出挖掘的tokens作為prompt前綴,輸入到LLM做推理,外接圖像解碼器生成圖像(SDXL)
本文轉自 AI生成未來 ,作者:Dreamweaver
