LargitData — 企業情報與風險 AI 平台

最後更新:

RAG 準確率怎麼提升?10 大優化策略與實戰技巧完整指南

許多企業在初步建置 RAG 系統後發現,實際的回答準確率未能達到預期——AI 找不到相關文件、答案片面、或是出現幻覺。這些問題並非 RAG 技術本身的致命缺陷,而是系統設計和優化不足的結果。RAG 準確率的提升是一個系統性工程,涉及文件切割策略、嵌入模型選擇、混合搜尋架構、重排序機制、查詢優化等多個環節,每個環節的改善都能帶來顯著的準確率提升。本文針對工程師和技術主管,系統性地介紹 10 大 RAG 優化策略,每項策略都附有具體的實作建議,幫助您將 RAG 系統的表現提升到企業應用所需的水準。

RAG 準確率的影響因素分析

在深入優化策略之前,需要先理解影響 RAG 準確率的核心因素。RAG 的整體品質可以從三個維度衡量:「檢索品質」(Retrieval Quality)——系統是否找到了真正相關的文件片段?「生成品質」(Generation Quality)——語言模型是否正確地利用了檢索結果?以及「知識庫品質」(Knowledge Base Quality)——知識庫中的文件是否完整、準確、且適當組織?這三個維度相互影響,優化任何一個維度都能改善整體準確率,但若忽略某個維度的問題,其他維度的優化效果也會大打折扣。

常見的 RAG 準確率問題可以分類如下:「找不到」(Low Recall)——相關文件存在於知識庫中,但系統未能找到;「找錯了」(Low Precision)——系統找到了大量文件,但多數與問題無關;「用不好」(Poor Utilization)——雖然找到了相關文件,但語言模型未能從中提取正確答案;以及「沒有答案」(Out-of-scope)——問題超出知識庫的覆蓋範圍,但系統仍嘗試生成答案而非如實回應「不知道」。識別問題類型是選擇正確優化策略的前提。

策略 1-2:文件切割最佳化

【策略 1】選擇正確的 Chunk 大小。文件切割(Chunking)是 RAG 系統中最容易被忽視但影響最大的環節之一。Chunk 太大(如 1000 tokens 以上),每個片段包含的資訊過多,嵌入向量無法精確捕捉主題,導致相似度計算結果模糊;Chunk 太小(如 50 tokens 以下),每個片段缺乏足夠的上下文,即使找到了相關片段,語言模型也可能因資訊不完整而無法生成準確答案。

實務建議:針對不同文件類型採用不同的 Chunk 大小。法規條文、技術規格等結構性強的文件,建議以「條款」或「小節」為單位切割(約 150-300 tokens);敘述性文章、案例分析等,建議以「段落」為單位(約 300-500 tokens);FAQ 文件則通常以「一問一答」為一個 Chunk(不論長短)。許多進階 RAG 框架支援「滑動視窗」(Sliding Window)切割,讓相鄰 Chunk 之間有 20-30% 的重疊,確保跨片段的上下文不被切斷。

【策略 2】採用語義感知切割(Semantic Chunking)。傳統的固定大小切割不考慮文本的語義邊界,可能把一個完整的論點切割在兩個 Chunk 中。語義感知切割使用嵌入模型計算相鄰句子之間的語義相似度,在相似度明顯下降的位置(代表話題轉換)進行切割,確保每個 Chunk 在語義上是完整的。LlamaIndex、LangChain 等框架均提供了語義切割的實作,可以顯著改善知識密集型文件的檢索品質。

策略 3-4:嵌入模型選擇與優化

【策略 3】選擇適合語言和領域的嵌入模型。嵌入模型(Embedding Model)決定了文本如何被轉換為向量表示,直接影響語義相似度計算的品質。對於繁體中文企業文件,通用的英文嵌入模型表現往往不理想。建議優先考慮多語言嵌入模型,如 BAAI 的 BGE-M3(支援 100+ 語言,繁中表現優異)、Microsoft 的 multilingual-e5-large、以及 Cohere 的 multilingual-embed-v3。在選型時,建議使用 MTEB(Massive Text Embedding Benchmark)榜單作為參考,特別關注中文任務的子榜排名。

