城市便條技術筆記

技術筆記 #009|RAGAS 的指標到底都在評估什麼?我決定用《全面啟動》來記🎬

強迫自己每天輸出 Day018

最近又在看 RAG 的評估,每次看到 RAGAS 的:

Context Precision、Context Recall、Faithfulness、Answer Relevancy⋯

都會有種「我知道我看過,但它到底又是在評估哪一段?」的感覺🫠

後來想了一下,乾脆用我很喜歡的電影,《全面啟動》來記。

假設今天 Cobb 接到一個任務。

他不能只靠自己腦中的記憶完成,所以要先找到情報,再拿著這些情報完成任務。

整個過程其實就蠻像 RAG:

接到問題 → 找資料 → 拿資料回答

那 RAGAS 在做的事情,就有點像任務結束後開始檢討:

❶ Context Precision:情報準不準?

找回來的情報裡,有多少是真的有用?

如果帶了一大堆看起來相關、實際上根本用不到的資料,Precision 就會受到影響。

→ 我自己會記成:找得準不準

❷ Context Recall:情報找齊了嗎?

完成任務真正需要的情報,有沒有漏掉?

可能你找回來的每一份資料都很相關,但最重要的那份偏偏沒找到。

→ 找得齊不齊

❸ Faithfulness:有沒有照情報講?

情報明明寫 A,最後卻自己推成 B,甚至講了一個情報裡根本沒出現的東西。

→ 有沒有自己亂補

❹ Answer Relevancy:最後有回答問題嗎?

情報找對了,也沒有亂講,但委託人問 A,你最後講了一大圈卻沒真的回答 A。

→ 有沒有答到問題

拆成兩組來記

所以後來我把 RAGAS 先拆成兩組記:

🔎 Retrieval(檢索層):準不準、齊不齊

  • Context Precision
  • Context Recall

🗣️ Generation(生成層):有沒有亂講、有沒有答題

  • Faithfulness
  • Answer Relevancy

這樣再回頭看那些英文 Metric,好像就沒那麼容易搞混了 XD

而且這樣拆還有一個我覺得蠻實用的地方:

RAG 答錯的時候,可以先判斷到底是「沒找對資料」,還是「資料明明找到了,LLM 卻沒答好」。

不然最後只看到一個「答案錯了」,其實還是不知道要從 Retriever 還是 Generator 開始改。

你們還有什麼每次都要重新查一次才記得的 LLM / RAG 名詞嗎🤣
搞不好也可以找一部電影來記。