### [AI / ML領域相關學習筆記入口頁面](https://hackmd.io/@YungHuiHsu/BySsb5dfp) #### [[Mulimodal] CVPR 2023。Multimodal Foundation Models : From Specialists to General-Purpose Assistants<br>多模態基礎模型研究回顧](https://hackmd.io/@YungHuiHsu/HkOjXPg46) ##### [[Multimodal] LLaVA鍊成術-視覺指令調節 Visual Instruction Tuning](https://hackmd.io/@YungHuiHsu/HyMgBbjSa) ##### [[Multimodal] 通用多模態模型資訊檢索器模型 UniIR: Training and Benchmarking Universal Multimodal Information Retrievers](https://hackmd.io/@YungHuiHsu/rJVsI68B6) ##### [[Multimodal] 多模態語言模型在自駕領域筆記 Multimodal Large Language Models for Autonomous Driving](https://hackmd.io/@YungHuiHsu/HJzyHId4T) --- # UniIR: Training and Benchmarking Universal Multimodal Information Retrievers ## [Multimodal] 通用多模態模型資訊檢索器模型 - [Homepage](https://tiger-ai-lab.github.io/UniIR/) - [paper](https://arxiv.org/abs/2311.17136) - [code](https://github.com/TIGER-AI-Lab/UniIR) ![image](https://hackmd.io/_uploads/BJICPaIHp.png) :::info UniIR(Universal multimodal Information Retrieval)模型,旨在學習單一的檢索器來完成任何檢索任務。不同於傳統的資訊檢索(IR)系統,UniIR 需要根據指令,從包含數百萬個多模態候選項的異質(不同的非結構/結構化資料)候選池中檢索資訊。 ::: ## 論文主要亮點 本研究的亮點包括: 1. UniIR 框架能夠理解用戶的自然語言指令,處理包括圖像與文本在內的異質查詢,實現跨模態檢索。 2. 通過得分級融合(score-level fusion)和特徵級融合(feature-level fusion)的策略,UniIR 提升了多模態檢索的性能。 3. 研究中將預訓練模型如CLIP和BLIP微調(fine-tune)適用於UniIR,並**將檢索指令作為查詢文本的前綴(instruction-guided)**,增強了模型對指令的理解和回應能力。 4. UniIR 在多任務訓練(無用戶指令)和指令調整(instruction tuning,有用戶指令)上顯示了優異的泛化能力,能夠在零樣本情況下適應新的檢索任務。 5. 創建了M-BEIR基準資料集,為通用多模態資訊檢索的評估提供了標準化的評測方法。 ## M-BEIR Benchmark ![image](https://hackmd.io/_uploads/rJeecaLHa.png) 圖1: 透過指令調整建立了一個通用多模態資訊檢索器UniIR。UniIR能夠接受式的查詢和指令,以檢索任何模態的資訊。 ##### detail :::spoiler > 任何形式的查詢和指令,以檢索任何模態的資訊 M-BEIR資料集中的六個查詢實例,每個實例都包含一個查詢 $q_i$ 和一個由人類標註的正面(相關)候選 $c^*_i$。 > 1. 查詢一個與給定問題相匹配的維基百科圖片描述對: > - 查詢文本 $q_t$: "這隻動物的原產國是哪裡?" > - 正面候選 $c^*_i$: 一段關於“舊英格蘭牧羊犬”的描述,指出它是英格蘭早期放牧犬的一個品種。 > 2. 找到一則符合給定標題的新聞圖片: > - 查詢文本 $q_i$: 保加利亞總統羅森·普列夫內利耶夫在聯合國大會上的演講。 > - 正面候選 $c^*_i$: 一則關於伊朗國家安全理事會秘書在會後與奧巴馬會面的新聞標題。 > 3. 尋找符合該問題描述的維基百科頁面: > - 查詢文本 $q_i$: 海斯縣法院大樓位於德州聖馬科斯,地址為227 Mitchell Street,它們的前門入口有滑雪板嗎? > - 正面候選 $c^*_i$: 一個圖片和標題對,描述了位於德州聖馬科斯的海斯縣法院大樓。 > 4. 尋找一個與參考圖片和風格說明一致的時尚圖片: > - 查詢圖片 $q_i$: 一個沒有文字並且圖形簡單大方的圖片。 > - 正面候選 $c^*_i$: 一個時尚產品圖片。 > 5. 尋找一張與描述變更相符的日常圖片: > - 查詢文本 $q_t$: "我正在尋找一張與描述的變更相符的日常圖片。" > - 正面候選 $c^*_i$: 一張普通物品的圖片。 > 6. 尋找一張與參考圖片最相似的常見圖片: > - 查詢文本 $q_t$: "哪張常見圖片與參考圖片最相似?" > - 正面候選 $c^*_i$: 一張日常場景照片。 ::: ## 模型架構和原理: 圖2展示了兩種用於UniIR模型的多模態融合機制:**得分級**融合和**特徵級**融合。為了探索這些方法的有效性,研究中將預訓練模型如CLIP和BLIP進行調整,並將指令(Instructions )整合為文本查詢的前綴(prefixes)。 這些融合方法的目的是為了更好地整合視覺和語言信息,以提升模型在處理多模態任務上的性能,例如檢索或分類等。這種整合使模型能夠更全面地理解和處理包含圖像和文本信息的複雜查詢。 :::success - 得分級(**Score-level**)融合:將各模態獨立得分(可學習的權重)整合 - 特徵級(**Feature-level fusion**)融合:在編碼階段混合不同模態特徵 ::: ![image](https://hackmd.io/_uploads/rkrhv6IST.png =800x) 圖2中呈現三種不同的多模態融合機制的設計: (a) **Score-level fusion**): - 將圖像編碼器 $f_i$ 和文本編碼器 $f_r$ 的輸出進行加權融合,以產生最終的相關性得分 $S_{q,c}$。 - 加權係數 $w_1, w_2, w_3, w_4$ 用來調整各個編碼器輸出的影響。 (b) CLIP **Feature-level fusion ($CLIP_{FF}$)** with **mix-modality transformer layer**: - 透過合併層(mix-modality transformer layer)將圖像和文本特徵混合,形成單一特徵,以利於後續的轉換或任務處理。 - $f_{MIX}$ 表示混合模態轉換,將兩種模態合併為單一特徵向量。 (c ) BLIP **Feature-level fusion ($BLIP_{FF}$)** with **Cross-Attention**: - 採用交叉注意力(Cross-Attention) 機制,將圖像和文本編碼器的輸出相互關聯,輸出單一特徵向量。 - 交叉注意力層可以捕捉圖像與文本間的細節相關性,增強特徵表示的質量。 ### UniIR檢索演算法表示: - 演算法數學表示 $$ c^* = \displaystyle\operatorname*{ }_{\{c\} \in C}[f(q, q_{inst})^T \cdot f(c)] $$ - $C$:代表異質候選項池,這是一組可能的檢索結果,包含了多種模態的內容,例如文本或圖片。 - $f(\cdot)$:這是一個功能,用於優化點積檢索結果,基本上是衡量查詢和候選項之間相似度的函數。 - $c^*$:是預測出最符合查詢意圖的最佳檢索結果。 演算法的運作原理如下: 1. 根據用戶提供的指令 $q_{\text{inst}}$,定義檢索任務的意圖。這個指令明確指出搜尋的目標是什麼,無論是圖像、文本或二者的結合。 2. 使用一個統一的檢索模型 $f$,這個模型能夠接受任何類型的查詢並檢索出由指令 $q_{\text{inst}}$ 指定的目標類型。 - 公式中的模型 $f$ 代表的是多模態融合機制(得分級融合或特徵級融合)訓練出來的模型 - $f()$ 用來查詢 $q$(可能包含圖像、文字或兩者的組合)和檢索任務的指令 $q_{\text{inst}}$ 轉換為一個特徵表示。 - 同樣地,它也將候選項 $c$ 轉換為特徵表示。 - 然後這兩個特徵表示的點積用來計算相關性得分,以便選出與查詢最相關的候選項。 :::success **透過最大化查詢特徵 $f(q, q_{\text{inst}})$ 和候選項特徵 $f(c)$ 的點積,來確定最合適的檢索結果** $c^*$。這裡的點積作為相似度的衡量,表明查詢和候選項之間的相關性。 ::: 這個多模態檢索演算法使得可以根據用戶的自然語言指令來檢索跨文本和圖像等不同模態的資料,從而建立一個通用的多模態檢索器。透過這種方式,它能夠統一不同的多模態檢索任務到一個框架中,使檢索更加通用和靈活。 ### UniIR Model 細節進一步檢視 #### **Score-level Fusion** ![image](https://hackmd.io/_uploads/ryDcz-vHT.png =400x) - CLIP和BLIP的得分級融合版本(分別標記為CLIP_SF和BLIP_SF)使用不同的編碼器來處理視覺和文本輸入。 - 視覺編碼器用 $f_i$ 標記,單模態文本編碼器用 $f_t$ 標記。 - 查詢和目標的圖像和文本輸入分別被處理成兩個獨立的向量。 - 這些向量經過一個加權和,形成統一的表徵向量。 - 數學上,查詢的統一表徵向量表示為 $f(q_i, q_t, q_{\text{inst}}) = w_1 f_i(q_i) + w_2 f_t(q_t, q_{\text{inst}})$,目標的表徵向量表示為 $f(c_i, c_t) = w_3 f_i(c_i) + w_4 f_t(c_t)$。 - 查詢 $q$ 與目標 $c$ 之間的相似度得分計算為兩個表徵向量的加權和。 具體的相似度得分計算公式為: $$ s_{q,c} = w_1 w_3 f_i(q_i)^T f_i(c_i) + w_2 w_4 f_t(q_t, q_{\text{inst}})^T f_t(c_t) + w_1 w_4 f_i(q_i)^T f_t(c_t) + w_2 w_3 f_t(q_t, q_{\text{inst}})^T f_i(c_i) $$ 其中,$w_1, w_2, w_3, w_4$ 是可學習的參數,反映了各個編碼器輸出的重要性權重。 這種得分級融合方法允許模型同時考慮圖像和文本的信息,並根據查詢和目標的相關性來計算得分,這有助於在多模態檢索任務中找到最合適的匹配項。 #### **Feature-level Fusion** 圖中的公式是描述特徵級融合方法計算查詢 $q$ 與目標 $c$ 之間相似度得分 $s_{q,c}$ 的方式: $$ s_{q,c} = f_{\text{MIX}}(q_i, q_t, q_{\text{inst}})^T \cdot f_{\text{MIX}}(c_i, c_t) $$ 這裡的意義是: - $f_{\text{MIX}}(q_i, q_t, q_{\text{inst}})$ 是查詢 $q$ 的複合特徵向量,綜合了圖像特徵 $q_i$、文本特徵 $q_t$ 和查詢指令 $q_{\text{inst}}$。 - $f_{\text{MIX}}(c_i, c_t)$ 是目標 $c$ 的複合特徵向量,綜合了圖像特徵 $c_i$ 和文本特徵 $c_t$。 - $^T$ 代表向量的轉置,這是為了執行向量間的點積。 - $s_{q,c}$ 是通過計算兩個複合特徵向量的點積得到的相似度得分。 這個計算過程是特徵級融合的核心部分,它允許模型有效地整合來自不同模態的資訊,以評估查詢和目標之間的相關性,使其能夠處理包含圖像和文本等多種類型資料的查詢。 ##### $CLIP_{FF}$ with **Mixed-Modality encoder** ![image](https://hackmd.io/_uploads/S1X6WZvHp.png =150x) - CLIP特徵級融合$f_{MIX}$ for $CLIP_{FF}$的設計過程如下: - 預訓練視覺編碼器 $f_{I}$ - 使用CLIP模型中的視覺編碼器,該編碼器已經過預訓練,能夠從圖像中有效提取視覺特徵。 - 文本編碼器 $f_{T}$ - 使用CLIP模型中的文本編碼器提取文本特徵。 - **融合視覺與文本特徵**: - **多模態變換器層**:透過合併層(Merge Layer),即一個包含兩層的多模態變換器(a 2-layer Multi-ModalTransformer),該變換器遵循T5變換器的架構。T5是一種有效的自然語言處理模型,用於理解和生成文本。 - 生成混合模態編碼器 $f_{\text{MIX}}$ 經過多模態變換器處理後,視覺和文本特徵被結合成一個統一的特徵表示,即混合模態編碼器 $f_{\text{MIX}}$的輸出。 ##### $BLIP_{FF}$ with **Cross-Attention** ![image](https://hackmd.io/_uploads/r147fZvr6.png =150x) 模態的資訊,形成一個全面的資料表達,用於後續的檢索任務。 - BLIP特徵級融合$f_{MIX}$ for $BLIP_{FF}$的設計流程如下: - 預訓練視覺編碼器 $f_{I}$:選擇BLIP模型中的視覺編碼器,這個編碼器已經通過預訓練,專門用來從圖像中提取視覺特徵。 - 文本編碼器 $f_{T}$:使用BLIP的文本編碼器(BLIP’s image-grounded text encoder),從提取文本特徵 - BLIP的基於圖像的文本編碼器(BLIP’s image-grounded text encoder) > ![image](https://hackmd.io/_uploads/B1JTpGZYT.png) 設計用於處理和理解圖像內容及其相關文本描述的編碼器,具有以下特點: > - **圖像理解**:編碼器能夠解析圖像中的視覺元素和細節,如物體、場景、顏色等。 > - **語境關聯**:它會將圖像的視覺特徵與相應的文本描述相關聯。這意味著編碼器不僅僅是單獨理解圖像,而是在圖像的語境下理解文本。 > - 即圖c中的Text Encoding Layer - **混合模態編碼器 $f_{\text{MIX}}$**:text encoder與交叉注意力層的輸出形成了混合模態編碼器 $f_{\text{MIX}}$,它結合了來自圖像和文本的資訊,生成了一個統一的特徵向量。 - **交叉注意力層**:在BLIP模型中,使用交叉注意力層來整合視覺編碼器和文本編碼器輸出的特徵。這些層使模型能夠關注圖像特徵中對文本描述特別重要的部分。 - 生成混合模態編碼器 $f_{\text{MIX}}$(同$CLIP_{FF}$) ## Benchmarking UniIR on M-BEIR 在表格2中,我們可以看到,對於多任務訓練(Multi-task),BLIP特徵級融合($BLIP_{FF}$)在大多數情況下似乎比得分級融合(Score-level fusion)和CLIP特徵級融合($CLIP_{FF}$)表現更佳。尤其是在Multi-task情境中,$CLIP_{FF}$在幾個資料集上均獲得了最高的表現。然而,這些結果可能因任務和資料集的不同而有所變化。 ![image](https://hackmd.io/_uploads/Hk5AobPH6.png) > "X instruction"指的是對模型進行多任務學習時,沒有使用任何指令作為查詢的一部分。這意味著,在這種情境下,模型被訓練來理解和處理查詢,但它不會接收到額外的自然語言指令來指導檢索過程。简言之,"X instruction"的環境測試模型在沒有接收到明確指令時的檢索能力。 ## UniIR generalizes to unseen retrieval tasks ![image](https://hackmd.io/_uploads/SkpZ3WDSp.png) 根據表7的資料,UniIR模型在被沒見過資料集上的泛化表現也很好,特別是當使用$BLIP_{FF}$時。這再次表明,特徵級融合特別是$BLIP_{FF}$可能是一種更強大的多模態融合策略。但還需要考慮模型在所有任務和資料集上的平均表現 ## References and supplements ### References #### [A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models](https://arxiv.org/abs/2307.12980) ![image](https://hackmd.io/_uploads/Hy30Ys5Bp.png =800x) ![image](https://hackmd.io/_uploads/SJxIFj5B6.png =500x) ![image](https://hackmd.io/_uploads/HJRuYs5H6.png =800x) ![image](https://hackmd.io/_uploads/SkIqKs9r6.png =400x) #### [2023.05。Synthesis AI。CLIP and multimodal retrieval: Generative AI IV](https://synthesis.ai/2023/05/16/generative-ai-iv-clip-and-multimodal-retrieval/) 概念解釋的淺顯易懂,內含BLIP的介紹 ![image](https://hackmd.io/_uploads/SycV_QWFp.png) ![image](https://hackmd.io/_uploads/S17HdQWFa.png) ![image](https://hackmd.io/_uploads/BJuHuQ-Y6.png) - image-grounded text encoder - 這裡的image-grounded text encoder是用作第一張圖中的Filetr,用來分辨文字-圖片的配對(text-image pairs)是否正確 - 他的損失函數:`Image-Text Matching Loss (ITM)`是一個簡單的二分類損失 - BLIP的基於圖像的文本編碼器(BLIP’s image-grounded text encoder),能理解視覺編碼器的Embedding中的視覺特徵與元素,並與輸入文字(Query)結合(特徵融合)產出視覺與文字特徵對齊的混合特徵 - 可以視為一個被預訓練好的(視覺-文字)混合模態編碼器,因此在UniIR中被拿來做為$f_{\text{MIX}}$ > an image-grounded text encoder, implemented as a Transformer encoder with causal cross-attention that receives image embedding as input; here the objective is again to classify correct vs. incorrect text-image pairs, but as a regular classification rather than a contrastive loss; ### supplements :::info - "Instruction-guided" - 引導指的是模型使用自然語言指令來指導其檢索或其他任務的行為 - 這些指令作為查詢的一部分直接輸入模型。這通常是為了讓模型能夠更好地理解用戶的意圖並提供相關的響應。 - "Instruction tuning" - 指在模型的微調(fine-tuning)階段,將特定的指令與查詢或其他輸入結合,以改進模型在特定任務上的表現。 - 這些指令可以作為前綴添加到輸入中,幫助模型在面對多樣化查詢時有更好的表現。 - "Prefix tuning" - 是一種參數高效的微調技術,它在模型的輸入前增加一組可訓練的參數(即前綴),而不需要微調模型的所有參數 - 這些前綴可以看作是一種固定的指令,它們在模型訓練過程中學習,以幫助模型更好地執行特定任務 ::: - 補充:Prefix tuning概念可參考 [Parameter-efficient fine-tuning-Prefix tuning](https://hackmd.io/eOHh7zK1QlGDHz2RNR5noQ?view#Part-4-How-to-use-PLMs-Parameter-efficient-fine-tuning) - Prefix tuning ![image](https://hackmd.io/_uploads/H1N3mfPBT.png =300x) - (Soft) Prompt tuning / Soft Prompting ![image](https://hackmd.io/_uploads/BJbDioqBT.png =300x) #### [2023.01。李沐。多模态论文串讲·下【论文精读】](https://www.youtube.com/watch?v=S1le41J76lQ&t=7s) ![image](https://hackmd.io/_uploads/HJ9hma9Sp.png)