最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一步到位!圖像文本多模態(tài)理解模型,讓你秒懂視覺問答、圖文匹配

2023-08-06 21:49 作者:汀丶人工智能  | 我要投稿

VLE基于預(yù)訓(xùn)練文本和圖像編碼器的圖像-文本多模態(tài)理解模型:支持視覺問答、圖文匹配、圖片分類、常識(shí)推理等

多模態(tài)預(yù)訓(xùn)練模型通過(guò)在多種模態(tài)的大規(guī)模數(shù)據(jù)上的預(yù)訓(xùn)練,可以綜合利用來(lái)自不同模態(tài)的信息,執(zhí)行各種跨模態(tài)任務(wù)。在本項(xiàng)目中,我們推出了VLE (Vision-Language Encoder),一種基于預(yù)訓(xùn)練文本和圖像編碼器的圖像-文本多模態(tài)理解模型,可應(yīng)用于如視覺問答、圖像-文本檢索等多模態(tài)判別任務(wù)。特別地,在對(duì)語(yǔ)言理解和推理能力有更強(qiáng)要求的視覺常識(shí)推理(VCR)任務(wù)中,VLE取得了公開模型中的最佳效果。

最近,大型語(yǔ)言模型(LLM)取得了巨大成功,并被用于翻譯、問答、摘要等文本任務(wù)。雖然LLM是單模態(tài)模型,但它們的能力也可用于輔助多模態(tài)理解任務(wù)。借助LLM的zero-shot能力,我們?cè)O(shè)計(jì)了一種VQA+LLM方案,將大型語(yǔ)言模型集成到視覺問答任務(wù)中,實(shí)現(xiàn)了幫助視覺問答模型生成更準(zhǔn)確和流暢的答案。

開源VLE相關(guān)資源以供學(xué)術(shù)研究參考。

查看更多哈工大訊飛聯(lián)合實(shí)驗(yàn)室(HFL)發(fā)布的資源:https://github.com/iflytek/HFL-Anthology

1.模型結(jié)構(gòu)

VLE模型采用雙流結(jié)構(gòu),與METER模型結(jié)構(gòu)類似,由兩個(gè)單模態(tài)編碼器(圖像編碼器和文本編碼器)和一個(gè)跨模態(tài)融合模塊構(gòu)成。VLE與METER的結(jié)構(gòu)上的差異在于:

  • VLE使用DeBERTa-v3作為文本編碼器,其性能優(yōu)于METER中使用的RoBERTa-base。

  • 在VLE-large中,跨模態(tài)融合模塊的隱層維度增加至1024,以增加模型的容量。

  • 在精調(diào)階段,VLE引入了額外的token類型向量表示。

2.預(yù)訓(xùn)練

VLE使用圖文對(duì)數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練。在預(yù)訓(xùn)練階段,VLE采用了四個(gè)預(yù)訓(xùn)練任務(wù):

  • MLM (Masked Language Modeling):掩碼預(yù)測(cè)任務(wù)。給定圖文對(duì),隨機(jī)遮掩文本中的部分單詞,訓(xùn)練模型還原遮掩的文本。

  • ITM (Image-Text Matching):圖文匹配預(yù)測(cè)任務(wù)。給定圖文對(duì),訓(xùn)練模型判斷圖像和文本是否匹配。

  • MPC (Masked Patch-box Classification):遮掩Patch分類任務(wù),給定圖文對(duì),并遮掩掉圖片中包含具體對(duì)象的patch,訓(xùn)練模型預(yù)測(cè)被遮掩的對(duì)象種類。

  • PBC (Patch-box classification):Patch分類任務(wù)。給定圖文對(duì),預(yù)測(cè)圖片中的哪些patch與文本描述相關(guān)。

VLE在14M的英文圖文對(duì)數(shù)據(jù)上進(jìn)行了25000步的預(yù)訓(xùn)練,batch大小為2048。下圖展示了VLE的模型結(jié)構(gòu)和部分預(yù)訓(xùn)練任務(wù)(MLM、ITM和MPC)。

