RAG系列:系統(tǒng)評估 - 五個主流評估指標(biāo)詳解
引言
在 RAG系列:一文讓你由淺到深搞懂RAG實(shí)現(xiàn) 中,我們將 RAG 系統(tǒng)主要分為問題理解、檢索召回以及答案生成這三個模塊,因此對 RAG 系統(tǒng)的評估也是圍繞問題(Question)、檢索到的上下文(Retrieved Context)、實(shí)際答案(Actual Answer)、參考答案(Reference Answer)這四個維度開展,通過衡量這四個維度之間的相關(guān)性來評估 RAG 系統(tǒng)的有效性。
下面我們對每個指標(biāo)一一展開講解。
評估指標(biāo)
上下文召回率(Context Recall)
衡量檢索到的上下文是否覆蓋參考答案所需的所有關(guān)鍵信息,避免遺漏關(guān)鍵信息。
取值在 0 到 1 之間,數(shù)值越高表示檢索到的上下文覆蓋越全面。
計算公式:上下文召回率 = 上下文覆蓋的關(guān)鍵信息數(shù)量 / 參考答案中關(guān)鍵信息總數(shù)量。
例如,參考答案需要 5 個關(guān)鍵信息,若檢索到的上下文覆蓋其中 4 個關(guān)鍵信息,則上下文召回率為 0.8。
提升方法:
- 問題優(yōu)化與擴(kuò)展
a.通過 LLM 對原問題進(jìn)行改寫或擴(kuò)寫,生成多個相關(guān)問題擴(kuò)大檢索范圍;
b .應(yīng)用 HyDE(假設(shè)性文檔嵌入)生成假設(shè)性答案作為查詢向量,提升上下文召回率。
- 分塊策略優(yōu)化
a.根據(jù)文檔類型調(diào)整分塊大小和相鄰分塊的重疊大小;
b.為每個文本塊添加顯式標(biāo)題或背景,提升語義檢索準(zhǔn)確性;
c.結(jié)構(gòu)化文檔,如將 PDF 文件先轉(zhuǎn)為 Markdown 文件再進(jìn)行分塊;
d.使用 LLM 生成主題連貫的文本塊,替代傳統(tǒng)遞歸分割,減少上下文斷裂問題。
3.檢索策略改進(jìn)
a.混合檢索,結(jié)合稠密檢索(向量搜索)與稀疏檢索(如BM25),通過加權(quán)融合(如 60% 稠密 + 40% 稀疏)兼顧語義關(guān)聯(lián)與關(guān)鍵詞匹配,提升上下文召回率;
b.動態(tài)調(diào)整 Top-K 候選文檔數(shù)量,根據(jù)查詢復(fù)雜度優(yōu)化檢索策略。
上下文相關(guān)性(Context Relevance)
衡量檢索到的上下文與問題之間的相關(guān)性,避免包含無關(guān)冗余內(nèi)容。
取值在 0 到 1 之間,數(shù)值越高表示檢索到的上下文相關(guān)性越高。
計算公式:上下文相關(guān)性 = 上下文中與問題相關(guān)的片段數(shù)量 / 上下文中片段總數(shù)量。
例如,檢索到的上下文總共有 5 個片段,與問題相關(guān)的片段有 4 個,則上下文相關(guān)性為 0.8。
提升方法:
- 問題優(yōu)化與擴(kuò)展
a.通過 LLM 對原問題進(jìn)行改寫或擴(kuò)寫,生成多個相關(guān)問題,覆蓋用戶意圖的不同表達(dá)形式;
b.應(yīng)用 HyDE(假設(shè)性文檔嵌入)生成假設(shè)性答案作為查詢向量,增強(qiáng)問題與上下文的匹配度。
- 分塊策略優(yōu)化
a.根據(jù)文檔類型調(diào)整分塊大小和相鄰分塊的重疊大小;
b.為每個文本塊添加顯式標(biāo)題或背景,提升語義檢索準(zhǔn)確性;
c.結(jié)構(gòu)化文檔,如將 PDF 文件先轉(zhuǎn)為 Markdown 文件再進(jìn)行分塊;
d.使用 LLM 生成主題連貫的文本塊,替代傳統(tǒng)遞歸分割,減少上下文斷裂問題。
3. Embedding 模型優(yōu)化
a.采用更高性能的 Embedding 模型;
b.通過領(lǐng)域知識庫微調(diào) Embedding 模型。
4. 檢索策略改進(jìn)
a.混合檢索,結(jié)合稠密檢索(向量搜索)與稀疏檢索(如BM25),通過加權(quán)融合(如 60% 稠密 + 40% 稀疏)兼顧語義關(guān)聯(lián)與關(guān)鍵詞匹配,提升上下文相關(guān)性;
b.檢索與重排序結(jié)合,先擴(kuò)大檢索范圍(如Top 100)實(shí)現(xiàn)最大化召回,然后使用重排序模型篩選 Top 5-10,兼顧效率與相關(guān)性;
c.引入知識圖譜(Knowledge Graph)增強(qiáng)檢索,通過實(shí)體鏈接和路徑擴(kuò)展挖掘深層語義關(guān)系,解決傳統(tǒng) RAG 對復(fù)雜關(guān)系推理的不足。
答案忠實(shí)度(Faithfulness)
衡量實(shí)際答案是否嚴(yán)格基于檢索到的上下文,避免幻覺。
取值在 0 到 1 之間,數(shù)值越高表示實(shí)際答案越嚴(yán)格基于檢索到的上下文。
計算公式:答案忠實(shí)度 = 上下文能夠推斷出事實(shí)的數(shù)量 / 答案拆解出的事實(shí)總數(shù)量。
例如,實(shí)際答案拆解出 5 個事實(shí),若檢索到的上下文覆蓋其中 4 個事實(shí),則答案忠實(shí)度為 0.8。
提升方法:
- 優(yōu)化檢索階段的精準(zhǔn)性,提高上下文召相關(guān)性;
- 生成階段通過 Prompt 設(shè)計約束 LLM 嚴(yán)格按上下文生成答案。
答案相關(guān)性(Answer Relevance)
衡量實(shí)際答案是否直接完整回答用戶問題,排除冗余或跑題。
取值在 0 到 1 之間,數(shù)值越高表示實(shí)際答案更直接完整回答用戶問題。
計算公式:答案相關(guān)性 = 與實(shí)際問題相關(guān)的模擬問題數(shù)量 / 實(shí)際答案推導(dǎo)出的模擬問題總數(shù)量。
例如,實(shí)際答案推導(dǎo)出 5 個模擬問題,若其中 4 個與實(shí)際問題相關(guān),則答案相關(guān)性為 0.8。
提升方法:
- 優(yōu)化檢索階段的精準(zhǔn)性與全面性,提高上下文召回率和相關(guān)性;
- 生成階段通過 Prompt 設(shè)計約束 LLM 直接完整回答用戶問題。
答案正確性(Answer Correctness)
衡量實(shí)際答案的準(zhǔn)確性,需與參考答案對比。
取值在 0 到 1 之間,數(shù)值越高表示實(shí)際答案與參考答案匹配度越高,準(zhǔn)確性也就越高。
計算公式:答案準(zhǔn)確性 = 實(shí)際答案覆蓋的關(guān)鍵信息數(shù)量 / 參考答案中關(guān)鍵信息總數(shù)量。
例如,參考答案需要 5 個關(guān)鍵信息,若實(shí)際答案覆蓋其中 4 個關(guān)鍵信息,則答案正確性為 0.8。
提升方法:
- 優(yōu)化檢索階段的精準(zhǔn)性與全面性,提高上下文召回率和相關(guān)性;
- 生成階段通過 Prompt 設(shè)計約束 LLM 直接完整回答用戶問題。
評估系統(tǒng)
RAG 系統(tǒng)評估方法主要有用戶反饋(User Feedback)、人工標(biāo)注(Human Annotations)、LLM 評估(LLM-as-judge)。
鑒于用戶反饋需要生產(chǎn)環(huán)境以及人工評估耗時耗力等原因,通過 LLM 來對 RAG 系統(tǒng)進(jìn)行評估是目前的主流和發(fā)展方向。
目前主流的 RAG 評估系統(tǒng)有:RAGAS[1]、Trulens[2]、LangSmith[3]、LlamaIndex[4]等,其核心原理還是使用標(biāo)注良好的數(shù)據(jù)集和 LLM 來完成自動化評估,大家可根據(jù)自己的需求選用。
- RAGAS:
定位:專注 RAG 系統(tǒng)評估,提供自動化、無參考標(biāo)簽的評估框架,評估指標(biāo)覆蓋全面;
覆蓋指標(biāo):上下文相關(guān)性、上下文召回率、答案忠實(shí)度、答案相關(guān)性、答案正確性等;
支持開發(fā)語言:Python。
- Trulens
定位:提供 RAG Triad 評估模型(檢索質(zhì)量、生成準(zhǔn)確性、對齊度),但指標(biāo)較 RAGAS 粗略,屬于 RAGAS 的子集;
覆蓋指標(biāo):上下文相關(guān)性、答案忠實(shí)度、答案相關(guān)性等;
支持開發(fā)語言:Python。
- LangSmith:
定位:LangChain 生態(tài)的核心監(jiān)控與調(diào)試工具,覆蓋 LLM 應(yīng)用全生命周期,也可與 RAGAS 聯(lián)合評估 RAG 系統(tǒng);
覆蓋指標(biāo):上下文相關(guān)性、答案忠實(shí)度、答案相關(guān)性、答案正確性等;
支持開發(fā)語言:Python、TypeScript。
- LlamaIndex:
定位:一個專注于構(gòu)建 RAG 應(yīng)用的框架,提供數(shù)據(jù)索引、檢索與生成的完整流程支持。支持部分指標(biāo)評估,也可與 RAGAS 聯(lián)合評估 RAG 系統(tǒng);
覆蓋指標(biāo):答案忠實(shí)度、答案相關(guān)性、答案正確性等;
支持開發(fā)語言:Python、TypeScript。
結(jié)語
通過本文我們了解了 RAG 系統(tǒng)的評估指標(biāo)、評估方法以及主流的評估系統(tǒng),后面我們將基于 LLM-as-judge 自己實(shí)現(xiàn)一套自動化評估系統(tǒng),然后通過該評估系統(tǒng)評估我們在RAG系列:基于 DeepSeek + Chroma + LangChain 開發(fā)一個簡單 RAG 系統(tǒng) 中搭建好的基礎(chǔ)版 RAG 系統(tǒng),然后以此為基準(zhǔn),學(xué)習(xí)不同的優(yōu)化方法以及優(yōu)化后的基礎(chǔ)版 RAG 系統(tǒng)的提升效果。
引用鏈接
[1]
RAGAS:https://docs.ragas.io/en/latest/getstarted/rag_eval/
[2]
Trulens:https://www.trulens.org/getting_started/
[3]
LangSmith:https://docs.smith.langchain.com/evaluation/tutorials/rag
[4]
LlamaIndex:https://www.llamaindex.ai/