論文筆記/RAG 與上下文工程

Astute RAG:RAG 失效時,該信誰?

Fei Wang、Xingchen Wan、Ruoxi Sun、Jiefeng Chen、Sercan Ö. Arık · Google Cloud AI Research/University of Southern California · arXiv:2410.07176v1 · 2024-10-09

RAG知識衝突可靠性後檢索

本頁的實驗數字與方法解讀以 v1 原文為準。arXiv 目前另列 v2,ACL Anthology 也收錄 2025 年正式版本;版本差異不在本頁混寫。[1][3][4]

一句話核心結論:RAG 不能把「搜到的內容」直接視為答案;Astute RAG 讓模型先提出受限的內部候選,再保留內外部來源與衝突群組,最後依交叉支持與可靠性選答案,將後檢索階段變成一個明確的決策層。[2]

先給判斷:真正的問題在後檢索

傳統 RAG 的直覺是「模型不知道,就去找資料」。問題在於,檢索器回傳的資料不保證相關、正確、最新,甚至可能含有惡意內容;模型一旦把噪聲當成上下文,新增的外部資訊反而會把原本答對的問題帶偏。論文把焦點從「如何再改進 retriever」移到「拿到結果後,模型該如何處理不確定性與衝突」。[2]

約 70%論文描述的 retrieved passages 沒有直接包含正確答案;這是 passage-level 觀察,不等同於 70% 的問題完全無解。
19.2%Claude 3.5 Sonnet 實驗中,無 RAG 與 RAG 的答案出現「一邊對、一邊錯」的知識衝突。
約 20%論文觀察:retrieval precision 低於這個區間時,RAG 增益開始不穩;接近 0 時可能明顯劣於不使用 RAG。

衝突案例中,內部知識正確的比例是 47.4%,外部資訊正確的比例是 52.6%。這個分布直接否定「永遠信模型記憶」與「永遠信檢索內容」兩種簡單規則;需要比較兩邊,而不是預先選邊。[2]

方法拆解:三個角色,不是單純多塞一段 context

STEP 1

自適應產生內部候選

根據 query 從模型內部知識產生最多 段補充資訊;可以少產生,甚至回答「不知道」。v1 預設最多 1 段,避免內部幻覺無限擴張。

STEP 2

來源感知的知識合併

把 external passages 與 internal passages 放在一起,保留來源標籤;一致資訊聚成一組,互相矛盾的資訊分開,無關內容剔除,可重複整理。

STEP 3

候選答案的最後決策

針對每個一致資訊群組提出答案與信心,再比較來源、跨來源支持、出現頻率與完整度,選出最後答案,而不是直接採用多數文字。

核心設計的關鍵細節

實驗設計與結果:增益存在,但成本也是真的

v1 使用 NQ、TriviaQA、BioASQ、PopQA 共 1,042 組短答案 QA,每題以 Google Search 取前 30 筆結果,再選前 10 個可存取網站,擷取對應 snippet 的段落;研究沒有依檢索結果反過來挑題或標註答案。模型是 Gemini 1.5 Pro (002) 與 Claude 3.5 Sonnet (20240620),temperature 0、zero-shot。[2]

表 1:各模型在四資料集上的 Overall accuracy;「最佳既有 baseline」取論文表中非 Astute RAG 的最高值。數字依 v1 Table 1、Table 2。[2]
模型無 RAG一般 RAG最佳既有 baselineAstute RAG 最佳Astute prediction calls
Claude 3.5 Sonnet54.5155.4758.83
InstructRAG
62.86
t=3
4
Gemini 1.5 Pro51.3453.6557.58
Self-Route
59.69
t=2
3

換成較容易解讀的絕對差距:Claude 的最佳既有 baseline 到 Astute RAG 是 +4.03 個百分點;Gemini 是 +2.11 個百分點。同時,Gemini 在 t=3 反而從 59.69 降回 59.21,說明「多一次整理」不是保證增益,輪數應由模型、資料與 context 長度共同決定。[2]

表 2:最佳 Astute 設定相對於各資料集最佳既有 baseline 的絕對差距;用來看增益集中在哪些任務類型。[2]
模型/設定NQTriviaQABioASQPopQA
Claude/t=353.56(+5.42)84.45(+1.41)62.24(+0.70)44.94(+3.93)
Gemini/t=251.53(+4.07)81.27(+0.70)58.74(+0.35)40.45(+2.25)

最有價值的不是 Overall 排名,而是極端情境:在 RGB 的 worst-case 設定中,所有檢索文件都是 negative passages;一般 RAG 與無 RAG 的性能差距超過 50 個百分點,Astute RAG 是唯一接近無 RAG 表現的方法。這表示它至少具備「外部證據失效時不要跟著一起崩」的保底能力。[2]

