国产精品久久久久久久久久久久午衣片,国产成人精品男人的天堂网站,熟女一区二区中文字幕,亚洲精品国产精品乱码在线

環(huán)球熱文:使用 BLIP-2 零樣本“圖生文”

本文將介紹來(lái)自 Salesforce 研究院的 BLIP-2 模型,它支持一整套最先進(jìn)的視覺(jué)語(yǔ)言模型,且已集成入 Transformers。我們將向你展示如何將其用于圖像字幕生成、有提示圖像字幕生成、視覺(jué)問(wèn)答及基于聊天的提示這些應用場(chǎng)景。

BLIP-2 模型文檔:https://hf.co/docs/transformers/main/en/model_doc/blip-2


(資料圖)

Transformers 模型及文檔:https://hf.co/transformers

簡(jiǎn)介

近年來(lái),計算機視覺(jué)和自然語(yǔ)言處理領(lǐng)域各自都取得了飛速發(fā)展。但許多實(shí)際問(wèn)題本質(zhì)上其實(shí)是多模態(tài)的,即它們同時(shí)涉及幾種不同形式的數據,如圖像和文本。因此,需要視覺(jué)語(yǔ)言模型來(lái)幫助解決一系列組合模態(tài)的挑戰,我們的技術(shù)才能最終得到廣泛落地。視覺(jué)語(yǔ)言模型可以處理的一些?圖生文?任務(wù)包括圖像字幕生成、圖文檢索以及視覺(jué)問(wèn)答。圖像字幕生成可以用于視障人士輔助、創(chuàng )建有用的產(chǎn)品描述、識別非文本模態(tài)的不當內容等。圖文檢索可以用于多模態(tài)搜索,也可用于自動(dòng)駕駛場(chǎng)合。視覺(jué)問(wèn)答可以助力教育行業(yè)、使能多模態(tài)聊天機器人,還可用于各種特定領(lǐng)域的信息檢索應用。

現代計算機視覺(jué)和自然語(yǔ)言模型在能力越來(lái)越強大的同時(shí),模型尺寸也隨之顯著(zhù)增大。由于當前進(jìn)行一次單模態(tài)模型的預訓練既耗費資源又昂貴,因此端到端視覺(jué)語(yǔ)言預訓練的成本也已變得越來(lái)越高。

BLIP-2 通過(guò)引入一種新的視覺(jué)語(yǔ)言預訓練范式來(lái)應對這一挑戰,該范式可以任意組合并充分利用兩個(gè)預訓練好的視覺(jué)編碼器和 LLM,而無(wú)須端到端地預訓練整個(gè)架構。這使得我們可以在多個(gè)視覺(jué)語(yǔ)言任務(wù)上實(shí)現最先進(jìn)的結果,同時(shí)顯著(zhù)減少訓練參數量和預訓練成本。此外,這種方法為多模態(tài)ChatGPT 類(lèi)應用奠定了基礎。

BLIP-2 論文鏈接:https://arxiv.org/pdf/2301.12597.pdf

BLIP-2 葫蘆里賣(mài)的什么藥?

BLIP-2 通過(guò)在凍結的預訓練圖像編碼器和凍結的預訓練大語(yǔ)言模型之間添加一個(gè)輕量級?查詢(xún) Transformer (Query Transformer, Q-Former)?來(lái)彌合視覺(jué)和語(yǔ)言模型之間的模態(tài)隔閡 (modality gap)。在整個(gè)模型中,Q-Former 是唯一的可訓練模塊,而圖像編碼器和語(yǔ)言模型始終保持凍結狀態(tài)。

Q-Former 是一個(gè) transformer 模型,它由兩個(gè)子模塊組成,這兩個(gè)子模塊共享相同的自注意力層:

與凍結的圖像編碼器交互的圖像 transformer,用于視覺(jué)特征提取

文本 transformer,用作文本編碼器和解碼器

