五大主流開源大模型RAG評估框架詳解 原創
一、RAG 評估的挑戰
增強檢索生成技術(Retrieval Augmented Generation,簡稱 RAG)目前正成為增強大語言模型(LLM)性能的核心手段。該技術通過將外部知識庫融入LLM,大幅提升了大模型的精確度和對上下文的感知力。然而,對 RAG 系統性能的評測頗具挑戰,這促使了一系列開源 RAG 評估框架的誕生。下面,讓我們共同探討5大開源的 RAG 評估框架。
二、開源評估框架1:Ragas
Ragas(Retrieval-Augmented Generation Assessment) 是一款專為評測增強檢索生成(RAG)流程而精心構建的強大工具。它憑借其全面評估 RAG 的方法論,迅速贏得了開發者和數據科學家們的廣泛認可。
Ragas 是一個框架,它可以幫助我們來快速評估 RAG 系統的性能,為了評估 RAG 系統,Ragas 需要以下信息:
question:用戶輸入的問題。
answer:從 RAG 系統生成的答案(由 LLM 給出)。
contexts:根據用戶的問題從外部知識源檢索的上下文即與問題相關的文檔。
ground_truths:人類提供的基于問題的真實(正確)答案。這是唯一的需要人類提供的信息。
當 Ragas 拿到上述這些信息后會基于大語言模型來對 RAG 系統進行打分,就像在任何機器學習系統中一樣,LLM 和 RAG 流程中各個組件的性能對整體體驗具有重大影響。Ragas 提供了專門用于單獨評估 RAG 流程的每個組件的指標。
1.關鍵特性
- 量身定制的評估標準:Ragas 提供了一系列專門為 RAG 系統設計的評估指標,這些指標能夠精確地評估 RAG 系統在多個維度的性能。
- 適應性強的評估方式:Ragas 支持本地及分布式評估,這確保了它能夠適應各種計算環境和數據量級的需求。無論是進行單機的小規模評估,還是應對分布式系統上的大規模數據評估,Ragas 都能輕松應對。
- 與主流框架兼容:Ragas 能夠與眾多流行的大型語言模型(LLM)框架無縫對接。這種兼容性讓開發者能夠輕松地將 Ragas 整合進現有的 RAG 系統開發流程,大大簡化了開發過程并降低了工作負擔。
2.評估示例
from ragas import evaluate
from datasets import Dataset
# 假設評估數據已經結構化
eval_dataset = Dataset.from_dict({
"question": ["What is the capital of France?"],
"contexts": [["Paris is the capital of France."]],
"answer": ["The capital of France is Paris."],
"ground_truths": [["Paris is the capital of France."]]
})
# 運行評估框架
results = evaluate(eval_dataset)
print(results)
3.Github 地址
??https://github.com/explodinggradients/ragas??
三、開源評估框架2:Prometheus
Prometheus 以其作為監控工具和時間序列數據庫的卓越性能而著稱,然而,其強大的數據搜集和預警能力也使得它在大語言模型(LLM)評估領域值得一談。
1.關鍵特性
- 高效的數據采集與儲存能力:有效地捕捉和保存與大語言模型(LLM)系統相關的信息,涵蓋 RAG 流程中的數據。這些信息對于診斷系統性能和行為的分析至關重要。
- 先進的查詢功能:配備了一種先進的查詢語言,使用戶能夠輕松地對積累的數據進行檢索和分析。借助這種功能強大的查詢工具,用戶能夠細致地探究系統在不同時間段的性能指標,以及不同參數間的相互關聯。
- 彈性的報警機制:擁有一個彈性的報警系統,能夠在系統發生異常時迅速發出警告。這樣的機制有助于問題的及時識別和處理,保障系統的持續穩定運作。
2.應用場景
Prometheus 能夠監控基于大語言模型(LLM)的系統(包括 RAG 流程)的性能和運行狀況。盡管它并非專為 LLM 設計,但其收集和分析時間序列數據的功能對于監測 LLM 性能和系統健康狀態的長期趨勢極為有用。
例如,通過定時搜集 RAG 系統在不同查詢條件下的響應時長、準確度等數據,并運用其查詢語言進行深入分析,可以揭示系統性能的波動趨勢,以及潛在的問題點。一旦響應時間異常延長或準確度明顯下降,警報系統便會迅速通知相關人員采取措施。
3.Github 地址
??https://github.com/prometheus/prometheus??
四、開源評估框架3:DeepEval
DeepEval 是 LLM 評估領域內另一個突出的框架,它專門針對大語言模型的輸出而設計。類似于 Pytest,但它更加專注于 LLM,提供了全面的評估指標,并且支持對 LLM 輸出的單元測試功能。
1.關鍵特性
- 整合了最新的大語言模型(LLM)輸出評估的研究成果。
- 涵蓋了豐富的評估指標體系。
- 為大語言模型(LLM)的輸出提供了單元測試支持。
- 保障了 LLM 生成內容的質量及一致性。
2.Github 地址
??https://github.com/confident-ai/deepeval??
五、開源評估框架4:Phoenix
Phoenix 是由 Arize AI 打造的一款開源工具,旨在為人工智能提供可觀測性和評估功能。盡管它并非專門針對 RAG 流程設計,但其強大的功能使其成為評估大語言模型(LLM)的一個有力選擇。
1.關鍵特性
- 實時監控能力:該工具實現了對 AI 的模型的即時監控,確保能夠即時捕捉到大模型運行時的各類信息,包括輸入輸出數據、性能指標等關鍵細節。
- 性能評估與異常偵測:工具內置了性能分析和問題識別的功能。利用這些功能,用戶能夠深入探究模型的性能表現,快速識別潛在的問題,例如:大模型可能出現的過擬合或欠擬合現象。
- 廣泛兼容性:該工具支持多種 AI 和機器學習場景,其中包括大語言模型(LLMs)。這種廣泛的適用性使其能夠在多種人工智能項目中被有效利用,展現出其高度的通用性。
2.應用場景
Phoenix 的強項在于其能夠全面揭示大模型性能。以大語言翻譯項目為例,利用 Phoenix 可以對翻譯模型的性能進行實時監控。通過評估模型對各種語言文本的轉換效果,可以識別出潛在的翻譯誤差或不精確之處。此外,Phoenix 還能監測模型是否出現過擬合,即模型過于依賴訓練數據,而在處理新數據時表現不佳。基于這些分析,可以對模型進行相應的調整和改進,從而提升翻譯的準確度和效率。
3.Github 地址
??https://github.com/Arize-ai/phoenix??
六、開源評估框架5:ChainForge
ChainForge 是一款開源的可視化編程工具,旨在對大語言模型(LLM)的響應進行解析和評價。該工具的設計宗旨是簡化提示工程和響應評估的過程,使其更加直觀且易于使用。
1.關鍵特性
- 圖形化操作界面:提供了一個圖形化界面,方便設計和測試各種提示詞。通過此界面,開發人員能夠清晰地觀察到提示的結構與內容,從而便捷地進行修改和完善。
- 支持多家 LLM 供應商:該工具兼容多個大型語言模型(LLM)供應商,使用戶能夠在不同的 LLM 大模型之間進行比較和選擇。
- 輸出對比與分析功能:內置了用于對比和分析 LLM 輸出的功能。利用這些功能,用戶能夠對不同 LLM 大模型的輸出進行詳細比較,識別各自的優勢與不足,進而挑選出最合適的大模型。
2.應用場景
ChainForge 的可視化手段在大型語言模型(LLM)的評估領域顯得格外突出。以內容生成項目為例,當需要挑選一個最適宜的 LLM 大模型來產出高品質文章時,ChainForge 的圖形化界面就能派上用場。用戶可以利用這個界面來構思多種提示,并審視不同 LLM 大模型對這些提示詞的反饋。通過對比這些大模型的輸出,可以辨別出哪個大模型更能夠滿足文章生成的需求,進而決定在實際操作中使用該大模型。
3.Github 地址
??https://github.com/ianarawjo/ChainForge??
本文轉載自公眾號玄姐聊AGI 作者:玄姐
