VLE (Vision-Language Encoder) 是一種基於預訓練文本和圖像編碼器的圖像-文本多模態理解模型,可應用於如視覺問答、圖像-文本檢索等多模態判別任務。特別地,在對語言理解和推理能力有更強要求的視覺常識推理(VCR)任務中,VLE取得了公開模型中的最佳效果。
在線演示地址:https://huggingface.co/spaces/hfl/VQA_VLE_LLM
VLE模型採用雙流結構,與METER模型結構類似,由兩個單模態編碼器(圖像編碼器和文本編碼器)和一個跨模態融合模塊構成。 VLE與METER的結構上的差異在於:
- VLE使用DeBERTa-v3作為文本編碼器,其性能優於METER中使用的RoBERTa-base。
- 在VLE-large中,跨模態融合模塊的隱層維度增加至1024,以增加模型的容量。
- 在精調階段,VLE引入了額外的token類型向量表示。
預訓練
VLE使用圖文對數據進行預訓練。在預訓練階段,VLE採用了四個預訓練任務:
- MLM (Masked Language Modeling):掩碼預測任務。給定圖文對,隨機遮掩文本中的部分單詞,訓練模型還原遮掩的文本。
- ITM (Image-Text Matching):圖文匹配預測任務。給定圖文對,訓練模型判斷圖像和文本是否匹配。
- MPC (Masked Patch-box Classification):遮掩Patch分類任務,給定圖文對,並遮掩掉圖片中包含具體對象的patch,訓練模型預測被遮掩的對象種類。
- PBC (Patch-box classification):Patch分類任務。給定圖文對,預測圖片中的哪些patch與文本描述相關。
VLE在14M的英文圖文對數據上進行了25000步的預訓練,batch大小為2048。下圖展示了VLE的模型結構和部分預訓練任務(MLM、ITM和MPC)。
下游任務適配
視覺問答(VQA)
- 遵循標準做法,使用VQA的訓練集(training set)和驗證集(validation set)訓練模型,在test-dev集上進行驗證。採用模型的融合層的pooler的輸出進行分類任務的訓練。
視覺常識推理(VCR)
- 將VCR格式化為一個類似於RACE的選擇題任務,並對於每張圖像中的對象,將覆蓋該對象的patch的表示的平均池化值添加到融合模塊之前的圖像特徵序列中。還為圖像和文本中的對象添加額外的token_type_ids,以注入不同模態之間的對齊信息,提升模型的對齊性能。
模型下載
本次發布了VLE-base和VLE-large兩個版本的預訓練模型,模型權重為PyTorch格式,可以選擇手動從🤗 transformers模型庫下載權重和配置文件,或者在代碼中使用 from_pretrained(model_name)
以自動加載模型。詳細方法參加模型使用。
預訓練權重
模型 | 文本編碼器 | 圖像編碼器 | 參數量* | MODEL_NAME | 鏈接 |
---|---|---|---|---|---|
VLE-base | DeBERTa-v3-base | CLIP-ViT-base-patch16 | 378M | hfl/vle-base | link |
VLE-large | DeBERTa-v3-large | CLIP-ViT-large-patch14 | 930M | hfl/vle-large | link |
* : 僅計算encoder和emebddings的參數。特定任務的預測層的參數量未計入。
精調權重
模型 | 文本編碼器 | 圖像編碼器 | MODEL_NAME | 鏈接 |
---|---|---|---|---|
VLE-base-for-VQA | DeBERTa-v3-base | CLIP-ViT-base-patch16 | hfl/vle-base-for-vqa | link |
VLE-large-for-VQA | DeBERTa-v3-large | CLIP-ViT-large-patch14 | hfl/vle-large-for-vqa | link |
VLE-base-for-VCR-q2a | DeBERTa-v3-base | CLIP-ViT-base-patch16 | hfl/vle-base-for-vcr-q2a | link |
VLE-large-for-VCR-q2a | DeBERTa-v3-large | CLIP-ViT-large-patch14 | hfl/vle-large-for-vcr-q2a | link |
VLE-base-for-VCR-qa2r | DeBERTa-v3-base | CLIP-ViT-base-patch16 | hfl/vle-base-for-vcr-qa2r | link |
VLE-large-for-VCR-qa2r | DeBERTa-v3-large | CLIP-ViT-large-patch14 | hfl/vle-large-for-vcr-qa2r | link |
模型對比
在下表中比較了VLE、METER以及其他多模態模型的參數量、預訓練數據和下游任務效果。其中VQA展示的的是test-dev集上的效果;VCR展示的是dev集上的效果。
模型 | VQA | VCR (QA2R) | VCR (Q2A) | 參數量 | 預訓練數據量* |
---|---|---|---|---|---|
CoCa | 82.3 | – | – | 2.1 B | 未知 |
BeiT-3 | 84.2 | – | – | 1.9 B | 21M(IT) + 14M(I) + 160G(T) |
OFA | 82.0 | – | – | 930M | 20M(IT) + 39M(I) + 140G(T) |
BLIP | 78.3 | – | – | 385M | ~130M(IT) |
METER-base | 77.7 (76.8†‡) | 79.8§ | 77.6§ | 345M | 9M(IT) |
METER-Huge | 80.3 | – | – | 878M | 20M(IT) |
VLE-base | 77.6‡ | 83.7§ | 79.9§ | 378M | 15M(IT) |
VLE-large | 79.3‡ | 87.5§ | 84.3§ | 930M | 15M(IT) |
† : 復現效果
‡ : 精調參數: lr=7e-6, batch_size={256, 512}, num_epochs=10
§ : 精調參數: lr=1e-5, batch_size=128, num_epochs=5
* : IT: 圖文對. I: 圖像. T: 文本.
觀察上表可以發現:
- VLE的預訓練更高效:與大小相近的模型相比,VLE使用了更少的預訓練數據,並在視覺問答上取得了相當甚至更好的效果。
- VLE有更強的推理能力: 特別地,在對推理能力要求更高的視覺常識推理(VCR)任務上,VLE顯著地超過了具有相似結構的METER。
#VLE首頁文檔和下載 #視覺語言多模態預訓練模型 #Development details