【策略 4】考慮嵌入模型的微調(Embedding Fine-tuning)。當您的知識庫包含大量特定領域術語(如醫學、法律、半導體製程等),通用嵌入模型可能無法正確理解這些術語的語義關係。針對領域資料對嵌入模型進行微調,可以讓向量空間更精確地反映領域知識的語義距離。實作方式:收集約 500-2000 組「問題—相關文件片段」的標注對,使用對比學習(Contrastive Learning)方法對嵌入模型進行微調。這項優化在知識高度專業化的企業場景中可帶來 10-20% 的檢索召回率提升。

策略 5-6:混合搜尋與重排序技術

【策略 5】實作混合搜尋(Hybrid Search)。純向量搜尋擅長語義理解,但對精確關鍵字匹配(如產品型號、人名、法條編號)的效果不如傳統的 BM25 關鍵字搜尋。混合搜尋將兩者結合:同時執行向量搜尋和關鍵字搜尋,再將結果合併排序。常用的融合方法是 RRF(Reciprocal Rank Fusion),對兩個搜尋結果清單中各文件的排名取倒數後加總,得到最終的混合排名。實測結果顯示,混合搜尋相較於單純向量搜尋,在多數企業場景下可提升召回率 15-25%。主流向量資料庫如 Elasticsearch、Weaviate、Qdrant 均已原生支援混合搜尋。

【策略 6】加入重排序(Re-ranking)層。向量搜尋的初步結果(通常取 Top-20 到 Top-50)在語義相似度上是合理的,但不一定是對「回答這個問題」最有幫助的片段。重排序模型(Cross-encoder)接受「問題 + 文件片段」作為輸入,直接計算「這個文件片段有多大程度能幫助回答這個問題」的分數,比雙塔架構(Bi-encoder)的向量相似度更精確。推薦的重排序模型包括:Cohere Rerank API、BGE-Reranker、以及 Jina Reranker。典型的流程是:先用向量搜尋取回 Top-20,再用 Re-ranker 精選出 Top-5 傳遞給語言模型,可顯著減少傳入 LLM 的不相關上下文。

策略 7-8:查詢優化與上下文管理

【策略 7】查詢改寫(Query Rewriting)與 HyDE。使用者原始的問題往往不是最適合向量搜尋的形式——問題可能含糊、過於口語、或使用了與知識庫文件不同的術語。查詢改寫(Query Rewriting)在搜尋前先用 LLM 將使用者的問題改寫為更適合搜尋的形式,例如:展開縮寫、補充隱含的上下文、生成多個不同角度的搜尋查詢(多查詢搜尋,Multi-query Retrieval)。另一個強力技術是 HyDE(Hypothetical Document Embeddings):讓 LLM 先「假設」一個可能回答該問題的文件片段,再用這個假設文件的嵌入向量進行搜尋,通常比直接用問題向量搜尋更有效。

【策略 8】上下文壓縮(Context Compression)與精選。當傳入 LLM 的 Context 過長,語言模型往往難以從中準確識別最關鍵的資訊,導致「在長文本中迷失」(Lost in the Middle)的現象——中間段落的資訊被模型忽略的機率遠高於開頭和結尾。上下文壓縮的目標是在傳遞給 LLM 之前,對每個檢索片段進行精簡——保留與問題直接相關的句子,過濾掉不相關的背景資訊。LangChain 的 ContextualCompressionRetriever 提供了一個開箱即用的實作。此外,研究顯示將最重要的文件片段放在 Context 的開頭(而非中間),可以顯著提升 LLM 的利用率。

策略 9-10:評估方法與持續監控

【策略 9】使用 RAGAS 等框架進行系統性評估。許多企業的 RAG 系統缺乏客觀的評估機制,只憑「感覺」判斷效果是否改善。RAGAS(Retrieval-Augmented Generation Assessment)是目前最廣泛使用的 RAG 評估框架,提供四個核心指標:Faithfulness(忠實度,答案是否有據可查)、Answer Relevancy(答案相關性,答案是否回答了問題)、Context Precision(上下文精確度,檢索結果中有多少比例是真正相關的)、以及 Context Recall(上下文召回率,所有相關資訊是否都被找到)。透過這四個指標的組合,可以精確診斷 RAG 系統的瓶頸在哪個環節。