為什麼有效:它把「衝突」保留下來

一般做法常把多個 passages 直接串接,或以答案投票做聚合;這兩者都可能把錯誤資訊的數量誤當成可信度。Astute RAG 的差異在於先建立資訊群組,再讓每個群組各自產生答案,最後才比較群組。這讓「外部資料多數勝出」不再是唯一規則,也讓「模型記憶答對」有機會抵抗一批錯誤檢索內容。[2]

可以把它理解成三層防線

  1. 補洞:檢索沒有覆蓋到的關鍵資訊,由模型內部候選補上,但不直接採信。
  2. 分流:一致、衝突、無關資訊分開整理,避免摘要把差異抹掉。
  3. 裁決:最後看來源、交叉支持與完整度,選擇一組有較強支持的答案。

最值得學的五件事

  1. RAG 必須有 no-RAG 退路。「加資料」不是單調增益;在低 precision 情境,沒有檢索反而可能比較好。生產系統要能記錄「有 RAG」與「無 RAG」兩條候選路徑,而不是只保留一條。
  2. 來源標籤要跟著摘要走。只保存整理後的結論,等於丟掉日後查錯的證據。壓縮、重排、摘要都不應抹去 URL、文件編號、時間與來源類型。
  3. 衝突不是噪聲,衝突是決策資料。不同說法被合併成一個「看似合理」句子後,錯誤很難追。應保留競爭假設,等最後一層判斷。
  4. 模型自評的 confidence 不能單獨當可靠度。v1 用 prompt 要模型依可信度與一致性評分,但沒有提供可校準的機率模型或固定權重;工程上仍需要獨立來源、時間、新鮮度與人工覆核規則。[2]
  5. 額外推理要有觸發條件。v1 的預設是最多一段內部候選、t=1 的 2 calls;只有 context 長、來源互斥或任務風險高時才增加迭代,不能把 3–4 calls 當成免費的預設。

對 Hermes/DKY 的最小落地版本

不必先複製完整論文框架,也不必立刻新增一個大型服務。先把它做成「後檢索可靠性閘門」:只在檢索稀疏、來源矛盾、或醫療/金融/法規/正式金額等高風險場景啟用。

ponytail:刻意簡化 第一版只記錄來源與衝突,不做複雜的學習式 reliability model。等有足夠的錯誤案例,再用實測資料校準觸發門檻與分數。
raw = retrieve(query)
internal = generate_at_most_one_candidate(query)  # 不確定就回不知道
context = consolidate(
    raw + internal,
    keep_source_ids=True,
    keep_conflict_groups=True,
    drop_irrelevant=True,
)
if high_risk_conflict(context):
    require_independent_primary_source(context)
answer = finalize_with_citations(context)
write_memory_only_after_evidence_check(answer)
觸發條件建議處理不要做的事
來源一致、低風險、可追溯一般 RAG;保存來源 ID 與擷取時間。為了形式而增加多輪 LLM calls。
來源稀疏或互相矛盾產生一個內部候選,分組合併,保留 competing claims,再做最後判斷。直接用多數票或摘要抹平差異。
醫療、金融、法規、正式金額要求獨立第一手來源或人工覆核;未通過就不寫入長期記憶。把模型 confidence 當成核准證明。

論文的「20%」是它在特定 Google Search、短答案資料集上的 retrieval precision 觀察,不應直接硬編碼成所有系統的門檻。比較穩妥的做法是先收集自己的事件記錄:query_idsource_id、來源時間、衝突群組、最後採納理由、是否人工覆核,之後再用實測錯誤率調整。

限制與反方檢查

最終判斷

值得搬走的不是三段 prompt,而是設計原則:把 RAG 當成「外部證據候選」,把內部知識當成「另一個候選」,在答案輸出前設一層能保留來源與衝突的決策閘門。對 Agent 系統而言,這比單純增加 top-k、把 context 塞得更長,或再加一個沒有驗證的 reranker 更有長期價值。

最小可行採用順序是:先記錄 raw evidence 與 provenance,再加入衝突分組,最後只對高風險/低信心案例開啟內部候選與獨立覆核。這樣能取得 Astute RAG 的保底思想,又不會把每個問題都變成 3–4 次昂貴推理。

來源與版本

  1. arXiv v1 摘要頁:2410.07176v1 — 提交日期、作者、分類與版本資訊。
  2. arXiv v1 HTML 全文 — 方法、資料收集、實驗設定、Table 1/2 與分析結果。
  3. arXiv v2 metadata — 2025-05-31 修訂版與 ACL 2025 會議註記。
  4. ACL Anthology:2025.acl-long.1476 — 正式出版資訊、頁碼 30553–30571、DOI 與 CC BY 4.0。