給RAG系統做一次全面「體檢」,亞馬遜開源RAGChecker診斷工具

机器之心發表於2024-08-18
給RAG系統做一次全面「體檢」,亞馬遜開源RAGChecker診斷工具
AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com

亞馬遜上海人工智慧研究院成立於 2018 年,已成為深度學習研究領域的領先機構之一,共發表了~90 篇論文。研究領域包括深度學習的基礎理論、自然語言處理、計算機視覺、圖機器學習、高效能運算、智慧推薦系統、欺詐檢測與風險控制、知識圖譜構建以及智慧決策系統等。研究院率先研究和開發了世界領先的深度圖學習庫 Deep Graph Library (DGL),結合了深度學習和圖結構表示的優勢,影響許多重要應用領域。

檢索增強生成(Retrieval-Augmented Generation, RAG)技術正在徹底革新 AI 應用領域,透過將外部知識庫和 LLM 內部知識的無縫整合,大幅提升了 AI 系統的準確性和可靠性。然而,隨著 RAG 系統在各行各業的廣泛部署,其評估和最佳化面臨著重大挑戰。現有的評估方法,無論是傳統的端到端指標還是針對單一模組的評估,都難以全面反映 RAG 系統的複雜性和實際表現。特別是,它們只能提供一個最終打分報告,僅反映 RAG 系統的效能優劣。

人生病了需要去醫院做檢查,那 RAG 系統生病了,如何診斷呢?

近日,亞馬遜上海人工智慧研究院推出了一款名為 RAGChecker 的診斷工具為 RAG 系統提供細粒度、全面、可靠的診斷報告,併為進一步提升效能,提供可操作的方向。本文詳細介紹了這個 RAG 的 “顯微鏡”,看看它如何幫助開發者們打造更智慧、更可靠的 RAG 系統。

圖片

  • 論文:https://arxiv.org/pdf/2408.08067
  • 專案地址:https://github.com/amazon-science/RAGChecker

RAGChecker: RAG 系統的全面診斷工具

想象一下,如果我們能對 RAG 系統進行一次全面的 “體檢”,會是什麼樣子?RAGChecker 就是為此而生的。它不僅能評估系統的整體表現,還能深入分析檢索和生成兩大核心模組的效能。

圖片

RAGChecker 的主要特點包括:

  1. 細粒度評估:RAGChecker 採用基於宣告(claim)級別的蘊含關係檢查,而非簡單的回覆級別評估。這種方法能夠對系統效能進行更加詳細和微妙的分析,提供深入的洞察。
  2. 全面的指標體系:該框架提供了一套涵蓋 RAG 系統各個方面效能的指標,包括忠實度(faithfulness)、上下文利用率(context utilization)、噪聲敏感度(noise sensitivity)和幻覺(hallucination)等。
  3. 經過驗證的有效性:可靠性測試表明,RAGChecker 的評估結果與人類判斷有很強的相關性,其表現超過了其他現有的評估指標。這保證了評估結果的可信度和實用性。
  4. 可操作的洞察:RAGChecker 提供的診斷指標為改進 RAG 系統提供了明確的方向指導。這些洞察能夠幫助研究人員和實踐者開發出更加有效和可靠的 AI 應用。

RAGChecker 的核心指標

RAGChecker 的指標體系可以用下圖直觀的理解:

圖片

這些指標被分為三大類:

1. 整體指標:

  • Precision(精確率):模型回答中正確陳述的比例
  • Recall(召回率):模型回答中包含的標準答案中陳述的比例
  • F1 score(F1 分數):精確率和召回率的調和平均數,提供平衡的效能度量

2. 檢索模組指標:

  • Context Precision(上下文精確率):在所有檢索塊中,包含至少一個標準答案陳述的塊的比例
  • Claim Recall(陳述召回率):被檢索塊覆蓋的標準答案陳述的比例

3. 生成模組指標:

  • Context Utilization(上下文利用率):評估生成模組如何有效利用從檢索塊中獲取的相關資訊來產生正確的陳述。這個指標反映了系統對檢索到的資訊的利用效率。
  • Noise Sensitivity(噪音敏感度):衡量生成模組在回答中包含來自檢索塊的錯誤資訊的傾向。這個指標幫助識別系統對不相關或錯誤資訊的敏感程度。
  • Hallucination(幻覺):測量模型生成既不存在於檢索塊也不在標準答案中的資訊的頻率。這就像是捕捉模型 “憑空捏造” 資訊的情況,是評估模型可靠性的重要指標。
  • Self-knowledge(模型內部知識):評估模型在未從檢索塊獲得資訊的情況下,正確回答問題的頻率。這反映了模型在需要時利用自身內建知識的能力。
  • Faithfulness(忠實度):衡量生成模組的響應與檢索塊提供的資訊的一致程度。這個指標反映了系統對給定資訊的依從性。

