今天要來看Model Fine-tuning (模型微調) 與 Knowledge Distillation (知識蒸餾),兩個更深入了解LLM 系統的主題。
-
模型微調(Model Fine-tuning) 與 知識蒸餾(Knowledge Distillation) 這兩個技術在prompt工程中的主要用途是:讓LLM在特定任務的執行效能提升,以優化模型效率。它們的概念出發都是奠基在與prompting協作的基礎上,去促進模型的調整。這裡想要強調的是:
- 這兩者與prompting的協作概念:很多時候,單靠prompting的優化已不足以滿足需求。
- 這兩者在做的事是「優化模型」。
也因此,了解這兩者屬於更深入去了解LLM 系統的主題。
之前已經學到模型微調(Fine-tuning),也理解其原理是:給予特定數據讓模型進行「特訓」,以培養提升能針對特定任務的能力。
而知識蒸餾(Knowledge Distillation)則算是:奠基在這樣的基礎上-意即,在已經具備一個「有特定任務執行能力」的LLM上-進行接力。**
**註:Knowledge Distillation 也直接用於原始大模型上;如果是特定(專業)領域,策略上就比較會搭配 Fine-tuning 過的大模型進行轉移。
這意思是說,我們基本上可以將知識蒸餾理解成是一種將特殊任務之能力從大型LLM轉移到較小的模型的技術。
這麼做的好處可想而知:更靈活、成本更低、更容易放到各個不同的環境中應用,甚至可以將關聯度高、相關領域的特殊任務能力集中到一塊,更大的發揮效用。
將 Fine-tuning 與 Knowledge Distillation 做一些對比:
*共同點:
在既有LLM的基礎上,透過額外提供特定數據,進行模型訓練,使模型具備新的能力,以運用在特定任務(領域)中。
*不同之處:
▶︎目的:
Fine-tuning: 專注於養成特定任務的性能(最大化的概念)。
Knowledge Distillation: 專注於從大模型「轉移」至小模型。目的是「在盡可能維持差不多水平的情況下」,實現模型變小(以致於效率提升)。
▶︎模型大小:
Fine-tuning: 基本是相同規模大小的模型(或可能更大)。
Knowledge Distillation: 大模型轉移至「小模型」。
▶︎訓練數據能力:
Fine-tuning: 主要訓練是達成「硬標籤 (hard labels)」的任務數據。
Knowledge Distillation:訓練上以達成「軟目標 (soft targets)」任務數據為主,不過通常會搭配使用硬標籤。
-這裡也再說明 硬標籤 (hard labels)、軟目標 (soft targets) 兩種任務數據的差別:
- 硬標籤 (Hard Labels):數據集中明確、唯一的正確答案或類別。
- 軟目標 (soft targets):不是正確答案的概念,是正確答案的「概率」的概念。稍微展開來說,是幫助小模型學習大模型的「判斷邏輯」:判斷答案是A的機率是85%,是B的機率是10%,是C的機率是5%。
這是一組在Fine-tuning&Knowledge Distillation技術上使用的數據概念。