RAG, Retrieval-Augmented Generation

LLM 面臨的主要挑戰包括:

  1. 生成虛假資訊:在無法提供正確答案時,模型可能編造內容
  2. 資訊過時:回應可能缺乏時效性,無法滿足對最新資訊的需求
  3. 未授權來源影響:回應可能基於未經授權或不可靠的資料
  4. 術語混淆:由於訓練來源中術語定義不一致,可能導致回應不準確

AWS - 什麼是 RAG (檢索增強生成)?


Quote

Retrieval-augmented generation (RAG) techniques have proven to be effective in integrating up-to-date information, mitigating hallucinations, and enhancing response quality, particularly in specialized domains.

RAG,即檢索增強生成(Retrieval Augmented Generation),是一種結合預訓練大型語言模型與外部數據源的技術。

利用從外部來源獲取的事實來提高生成人工智慧模型準確性和可靠度的技術,以來源屬性呈現準確的資訊。輸出可以包括來源的引用或參考。如果使用者需要進一步釐清或詳細資訊,也可以自行查詢來源文件。這可以增加對生成式 AI 解決方案的信任和信心。

什麼是 RAG? 它如何讓生成式 AI 更可靠


What's RAG?

⇒ 結合 資訊檢索生成模型 的技術

主要的優點是可以透過外部知識庫的資訊檢索,獲得相關資訊提供更準確且豐富的答案,使用於知識密集類型的任務。

What is RAG (Retrieval Augmented Generation) ? | by Vishwajeethogale | Medium


RAG addresses critical gaps in traditional language models, such as outdated or limited knowledge bases.

一般情況下, LLMs 接收使用者傳來的 Query 後根據預訓練時期學期到的知識建立回答,但是可能會造成幻覺、知識落後、專精度不足等問題,為了克服上述情況, RAG, Fine-Tuning 等技術就十分重要。步驟:

  1. 查詢檢索:使用者提出查詢(Query),檢索模型(Retrieval Model)根據查詢在外部資料庫中搜尋相關內容。
  2. 向量匹配:查詢被轉換為向量表示,並與向量資料庫進行相似度比對以找到相關文檔。
  3. 語言模型生成:將查詢與檢索到的相關文檔作為上下文輸入語言模型,生成摘要或回應。

RAG 架構.png

外部資料:


  1. 查詢向量化:將使用者查詢 Q 轉換為向量表示 q
  2. 檢索相關文檔:利用檢索模型在外部資料庫中搜尋相關內容。向量資料庫中預存的文檔向量 diq 進行相似度比對(如計算餘弦相似度或歐幾里得距離),以選出相關文檔集合 Dq=d1,d2,,dk
  3. 文檔與查詢結合:將使用者查詢 Q 與檢索到的文檔集合 Dq 作為上下文輸入到大型語言模型中,生成回應或摘要:
R=LM(Q,D),D=Retrieval(q,D)

EmbeddingAlign RAG: Boosting QA Systems


方法

RAG(Retrieval-Augmented Generation)方法通常會通過多個處理步驟來增強大型語言模型(LLMs)的查詢能力,這些步驟包含:

  1. 查詢分類(Query Classification):判斷當前查詢是否需要進行檢索。
  2. 檢索(Retrieval):高效地獲取與查詢相關的文件。
  3. 重排序(Reranking):根據查詢相關性對檢索出的文件進行排序優化。
  4. 重打包(Repacking):將檢索到的文件組織成結構化內容,以便後續生成。
  5. 摘要(Summarization):從重打包的文件中提取關鍵信息,消除冗餘,為回應生成提供核心內容。

查詢與檢索轉換(Query and Retrieval Transformation)

為了提升檢索效果,許多方法通過查詢轉換來增強查詢信息:

  1. Query2DocHyDE:從原始查詢生成偽文檔(pseudo-documents),增強檢索表現
  2. TOC:將查詢分解為子查詢(subqueries),再將檢索內容聚合,生成最終結果

通過轉換查詢形式來改善檢索性能,提升查詢的準確性與完整性。

檢索器增強策略(Retriever Enhancement Strategy)

  1. 切分策略(Chunking Strategy)

    • 常見的做法是將文件切分為多個片段(chunks)。
    • 挑戰
      • 片段過小可能會割裂句子,導致語義不完整。
      • 片段過大則可能會包含不相關的上下文,影響檢索效果。
  2. 重排序(Reranking)

    • 在檢索過程中對初步檢索結果進行優化排序的技術,目的是根據查詢的相關性,將最相關的文件或片段排在前面。
    • 常用方法是利用深度語言模型(如 BERT [25]、T5 [26] 或 LLaMA [27])進行重排序。雖然重排序步驟推理速度較慢,但能提升檢索性能和準確性。

檢索器與生成器的微調(Retriever and Generator Fine-tuning)


Embedding Model

What are vector database.png

What are Vector Embeddings | Pinecone


Vector Databases

向量資料庫儲存嵌入向量及其元數據,支援通過索引及近似最近鄰(ANN)方法高效檢索與查詢相關的文檔。有四個關鍵標準

向量資料庫 (Vector Database)
⇒ Weaviate、Faiss、Chroma、Qdrant 和 Milvus

Vector Database.png


Retrieval Methods

根據查詢和文檔之間的相似性,檢索模組從預先構建的語料庫中選擇最相關的文檔(top-k)
-> 生成模型使用這些檢索到的文檔來生成對應的回應

⇒ 基於詞彙的檢索(如 BM25)和向量檢索(如 Contriever)顯著提升了性能。
⇒ 這種混合方法利用詞彙檢索處理具體術語,並利用向量檢索處理語義相似性。


Result of Retrieval Methods

實比對效能:


Ranking Methods

目的在於提升檢索結果相關性,確保最相關文的在列表頂端,雖然更精準但也更耗時,增加查詢與頂層文件的相關性。


Summarization

在檢索後需要將內容進行摘要生成,但可能會面臨倒冗餘、不必要資訊或導致影響生成結果,且過長的提示會降低推理速度

實驗方法,使用三個基準數據集進行測試:NQ、TriviaQA 和 HotpotQA


使用「覆蓋分數」(Coverage Score)作為評估指標


[金融科技] 如何用AI撰寫高品質的文章(2) — 使用MongoDB結合向量資料庫與全文搜尋 - 人工智慧與財務分析 - Medium


RAG 框架

七大Agentic RAG框架技術解析


Related Work


Reference

Powered by Forestry.md