2026年6月25日 星期四

[AI 分享] RAG準確率提升關鍵四步

 [AI 分享] RAG準確率提升關鍵四步

摘要 : 透過切分、Query改寫、混合檢索與指標拆解,將RAG準確率從60%提升到85%。




內容:

RAG系統若想把準確率從60%提升到85%,關鍵不在單點微調,而在整條鏈路的核心最佳化。最先要處理的是資料切分,這也是整體投入產出比最高的一步。


很多人會直接用固定token數切分文件,例如每500個token切一段。這種方式雖然簡單,但很容易把完整知識點、表格內容或因果邏輯硬生生切斷,導致檢索回來的內容零碎不完整,模型看不到足夠上下文,自然難以回答正確。


更適合落地的做法,是採用NLP語義感知的動態切分,搭配10%到20%的重疊視窗。透過分句模型與文件結構解析,確保句子、標題、段落的語義完整性,同時保留上下片段銜接區,避免語意斷層。光是這一步,就有機會比固定切分方式提升約15個百分點。


第二個常見問題出現在使用者Query處理。真實場景中,使用者常常只輸入極短的問題,例如「怎麼退費」或「開票規則」,這類問題語意模糊,直接檢索很難命中正確內容。


常見解法是用小模型做Query擴寫,補出更完整的問句再進行檢索。不過這裡風險很大,若擴寫模型產生幻覺,把原本「怎麼退費」改成「怎麼收費」,就會把整個檢索方向帶偏。因此必須加入語義相似度校驗機制,利用嵌入模型檢查改寫後問句與原問句的相似度,通常低於0.8就應直接捨棄,避免系統自己引入噪聲。


第三步是混合檢索與重排序。實務上不能只靠向量檢索,也不能只靠BM25關鍵詞檢索,兩者要一起使用。但問題在於兩種檢索方式的分數尺度不同,向量分數可能落在0到1之間,BM25卻可能是十幾甚至幾十,無法直接相加比較。


工業界較成熟的方式,是引入LambdaMART這類排序學習模型,將多路檢索特徵映射到同一套排序維度,不再憑經驗手動調權重,而是讓模型學習更合理的排序邏輯,提升混合檢索的穩定性與效果。


最後,最佳化不能只看整體準確率,還必須拆解指標,才能知道問題到底出在哪個環節。最核心的兩個指標是Context Recall與Faithfulness。


Context Recall用來判斷使用者問題的正確答案,是否真的出現在檢索回來的內容片段中。如果答案根本沒被召回,表示問題出在切分或檢索策略,應回頭調整檢索環節。


Faithfulness則是用來衡量生成內容是否忠於檢索資料,也就是常說的幻覺率。若檢索內容明明提供的是A,模型卻回答成B,就代表生成階段有問題,需要重新調整Prompt或生成策略。


整體來看,RAG系統要穩定升級成工業級產品,可以記住四個重點:切分不要一刀切,要做動態語義切分;Query改寫不能偏離原意,要加相似度校驗;混合檢索不要手動拍腦袋定權重,要靠排序學習模型統一最佳化;評估不要只看總準確率,必須拆成召回與忠實度來監控。把這四步做扎實,RAG才有機會從展示型Demo真正走向可承受線上流量的實戰系統。

沒有留言:

張貼留言