圖像 transformer 從圖像編碼器中提取固定數量的輸出特征,這里特征的個(gè)數與輸入圖像分辨率無(wú)關(guān)。同時(shí),圖像 transformer 接收若干查詢(xún)嵌入作為輸入,這些查詢(xún)嵌入是可訓練的。這些查詢(xún)還可以通過(guò)相同的自注意力層與文本進(jìn)行交互 (譯者注: 這里的相同是指圖像 transformer 和文本 transformer 對應的自注意力層是共享的)。

Q-Former 分兩個(gè)階段進(jìn)行預訓練。

第一階段,圖像編碼器被凍結,Q-Former 通過(guò)三個(gè)損失函數進(jìn)行訓練:

圖文對比損失 (image-text contrastive loss): 每個(gè)查詢(xún)的輸出都與文本輸出的 CLS 詞元計算成對相似度,并從中選擇相似度最高的一個(gè)最終計算對比損失。在該損失函數下,查詢(xún)嵌入和文本不會(huì ) “看到” 彼此。

基于圖像的文本生成損失: 查詢(xún)內部可以相互計算注意力但不計算文本詞元對查詢(xún)的注意力,同時(shí)文本內部的自注意力使用因果掩碼且需計算所有查詢(xún)對文本的注意力。

圖文匹配損失 (image-text matching loss): 查詢(xún)和文本可以看到彼此,最終獲得一個(gè)幾率 (logit) 用以表示文字與圖像是否匹配。這里,使用難例挖掘技術(shù) (hard negative mining) 來(lái)生成負樣本。

圖像 transformer 作為一個(gè)信息瓶頸 (information bottleneck),查詢(xún)嵌入經(jīng)過(guò)它后,其輸出嵌入已經(jīng)不僅僅包含了視覺(jué)信息,而且包含了與文本相關(guān)的視覺(jué)信息。這些輸出嵌入用作第二階段 LLM 輸入的視覺(jué)前綴。該預訓練階段主要涉及一個(gè)以基于圖像的文本生成任務(wù),損失函數使用因果 LM 損失。

BLIP-2 使用 ViT 作為視覺(jué)編碼器。而對于 LLM,論文作者使用 OPT 和 Flan T5 模型。你可以找到在 Hugging Face Hub 上找到 OPT 和 Flan T5 的預訓練 checkpoints。

在 Hugging Face Hub 中檢索 BLIP-2 相關(guān)模型:https://hf.co/models?other=blip-2

但不要忘記,如前所述,BLIP-2 設計的預訓練方法允許任意的視覺(jué)主干模型和 LLM 的組合。

通過(guò) Hugging Face Transformers 使用 BLIP-2

使用 Hugging Face Transformers,你可以輕松下載并在你自己的圖像上運行預訓練的 BLIP-2 模型。如果你想跑跑本文中的示例,請確保使用大顯存 GPU。

我們從安裝 Transformers 開(kāi)始。由于此模型是最近才添加到 Transformers 中的,因此我們需要從源代碼安裝 Transformers:

接下來(lái),我們需要一個(gè)輸入圖像?!都~約客》每周都會(huì )面向其讀者舉辦一場(chǎng) 卡通字幕比賽。我們從中取一張卡通圖像輸入給 BLIP-2 用于測試。

卡通字母比賽鏈接:https://www.newyorker.com/cartoons/contest#thisweek

現在我們有一張輸入圖像了,還需要一個(gè)預訓練過(guò)的 BLIP-2 模型和相應的預處理器來(lái)處理輸入。你 可以在 Hugging Face Hub 上找到所有可用的預訓練 checkpoints 列表。這里,我們將加載一個(gè)使用 Meta AI 的預訓練 OPT 模型的 BLIP-2 checkpoint,該 OPT 模型具有 27 億個(gè)參數。

