模型與訓練
LoRA 低秩適應微調是什麼?用更少資源讓模型學會新技能
LoRA(Low Rank Adaptation)是一種參數高效微調技術。它不去更動大模型原本幾千億個參數,而是在旁邊外掛一小層輕量級的可訓練參數,只訓練這一小層,就能讓模型學會特定領域的專業能力。好處是訓練成本低、顯存佔用少、訓練速度快,效果卻能接近全量微調,是目前最主流的模型客製化做法之一。
LoRA 低秩適應微調是什麼?用更少資源讓模型學會新技能
想讓大模型學會一種特定寫作風格或專業領域,重新訓練整個模型太貴也太慢。LoRA 就是為了解決這個問題而生的技術。
你將學到什麼
定義
凍結原本的大模型參數,只額外訓練一小層輕量參數的微調方法。
白話比喻
像在一台已經很會開的車上加裝一個專屬導航模組,不用重新造整台車。
跟誰容易搞混
常跟全參數微調搞混,兩者差在要不要動到模型原本的全部參數。
定義
LoRA(Low Rank Adaptation)是一種參數高效微調方法,透過在原有權重矩陣旁加入低秩矩陣來學習任務相關的更新,只訓練少量新增參數,凍結原本大模型的參數。
核心概念是低秩分解:把原本要更新的權重矩陣,拆成兩個小矩陣的乘積來訓練,維度遠小於原本的矩陣,訓練起來自然輕巧許多。
白話比喻
把大模型想像成一位已經博學多聞的老師,重新培訓他的全部知識既昂貴又沒必要。LoRA 的做法是給他外掛一本專業筆記,讓他在原有基礎上快速學會新領域的說法與慣例。
這本筆記很輕,寫起來快,換一本也不影響原本的知識庫,這就是為什麼 LoRA 能做到成本低、部署靈活。
LoRA 跟全量微調差在哪?
| 比較項目 | 全量微調 Full Fine-tuning | LoRA 低秩適應微調 |
|---|---|---|
| 可訓練參數量 | 與模型相同,全部參數都動 | 僅為模型的百分之零點零一到零點一 |
| 顯存需求 | 高,需儲存梯度與優化器狀態 | 低,只需儲存少量附加參數 |
| 訓練時間 | 長 | 短,通常快兩到十倍 |
| 部署靈活性 | 需維護多個完整模型 | 一個基礎模型加多個可插拔模組 |
| 效果表現 | 基準線,通常最佳 | 接近全量微調,多數任務差距很小 |
實際用例
LoRA 常見的應用場景包括領域專業化(醫療、法律、金融、程式碼)、風格轉移、多語言能力增強、指令遵循強化,以及一次為不同任務訓練多個模組的多任務學習。
關鍵超參數只有幾個:低秩矩陣的秩 r、縮放因子 alpha、dropout,以及要套用 LoRA 的模組。一般來說 r 越大能力越強,但成本也跟著提高,實務上多從小的 r 值開始測試。
常見誤解很多人以為 LoRA 跟量化是同一件事,其實不是。LoRA 是訓練方式的優化,決定怎麼便宜地教會模型新技能;Quantization 量化 是推論階段的壓縮,決定怎麼便宜地跑模型,兩者可以同時使用,互不衝突。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook。
延伸學習
常見問答
LoRA 為什麼能省下這麼多成本?
因為它只訓練原模型的一小層附加參數,可訓練參數量通常只有原模型的百分之零點零一到零點一。顯存需求跟著大幅下降,訓練時間也能快上好幾倍,卻能在多數任務上逼近全量微調的效果。
LoRA 訓練完的模組可以拆下來嗎?
可以,這正是 LoRA 的一大優勢。訓練好的低秩適應層是獨立的小模組,可以自由切換、合併,也能替不同任務準備多個模組,載入同一個基礎模型時按需替換。
什麼情況該用 LoRA,什麼情況不用?
需要特定領域知識、特定寫作風格、多語言能力或客製化指令理解時,LoRA 通常是首選,成本低又夠用。真正需要模型整體能力大幅提升,或資源完全不是問題時,才考慮全參數微調。
