RAG 系統用知識蒸餾降低推論成本,合理嗎?
某企業建置檢索增強生成(Retrieval-augmented generation, RAG)系統支援內部知識查詢。隨著使用量提升,團隊發現模型回覆品質穩定,但推論延遲與運算成本逐漸增加。專案規劃在維持回覆品質前提下進行效能優化。在此情境下,若採用知識蒸餾(Knowledge Distillation),下列敘述何者最為合理?
某企業建置 RAG 系統支援內部知識查詢,回覆品質穩定,但使用量增加後,推論延遲與運算成本逐漸上升。團隊在維持回覆品質的前提下,考慮採用知識蒸餾(Knowledge Distillation)進行效能優化。
問你:採用知識蒸餾,下列哪個說法最合理?
一句話總結
知識蒸餾的本質就是讓小模型學習大模型的行為,在保持接近水準的回覆品質下,大幅降低推論所需的運算資源和延遲,這正是 RAG 系統效能優化的合理策略。
先感受問題:內部知識系統越用越貴,怎麼辦?
假設你在「台灣再生能源」公司負責 AI 系統,你建了一個 RAG 知識查詢系統:員工問問題,系統先從公司內部文件庫檢索相關段落,再把檢索結果和問題一起送給 GPT-4,讓它生成精確的回覆。
上線初期,每天大約 100 個查詢,很流暢。半年後,使用量成長到每天 3,000 個查詢。問題來了:
- 每次呼叫 GPT-4 API 的費用累積,一個月要多花 15 萬元
- GPT-4 的推論時間加上 RAG 檢索,每次回覆要等 4 到 6 秒
- 系統品質很好,老闆說「不能犧牲品質降成本」
你的任務是:在品質不降的前提下,讓系統更快、更便宜。知識蒸餾是一個可能的解方。
不用蒸餾,還能怎麼降成本?各有什麼問題?
「台灣再生能源」的工程師考慮了幾個方案,但每個都有問題:
- 增加檢索文件數量:把更多相關段落送給模型,品質可能更好,但推論時間和成本反而更高,完全反向
- 停用生成模型,只用檢索結果:直接回傳最相關的文件段落,省掉 GPT-4 的費用,但回覆不再是流暢的自然語言,使用者體驗大幅下降
- 把資料轉換成規則系統:把知識庫手動整理成結構化規則,不再用 LLM,但維護成本極高,而且規則系統無法處理模糊的問題
- 換更便宜的小模型(但不蒸餾):直接換 GPT-3.5 或更小的模型,成本降了,但回覆品質也掉了,老闆不接受
- 限制使用量:每天限制員工只能問幾個問題,成本控制了,但使用者不滿意,系統的價值也打折扣
每個方案都在「品質」和「成本」之間做了犧牲。知識蒸餾提供了一條不一樣的路:讓小模型「模仿」大模型的行為,盡可能在降低成本的同時保持品質。
知識蒸餾讓小模型接近大模型的水準
「台灣再生能源」決定嘗試知識蒸餾:用現有的 GPT-4 作為「老師模型」,收集大量的問答對(輸入問題 + GPT-4 的回覆),用這些資料訓練一個規模更小的「學生模型」。
關鍵是訓練目標:學生模型不只是學「這個問題答案是什麼」,而是學「GPT-4 在回答這種問題時的思考模式和回覆風格」。蒸餾讓小模型繼承了大模型的一部分智慧。
訓練完成後,系統改用學生模型替換原來的 GPT-4:
- 推論延遲:從 4-6 秒降到 1-2 秒
- 每次查詢成本:降低約 70-80%
- 回覆品質:在公司內部知識查詢任務上,與 GPT-4 相差有限(因為是針對特定任務蒸餾的)
RAG 架構本身不動,只是把生成端的大模型換成蒸餾後的小模型,整體系統的核心優勢(用公司知識庫即時補充上下文)仍然保留。
這就是選項 D 講的:使小型模型學習大型模型行為,以降低推論成本,這正是知識蒸餾在 RAG 效能優化中的合理應用方式。
技術版:知識蒸餾在 RAG 系統中的應用
知識蒸餾(Knowledge Distillation)是一種模型壓縮技術,最早由 Geoffrey Hinton 於 2015 年提出,目的是讓小模型從大模型的「軟標籤(Soft Labels)」中學習,而不是從硬標籤(0 或 1 的正確答案)中學習。
蒸餾在 RAG 中的運作流程:
- 收集訓練資料:把現有的查詢問題通過 RAG 流程送給大模型(老師),收集輸出結果作為訓練目標
- 訓練學生模型:用這些問答對訓練小模型,讓它學習大模型在有 RAG 上下文時的回覆模式
- 替換部署:用訓練好的小模型替換 RAG 流程中的大模型,RAG 的檢索部分不動
蒸餾 vs. Fine-tuning vs. LoRA:三者都能讓模型學習特定任務,但目的不同。蒸餾目標是「讓小模型接近大模型水準」;Fine-tuning 是讓模型學習特定領域知識;LoRA 是讓模型在資源受限下進行高效微調。在本題情境(降推論成本、維持品質),蒸餾最直接對應需求。
為什麼出題者要考這題:AI 應用規劃師在優化已上線系統時,知識蒸餾是成本和品質之間取得平衡的重要手段。考題在測試考生是否理解蒸餾的目的(壓縮模型規模,不是取代 RAG 或停用模型),以及它在 RAG 架構中的合理應用位置。
為什麼其他選項是錯的
A將檢索資料轉換為結構化規則以取代模型
把知識庫的內容整理成固定的規則系統,用規則回答問題,不再用 LLM。
這完全放棄了生成式 AI 的優勢。規則系統只能回答「在規則裡的問題」,面對模糊問句或複合問題就失效。而且建立和維護規則系統的人工成本極高。這不是「知識蒸餾」的做法,而是退回到舊式規則引擎,跟知識蒸餾的概念完全無關。
把「結構化知識」和「知識蒸餾」混在一起的人。知識蒸餾是模型對模型的技術,不是把知識整理成規則。
B僅透過增加檢索文件數量改善效能
給模型更多相關文件,讓回覆品質更好,這就是「效能優化」。
增加檢索文件數量會讓 Prompt 變長,反而增加推論時間和成本,完全和題目目標反向。「效能優化」在這個情境指的是「降低延遲和成本」,不是「提升回覆品質」(品質已經很好了)。
把「更多文件 = 更好的效能」直覺套用的人。效能(Performance)在不同語境有不同含義:這裡的「效能優化」是指運算效率,不是回覆品質。
C停用生成模型以避免延遲問題
直接把 LLM 生成這一步拿掉,系統只做檢索、直接回傳文件段落,就不會有推論延遲了。
題目說要「維持回覆品質前提下」優化,停用生成模型是最大的品質犧牲:使用者得到的是原始文件片段,不是組織好的自然語言回覆,可讀性和有用性大幅下降。這不是優化,是功能縮水。
只想著「省去 LLM 就省錢省時間」、沒有考慮使用者體驗影響的人。優化要在滿足品質要求的前提下進行,不是任何犧牲功能的方案都叫優化。
同個考點下次怎麼變形
知識蒸餾中「老師模型」和「學生模型」各扮演什麼角色?
老師比學生聰明,所以老師就是大模型、學生是小模型?
正確。老師模型是已訓練好的大型高品質模型(如 GPT-4),提供豐富的輸出分布作為訓練目標;學生模型是需要訓練的小型模型,學習老師的輸出模式。蒸餾完成後,老師退場,只有學生模型在線上服務,換來推論成本的大幅降低。
知識蒸餾適合什麼時機採用?不適合什麼時機?
只要模型太大太貴就用蒸餾?
適合:任務範圍明確、有足夠的大模型輸出作為訓練資料、需要部署在資源受限環境的場景。不適合:任務範圍頻繁變動(蒸餾後的學生模型難以適應)、沒有足夠的訓練資料(蒸餾效果差)、需要大模型最新知識(蒸餾的是特定時間點的老師能力)。
RAG 系統的效能瓶頸通常在哪個環節?
檢索部分吧?搜尋很多文件很慢?
通常主要瓶頸在生成模型的推論環節(LLM 呼叫),而不是向量搜尋(現代向量資料庫的搜尋速度非常快,通常在百毫秒以內)。LLM 推論依模型大小可能需要數秒,是整個 RAG 流程中最耗時和最昂貴的部分,也是知識蒸餾的優化目標。
企業優化 RAG 系統時,除了知識蒸餾還有哪些策略?
換模型應該是唯一辦法?
多種策略可並用:快取(Caching):相同問題直接回傳快取答案不再呼叫 LLM;精簡 Prompt:減少送給模型的 token 數;非同步處理:不需要即時回覆的查詢排隊批次處理;模型量化:降低模型精度以加快推論;知識蒸餾:換成小模型。最佳策略取決於具體的成本和品質需求。
RAG 和 Fine-tuning 在「注入企業知識」這件事上,哪個更適合知識頻繁更新的場景?
Fine-tuning 讓模型真正記住知識,應該更好?
知識頻繁更新的場景應選RAG。Fine-tuning 把知識「烙印」在模型參數裡,知識一旦更新就需要重新訓練,成本高且耗時。RAG 的知識庫是外部資料庫,更新只需更新資料庫內容,模型本身不動,更新成本極低。靜態知識用 Fine-tuning,動態知識用 RAG。
想再往下看,這 5 個
- 知識蒸餾(Knowledge Distillation)讓小模型學習大模型輸出分布,在維持接近大模型水準的前提下大幅降低推論成本和延遲,是本題正解的核心技術
- 檢索增強生成(Retrieval-Augmented Generation)結合外部知識庫檢索和 LLM 生成的架構,蒸餾只替換生成端模型,RAG 的檢索結構保持不動
- 推論(Inference)模型每次生成回覆的過程,隨模型規模線性增加算力消耗,是 RAG 系統主要的成本瓶頸所在
- 模型量化(Quantization)將模型參數從高精度浮點數壓縮為低精度整數,與蒸餾同為降低推論成本的常用技術,可與蒸餾並用
- 模型壓縮(Model Compression)透過蒸餾、量化、剪枝等手段縮小模型規模,使大型模型能以更低成本在生產環境中穩定服務