iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
生成式 AI

生成式AI的奇妙旅程:從ChatGPT到個人化應用系列 第 18

Day18|LLM 兩大痛點一次解:RAG 補知識、PEFT 補靈魂

  • 分享至 

  • xImage
  •  

RAG(檢索增強生成):大型語言模型突破知識邊界與風格客製化的秘密武器

引言:當「全知」的 LLM 遇上現實的「限制」

哈囉,各位 LLM 應用開發的同好們!不知道大家在用 ChatGPT、Gemini 這些強大的大型語言模型(LLMs)時,有沒有遇過幾個令人頭痛的場景?

場景一:最新的資訊,它卻一問三不知。 儘管 LLM 已經在數十億參數上訓練過,擁有龐大的靜態參數知識,但它的知識往往有**「截止日期」**,對於剛發生的新聞或變動中的企業內部知識,常常會給出過期或籠統的回應,甚至編造虛假資訊(也就是我們常說的「幻覺現象」, hallucination)。

場景二:寫出來的文字,就是少了點「個人特色」。 這些被訓練成「人類對齊」的 LLM 雖然能幫我們寫作,但輸出的風格卻是「一體適用」(one-size-fits-all),這可能導致語言的同質化 (homogenization of language),讓使用者難以發展自己的寫作風格。

有沒有一種方法,可以讓 LLM 即時存取外部世界不斷更新的知識,同時又能夠 穿上專屬的「個人風格」外衣 呢?

今天,我們就來深入探討兩大神器:專治知識時效性的 RAG(檢索增強生成),以及專攻風格客製化的 PEFT(參數效率微調)


核心概念解讀:RAG 與 PEFT 的定義與原理

這兩種技術都是為了讓大型語言模型在特定任務中更有用。RAG 解決的是知識來源問題,而 PEFT(以 LoRA 為代表)則解決 輸出風格 問題。

一、RAG(Retrieval-Augmented Generation):外部知識的守門員

定義與原理

RAG 是一種最佳化 LLM 輸出的過程。它透過引入 外部知識來源(如資料庫) 來強化 LLM 的生成結果。RAG 的核心機制是將使用者輸入(prompt)與一組相關的支援文件結合起來,然後將這些文件內容加入到輸入提示中,一起送入語言模型(Generator)進行最終的輸出。

最大的優勢在於: RAG 讓 LLM 不需要經過重新訓練,就能夠存取最新的訊息,提供可靠、基於檢索的輸出。

RAG 的運作流程(三步驟範式)

RAG 系統的運作流程,將傳統的 LLM 應用分解為以下三個核心環節:

  1. 建立外部資料 (Indexing):

    • 外部資料(如文件、資料庫記錄、長格式文本)會被 切分為小區塊(Chunks)
    • 這些區塊接著會透過 嵌入語言模型(Embedding Models) 轉換成數值表示(向量化)。
    • 最後,這些向量會儲存在 向量資料庫(Vector Store/ChromaDB) 中,形成 LLM 可理解的知識庫。
  2. 擷取相關資訊 (Retrieval):

    • 當使用者輸入查詢(Query)時,查詢也會被向量化處理。
    • 系統接著將查詢向量與向量資料庫中的向量進行比對,執行 相關性搜索(relevance search)
    • 取回 最相符的相關文檔(Relevant Documents)
  3. 增強 LLM 提示與生成 (Augmentation & Generation):

    • RAG 模型透過在內容中新增相關擷取的資料來 增強使用者輸入(提示詞工程)
    • 將「原始查詢」與「檢索到的文件內容」組合而成的 新提示 送入 LLM(Generator)進行回應生成。
    • LLM 最終生成更準確、時效性高的回應。

技術應用範例

在實際建構 RAG 系統時,開發者會使用特定的技術堆疊:

  • 應用框架: LangChain 就像膠水一樣,將 LLM 模型與其他工具和數據源連接起來,非常適合建立複雜的 RAG 工作流程。
  • LLM 模型: 可以使用 Llama2 等模型。
  • 向量資料庫: 常見的有 ChromaDB、Pinecone 或 FAISS。
  • 嵌入模型: 例如 Hugging Face 的 Sentence Transformers 模型(如 all-MiniLM-L6-v2)。

二、PEFT (Parameter-Efficient Finetuning):客製化風格的魔法

定義與原理

PEFT 是一種高效能的模型微調方法。隨著現今最先進的 LLM 規模越來越大,進行**「完整模型微調」(full model finetuning)** 已難以負荷。PEFT 允許開發者使用少量參數微調,就能客製化 LLM 的輸出來匹配個別使用者的 語氣、風格和個人風格(idiolect)

核心技術:LoRA

我們的研究引入了 StyleTunedLM 這種新穎方法,它正是利用 LoRA (Low-Rank Adaptation) 進行高效的 LLM 風格微調。

