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