一、Retrieval的本質

Retrieval是什么?

LangChain通過其Retrieval(檢索)組件,簡化了檢索增強生成(RAG)過程中外部數據的檢索與管理,為大型語言模型(LLM)應用高效地提供了用戶特定的數據。

Retrieval

Many LLM applications require user-specific data that is not part of the model's training set. The primary way of accomplishing this is through Retrieval Augmented Generation (RAG). In this process, external data is retrieved and then passed to the LLM when doing the generation step.
LangChain provides all the building blocks for RAG applications - from simple to complex. This section of the
documentation covers everything related to the retrieval step - e.g. the fetching of the data. Although this sounds simple, it can be subtly complex. This encompasses several key modules.

Retrieval由幾個部分組成。

Retrieval 組成部分

Retrieval能干什么?

Retrieval能夠高效地處理用戶查詢并從多個數據源中檢索相關信息。

LangChain的數據索引是一個將原始數據轉化為可高效檢索格式的過程。

數據索引-檢索-生成

許多大型語言模型(LLM)應用需要用戶特定的數據,這些數據并不是模型訓練集的一部分。實現這一點的主要方法是通過檢索增強生成(RAG)。

檢索增強生成(RAG)的工作流程,從用戶的查詢開始,經過向量數據庫的檢索,到提示填充,最后生成回應。

  1. 檢索(Retrieval):
  2. 增強(Augmentation):
  3. 生成(Generation):

檢索增強生成(RAG)的工作流程

二、Retrieval的原理

Retrieval的工作流程:從指定來源獲取并讀取文檔,經過預處理和向量化后,將文檔存儲并索引化,最終根據用戶查詢進行高效搜索并返回相關結果。

Retrieval流程包含以下六個核心步驟:

Retrieval的工作流程

Retrieval的核心組件:Retrieval的六個核心組件共同協作,實現文檔的高效加載、精確拆分、語義嵌入、向量存儲、智能檢索及優化索引,為各類應用場景提供強大且靈活的文檔處理與檢索能力。

LangChain文檔檢索和處理組成部分:

一、文檔加載 (Document Loaders)

二、文本拆分 (Text Splitting)

三、文本嵌入模型 (Text Embedding Models)

四、向量存儲 (Vector Stores)

五、檢索器 (Retrievers)

六、索引 (Indexing)

三、Retrieval的應用

LangChain使用RAG技術構建問答(Q&A)聊天機器人的介紹和說明,包括其架構、組件以及一些構建和使用這些應用程序的指南。

架構:問答(Q&A)聊天機器人的架構通常包括兩個主要部分:索引和檢索與生成。

一、索引

數據加載:首先,需要從各種源加載數據。這些數據可以是文本文件、數據庫、網頁等。加載數據的過程需要使用適當的加載器(如DocumentLoaders),以便將數據以適合后續處理的形式讀入系統。

數據拆分:加載后的數據通常需要被拆分成較小的塊或段落。這是因為大型文檔難以直接搜索,并且可能無法適應模型的有限上下文窗口。拆分可以使用文本拆分器(Text Splitters)完成,它們將文檔分割成更易于管理和搜索的小塊。

存儲與索引:拆分后的數據需要存儲在可以高效檢索的地方。通常,這涉及使用向量存儲(VectorStore)和嵌入模型(Embeddings)。向量存儲允許將數據表示為高維空間中的點,而嵌入模型則用于將這些點映射到向量空間中,以便進行相似性搜索和檢索。

檢索與生成

組件問答(Q&A)聊天機器人的關鍵組件包括:

  1. DocumentLoaders:用于從各種源加載數據的組件。
  2. Text Splitters:將大型文檔拆分為較小塊的組件。
  3. VectorStore 和 Embeddings:用于存儲和索引拆分后的數據,并支持相似性搜索和檢索的組件。
  4. Retriever:根據用戶輸入檢索最相關數據塊的組件。
  5. ChatModel / LLM:使用檢索到的數據和用戶問題生成答案的模型

構建和使用指南

  1. 快速入門:建議從快速入門指南開始,以了解如何設置和使用問答聊天機器人的基本功能。這通常涉及安裝必要的庫、配置索引和檢索組件以及運行示例代碼。
  2. 返回源文檔:了解如何在生成答案時返回使用的源文檔。這對于提供答案的上下文和驗證答案的準確性非常有用。
  3. 流式處理:學習如何流式傳輸最終答案以及中間步驟。這對于處理大型數據集或需要逐步構建答案的復雜查詢特別有用。
  4. 添加聊天歷史:了解如何將聊天歷史添加到問答應用程序中。這可以提高用戶體驗,允許用戶在對話中引用先前的問題和答案。
  5. 每個用戶的檢索:如果每個用戶都有自己的私有數據,需要了解如何為每個用戶執行獨立的檢索操作。這涉及在索引和檢索過程中考慮用戶身份和權限。
  6. 使用代理:了解如何使用代理來增強問答功能。代理可以提供額外的上下文、執行更復雜的任務或與其他系統進行交互。
  7. 使用本地模型:對于需要更高性能或隱私要求的應用程序,了解如何使用本地模型進行問答操作。這涉及在本地環境中部署和運行模型,而不是依賴于云服務或外部API

本文章轉載微信公眾號@架構師帶你玩轉AI

上一篇:

一文徹底搞懂機器學習 - 基礎知識

下一篇:

大模型開發 - 一文搞懂 LangChain(四):Agents
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費