請注意,你暫時(shí)還無(wú)法使用 Auto API (例如 AutoModelForXXX) 來(lái)加載 BLIP-2 模型,這種情況在 Hugging Face 中比較少見(jiàn)。你需要顯式使用?Blip2ForConditionalGeneration來(lái)加載 BLIP-2 模型。雖然自動(dòng)獲取模型還不能做到,但是你可以使用?AutoProcessor來(lái)獲取匹配的處理器類(lèi),在本例中為?Blip2Processor。

我們可以使用 GPU 來(lái)加快文本生成速度:

圖像字幕生成

我們先看看 BLIP-2 是否可以零樣本地為《紐約客》卡通圖像生成字幕。要為圖像添加字幕,我們不必向模型提供任何文本提示,僅提供預處理過(guò)的輸入圖像。沒(méi)有任何文字提示,模型將從 BOS (beginning-of-sequence) 開(kāi)始生成圖像字幕。

對于未使用《紐約客》風(fēng)格的卡通圖像訓練過(guò)的模型,這是一個(gè)令人印象深刻的準確描述!

有提示圖片字幕生成

我們還可以通過(guò)提供文本提示來(lái)擴展圖像字幕生成,模型將在給定圖像的情況下接著(zhù)提示詞往下補充。

視覺(jué)問(wèn)答

用于視覺(jué)問(wèn)答時(shí),提示必須遵循特定格式: "Question: {} Answer:"

基于聊天的提示

最后,我們可以通過(guò)拼接對話(huà)中每輪的問(wèn)題和回答來(lái)創(chuàng )建類(lèi)似 ChatGPT 的體驗。我們用某個(gè)提示 (比如 “恐龍拿著(zhù)什么?”) 來(lái)問(wèn)模型,模型會(huì )為它生成一個(gè)答案 (如 “火炬”),我們可以把這一問(wèn)一答拼接到對話(huà)中。然后我們再來(lái)一輪,這樣就把上下文 (context) 建立起來(lái)了。但是,需要確保的是,上下文不能超過(guò) 512 個(gè)標記,因為這是 BLIP-2 使用的語(yǔ)言模型 (OPT 和 T5) 的上下文長(cháng)度。

結論

BLIP-2 是一種零樣本視覺(jué)語(yǔ)言模型,可用于各種含圖像和文本提示的圖像到文本任務(wù)。這是一種效果好且效率高的方法,可應用于多種場(chǎng)景下的圖像理解,特別是當訓練樣本稀缺時(shí)。

該模型通過(guò)在預訓練模型之間添加 transformer 來(lái)彌合視覺(jué)和自然語(yǔ)言模態(tài)之間的隔閡。這一新的預訓練范式使它能夠充分享受兩種模態(tài)的各自的進(jìn)展的紅利。

如果您想了解如何針對各種視覺(jué)語(yǔ)言任務(wù)微調 BLIP-2 模型,請查看 Salesforce 提供的 LAVIS 庫,它為模型訓練提供全面支持。

Salesforce 提供的 LAVIS 代碼倉庫:https://github.com/salesforce/LAVIS

要查看 BLIP-2 的運行情況,可以在 Hugging Face Spaces 上試用其演示。

Hugging Face Spaces 中的 Salesforce BLIP-2:https://hf.co/spaces/Salesforce/BLIP2

致謝

非常感謝 Salesforce 研究團隊在 BLIP-2 上的工作,感謝 Niels Rogge 將 BLIP-2 添加到 Transformers,感謝 Omar Sanseviero 審閱這篇文章。

英文原文: https://hf.co/blog/blip-2

作者: Maria Khalusova、JunnanLi

譯者: Matrix Yao (姚偉峰),英特爾深度學(xué)習工程師,工作方向為 transformer-family 模型在各模態(tài)數據上的應用及大規模模型的訓練推理。

審校、排版: zhongdongy (阿東)

關(guān)鍵詞: 視覺(jué)語(yǔ)言 語(yǔ)言模型 損失函數