RAG 學習筆記(三)

基于博文 Advanced RAG Techniques: an Illustrated Overview 的學習和練習的記錄。

中文內(nèi)容可以查看博主@寶玉的譯文 高級 RAG 技術:圖解概覽 [譯]

系列筆記:
RAG 學習筆記(一)
RAG 學習筆記(二)

搜索索引

  1. 向量存儲索引
  2. 層次索引
  3. 假設問題和HyDE
  4. 豐富上下文
  5. 融合檢索或混合搜索

向量存儲索引

基礎的索引檢索結構

搜索索引 是RAG pipeline 中的關鍵組成部分,用于存儲前面文本塊向量化后的數(shù)據(jù)。

搜索索引類型:

  1. 平面索引(flat index):最簡單的實現(xiàn),可以通過計算查詢文本的向量和所有文本塊向量的距離,來獲取最相關的查詢結果。
  2. 向量索引(vector index):在1萬個元素的量級上可以進行高效檢索,基于近似最近鄰居算法,如聚類、樹結構或 HNSW 算法。這類索引有: faiss、nmslibannoy。
  3. 托管服務:如 OpenSearch、ElasticSearch 和向量數(shù)據(jù)庫,它們自動處理前文提到的數(shù)據(jù)攝取流程,例如 PineconeWeaviateChroma。

可以將文本的元數(shù)據(jù)與向量存儲到一起,使用元數(shù)據(jù)過濾器可以按照日期或來源等條件進行信息檢索。

LlamaIndex 支持多種向量存儲索引

層次索引

層次索引結構

場景:

需要從有許多文檔中進行高效的檢索,找到相關的信息,然后整合到一個答案中,并帶有參考來源。

實現(xiàn):

創(chuàng)建兩個索引:

  1. 一個索引由文檔摘要構成
  2. 一個索引由文本塊構成

分兩步搜索:

  1. 先從文檔摘要索引中過濾相關文檔
  2. 在這些文檔的范圍內(nèi),在文本塊中進行搜索

假設問題和 HyDE

假設問題法:

  1. 使用 LLM 為每個文本塊生成一個問題,然后將問題 embedding 為向量
  2. 搜索時,先使用問題搜索,找到相似問題的索引
  3. 然后找到這些問題對應的文本塊,使用文本塊作為上下文發(fā)送給 LLM 來獲取答案。

優(yōu)點:
查詢和假設問題之間的語義相似度更好,對比直接搜索文本塊,該方法的質(zhì)量更高。

另外一種方法叫 HyDE,與假設問題方法邏輯相反:

  • 根據(jù)輸入問題生成回答,然后使用回答文本的向量和問題向量來提高搜索的質(zhì)量。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容