這次要講的內容是 如何去評估 RAG 的效能。我們使用 RAG 的最大原因,就是希望能避免 LLM 產生幻覺,但問題是:即使結合了檢索,我們仍然不能百分之百保證輸出的答案一定正確、符合需求。
因此,我們需要一個方法,能夠量化 RAG 的表現標準,而不是僅憑直覺判斷。
在實務中,通常會先建立一個 PoC(概念驗證)RAG pipeline,並透過各種評估指標來檢查它的效能,確認檢索與生成兩個流程是否運作正常,並且能在持續優化的過程中逐步改善。
概念驗證(英語:Proof of concept,簡稱POC)是對某些想法的一個較短而不完整的實現,以證明其可行性,示範其原理,其目的是為了驗證一些概念或理論。
剛剛說的都有點籠統,其實白話來說我們的目標應該是先建立一個「最小可行版本」的 RAG 系統,用來快速驗證這種方法是否可行,而不是一開始就打造完整、龐大的系統。
正因為 RAG pipeline 其實還是有可能會有幻覺的產生,所以我們還是要去思考原因會是甚麼,像是檢索器未能檢索到完整的上下文或檢索到不相關的內容、可能給了相關的資訊但 LLM 還是沒有參閱、或者是它挑了當中比較不相關的答案來回答。
所以,我們在評估的時候,要同時針對 檢索 和 生成 這兩個步驟做檢查。例如:
所以針對上述的部分,現在常用三個面向來衡量檢索與生成的品質。
整體來說,RAG 的效能衡量可以分成兩大類:
自然語言生成常用的 BLEU、ROUGE、METEOR 也能應用於 RAG,但需要額外針對「檢索 + 生成」的特性設計專屬指標。
我們後續會針對這兩種效益衡量方式做更進一步的說明。