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

    使用 Llama 3.1 和 NVIDIA NeMo Retriever NIM 構建基于代理的 RAG 流程模型

    采用檢索增強生成(RAG)是一種有效策略,可以確保大型語言模型(LLM)響應保持最新且不會產生幻覺。

    雖然各種檢索策略可以改善文檔的生成調用,但沒有一種通用的方法。檢索流程取決于您的數據,從超參數如塊大小和返回的文檔數量,到檢索算法如語義搜索或圖形檢索等。

    檢索策略可能有所不同,但在現代 RAG 系統中,越來越常見的做法是在檢索系統上添加智能體框架。此框架可以處理對檢索到的數據的推理、決策和反射。智能體是一個系統,可以使用大語言模型來推理解決問題,創建解決問題的計劃,并借助一組工具執行計劃。

    例如,眾所周知,LLMs 在解決數學問題方面表現不佳。為 LLM 提供一個計算器“工具”,它可以用來執行數學任務,同時它通過計算公司收入的同比增長來推理,這可以說是一種代理工作流。

    隨著生成式 AI系統開始向能夠執行代理任務的實體過渡,我們需要經過訓練的強大模型,這些模型能夠分解任務、充當中央規劃者,并具備模型和系統級安全檢查的多步驟推理能力。借助 Llama 3.1 系列,Meta 推出了一套涵蓋 8B、70B 和 405B 參數的語言模型,這些參數具有代理工作負載的工具調用功能。NVIDIA 與 Meta 合作,確保可以通過 NVIDIA NIMs優化部署最新的 Llama 模型。

    隨著 NVIDIA NeMo Retriever NIM 微服務集合的全面推出,企業現在可以訪問可擴展的軟件,以便定制其依賴數據的 RAG 流程。NeMo Retriever NIM 可以輕松插入現有的 RAG 流程,并與開源 LLM 框架(如 LangChain 或 LlamaIndex)接口,從而輕松地將檢索模型集成到生成式 AI 應用中。

    LLM 和 NIM:強大的 RAG 組合

    在可定制的代理 RAG 中,能夠進行函數調用而不是函數識別的 LLM 比生成最終答案的 LLM 發揮著更重要的作用。雖然 NeMo Retriever NIM 為您的檢索流程帶來了先進的文本嵌入和重新排名功能,但 LLM 可用于對檢索數據進行高級別的決策、結構化輸出生成和工具調用。

    NVIDIA NeMo Retriever NIM

    要創建最終工作流,可以使用一組 NeMo Retriever 微服務進行嵌入和重新排序。這些微服務可以在企業內部本地部署,并與 NVIDIA Triton 推理服務器NVIDIA TensorRT 一起打包,以優化文本推理,從而實現嵌入和重新排序。其他企業優勢包括:

    • 可擴展部署:無論您是滿足少量用戶還是數百萬用戶的需求,NeMo Retriever 嵌入和重新排名 NIM 都可以無縫擴展以滿足您的需求。
    • 靈活集成:借助符合 OpenAI 標準的 API 端點,輕松將 NeMo Retriever 嵌入和重新排序 NIM 融入現有工作流程和應用,并在數據駐留的任何位置進行部署。
    • 安全處理:您的數據隱私至關重要。NeMo Retriever 嵌入和重新排序 NIM 可確保所有推理都得到安全處理,并實施嚴格的數據保護措施。

    Meta Llama 3.1 工具調用

    新的 Llama 3.1 模型集可以被視為開源模型向重大代理功能的首次重大推動。這些模型現在可以成為更大的自動化系統的一部分,其中 LLM 可以規劃和選擇正確的工具來解決更大的問題。由于 NVIDIA Llama 3.1 NIM 擁有 OpenAI 風格工具調用的必要支持,現在可以將像 LangChain 這樣的庫與 NIM 一起使用,以將 LLM 綁定到 Pydantic 類并填充對象/字典。這種組合使開發者更容易從 NIM LLM 中獲取結構化輸出,而無需采用正則表達式解析。

    如下 Langchain 工具調用 代碼段所示。

    class GradeDocuments(BaseModel):
       """Binary score for relevance check on retrieved documents."""
     
     
       binary_score: str = Field(
           description="Documents are relevant to the question, 'yes' or 'no'"
       )
     
     
     
     
    # LLM with function calling capability
    llm = ChatOpenAI(
        model="meta/llama3.1-405b-instruct",
        temperature=0
    )
     
     
    structured_llm_grader = llm.with_structured_output(GradeDocuments)
    score = structured_llm_grader.invoke(
        {"question": question, "document": documents}
     
     
    grade = score.binary_score

    使用代理的 RAG

    在未進行進一步驗證和自我反省的情況下檢索工作流中的段落或文檔可能會導致無益的響應和事實不準確。由于模型未經過明確訓練,無法遵循段落中的事實,因此必須進行生成后驗證,以確保響應的準確性和有用性。

    為了解決這個問題,我們提出了幾種 RAG 策略,如 self-RAG 和校正 RAG 等,這些策略本質上是在基準 RAG 管道之上構建代理框架。這些框架可以是多代理的,從而提供所需的額外決策能力,以提高檢索數據的質量和生成的響應。

    架構

    借助 LangGraph 等多代理框架,開發者可以將大語言模型應用級邏輯分組到節點和邊緣,以更精細地控制代理決策。使用帶有 NVIDIA LangChain OSS 連接器的 LangGraph,可以對大語言模型進行嵌入、重新排序和實現必要的代理 RAG 技術 (如前所述)。

    為了實現這一點,應用程序開發者必須在其 RAG 工作流之上包含更精細的決策。圖 1 顯示了路由器節點上的眾多渲染之一,具體取決于用例。在這里,路由器在從本地搜索中檢索文檔或回答“我不知道”之間進行切換。

    Architecture diagram of a multi-agent RAG workflow describing a default router.
    圖 1. 使用默認路由器的代理 RAG 工作流程

    在圖 2 中,我們將默認路由器替換為 Web 搜索工具,該工具會在 Web 上搜索文檔,以防問題與本地存儲的文檔無關。

    Architecture diagram of a multi-agent RAG workflow describing a router with a web search tool.
    圖 2. 具有 Web 搜索工具的代理 RAG 工作流程

    最后,可以通過在語言模型(LLM)上借助幫助重寫查詢來決定以不同的方式提問,這可能會更好地從檢索器中進行召回,如圖 3 所示。

    Architecture diagram of a multi-agent RAG workflow describing a router with a question rewrite tool.
    圖 3. 帶有問題重寫的代理 RAG 工作流程

    節點規格

    一些值得關注的節點和檢查器,每個 RAG 工作流都可以從中受益,包括

    • 查詢分解器:將問題拆分為多個較小的邏輯問題,當需要從多個文檔中提取部分信息來回答問題時非常有用。
    • 路由器:根據本地存儲的文檔相關性,決定是否需要從本地檢索器檢索數據塊,以回答給定問題。或者,可以對智能體進行編程,以執行網絡搜索,或者只需回答“I don’t know”。
    • Retriever:這是 RAG 工作流的內部實現。例如,語義搜索檢索器和關鍵字搜索檢索器的混合檢索器。
    • Grader:檢查檢索到的段落/塊是否與當前問題相關。
    • Hallucination checker:檢查每個分塊生成的語言模型是否與分塊相關。?由于未明確訓練模型以遵循段落中的事實因此需要進行后代驗證

    根據數據和用例,可以向上述示例多代理工作流程中添加其他節點和工具。例如,金融服務 copilot 可能需要一個計算工具與查詢分解工具一起使用,以準確回答有關趨勢、百分比增長或同比增長的問題。最終,開發者的圖構建最終決定取決于準確性、吞吐量和成本要求。

    入門指南

    NeMo Retriever 嵌入重新排序 NIM 微服務現已推出。 開發者可以下載和部署 docker 容器,并在 ai.nvidia.com 上查找 Llama 3.1 NIM。查看我們的開發者 Jupyter notebook,了解在 GitHub 上逐步實現代理 RAG 的信息。

    ?

    0

    標簽

    人人超碰97caoporen国产