devv.ai 是如何構建高效的 RAG 系統的 Part 2 這個系列的 thread 會分享 devv.ai 背後構建整個 Retrieval Augmented Generation System 的經驗,包括在生產環境上的一些實踐。 這是系列的第二篇,主題是「如何評估一個 RAG 系統」。 🧵
上篇我們提到了什麼是 RAG 系統,以及構成的基本要素,這裡再來複習一下。 一個最基本的 RAG 系統由以下 3 個部分組成: 1. 語言模型 2. 外部知識合集 3. 當前場景下所需要的外部知識
想要優化整個系統,就可以把問題分解為優化這個系統的每個部分。 但是優化一個基於 LLM 的系統的難點在於,這個系統本質上是一個黑盒,沒有一套有效的評估手段。 如果連最基礎的 benchmark 也沒有,怎麼提升對應的指標也就是空談了。
所以我們要做的第一件事就是先建立對整個 RAG 系統的評估體系。來自 Stanford 的這篇論文主要做的就是這個工作,評估生成式搜索引擎的可驗證性。arxiv.org/abs/2304.09848
這篇論文雖然是用來評估生成式搜索引擎,但是也完全可以將其中的方法應用到 RAG 上,本質上生成式搜索引擎算是 RAG 的一個子集,還有針對特定領域數據的 RAG 系統。
論文中提到了一個值得信賴的 Generative Search Engine 的先決條件就是:可驗證性(verifiability)。 我們都知道 LLM 經常會一本正經的胡說八道(幻覺,hallucination),生成一些看似對,實則錯的內容。 而 RAG 的一個優勢就是給模型提供了參考資料,讓模型降低幻覺的概率。
而這個幻覺降低了多少,就可以用 verifiability 這個指標來進行評估。 理想的 RAG 系統應該是: - 高引用召回率(high citation recall),即所有的生成內容都有引用(外部知識)充分支持 - 高引用精度(high citation precision),即每個引用是否真的支持生成的內容