• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 生成式人工智能/大語言模型

    出色的多模態 RAG:Llama 3.2 NeMo 檢索器嵌入模型如何提高工作流準確性

    數據遠不止于文本,它本質上是多模態的,包括圖像、視頻、音頻等,通常采用復雜的非結構化格式。雖然常見的方法是將 PDF、掃描圖像、幻燈片和其他文檔轉換為文本,但以文本格式捕獲所有信息具有挑戰性,如圖 1 所示。

    文本中視覺信息的丟失推動了多模態語言模型 (也稱為視覺語言模型 ( VLM)) 的開發。這些模型可以處理文本和原始圖像,并生成適當的響應。

    An image describing the complexities in converting the visual content in documents into text.
    圖 1。提高圖像中簡潔表達信息的程度 (圖像來源:多模態 RAG 簡介)

    VLM 將計算機視覺與自然語言處理相結合,有助于將我們看到的內容與我們所說的內容聯系起來。它們使機器能夠理解和處理視覺和文本信息,從而實現更自然、更實用的應用,例如視覺問答、多模態搜索和生成圖像描述。它們通常使用配對圖像和文本的龐大數據集進行訓練。在過去一年中,隨著 Gemma 3、PaliGemma、SmolVLM、QwenVL 和 LLaVA-1.5 等模型的發布,VLM 在處理復雜視覺效果 (例如 ChartQA) 方面取得了重大進展。

    The image describes both the text-RAG and vision-RAG pipelines. In the text-RAG, an OCR-based approach is used to parse the text input, which is fed into a text-based embedding and reranker model, and finally, an LLM model generates the response. In the vision-RAG pipeline, documents’ images are directly fed to the vision embedding and reranking models, and then a VLM model is used to generate the response.
    圖 2。基于文本的 RAG 工作流,使用 OCR 將不同的模態與文本相結合,其中包括文本嵌入模型和 LLM,以及使用多模態嵌入模型、重排序器和 VLM 的多模態 RAG 工作流。

    傳統的檢索增強生成 (RAG) 工作流通常以文本數據為中心。如圖 2 所示,文檔通常很復雜,必須解析為文本。另一方面,VLM 最近的改進使它們變得更好、更可靠,甚至更小。

    構建多模態 RAG 工作流已變得越來越流行,因為此類工作流不需要復雜的文本提取步驟。然而,VLM 仍然比文字 LLM 更容易產生幻覺。為了減輕 VLM 的潛在限制,在多模態 (視覺) 嵌入模型發揮關鍵作用的情況下,高精度的檢索步驟至關重要。

    多模態 (視覺) 嵌入模型將圖像和文本映射到共享特征空間,從而實現更有效的跨模態檢索。此功能對于為給定文本查詢查找最相關的圖像或根據圖像輸入檢索相關文本等任務尤為重要。無論是構建產品搜索引擎、內容推薦系統,還是用于組織大型多媒體數據集的工具,視覺語言嵌入模型都是快速、有意義的跨模態檢索的支柱。

    開發多模態信息檢索系統需要集成強大的檢索組件,即多模態嵌入和排序器模型,能夠從多模態知識庫中識別最相關的信息。給定用戶查詢,檢索系統可以檢索相關文檔圖像。根據檢索到的結果作為上下文,VLM 可以回答用戶查詢。

    在過去一年中,發布了大量不同規模和功能的多模態嵌入模型 (例如 ViDoRe 檢索排行榜) 。雖然許多模型都具有很高的能力,但較小的模型在索引和檢索任務中的效率往往受到青睞。為應對構建強大的多模態 RAG 工作流的挑戰,NVIDIA 推出了一項全新的 NVIDIA NeMo Retriever 微服務,該微服務以 NVIDIA NIM 的形式構建,用于先進的文檔圖像檢索。

    Llama 3.2 NeMo Retriever 多模態嵌入 1B 模型

    Llama 3.2 NeMo Retriever 多模態嵌入模型是一個小型 ( 16 億個參數) 但功能強大的視覺嵌入模型。NeMo Retriever 多模態嵌入模型以 NVIDIA NIM 構建,有助于創建大規模、高效的多模態信息檢索系統。

    高效文檔檢索

    對于具有多模態內容的文檔,傳統的檢索范式需要預先進行數據解析和提取,換言之,需要使用 PDF 提取工作流 (圖 2) 。PDF 的索引過程通常是一個多步驟的工作流程。首先,在每個頁面上執行頁面元素檢測,以檢測各種模式的不同元素,例如文本塊、圖像、表格或圖表。然后,根據模態,應用適當的處理方法,例如掃描文本的光學字符識別 (OCR) 或嵌入文本的解析。

    或者,VLM 可用于以文本格式描述文檔/ 圖像。提取文本內容后,系統會通過密集文本嵌入模型 (例如 llama-3.2-nv-embedqa-1b-v2) 進行傳遞,以生成固定長度的向量表示。

    引入了多模態嵌入模型,以應對基于文本的文檔嵌入流程的挑戰。與基于文本的方法不同,它們可以直接嵌入原始頁面圖像,從而在表示文本信息語義的同時保留視覺信息。(圖 3) 。使用視覺模型可簡化流程并泛化到多種文檔類型。

    對此,基于“視覺空間檢索”概念的優勢,我們改編了一個功能強大的視覺語言模型,并將其轉換為 Llama 3.2 NeMo Retriever 多模態嵌入 1B 模型。它由一個視覺編碼器 (SigLIP2-So400m-patch16-512) 、一個大語言模型 (Llama-3.2-1B) 和一個將編碼圖像映射到 LLM 嵌入空間的線性投影層組成。

    Llama 3.2 NeMo Retriever Multimodal Embedding 1B 模型基于 Eagle 2 模型 (引入了一種新的視覺編碼器分層混合方法) ,為每個圖像文檔和查詢輸入生成 2048 維嵌入。我們使用對比度損失對其進行了微調,以對齊文本查詢的嵌入和包含答案的文檔頁面圖像。用于對比學習的負面示例是使用我們的正向感知硬負挖掘方法挖掘的 (詳情請參閱 NV-Retriever 論文) 。

    Image describes text-only embedding model architecture versus multimodal embedding model architecture.
    圖 3。與使用多模態嵌入模型相比,使用純文本嵌入模型生成文檔嵌入。

    文檔檢索基準測試

    我們已基于 10 個 ViDoRe V1 數據集和兩個內部精選的多模態數據集 ( DigitalCorpora 和收益) 評估了 1B 參數檢索器模型:

    • 收益數據集:包含 512 個 PDF (收益報告、咨詢演示文稿) 的內部集合,其中每個包含 3000 多個圖表、表格和信息圖實例,以及 600 多個人工注釋的檢索問題。
    • DigitalCorpora-767 數據集:基于 Digital Corpora 767 個 PDF 的多樣化基準測試,包含文本、表格、圖表和信息圖中的 991 個人工注釋問題。

    條形圖中顯示的所有模型均在相同的基礎設施和數據集上進行評估。圖 4 顯示,與其他公開發布的小型 (< 20B) 視覺嵌入模型相比,NVIDIA llama-3.2-nemoretriever-1b-vlm-embed-v1 模型在檢索準確性方面表現出色 (以“召回”= 5 衡量) 。

    A bar chart compares the Avg Recall@5 accuracy of the NVIDIA multimodal embedding model to other publicly available multimodal embedding models.
    圖 4。NVIDIA llama-3.2-nemoretriever-1b-vlm-embed-v1 與替代視覺嵌入器在 10 個 ViDoRe V1 數據集、收益和 DigitalCorpora-767 數據集上的準確性性能比較 (根據 Recall 5 測量)
    模態 # 查詢數字語料庫 DigitalCorpora 上的 NeMo-retriever – VLM – embed-v1 # 查詢收入 NeMo-retriever-vlm-embed-v1 的盈利情況
    多模態 991 84.5% 628 66.1%
    表格 235 75.3% 155 44.6%
    圖表 268 88.1% 129 89.9%
    文本 488 86.9% 224 96.0%
    信息圖 100 55.0%
    表 1。回想一下 DigitalCorpora-767 和收益數據集的每種模式下約 5 個結果

    以下是使用 llama-3.2-nemoretriever-1b-vlm-embed-v1 NIM 生成查詢和通道 (圖像) 嵌入的示例推理腳本,該 NIM 與用于嵌入的 OpenAI API 兼容:

    查詢:

    from openai import OpenAI
     
    client = OpenAI(
      api_key="$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC",
    )
     
    response = client.embeddings.create(
        input=["What is the civil caseload in South Dakota courts?"],
        model="nvidia/llama-3.2-nemoretriever-1b-vlm-embed-v1",
        encoding_format="float",
        extra_body={"modality": ["text"], "input_type": "query", "truncate": "NONE"}
    )
     
    print(response.data[0].embedding)

    段落 (圖像) :

    import base64
    import requests
    from openai import OpenAI
     
     
    if image_source.startswith(('http://', 'https://')):
        response = requests.get(image_source)
        image_b64 = base64.b64encode(response.content).decode()
    else:
        with open(image_source, "rb") as image_file:
            image_b64 = base64.b64encode(image_file.read()).decode()
     
    client = OpenAI(
      api_key="$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC",
    )
     
    response = client.embeddings.create(
        input=[f"data:image/jpeg;base64,{image_b64}"],
        model="nvidia/llama-3.2-nemoretriever-1b-vlm-embed-v1",
        encoding_format="float",
        extra_body={"modality": ["image"], "input_type": "passage", "truncate": "NONE"}
    )
     
    print(response.data[0].embedding)

    開始開發出色的信息檢索工作流

    NVIDIA NeMo Retriever 是一系列微服務,能夠以高準確性和數據隱私性提供出色的信息檢索,使企業能夠生成實時業務見解。立即在我們托管環境的 API Catalog 中體驗 NVIDIA NeMo Retriever NIM 微服務。

    ?

    +1

    標簽

    人人超碰97caoporen国产