如果你是一名用户,拥有两个不同的 RAG 应用,如何评判哪个更好?对于开发者而言,如何定量迭代提升你的 RAG 应用的性能?8 Y4 B3 p9 \% H
' _: q, A/ R* r8 w. H1 Z" P, o
3 ] O M& @: J9 w I! ] 显然,无论对于用户还是开发者而言,国产的向量数据库准确评估 RAG 应用的性能都十分重要。然而,简单的几个例子对比并不能全面衡量 RAG 应用的回答质量,需要采用可信、可复现的指标来量化评估 RAG 应用。
8 G4 B9 P* _; W
- F2 {' C2 W5 W# w* F3 e: t
* g5 b, p R9 S6 _3 a6 z- s 本文将从黑盒和白盒两个角度来讨论如何定量地评估一个 RAG 应用。
3 u- R- {+ v" ^% g! s5 J; R" D" Z4 ^0 h4 V( N) b, t& r- c, H
o& p$ F" U; x' O, m4 |1 L7 b
01.黑盒方法 V.S. 白盒方法
$ X. ]+ @ L. D8 m+ R7 k; C9 M0 v, W$ |
7 Z4 G4 e. X3 q
我们把评估 RAG 应用类比为测试一个软件系统,可以从两个途径来评估 RAG 系统的好坏,一个是黑盒方法,一个是白盒方法。# |) B; V7 N/ c
1 Q2 l' H s3 N' |( M% \; X# H1 U" j/ \0 x0 K2 H/ v
当以黑盒方式来评估 RAG 应用时,我们看不到 RAG 应用的内部,只能从输入给 RAG 应用的信息和它返回的信息来评估 RAG 的效果。对于一般的 RAG 系统,我们只能访问这三个信息:用户提问(User's query)、RAG 系统召回的引用上下文(retrieved contexts)、RAG 系统的回答(RAG's response)。我们使用这三个信息来评估 RAG 应用的效果,黑盒方式是一种端到端的评估方式,也比较适用于评估闭源的 RAG 应用。, I7 c% M1 b2 L: S
1 ]% U. R9 a7 g& }5 _, n. }* g/ P% g3 S( D4 E" a. B( I$ W
当以白盒方式来评估 RAG 应用时,我们能看到 RAG 应用的内部所有流程。因此内部的一些关键组件就可以决定这个 RAG 应用表现的好坏。以常见的 RAG 应用流程为例,一些关键的组件包括 embedding model、rerank model 和LLM。有的 RAG 具备多路召回能力,可能还会有 基于词频的搜索方法(term frequency search) 算法,更换和升级这些关键组件也能为 RAG 应用带来更好的效果。白盒方式可以用来评估开源 RAG 应用,或者提升自研 RAG 应用。
& f- Q1 \- i/ N: h& X$ r( N) z" c& z- X7 D
0 o ^ c* V# ? u1 d 02.黑盒的端到端评估方法
/ D; d* x9 p0 ?$ D, B9 x) I3 B, g' S4 \7 L9 F3 P
( u) F- k& q F7 G- K5 | ~+ W
黑盒条件下评估指标
& D5 U5 s$ X0 O; Q5 T! D- p& ~' Z* i9 {
' x3 S5 l% Y4 m. O- g0 P 在 RAG 应用是一个黑盒的情况下,我们只能访问这三个信息:用户提问(User's query)、RAG 系统召回的引用上下文(retrieved contexts)、RAG 系统的回答(RAG's response)。它们是 RAG 整个过程中最重要的三元组,两两相互牵制。我们可以通过检测这三元组之间两两元素的相关度,来评估一个 RAG 应用的效果。, l6 D4 y( L9 [+ |
( g9 j$ x% }- T
, x S3 C' k8 ?: M8 P9 P6 @+ R9 E 提出下面这三个对应的指标得分:
; i5 M7 c" J( k- R& F1 C5 _; }$ l! c# X: u' G, V, ^
6 H9 g3 O8 b! o( N8 }- |
Context Relevance: 衡量召回的 Context 能够支持 Query 的程度。如果该得分低,反应出了召回了太多与 Query 问题无关的内容,这些错误的召回知识会对 LLM 的最终回答造成一定影响。
# [# k. g( h4 W/ c8 J( F' F0 z
, `" n6 F& F3 \5 U3 i! J0 l. v# K& V
Faithfulness: 这个指标衡量了生成的答案在给定的上下文中的事实一致性。它是根据答案和检索到的上下文计算出来的如果该得分低,反应出了 LLM 的回答不遵从召回的知识,那么回答出现幻觉的可能就越大。
# v+ J2 h7 @0 u/ b7 [& n/ s2 b0 s
) i7 A1 S% N1 r8 u0 \) p
Answer Relevance: 侧重于评估生成的答案与给定查询提示的相关性。对于不完整或包含冗余信息的答案,会分配较低的分数。- a( x6 j% n( v0 ~, B
+ |6 D3 b2 A1 ` |