理解 RAG 第九部分:針對 RAG 微調 LLM
在“理解 RAG”系列的前幾篇文章中,我們重點探討了檢索增強生成的各個方面。文章中,我們重點介紹了與大型語言模型 (LLM) 集成的檢索器組件,該組件用于檢索有意義且真實的上下文知識,從而提升 LLM 輸入的質量,并最終提升其生成的輸出響應。具體來說,我們學習了如何管理傳遞給 LLM 的上下文長度、如何優化檢索,以及如何利用向量數據庫和索引策略來有效地檢索知識。
這一次,我們將把注意力轉移到生成器組件,即 LLM,通過研究如何以及何時在 RAG 系統內微調 LLM,以確保其響應保持一致、事實準確并與特定領域的知識保持一致。
在繼續了解作為 RAG 系統一部分的 LLM 微調的細微差別之前,讓我們先回顧一下“傳統”或獨立 LLM 中微調的概念和過程。
什么是 LLM Fine-Tuning?
就像新購買的手機可以通過個性化設置、應用程序和裝飾外殼進行調整以適應其主人的喜好和個性一樣,對現有以及之前訓練過的LLM 進行微調包括使用額外的專門訓練數據調整其模型參數,以增強其在特定用例或應用領域的性能。
微調是 LLM 開發、維護和重用的重要組成部分,原因有二:
它使模型能夠適應更特定領域(通常規模更小)的數據集,從而提高其在法律、醫療或技術等專業領域中的準確性和相關性。請參見下圖中的示例。
它確保大語言模型(LLM) 及時了解不斷發展的知識和語言模式,避免出現過時的信息、幻覺或與當前事實和最佳實踐不一致等問題。
通過定期微調所有或部分參數來保持 LLM 更新的缺點,正如您可能猜到的那樣,是成本問題,包括獲取新的訓練數據和所需的計算資源。RAG 有助于減少 LLM 持續微調的需求。然而,在某些情況下,將底層 LLM 微調到 RAG 系統仍然是有益的。
RAG 系統中的 LLM 微調:為何以及如何進行
雖然在某些應用場景中,檢索器提取相關的、最新的信息來構建準確的上下文的工作已經足夠,不需要定期進行 LLM 再訓練,但在更具體的情況下,這還不夠。
我們來看一個例子,當你的 RAG 應用需要對專業術語或特定領域推理有非常深入和全面的理解,而這些是 LLM 的原始訓練數據無法捕捉到的。這可能是一個醫學領域的 RAG 系統,它在檢索相關文檔方面可能表現出色,但 LLM 系統在基于包含有用信息的特定數據集進行微調以吸收此類特定領域推理和語言解釋機制之前,可能難以正確解釋輸入中的知識片段。
RAG 系統 LLM 上的平衡微調頻率也有助于提高系統效率,例如通過減少過多的令牌消耗,從而避免不必要的檢索。
從 RAG 的角度來看,LLM 微調是如何進行的?雖然大多數經典的 LLM 微調方法也可以應用于 RAG 系統,但有些方法在這些系統中尤其流行且有效。
領域自適應預訓練(DAP)
盡管名稱如此,DAP 可以用作 RAG 內部通用模型預訓練和特定任務微調之間的中間策略。它利用特定領域的語料庫,使模型更好地理解特定領域,包括專業術語、寫作風格等。與傳統的微調不同,它仍然可能使用相對較大的數據集,并且通常在將 LLM 與 RAG 系統的其余部分集成之前完成,之后,將針對較小的數據集進行更有針對性、特定任務的微調。
檢索增強微調
這是一種更有趣且更針對 RAG 的微調策略,通過該策略,LLM 會針對包含檢索到的上下文(增強的 LLM 輸入)和所需響應的示例進行重新訓練。這使得 LLM 能夠更熟練地利用并優化檢索到的知識,從而生成能夠更好地整合這些知識的響應。換句話說,通過這種策略,LLM 能夠更熟練地正確使用其所依賴的 RAG 架構。
混合 RAG 微調
這種方法也稱為混合指令-檢索微調,它將傳統的指令微調(通過將LLM暴露于指令-輸出對的示例來訓練其遵循指令)與檢索方法相結合。在用于此混合策略的數據集中,兩種類型的示例共存:一些示例包含檢索到的信息,而另一些示例包含指令遵循信息。結果就會有一個更靈活的模型,可以更好地利用檢索到的信息,并正確地遵循指令。
小結
本文討論了 RAG 系統中 LLM 的微調過程。在回顧了獨立 LLM 中的微調過程并概述了其必要性之后,我們將討論轉向 RAG 系統中 LLM 微調的必要性,并描述了一些在 RAG 應用中常用于微調生成器模型的常用策略。希望這些信息能夠幫助您在構建自己的 RAG 系統時有所用。