RAG 的去識別,為什麼不能只做遮蔽
把每個人名都換成 [REDACTED] 很安全,也把語料變成廢物。「Sarah 把案子轉給誰」這個問題從此沒有答案,因為所有人長得一模一樣。這篇談 RAG 場景該用的做法:keyed HMAC 的穩定替身、遮住身分但保留關係,以及我在實作時踩到的三個坑。
3 篇文章
把每個人名都換成 [REDACTED] 很安全,也把語料變成廢物。「Sarah 把案子轉給誰」這個問題從此沒有答案,因為所有人長得一模一樣。這篇談 RAG 場景該用的做法:keyed HMAC 的穩定替身、遮住身分但保留關係,以及我在實作時踩到的三個坑。
RAG 拆開就三件事:切塊存起來、依問題找相關的塊、把塊餵給模型生成。資料量還沒到上千萬筆,你已經在用的 Postgres 加上 pgvector 就夠了,還能少維運一個外部服務。這篇用 TypeScript 從零做一個會標出處的 RAG:用 Postgres 存向量、一句 <=> 檢索、一次帶 citations 的生成,答案直接對回原文。
過去三年大家把所有對話丟進向量資料庫,token 越疊越貴、召回反而越糟。AI 記憶的下一步不是「存更多」,而是「忘對」。這篇從 cognitive-ai-memory 出發,談艾賓浩斯曲線、MCP,與一條可實作的記憶設計路。