RAGAS 指標 衡量對象 分數低時的對應優化策略
Faithfulness(忠實度) 答案是否基於檢索文件生成,沒有憑空捏造 改善 Prompt 設計,強調「只能基於提供的資料回答」
Answer Relevancy(答案相關性) 答案是否真的回答了問題 改善查詢改寫、Context 組織方式
Context Precision(上下文精確度) 檢索結果中有多少是真正有用的 加入 Re-ranking、改善嵌入模型
Context Recall(上下文召回率) 相關資訊是否都被找到 使用混合搜尋、增加 Top-K 數量、改善 Chunking

【策略 10】建立持續監控與線上反饋機制。RAG 系統的優化不是一次性工作,而是持續迭代的過程。建議建立以下監控機制:記錄每次查詢的問題文本、檢索結果、生成答案、以及用戶反饋(如點讚/踩);定期分析「未能回答」或「回答品質差」的查詢,識別知識庫的覆蓋缺口;監控檢索延遲、API 費用等系統指標;以及定期(如每季)重新評估一組標準測試問題,追蹤系統品質的長期趨勢。建立這些監控機制後,企業通常能在 3-6 個月內將 RAG 系統的準確率提升 30-50%。

延伸閱讀

常見問題

建議先用 RAGAS 對現有系統進行評估,找出最薄弱的指標。若 Context Recall 低,優先改善 Chunking 策略和導入混合搜尋;若 Context Precision 低,優先加入 Re-ranking;若 Faithfulness 低,優先改善 Prompt Engineering。有了數據支撐,才能做有效率的優化,避免盲目嘗試各種技術卻不知道哪個真正有效。
沒有通用的最佳 Chunk 大小,需要根據文件類型和問題性質實驗決定。一般而言,256-512 tokens 是常見的起始值,適合大多數通用場景。若問題通常是精確的事實查詢(如「某法條的具體內容是什麼?」),較小的 Chunk(128-256 tokens)通常更準確;若問題需要理解複雜的論述脈絡(如「這份報告的核心觀點是什麼?」),較大的 Chunk(512-1024 tokens)效果更好。建議同時測試幾種 Chunk 大小,用 RAGAS 指標評估,選擇最佳值。
Re-ranking 確實會增加一些延遲,但影響通常在可接受範圍內。使用 Cohere Rerank API 對 Top-20 文件進行重排序,通常只需額外 200-500ms。本地部署的 BGE-Reranker 在 GPU 環境下通常在 100ms 以內。相較於 Re-ranking 帶來的準確率提升,這點延遲的代價是非常值得的。若對延遲極為敏感,可以考慮只在回答長度超過一定閾值的複雜問題上啟用 Re-ranking,簡單查詢則跳過此步驟。
PDF 中的表格和圖片是 RAG 系統的常見難題。處理表格的最佳方式是將其轉換為 Markdown 格式(保留表格結構),而非直接轉成平文字,這樣嵌入模型才能理解欄位之間的關係。對於掃描版 PDF 中的圖片文字,需要先透過 OCR(光學字元辨識)技術提取文字。LargitData 的 RAGi 系統整合了 OCR 功能,可以自動處理掃描文件和圖片中的繁體中文文字。
知識庫品質是 RAG 準確率的天花板——再好的技術架構也無法從錯誤或不完整的文件中生成準確答案。常見的知識庫品質問題包括:資訊過時(舊版本文件未被更新或刪除)、格式混亂(不一致的術語、大量的排版噪音)、以及知識覆蓋缺口(某些重要問題根本沒有對應文件)。建議在系統上線前進行知識庫稽核,定期更新文件,並建立一個「無法回答問題」的記錄機制,以識別需要補充的知識覆蓋缺口。

參考資料

  • Es, S., et al. (2023). RAGAS: Automated evaluation of retrieval augmented generation. [arXiv:2309.15217]
  • Ma, X., et al. (2023). Fine-tuning LLaMA for multi-stage text retrieval. SIGIR 2024. [arXiv]
  • Gao, L., et al. (2022). Precise zero-shot dense retrieval without relevance labels (HyDE). [arXiv:2212.10496]
  • Liu, N., et al. (2023). Lost in the middle: How language models use long contexts. TACL 2024. [arXiv]

想要更快速地提升您的 RAG 系統準確率?

聯絡 LargitData 的技術顧問,我們提供 RAG 系統健康診斷服務,協助您快速識別瓶頸並制定優化路線圖。

立即諮詢