概念 說明
目標 在保留模型理解和遵循自然語言指令能力的同時,讓模型採用目標作者的個人風格。
方法 透過微調 LoRA 適配器 (LoRA adapters),針對特定作者的非結構化文本資料集進行訓練。
優勢 相較於依賴提示詞結構的 提示詞工程(Prompt Engineering)少範例學習(Few-shot learning),PEFT 更有效率且能更好地捕捉訓練資料的風格。
成果 實驗結果顯示,透過 PEFT 微調的模型在 詞彙(lexical)句法(syntactic)表面特徵(surface alignment) 上與目標作者高度一致。

風格客製化的實際應用

客製化寫作風格不僅僅是為了好玩,它有重要的實際應用。例如,在教育領域,學生可以學習模仿他們正在學習的作者的寫作風格;或者,專業作家可以使用 LLM 作為寫作助手,讓模型生成符合自己獨特筆調的文本。


深入探討:RAG 的演進、優化策略與模型限制

RAG 系統並非一成不變,為了應對現實世界中檢索結果可能不相關或充滿雜訊的挑戰,RAG 技術經歷了從基礎到模組化的演變。

一、RAG 範式演進:從 Naive 到 Modular

RAG 技術的發展可以分為三個演化階段:

  1. Naive RAG(基礎型):

    • 特點: 流程簡單,僅進行單純的檢索與生成。
    • 限制: 精準度與召回率較低,可能因檢索結果不相關而產生幻覺或內容冗餘。
  2. Advanced RAG(進階型):

    • 優化: 在檢索前(Pre-Retrieval)和檢索後(Post-Retrieval)新增優化模組。
    • 檢索前優化: 包含 查詢重寫(Query Rewriting)、查詢擴展或查詢路由。
    • 檢索後優化: 包含 重排序(Reranking)、資訊壓縮 或摘要生成。
    • 效果: 應對上下文長度限制與雜訊干擾,回應準確性與相關性提升。
  3. Modular RAG(模組化 RAG):

    • 結構: 將整個系統模組化,可靈活插拔、重組。
    • 高級技巧: 可結合多步驟檢索(如 Iterative RetrievalRecursive RetrievalAdaptive Retrieval)、混合檢索等。
    • 應用: 適用於多模態任務、多步推理與行為代理人等複雜、邏輯性強的場景。

二、RAG 的關鍵優化策略

要提升 RAG 系統的性能,需要從檢索(Retrieval)、生成(Generation)和增強(Augmentation)三個核心組件著手。

組件 核心優化點 說明與技術
檢索 (Retrieval) 強化語意表示與對齊 Chunking 策略: 決定文件切割方式,影響檢索準確度。例如,text-embedding-ada-002 適合 256–512 tokens 區塊。在中文評測中,RecursiveTokenChunker_800_400 的配方表現良好。查詢重寫 (Query Rewriting): 利用 LLM 重寫查詢,使其更貼近語料內容,如 HyDE 技術。
生成 (Generation) 提升內容引用與流暢度 後處理優化 (Frozen LLM): 透過資訊壓縮與重排序,讓 LLM 優先處理最相關內容。針對 RAG 微調 LLM: 透過 Fine-tuning 強化 LLM 對檢索內容的引用與整合能力,改善語句連貫性。
增強 (Augmentation) 設計多輪檢索流程 Iterative Retrieval: 多輪「檢索-生成-再檢索」的流程,強化內容深度。Recursive Retrieval: 將前一輪輸出作為下一輪輸入,適用於多步推理。

三、RAG 應用中的挑戰與限制

儘管 RAG 強大,但在實際部署中仍面臨幾項挑戰:

  1. 長上下文視窗的衝擊: 隨著 GPT-4-turbo (128k tokens) 和 Gemini 1.5 Pro (1 百萬 tokens) 等模型的出現,可供 LLM 直接利用的上下文緩衝區大幅增加,這減輕了 RAG 必須檢索「最相關」資訊的壓力。一些觀點認為,這可能讓 RAG 的優化工作變得過時。
  2. 效率與成本的權衡: 儘管長上下文模型能力強大,但它們的使用費用通常取決於處理的 token 數量。對於 TB 級別的大型知識庫,傳統 RAG 的分塊和檢索方法可能仍然更具 成本效益
  3. 魯棒性 (Robustness) 挑戰: RAG 系統需要具備穩健性,能應對錯誤資訊(反事實, Counterfactual)或惡意干擾的輸入。

四、評估進階 RAG 的關鍵:RAG 評估三角 (The RAG Triad)

一個優秀的 RAG 系統,不僅要回答「正確」,更要回答得「有根據」。評估 RAG 系統的表現,需要同時檢查 檢索品質生成品質

業界常使用 RAG 評估三角 (The RAG Triad) 來衡量 LLM 產生的回答品質,這通常是透過像 TruLens 和 RAGAS 這樣的評估框架來實現。

RAG 評估三角 (RAG Triad)

