LoRA
LoRA (Low-Rank Adaptation)
LoRA (Low-Rank Adaptation) 是一種高效的參數效率型微調 (Parameter-Efficient Fine-Tuning, PEFT) 技術,旨在解決大型語言模型 (LLM) 微調成本高昂的問題。它透過引入少量可訓練的低秩矩陣,在不修改預訓練模型大部分權重的情況下,實現對模型的快速適應和優化。
運作原理
LoRA 的核心假設是,在微調大型預訓練模型時,權重矩陣的變化 (ΔW) 往往是「低秩」(low-rank) 的,也就是說,這個變化可以用遠小於原始矩陣維度的資訊來表示。
基於這個假設,LoRA 不直接更新原始的權重矩陣 W,而是將這個變化量 ΔW 分解為兩個較小的低秩矩陣 A 和 B (ΔW = BA)。在微調過程中,我們只訓練這些新引入的低秩矩陣 A 和 B,而預訓練模型的原始權重 W 則保持凍結。
如上圖所示,原始的輸入 x 會兵分兩路:
- 一路通過被凍結的預訓練權重
W。 - 另一路通過新加入的、可訓練的低秩適配器 (LoRA Adapter),即先經過矩陣
A降維,再經過矩陣B升維。
最後,將兩路的輸出相加,得到最終的結果 h。
主要特點
- 參數效率: LoRA 僅引入極少量的可訓練參數 (通常是預訓練模型參數的 0.01% 到 1%),大幅減少了微調所需的計算資源和儲存空間。
- 高效性: 由於只訓練少量參數,微調過程顯著加速,使得在資源有限的環境中也能有效進行大型模型的微調。
- 靈活性與模組化:
- 不同的任務或資料集可以訓練不同的 LoRA 適配器 (Adapter)。
- 在推論時,可以輕鬆地切換或組合不同的 LoRA 適配器,而無需重新載入整個大型模型。
- LoRA 適配器可以與原始模型分離,方便儲存和分享。
- 避免災難性遺忘: 由於預訓練模型的原始權重被凍結,LoRA 有助於減少在微調過程中對模型原有知識的「災難性遺忘」。
應用場景
LoRA 適用於各種需要對大型模型進行快速適應的場景,不僅限於大型語言模型,也廣泛應用於圖像生成 (如 Stable Diffusion) 等領域:
- 特定領域微調: 將通用 LLM 適應到特定行業或領域的知識和語氣。
- 任務導向微調: 針對特定下游任務 (如情��分析、文本分類、問答) 進行優化。
- 個人化模型: 為個人使用者或特定群體建立客製化的模型。
- 資源受限環境: 在 GPU 記憶體有限或計算資源不足的環境中進行模型微調。
總結
LoRA 作為一種創新的參數效率型微調方法,以其高效性、靈活性和模組化特性,在大型語言模型的應用中展現出巨大潛力。這項技術不僅降低了微調的計算成本,還提高了模型在特定任務上的性能,使其成為當前 AI 領域的重要工具之一,特別是在快速迭代和客製化模型的需求日益增長的背景下。