【AI 手把手教學】多模態 RAG 介紹:以圖像為資料進行搜尋,輕鬆完成智慧檢索

Iris Liu

什麼是多模態?

多模態指的是能夠同時處理多種不同形式的資料,例如文字、圖像、影片、音訊等。過去的 AI 模型大多只能處理單一模態的資料,如大型語言模型(LLM)通常僅處理文字資料、卷積神經網路(CNN)模型則是處理影像資料。而近期出現的多模態 AI 模型,能夠整合並理解多種類型資料,讓 AI 模型能對輸入的資訊有更全面的理解。

這背後的關鍵技術之一是多模態嵌入(multimodal embedding)模型。它能將不同類型的資料(如圖片、文字)轉換成相同語意空間和維度的向量,並使這些向量可以互換使用,也就是圖片和文字資料可以在同一個向量空間一起被處理。這讓 AI 模型能夠實現用文字來搜尋圖片,或是用圖片來尋找相關的影片,大幅提升了 AI 模型的應用範圍。

文字嵌入的局限性:以 RAG 為例

RAG (Retrieval-Augmented Generation) 是一種將預訓練語言模型與外部知識庫相結合的技術。RAG 系統會在指定的資料庫中檢索與使用者查詢相關的資訊,然後利用這些資訊來生成回答。


然而,傳統的 RAG 主要基於依賴文字資料運作。由於過往的嵌入模型只能處理文字資訊,無法將圖像、影片等多媒體資料轉換成能被系統理解的向量, 因此在實務應用上常會出現限制。因為實際上,一份文件經常包含文字、圖表、圖片等多種元素。如果僅使用文字 RAG,將會遺漏圖像中所包含的重要資訊。


具體來說,如果要將含有圖片和文字的PDF檔案作為 RAG 系統資料來源,在沒有多模態嵌入模型的情況下,只有文字資料會被執行嵌入處理並放入資料庫,因此詢問圖片相關的資訊往往會得不到答案。多模態嵌入則能夠將不同形式的資料轉換到同一個語意空間,達到語義對齊。這使得我們可以同時對文字和圖像進行語義搜尋和推理,從而更充分地利用資料。因此若要讓 RAG 系統能夠處理這些包含圖像資訊的場景,就必須引入多模態 RAG。


以下用電商的產品圖片資料庫作為例子,說明多模態 RAG (用文字查詢圖片) 的運作:當使用者輸入文字查詢:「具有復古風格的藍色連衣裙」,傳統 RAG 系統只能基於產品描述等文字資訊進行檢索,如果產品描述沒有明確標註「復古」或顏色是「藍色」,就可能無法找到這件衣服。但若使用多模態 RAG,系統便能將「復古」、「藍色」這些文字轉換成向量,並在同時包含圖片與文字的多模態資料庫中,搜尋與之意義最接近的圖片向量,從而精準找到符合條件的產品。

多模態 RAG 的運作流程

接下來透過「利用自然語言檢索以圖片為資料的資料庫」的範例說明多模態 RAG 的運作流(圖1),並會用到 Google Cloud Storage(GCS)、Vertex AI Multimodal Embedding Model、gemini-2.5-flash、FAISS 向量資料庫、LangChain 等工具。


其中 FAISS (Facebook AI Similarity Search) 是一個高效能的向量資料庫,專門用於快速搜尋和檢索高維度向量資料,並支援與LangChain 的整合。而多模態嵌入模型則是用 Vertex AI 的 multimodal embedding@001,如果想用開源的多模態嵌入模型可以參考 hugging face 上面由 OpenAI 開發的 CLIP,此外 Micorsoft Azure 與 AWS 也都有開發各自的多模態嵌入模型可供選擇。

test

圖1:多模態 RAG 的運作流程

Step1.建立資料庫:

首先,將圖片上傳到 GCS,接著使用多模態嵌入模型,將 GCS 中的圖片讀取進來,並將每張圖片轉換成一個向量,將圖片的視覺資訊轉化為可以被 AI 模型理解的數學形式。最後,將這些生成的圖片向量儲存到向量資料庫(FAISS),用於後續檢索。

Step2.進行檢索與生成:

當使用者輸入一個文字查詢(Query)時,系統會啟動檢索器 (Retriever),使用同一個多模態嵌入模型,將使用者的文字查詢也轉換成向量,並在 FAISS 資料庫中尋找與這個查詢向量最相關的圖片向量,也就是意義上與這段文字最相關的圖片。

找到相關的圖片索引後,系統會從 GCS 讀取原始圖片檔案,並將其轉換成適合多模態 LLM 輸入的 Base64 字串格式。最後,將轉換後的圖片資料與原始的使用者查詢一併輸入給多模態 LLM。LLM 會根據圖片內容和查詢問題,生成最終的回答 (Response)。

多模態資料處理注意事項

如果資料來源同時包含文字或圖片,如上一小節中提及“含有圖片和文字的 pdf 檔案”的例子,雖然是使用同一個多模態嵌入模型將資料嵌入後放到資料庫中,但需要將文字和圖片資料分開處理,沒辦法直接將整個 pdf 檔案的內容一起切塊然後進行嵌入。

這時可以利用 PyMuPDF 等套件將 pdf 檔案中的圖片分離出來,以進行前述的圖片嵌入步驟 ; 文字的部分則是和傳統文字 RAG 的處理步驟一樣,將 pdf 檔案用 PyPDFLoader 等工具載入後進行切塊和嵌入。不過要注意由於多模態嵌入模型和文字嵌入模型的載入套件和後續使用的步驟不同,如果要從單純處理文字的嵌入模型,轉換成使用多模態嵌入模型,除了要新增處理圖片的步驟,原有的嵌入模型載入和文字嵌入處理程式碼也需要一併調整。

文字嵌入模型在處理文字資料的程式碼(以text-embedding-005為例)

test

多模態嵌入模型在處理文字資料的程式碼


test

此外,這個多模態嵌入模型 multimodal embedding@001 也支援影片嵌入,和嵌入圖片的步驟相似,須先將影片上傳至 GCS 再使用多模態嵌入模型將影片讀取進來,並將影片轉換成向量。不過影片嵌入根據選擇的模式有不同的長度限制,收費也不同,在傳送影片嵌入要求時要先確保影片的長度是符合限制的或設定起迄時間,變成傳送多個要求。

多模態嵌入模型與 LangChain FAISS 整合

運用 LangChain 架構建立 FAISS 資料庫時要注意 Vertex AI 的 multimodal embedding@001 嵌入模型並不是內建整合好的模型,所以要建立一個自定義的 Embedding 類別。在初始化 FAISS 向量資料庫時,將自定義嵌入模型傳遞給 FAISS。

test

總結

多模態嵌入模型為資料處理帶來了新的可能性,這讓 AI 模型能夠理解並整合多元資訊,不再受限於單一資料形式。透過整合不同來源和格式的資訊,多模態 AI 模型能夠對現實世界產生更細緻、更全面的感知,進而為更智慧、更自然的人機互動奠定基礎。

Contact CloudMile

Contact Us

Proven Experience Across Diverse Industries

Phone Number

  • TW+886
  • TW+886
  • Reason for Inquiry

  • Electrum Advisory

  • MileInfra - Cloud Infrastructure Modernization

  • Enterprise Technical Training

  • MileSec - Multi-Cloud Security and Operations

  • MileData - Cloud Data Management and Automation

  • MileOps - Hybrid and Multi-Cloud Operations

  • MileAI - Generative AI Applications and Innovation

  • LumiTure.ai AI-Powered FinOps Platform

  • Other

  • 請填寫電子信箱