這些指標就像是 RAG 系統的 “體檢報告”,幫助開發者全面瞭解系統的健康狀況,並找出需要改進的地方。

開始使用 RAGChecker

對於想要嘗試 RAGChecker 的開發者來說,上手過程非常簡單。以下是快速入門的步驟:

1. 環境設定:首先,安裝 RAGChecker 及其依賴:
pip install ragchecker
python -m spacy download en_core_web_sm

2. 準備資料:將 RAG 系統的輸出準備成特定的 JSON 格式,包括查詢、標準答案、模型回答和檢索的上下文。資料格式應如下所示:
{
     "results": [
       {
         "query_id": "< 查詢 ID>",
         "query": "< 輸入查詢 >",
         "gt_answer": "< 標準答案 >",
         "response": "<RAG 系統生成的回答 >",
         "retrieved_context": [
           {
             "doc_id": "< 文件 ID>",
             "text": "< 檢索塊的內容 >"
           },
           ...
         ]
       },
       ...
     ]
   }

3. 執行評估:

  • 使用命令列:
ragchecker-cli \
    --input_path=examples/checking_inputs.json \
    --output_path=examples/checking_outputs.json

  • 或者使用 Python 程式碼:
from ragchecker import RAGResults, RAGChecker
from ragchecker.metrics import all_metrics

# 從 JSON 初始化 RAGResults
with open ("examples/checking_inputs.json") as fp:
    rag_results = RAGResults.from_json (fp.read ())

# 設定評估器
evaluator = RAGChecker ()

# 評估結果evaluator.evaluate (rag_results, all_metrics)
print (rag_results)

4. 分析結果:RAGChecker 會輸出 json 格式的檔案來展示評估指標,幫助你瞭解 RAG 系統的各個方面表現。

輸出結果的格式如下:

圖片

透過分析這些指標,開發者可以針對性地最佳化 RAG 系統的各個方面。例如:

  • 較低的 Claim Recall(陳述召回率)可能表明需要改進檢索策略。這意味著系統可能沒有檢索到足夠多的相關資訊,需要最佳化檢索演算法或擴充套件知識庫。
  • 較高的 Noise Sensitivity(噪音敏感度)表明生成模組需要提升其推理能力,以便更好地從檢索到的上下文中區分相關資訊和不相關或錯誤的細節。這可能需要改進模型的訓練方法或增強其對上下文的理解能力。
  • 高 Hallucination(幻覺)分數可能指出需要更好地將生成模組與檢索到的上下文結合。這可能涉及改進模型對檢索資訊的利用方式,或增強其對事實的忠實度。
  • Context Utilization(上下文利用率)和 Self-knowledge(模型內部知識)之間的平衡可以幫助你最佳化檢索資訊利用和模型固有知識之間的權衡。這可能涉及調整模型對檢索資訊的依賴程度,或改進其綜合利用多種資訊源的能力。

透過這種方式,RAGChecker 不僅提供了詳細的效能評估,還為 RAG 系統的具體最佳化方向提供了清晰的指導。

在 LlamaIndex 中使用 RAGChecker

RAGChecker 現在已經與 LlamaIndex 整合,為使用 LlamaIndex 構建的 RAG 應用提供了強大的評估工具。如果你想了解如何在 LlamaIndex 專案中使用 RAGChecker,可以參考 LlamaIndex 文件中關於 RAGChecker 整合的部分。

結語

RAGChecker 的推出為 RAG 系統的評估和最佳化提供了一個新的工具。它為開發者提供了一把 “顯微鏡”,幫助他們深入瞭解、精準最佳化 RAG 系統。無論你是正在研究 RAG 技術的學者,還是致力於開發更智慧 AI 應用的工程師,RAGChecker 都將是你不可或缺的得力助手。讀者可以訪問 https://github.com/amazon-science/RAGChecker 獲取更多資訊或參與到專案的開發中來。

相關文章