AIxiv專欄是本站發布學術、技術內容的欄位。過去數年,本站AIxiv專欄接收通報了2,000多篇內容,涵蓋全球各大專院校與企業的頂尖實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或聯絡報道。投稿信箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
亞馬遜上海研究人工智慧成為深度學習研究領域的領先機構之一,共發表了~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
- 地址://github.com/amazon-science/RAGChecker
想像一下,如果我們能對RAG 系統進行一次全面的“體檢”,會是什麼樣子? RAGChecker 就是為此而生的。它不僅能評估系統的整體表現,還能深入分析檢索產生兩大核心模組的性能。
RAGChecker 的主要特點包括:
細粒度評估聲明:RAGChecker 採用聲明基於(claim)層級的蘊含關係檢查,而非簡單的回覆層級評估。這種方法能夠對系統性能進行更詳細和微妙的分析,提供深入的洞察。
-
全面的指標體系:該框架提供了一套涵蓋RAG 系統各個方面性能的指標,包括忠實度(faithfulness)、上下文利用率(context utilization)、噪聲敏感度(noise sensitivity)和幻覺(hallucination)等。
-
經過驗證的有效性:可靠性測試表明,RAGChecker 的評估結果與人類判斷有很強的相關性,其表現超過了其他現有的評估指標。這保證了評估結果的可信度和實用性。
-
可操作的見解:RAGChecker 提供的診斷指標為改進 RAG 系統提供了明確的方向指導。這些洞察能夠幫助研究人員和實踐者開發出更有效和可靠的 AI 應用。
指標可以用下圖直觀的理解:
Precision(精確率):模型回答中正確陳述的比例
-
Recall(回想率):模型答案中包含的標準答案中陳述的比例
-
F1 score(F1 分數):精確率和召回率的調和平均數,提供平衡的效能量測
2. 檢索模組指標:
-
Context Precision(上下文精確率):在所有檢索區塊中,包含至少一個標準答案陳述的區塊的比例
-
Claim Recall(陳述回想率):被擷取區塊所涵蓋的標準答案陳述的比例
Context Utilization(上下文利用率):評估產生模組如何有效利用從檢索區塊中取得的相關資訊來產生正確的陳述。這個指標反映了系統對檢索到的資訊的使用效率。 Noise Sensitivity(噪音敏感度):衡量產生模組在回答中包含來自檢索區塊的錯誤訊息的傾向。這個指標幫助識別系統對不相關或錯誤訊息的敏感程度。 Hallucination(幻覺):測量模型產生既不存在於檢索區塊也不在標準答案中的資訊的頻率。這就像是捕捉模型 「憑空捏造」 資訊的情況,是評估模型可靠性的重要指標。 Self-knowledge(模型內部知識):評估模型在未從檢索區塊獲得資訊的情況下,正確回答問題的頻率。這反映了模型在需要時利用自身內建知識的能力。 Faithfulness(忠實度):衡量產生模組的回應與檢索區塊提供的資訊的一致程度。這個指標反映了系統對給定資訊的依從性。 這些指標就像是RAG 系統的“體檢報告”,幫助開發者全面了解系統的健康狀況,並找出需要改進的地方。 pip install ragcheckerpython -m spacy download en_core_web_sm
登入後複製
{ "results": [ { "query_id": "< 查询 ID>", "query": "< 输入查询 >", "gt_answer": "< 标准答案 >", "response": "<RAG 系统生成的回答 >", "retrieved_context": [ { "doc_id": "< 文档 ID>", "text": "< 检索块的内容 >" }, ... ] }, ... ] }
登入後複製
對於想要嘗試RAGChecker 的開發者來說,上手過程非常簡單。以下是快速入門的步驟:
1. 環境設定:首先,安裝RAGChecker 及其相依性:2. 準備資料:將RAG 系統的輸出準備成特定的JSON 格式,包括查詢、標準答案、模型回答和檢索的上下文。資料格式應如下:ragchecker-cli \--input_path=examples/checking_inputs.json \--output_path=examples/checking_outputs.json
登入後複製
from ragchecker import RAGResults, RAGCheckerfrom ragchecker.metrics import all_metrics# 从 JSON 初始化 RAGResultswith 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 的推出為RAG 系統的推出和優化提供了一個優化方法新的工具。它為開發者提供了一把 “顯微鏡”,幫助他們深入了解、精準優化 RAG 系統。無論你是正在研究 RAG 技術的學者,還是致力於開發更智慧 AI 應用的工程師,RAGChecker 都將是你不可或缺的得力助手。讀者可以造訪 https://github.com/amazon-science/RAGChecker 以獲取更多資訊或參與到專案的開發中來。 以上是給RAG系統做一次全面「體檢」,亞馬遜開源RAGChecker診斷工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!