LargitData — Enterprise Intelligence & Risk AI Platform

Last updated:

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

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

How to Improve RAG Accuracy? 10 Optimization Strategies and Practical Techniques資訊圖表配圖,呈現AI 知識中心的重點概念

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)。當您的知識庫包含大量特定領域術語(如醫學、法律、半導體製程等),通用嵌入模型可能無法正確理解這些術語的語義關係。針對領域資料對嵌入模型進行微調,可以讓向量空間更精確地反映領域知識的語義距離。實作方式:蒐集「問題—相關文件片段」的標注對,使用對比學習(Contrastive Learning)方法對嵌入模型進行微調。所需的標注量沒有通用數字——它取決於領域術語的數量、術語之間的區分難度,以及基礎模型原本對該領域的熟悉程度;務實的做法是先標注一小批(例如數十到一兩百組)試跑,觀察評估集分數是否開始改善,再依邊際效益遞減的情形決定要不要繼續加量。至於能提升多少召回率,必須用自己的評估集前後測才知道,不宜引用他人的幅度。要提醒兩個陷阱:一是標注品質比數量重要,若標注對本身就有錯或含糊,微調反而會讓向量空間變差;二是嵌入模型一經更換或微調,整個知識庫的向量都必須重新產生,這筆重建成本應納入評估。

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

【策略 5】實作混合搜尋(Hybrid Search)。純向量搜尋擅長語義理解,但對精確關鍵字匹配(如產品型號、人名、法條編號)的效果不如傳統的 BM25 關鍵字搜尋。混合搜尋將兩者結合:同時執行向量搜尋和關鍵字搜尋,再將結果合併排序。常用的融合方法是 RRF(Reciprocal Rank Fusion),對兩個搜尋結果清單中各文件的排名取倒數後加總,得到最終的混合排名。混合搜尋之所以常有幫助,原因很具體:向量搜尋會把「A123-B 型號」與「A123-C 型號」視為語義極相近而混淆,關鍵字搜尋則能精確命中;反之關鍵字搜尋對同義改寫無能為力,向量搜尋才派得上場。因此文件中專有名詞、型號、法條編號密度越高的知識庫,混合搜尋的效益通常越明顯。實際提升幅度應以自身評估集量測,並注意 RRF 的權重配置需要調校——權重偏向關鍵字會犧牲語義題,偏向向量則會失去精確匹配的好處。主流方案如 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 系統的瓶頸落在檢索、排序還是生成環節。使用這類自動評估工具時要留意一項限制:多數指標本身是以 LLM 作為評審計算出來的,因此分數會受評審模型版本與提示設計影響,不同時間或不同模型跑出的絕對分數不可直接互相比較。務實的用法是固定評審模型與提示,把分數當作「同一條件下的相對趨勢」來追蹤優化是否有效,並定期人工抽查一小批案例,確認自動分數與人的判斷沒有脫節。

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

【策略 10】建立持續監控與線上反饋機制。RAG 系統的優化不是一次性工作,而是持續迭代的過程。建議建立以下監控機制:記錄每次查詢的問題文本、檢索結果、生成答案、以及用戶反饋(如點讚/踩);定期分析「未能回答」或「回答品質差」的查詢,識別知識庫的覆蓋缺口;監控檢索延遲、API 費用等系統指標;以及定期(如每季)重新評估一組標準測試問題,追蹤系統品質的長期趨勢。這套監控機制真正的價值在於把優化從猜測變成可驗證的迭代:每一次調整都有前後分數對照,失敗案例會累積成新的評估題目,知識庫的覆蓋缺口也會被主動暴露出來。至於能提升多少、需要多久,取決於起始基線、資料品質與投入的迭代次數,沒有通用幅度可承諾;建議改以里程碑驗證——設定每一輪迭代的目標指標與最小改善幅度,並以「連續兩輪在同一評估集上無顯著提升」作為當前架構已收斂的判準,此時再考慮更換模型或調整架構。

FAQ

第一步是建立自己的評估集(涵蓋高頻題、跨文件題與知識庫中沒有答案的題),再用 RAGAS 或同類工具量測基線,找出最薄弱的指標。若 Context Recall 低,優先改善 Chunking 策略與導入混合搜尋;若 Context Precision 低,優先加入 Re-ranking;若 Faithfulness 低,優先改善 Prompt Engineering。需注意這類指標多以 LLM 作為評審計算,絕對分數會隨評審模型與提示而變動,應固定評審設定並把分數當作相對趨勢使用,另定期人工抽查校準。有了數據支撐,才能做有效率的優化,避免盲目嘗試各種技術卻不知道哪個真正有效。
沒有通用的最佳 Chunk 大小,需要根據文件類型和問題性質實驗決定。一般而言,256-512 tokens 是常見的起始值,適合大多數通用場景。若問題通常是精確的事實查詢(如「某法條的具體內容是什麼?」),較小的 Chunk(128-256 tokens)通常更準確;若問題需要理解複雜的論述脈絡(如「這份報告的核心觀點是什麼?」),較大的 Chunk(512-1024 tokens)效果更好。建議同時測試幾種 Chunk 大小,用 RAGAS 指標評估,選擇最佳值。
Re-ranking 會增加延遲,但幅度必須自行實測,無法引用通用毫秒數——它取決於候選文件數量與各文件長度(重排序模型要逐一讀入查詢與文件配對,成本大致隨候選數線性成長)、是呼叫外部 API 還是本地推論(外部 API 需額外計入網路往返與服務端排隊)、本地部署時的 GPU 型號與批次大小、以及是否啟用量化。實測方式很簡單:固定同一組查詢,分別在開啟與關閉 Re-ranking 的情況下各跑數十次,比較 P50 與 P95 的差值,這個差值才是貴公司環境的真實代價。是否值得,則取決於它換回多少準確率提升,同樣要用評估集量測。若對延遲敏感,可先縮小候選數(例如從 Top-50 降到 Top-20)、改用較小的重排序模型,或只在判定為複雜的查詢上啟用。
PDF 中的表格和圖片是 RAG 系統的常見難題。常見且多數情況下有效的做法,是把表格轉成保留列與欄關係的結構化文字(Markdown 或 HTML 表格皆可),而非直接攤平成單行文字,讓模型有機會對應欄位。但這不是唯一或必然最佳的選擇:合併儲存格、跨頁延續、含小計或多層表頭的表格,用 Markdown 表示往往會失真,此時改用 HTML 表格、把每一列轉寫成獨立的敘述句、或另外保留一份結構化資料(如 CSV 或資料庫欄位)供精確查詢,效果可能更好。選擇時應考量表格的複雜度、下游 parser 的處理能力,以及使用者實際會問的問題型態——若問題多為數值比較,把表格另存為可查詢的結構化資料通常勝過任何純文字表示法。對於掃描版 PDF 中的圖片文字,需要先透過 OCR(光學字元辨識)技術提取文字。LargitData 的 RAGi 系統整合了 OCR 功能,可以自動處理掃描文件和圖片中的繁體中文文字。
知識庫品質是 RAG 準確率的天花板——再好的技術架構也無法從錯誤或不完整的文件中生成準確答案。常見的知識庫品質問題包括:資訊過時(舊版本文件未被更新或刪除)、格式混亂(不一致的術語、大量的排版噪音)、以及知識覆蓋缺口(某些重要問題根本沒有對應文件)。建議在系統上線前進行知識庫稽核,定期更新文件,並建立一個「無法回答問題」的記錄機制,以識別需要補充的知識覆蓋缺口。

References

  • 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 系統健康診斷服務,協助您快速識別瓶頸並制定優化路線圖。

Contact Us