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