指標 說明 評估核心問題 評估面向
上下文相關性 (Context Relevance) 確保檢索到的每一塊上下文都與輸入查詢高度相關。不相關的上下文可能導致幻覺性回答。 檢索器表現: 檢索到的內容是否與問題高度相關? Retrieval Quality
真實性 (Groundedness/Faithfulness) 驗證回答內容是否忠實於檢索到的資訊。LLM 容易偏離事實、誇大或擴展內容。 生成器表現: 回答是否有可靠的支持證據或來源? Generation Quality
回答相關性 (Answer Relevance) 評估最終回答是否實際且有幫助地回應了原始問題。 生成器輸出: 回答是否有針對使用者的問題給出有幫助的回應? Generation Quality

這些指標可用於衡量 RAG 系統的四種能力:噪聲穩定性 (Noise Robustness)負面拒絕 (Negative Rejection)(能否在找不到答案時拒絕作答)、資訊整合 (Information Integration)、以及 反事實魯棒性 (Counterfactual Robustness)


PEFT 的進階應用:風格、內容與指令遵循的平衡

在風格客製化方面,我們的研究(StyleTunedLM)也探討了幾項進階的優化與限制。

一、控制「內容」與「風格」的界線

當我們微調 LLM 來學習特定作者的寫作風格時,我們不希望模型同時將訓練數據中的**「內容詞彙」**(Content words,如命名實體)也記憶下來,導致模型過度擬合 (overfitting)。

  • 機制: 我們使用 遮罩(Masking) 技術來解決這個問題。
  • 做法: 在微調過程中,使用像 spaCy 這樣的工具 註釋出每個 token 位置是否對應到人名等命名實體。在計算損失(loss calculation)時,將這些命名實體的標籤設為 -100,使其不參與學習,從而排除特定內容詞彙。
  • 結果: 對於像 Jane Austen (JA) 或 P. G. Wodehouse (PGW) 這樣作品中充滿特定角色名稱的作者,遮罩技術能讓模型專注於學習更廣泛的上下文模式,而不是記住特定名字。雖然遮罩對風格對齊的影響極小,但卻能減少語言學錯誤,提高泛化能力。

二、平衡「風格」與「指令遵循」的能力

當我們微調模型以追求特定風格時,常常會犧牲掉模型原本強大的 指令遵循能力 (instruction-following ability)。這意味著模型雖然寫作風格到位,但可能難以處理需要更廣泛理解使用者指令的任務 (如生成包含特定元素的故事)。

  • 解決方案: 我們提出了一種新穎的方法:合併 LoRA 模組(Merging LoRA Modules)
  • 做法: 將一個專門為指令遵循能力微調的 LoRA 模組(例如使用 LIMA 指令數據集微調的模組),與我們的 StyleTunedLM 模組進行合併。
  • 機制: 具體做法是垂直連接權重矩陣 A,並水平連接權重矩陣 B,從而在單一模型中保留兩種功能。
  • 結果: 實驗結果顯示,這種合併不僅能啟用模型的指令遵循能力,而且在各種基準測試中保持了整體性能的穩定。且增加風格遵循適配器的比例,可以有效增強風格對齊。

三、風格客製化帶來的潛在倫理風險

PEFT 雖然強大,但其能夠精確捕捉和複製風格細微差別的能力,也引發了重要的 倫理問題 (Ethical Concerns)

潛在風險 說明
身份冒充 技術可能被濫用以冒充他人,導致隱私洩露和未經授權的身份使用。
有害內容生成 客製化模型可能被用於惡意目的,例如生成詐騙訊息 (scams) 或假新聞 (fake news)。

為了防止濫用,實施嚴格的指導方針和驗證流程至關重要,以確保這項方法能夠被負責任且有益地使用。


結語:RAG 與風格微調——打造更聰明、更貼心的 AI

今天我們深入探討了 LLM 應用開發的兩個關鍵支柱:RAG 與 PEFT。

如果說 Fine-tuning(模型微調) 負責提升模型的 內部能力(例如語氣、風格、複雜任務執行),那麼 RAG 就是讓模型能即時存取 外部新知識 的超級外掛。這兩者並非對立,而是可以完美搭配的 混合策略(Hybrid Approaches):RAG 幫你找到正確的資料,而 Fine-tuning(或 LoRA)則幫你用正確的風格說出來。

未來的 LLM 應用,必然會走向 RAG + Fine-tuning + Prompt Engineering 的混合應用模式。雖然長上下文 LLM 已經大幅減少了資訊檢索的壓力,但 RAG 在處理巨量、不斷更新的資料、以及追求成本效益方面,仍具有不可取代的價值。

透過 StyleTunedLM 這樣的 PEFT/LoRA 技術,我們證明了在不耗費大量計算資源的情況下,就能讓 LLM 擁有個人化的「靈魂」,讓它不再只是一個冷冰冰的通用模型。

在追求 AGI 的路上,這些技術讓我們離打造一個既聰明、又貼心的 AI 夥伴更近了一步!下次當你在開發自己的 AI 應用時,不妨試著將 RAG 評估三角(Context Relevance, Groundedness, Answer Relevance) 融入評估流程,並考慮使用 PEFT 來讓你的 AI 擁有獨特的風格吧!


上一篇
Day17 | Dify:如何高效打造生產級 Agentic AI 應用?
系列文
生成式AI的奇妙旅程:從ChatGPT到個人化應用18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言