3.下游任務(wù)適配

3.1視覺問答 (VQA)

  • 我們遵循標(biāo)準(zhǔn)做法,使用VQA的訓(xùn)練集(training set)和驗(yàn)證集(validation set)訓(xùn)練模型,在test-dev集上進(jìn)行驗(yàn)證。我們采用模型的融合層的pooler的輸出進(jìn)行分類任務(wù)的訓(xùn)練。

3.2 視覺常識(shí)推理 (VCR)

  • 我們將VCR格式化為一個(gè)類似于RACE的選擇題任務(wù),并對(duì)于每張圖像中的對(duì)象,將覆蓋該對(duì)象的patch的表示的平均池化值添加到融合模塊之前的圖像特征序列中。我們還為圖像和文本中的對(duì)象添加額外的tokentypeids,以注入不同模態(tài)之間的對(duì)齊信息,提升模型的對(duì)齊性能。

3.3 模型下載

本次發(fā)布了VLE-base和VLE-large兩個(gè)版本的預(yù)訓(xùn)練模型,模型權(quán)重為PyTorch格式,可以選擇手動(dòng)從?? transformers模型庫(kù)下載權(quán)重和配置文件,或者在代碼中使用 from_pretrained(model_name) 以自動(dòng)加載模型。詳細(xì)方法參加模型使用。

3.4 預(yù)訓(xùn)練權(quán)重

3.5 精調(diào)權(quán)重

3.6 模型對(duì)比

在下表中,我們比較了VLE、METER以及其他多模態(tài)模型的參數(shù)量、預(yù)訓(xùn)練數(shù)據(jù)和下游任務(wù)效果。其中VQA展示的的是test-dev集上的效果;VCR展示的是dev集上的效果。

觀察上表可以發(fā)現(xiàn):

  • VLE的預(yù)訓(xùn)練更高效:與大小相近的模型相比,VLE使用了更少的預(yù)訓(xùn)練數(shù)據(jù),并在視覺問答上取得了相當(dāng)甚至更好的效果。

  • VLE有更強(qiáng)的推理能力: 特別地,在對(duì)推理能力要求更高的視覺常識(shí)推理(VCR)任務(wù)上,VLE顯著地超過(guò)了具有相似結(jié)構(gòu)的METER。

4.結(jié)合大模型的視覺問答

最近,隨著指令微調(diào)、RLHF等技術(shù)的發(fā)展,LLM在多種文本任務(wù)中取得了巨大的成功。盡管LLM是單模態(tài)模型,但它們的能力也可用于輔助多模態(tài)理解任務(wù)。具體而言,我們提出一種VQA + LLM方案,將多模態(tài)模型與LLM集成到視覺問答任務(wù)中,從而幫助VQA模型生成更準(zhǔn)確和流暢的答案。下圖展示了系統(tǒng)流程。

(a) VQA: 這是使用判別模型執(zhí)行VQA任務(wù)的標(biāo)準(zhǔn)方式。輸入問題和圖像到多模態(tài)模型中,訓(xùn)練模型預(yù)測(cè)正確的答案標(biāo)簽。

(b) VQA + LLM: 首先利用captioning模型生成圖片的描述;將圖片描述、問題以及VQA模型的詳細(xì)預(yù)測(cè)結(jié)果拼接,組合成合適的prompt的形式送入LLM,最后要求LLM模型回復(fù)最合理的答案。

VQA+LLM生成的答案更準(zhǔn)確,也有更高的可讀性。下面是一些例子:

Demo地址(僅供學(xué)術(shù)研究):https://huggingface.co/spaces/hfl/VQAVLELLM

4.1 模型使用

環(huán)境要求

  • PIL

  • Transformers >= 4.25

  • PyTorch Lightning (僅用于運(yùn)行精調(diào)腳本)

