為什麼需要對RAG系統評估
評估是AI開發流程中的一個非常關鍵步驟,它被用於檢查當前策略相對於其他策略的有效性,或在當你對流程進行更改時進行評估。因此在進行LLM專案的開發和改進時,必須要有衡量其表現的方法。
LlamaIndex中RAG處理過程(圖片來源:https://docs.llamaindex.ai/en/stable/getting_started/concepts/ ):
為了評估RAG系統,我們通常使用兩種型別的評估:
-
檢索評估
-
響應評估
評估RAG系統更復雜。這種複雜性的原因在於RAG系統生成的響應是非結構化文字,需要結合定性和定量指標來準確評估其效能。
為了有效評估RAG系統,我們通常遵循TRIAD框架。該框架由三個主要組成部分組成:
- 上下文相關性:這個元件評估RAG系統的檢索部分。它評估從大型資料集中準確檢索到的文件。這裡使用的度量指標包括精確度、召回率、MRR和MAP。
- 精確度衡量了檢索到的文件的準確性。它是檢索到的相關文件數量與檢索到的文件總數之比。
- 召回率衡量了檢索到的文件的全面性。它是檢索到的相關文件數量與資料庫中相關文件的總數之比。
- 平均倒數排名(MRR)是一種評估檢索系統效果的度量指標,它考慮了第一個相關文件的排名位置。
- 平均準確率(MAP)是一種評估多個查詢的檢索精確度的度量指標。它同時考慮了檢索的精確度和檢索文件的順序。MAP定義為一組查詢的平均準確率得分的平均值。為了計算單個查詢的平均準確率,需要在檢索到的文件的排序列表中的每個位置計算精確度,只考慮前K個檢索到的文件,其中每個精確度都根據文件是否相關進行加權。
- 忠實度(基於檢索):這個元件屬於響應評估。它檢查生成的響應是否準確無誤,並且基於檢索到的文件。透過人工評估、自動事實檢查工具和一致性檢查等方法來評估忠實度。
- 人工評估:專家手動評估生成的響應是否事實準確,並且是否正確引用了檢索到的文件。這個過程涉及檢查每個響應與源文件,以確保所有主張都有證據支援。
- 自動事實檢查工具:這些工具將生成的響應與已驗證事實的資料庫進行比較,以識別不準確之處。它們提供了一種無需人工干預即可檢查資訊有效性的自動方式。
- 一致性檢查:這些評估模型是否在不同查詢中始終提供相同的事實資訊。這確保模型可靠,不會產生矛盾的資訊。
- 答案相關性:這也是響應評估的一部分。它衡量生成的響應對使用者的查詢提供了多少有用的資訊。使用的度量指標包括BLEU、ROUGE、METEOR和基於嵌入的評估。
RAG應用評估工具
Ragas(https://docs.ragas.io/en/latest/getstarted/index.html):Ragas 是專注於評估 RAG 應用的工具,透過簡單的介面即可實現評估。Ragas 指標種類豐富多樣,對 RAG 應用的框架無要求。也可以透過 langsmith(https://www.langchain.com/langsmith)/langfuse來監控每次評估的過程,幫助分析每次評估的原因和觀察 API key 的消耗。
Continuous Eval(https://docs.relari.ai/v0.3):Continuous-eval 是一個用於評估 LLM 應用 pipelines 的開源軟體包,重點放在檢索增強生成(RAG)pipelines 上。它提供了一種更便宜、更快速的評估選項。此外,它還允許建立具有數學保證的可信的整合評估管道。
TruLens-Eval:Trulens-Eval 是專門用於評估 RAG 指標的工具,它對 LangChain 和 Llama-Index 都有比較好的整合,可以方便地用於評估這兩個框架搭建的 RAG 應用。另外,Trulens-Eval 也可以在瀏覽器中啟動頁面進行視覺化地監控,幫助分析每次評估的原因和觀察 API key 的消耗。
Llama-Index:Llama-Index 是很適合用來搭建 RAG 應用,並且它目前的生態比較豐富,目前也在快速迭代發展中。它也包含評估 RAG 的功能和生成合成資料集的功能,使用者可以方便地對由 Llama-Index 本身搭建的 RAG 應用進行評估。
DeepEval 是一個類似於Pytest的輕量級框架,專門針對LLM單元測試。它利用最新的研究方法,如G-Eval、幻覺檢測、答案相關性等,透過本地執行的LLM和NLP模型來評估模型效能。無論是RAG還是微調應用,無論你是LangChain還是LlamaIndex的使用者,DeepEval都能無縫融入你的開發流程。
除此之外,還有一些評估工具,它們在使用功能上,與上述的這些大同小異。比如 Phoenix(https://docs.arize.com/phoenix)、DeepEval(https://github.com/confident-ai/deepeval)、LangSmith、OpenAI Evals(https://github.com/openai/evals)。這些評估工具的迭代發展也非常快,關於具體的功能與使用方式可以查閱相應的官方文件。