模型相關(guān)代碼位于models/VLE目錄下的*py文件中。因此,要使用VLE模型,僅需把models目錄復(fù)制到你的項(xiàng)目代碼目錄即可。

要運(yùn)行以下演示代碼,請(qǐng)使用git clone命令下載本倉(cāng)庫(kù)至本地,并進(jìn)入倉(cāng)庫(kù)的根目錄。

4.2 加載VLEModel

from models.VLE import VLEModel, VLEProcessor from PIL import Image import torch model_name="hfl/vle-large" images = [Image.open('pics/dogs.png')] text = ["There are dogs on the grass."] model = VLEModel.from_pretrained(model_name) vle_processor = VLEProcessor.from_pretrained(model_name) multimodal_inputs = vle_processor(text=text,images=images, return_tensors='pt',padding=True) #forward vle_output = model(**multimodal_inputs)

5.推理

5.1 視覺問答 (VQA)

from models.VLE import VLEForVQA, VLEProcessor, VLEForVQAPipeline from PIL import Image model_name="hfl/vle-base-for-vqa" text= "What is the color of the floor?" image = Image.open("pics/door.png") model = VLEForVQA.from_pretrained(model_name) vle_processor = VLEProcessor.from_pretrained(model_name) vqa_pipeline = VLEForVQAPipeline(model=model, device='cpu', vle_processor=vle_processor) vqa_answers = vqa_pipeline(image=image, question=text, top_k=5) print(f"Question: {text}. Answers: {vqa_answers}")

5.2 圖文匹配(ITM)

from models.VLE import VLEForITM, VLEProcessor, VLEForITMPipeline from PIL import Image model_dir = 'hfl/vle-base' itm_text = ["a photo of a cat.", "a photo of dogs."] itm_images = Image.open("pics/dogs.png") print("Init ITM model") model = VLEForITM.from_pretrained(model_dir) vle_processor = VLEProcessor.from_pretrained(model_dir) print("init ITM pipeline") itm_pipeline = VLEForITMPipeline(model=model, device='cpu', vle_processor=vle_processor) itm_pred = itm_pipeline([{"image": itm_images, "text": itm_text[0]}, ? ? ? ? ? ? ? ? ? ? ? ? {"image": itm_images, "text": itm_text[1]}]) for t, pred in zip(itm_text,itm_pred): ? ?print(t,pred)

5.3 Patch分類(PBC)

from models.VLE import VLEForPBC, VLEProcessor, VLEForPBCPipeline from PIL import Image model_dir = 'hfl/vle-base' pbc_text = "pink tongues" pbc_image = Image.open("pics/dogs.png") print("Init PBC model") model = VLEForPBC.from_pretrained(model_dir) vle_processor = VLEProcessor.from_pretrained(model_dir) print("init PBC pipeline") pbc_pipeline = VLEForPBCPipeline(model=model, device='cpu', vle_processor=vle_processor) pbc_pred = pbc_pipeline(image=pbc_image,text=pbc_text) print(pbc_text) pbc_pred['image'].save('pics/pink_tongues.png')

更多優(yōu)質(zhì)內(nèi)容請(qǐng)關(guān)注:汀丶人工智能;會(huì)提供一些相關(guān)的資源和優(yōu)質(zhì)文章,免費(fèi)獲取閱讀。



一步到位!圖像文本多模態(tài)理解模型,讓你秒懂視覺問答、圖文匹配的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
新干县| 留坝县| 滦平县| 隆林| 荥经县| 嘉峪关市| 新和县| 郎溪县| 栾川县| 裕民县| 台江县| 大悟县| 儋州市| 永昌县| 方山县| 永顺县| 龙山县| 满城县| 迭部县| 大同市| 西贡区| 许昌市| 蒲江县| 夏河县| 罗源县| 宜都市| 麻阳| 兴城市| 宝兴县| 珠海市| 赤峰市| 朔州市| 文成县| 廉江市| 来安县| 雷山县| 昌乐县| 东乌珠穆沁旗| 民勤县| 蒙自县| 绥棱县|