一句話定義
LoRA(Low-Rank Adaptation,低秩適應)是把大模型原本的權重全部凍住、只訓練一組外掛的小矩陣,用極少的參數量達到接近完整微調效果的方法。
30 秒看重點
- 是什麼:LoRA 是一種微調技巧,不去動原本那幾百億個參數,只在旁邊加一組很小的矩陣去學新東西。
- 為什麼重要:它把「微調一個大模型」的門檻,從整櫃伺服器降到一張顯示卡。
- 跟誰相關:想訓練專屬畫風的 AI 繪圖玩家、要讓模型講公司口吻的工程師、以及在算成本的產品團隊。
- 最常見的誤解:LoRA 跟物聯網那個 LoRa 無線通訊協定完全沒有關係,只是拼法很像。
- 記住這件事就夠了:LoRA 改的是模型的「習慣」,不是幫它補充「知識」,這兩件事的工具不一樣。
AI 的 LoRA 到底是什麼?
LoRA 是一種微調大模型的方法,做法是把預訓練模型的原始權重整個凍結,另外在每一層插入一對可訓練的低秩矩陣,訓練時只更新這對小矩陣。全名 Low-Rank Adaptation,中文多半翻成低秩適應。
這個方法出自微軟研究團隊 2021 年的論文〈LoRA: Low-Rank Adaptation of Large Language Models〉(Edward J. Hu 等人,arXiv 編號 2106.09685),隔年被 ICLR 2022 收錄。論文摘要裡那句話大概是它爆紅的主因:跟用 Adam 做全參數微調的 GPT-3 175B 相比,LoRA 可以把要訓練的參數量降到萬分之一,顯示記憶體需求砍成三分之一,而且推論時不會增加任何延遲。
數字有多誇張?看官方倉庫給的表就懂了。RoBERTa base 全參數微調要調 1.25 億個參數,換成 LoRA 只剩 80 萬個;DeBERTa XXL 從 15 億降到 470 萬。GLUE 平均分數呢?LoRA 87.24、全參數微調 86.40,不但沒輸還小贏一點(好啦,誤差範圍內,但至少沒變笨)。
生活比喻:你可以想像成在租屋處佈置房間。房東白紙黑字寫著牆不能敲、格局不能改,這就是被凍住的原始權重。你不會為了掛一幅畫去打掉整面牆,而是貼幾個無痕掛鉤、擺個可拆的層架 — 那些掛鉤就是 LoRA 的小矩陣。搬走的時候撕下來,牆還是原本那面牆,而且你要換風格,換一組掛鉤就好。
為什麼會有 LoRA?
LoRA 的出現是為了解決全參數微調的兩個現實問題:一是硬體吃不消,二是每個任務都要存一份完整模型太浪費。
問題一:微調一次要租一整櫃機器。 Hugging Face PEFT 官方倉庫拿一個 30 億參數的模型做過對照,全參數微調要 47.14GB 顯示記憶體,改用 LoRA 只要 14.4GB,準確率 0.863 對上人類基準的 0.897。前者你得去租雲端的資料中心等級顯示卡,後者一張中高階顯示卡就有機會。
問題二:模型的複本會把硬碟塞爆。 假設你要十個不同用途的客服模型,全參數微調就是十份完整權重。同一份 PEFT 文件寫得很白:T0_3B 訓練出來的 LoRA 檔案只有 19MB,完整模型是 11GB。
所以 LoRA 的解法其實很像 IT 界的老智慧:不要複製整台機器,只保留差異。原始模型當公用底座,每個任務各自帶一小包「差異檔」,要用哪個掛哪個。
LoRA 是怎麼運作的?
簡單來講就三步:凍住原本的權重、在旁邊插入兩個瘦長的小矩陣、訓練完再把它們加回去。
- 凍結底座:預訓練模型的所有參數設成不可訓練。梯度不用回傳到那幾百億個參數上,訓練過程要暫存的中間狀態也跟著少一大包,記憶體就是這樣省下來的。
- 插入低秩矩陣:在 Transformer 的每一層旁邊加上一對矩陣 A 與 B,權重更新量被拆解成這兩個矩陣相乘。關鍵在於中間那個維度 r(rank,秩)刻意設得很小,通常是 8、16 這種數量級,參數量自然跟著塌下去。
- 合併或外掛:訓練完可以把 A 乘 B 的結果直接加回原始權重,模型結構完全沒變,所以推論速度不受影響;也可以留著不合併,隨時換成另一組。
名詞小教室:「秩」(rank)你就想成一個矩陣裡真正獨立的資訊有幾條。LoRA 賭的是:模型適應新任務時真正需要改變的方向其實沒幾條,那與其準備一個超大的調整空間,不如只給它幾條,逼它把力氣花在關鍵的地方。
LoRA 跟全參數微調差在哪?
全參數微調是把整個模型的權重重新調過一輪,LoRA 是原封不動、只加一層外掛,兩者的成本結構差了好幾個數量級。
| 比較項目 | LoRA | 全參數微調 |
|---|---|---|
| 要訓練的參數 | 只有外掛的小矩陣(可到萬分之一) | 全部,數十億起跳 |
| 顯示記憶體 | 30 億參數模型約 14.4GB | 同一模型約 47.14GB |
| 產出檔案大小 | 幾 MB 到幾十 MB | 跟原模型一樣大 |
| 換任務的成本 | 換一組外掛就好 | 要重新載入另一份完整模型 |
| 我會在什麼情況選它 | 教模型新風格、新口吻、新格式 | 有大量資料且要重塑模型底層能力 |
從這張表可以看出來,LoRA 不是「比較弱的微調」,而是「同一件事的便宜做法」。除非你手上有大量資料、而且真的想改變模型的底層能力,不然大多數團隊的需求 — 讓它學會你家的文件格式、你的畫風、你的客服語氣 — LoRA 就夠了。
你會在哪些地方看到 LoRA?
LoRA 能見度最高的地方其實不在聊天機器人,是 AI 繪圖圈。
- Stable Diffusion 的模型市集:那些「某某畫風」「某某角色」的小檔案幾乎都是 LoRA。Hugging Face 官方部落格寫過,把 LoRA 套在 Stable Diffusion 的交叉注意力層上,訓練出來的權重只有大約 3MB,比完整的 UNet 小了約一千倍。官方那支微調腳本最低 11GB 顯示記憶體就跑得動,示範案例用一張 2080 Ti 訓練約 5 小時。
- 開放權重模型的在地化:開源模型的完整權重放出來之後,社群常見的下一步就是用 LoRA 調出特定語言或垂直領域的版本,畢竟底座免費,外掛檔案又小到可以直接丟給別人。
- 企業的多租戶服務:vLLM 支援同一個底座掛多組 LoRA,用
enable_lora、max_loras、max_lora_rank控制,還能在服務跑著的時候動態載入與卸載。等於一台機器同時扮演好幾個專屬模型。
如果你是工程師,最常碰到的入口是 Hugging Face 的 PEFT 套件,它把 LoRA、QLoRA、soft prompt、IA3 包成統一介面,跟 Transformers、Diffusers、TRL 都接得起來。
為什麼有人用一張顯示卡就能微調大模型?
因為 LoRA 後來又跟量化技術結合了,這個組合叫 QLoRA。
Tim Dettmers 等人在 2023 年提出的 QLoRA(arXiv 編號 2305.14314),做法是把底座模型壓成 4-bit 再凍住,梯度直接穿過這個量化過的模型、只更新外掛的 LoRA 矩陣,另外配一種叫 4-bit NormalFloat(NF4)的資料型別去接住常態分布的權重。
結果是 650 億參數的模型,在單張 48GB 顯示卡上就微調得動,而且維持 16-bit 完整微調的任務表現。他們用這套訓出來的 Guanaco,在 Vicuna 評測上達到 ChatGPT 水準的 99.3%,訓練只花了單卡 24 小時。
老實講,重點不是那幾個數字。真正的差別在於它把「微調」從大公司的專利,變成一個研究生的暑假作業。
學 LoRA 最常見的 3 個誤解
- 誤解一:LoRA 就是那個物聯網的 LoRa — 真相是兩者毫無關係。無線通訊的 LoRa 是 Long Range 的縮寫,講的是低功耗長距離傳輸;AI 的 LoRA 是 Low-Rank Adaptation。拼法只差一個字母的大小寫,害搜尋結果混在一起,這個真的只能怪命名的人 QQ
- 誤解二:用 LoRA 就能讓模型記住公司內部資料 — 真相是微調改的是行為與風格,不是可靠的知識庫。要讓 AI 讀得到最新文件,那是檢索的事,做法請看下面延伸閱讀的 RAG。
- 誤解三:LoRA 跟全參數微調完全等價 — 真相是分數接近不代表內部一樣。〈LoRA vs Full Fine-tuning: An Illusion of Equivalence〉這篇論文(arXiv 編號 2410.21228)指出,LoRA 調出來的權重會出現原本沒有的「入侵維度」,在目標任務上表現追得上,但對原本預訓練分布的掌握會變差,連續學好幾個任務時也比較不穩。
想多了解 LoRA,從哪開始?
沒有技術背景的話,最快的方法是去逛 AI 繪圖的模型社群,隨便下載一個幾 MB 的 LoRA 檔案套上去看看。你會很直觀地感覺到:底座模型沒換,出來的風格卻整個變了,這就是外掛矩陣在做的事。
有技術背景的話,建議直接讀微軟的 LoRA 官方倉庫,再跑一次 PEFT 的入門範例。畢竟這種東西看十篇解說,都不如自己親眼看它印出「可訓練參數只佔百分之零點幾」那行來得有感。
常見問題 FAQ
LoRA 跟 AI 有什麼關係?
LoRA 是訓練 AI 模型的一種微調方法,屬於參數高效微調(PEFT)這個大類。它讓開發者不用重新訓練整個大模型,就能讓模型學會特定的風格、格式或領域用語。現在你在網路上看到的多數 AI 繪圖風格檔案,以及很多企業內部的客製化語言模型,背後用的都是這套技術。
為什麼 LoRA 突然這麼紅?
因為它剛好卡在成本曲線的轉折點上。2021 年微軟提出時主要是為了省下微調大型語言模型的成本,2022 年 Stable Diffusion 開源之後,AI 繪圖社群發現用 LoRA 訓練特定畫風的檔案只有幾 MB、一張消費級顯示卡就跑得動,分享門檻低到爆,於是整個生態系就長出來了。2023 年 QLoRA 再把記憶體需求往下壓一個級距,這個詞就徹底變成常識。
我不是工程師也需要懂 LoRA 嗎?
不需要懂數學細節,但知道它在做什麼會很有用。如果你會用 AI 繪圖工具,理解 LoRA 之後你就知道那些外掛檔案為什麼可以疊加、為什麼有時候會互相打架。如果你在公司評估導入 AI,知道 LoRA 的存在可以幫你判斷廠商報價合不合理,畢竟微調成本從幾十萬降到幾千塊,就是這個技術帶來的差別。
LoRA 的中文翻譯有沒有統一?
沒有完全統一,台灣多數人講到它時直接用英文 LoRA,不翻譯。要翻的話最常見的是「低秩適應」,也看得到「低秩自適應」「低秩調整」這幾種寫法。中國簡體中文圈的用法是低秩适应。本站統一寫 LoRA,需要中文時用「低秩適應微調」,避免跟無線通訊的 LoRa 搞混。
學會 LoRA 之後,下一個該學什麼?
建議先補 RAG,搞清楚「改行為」跟「補知識」這兩條路線的分工,這是實務上最常被搞混的一組概念。接著看 RLHF,它是另一種調整模型行為的做法,只是靠的是人類偏好而不是外掛矩陣。行有餘力再研究量化(Quantization),那是 QLoRA 能成立的另外半塊拼圖。
延伸閱讀
- RAG 是什麼?一次搞懂檢索增強生成怎麼讓 AI 少亂講話 — 那篇有一整段在比較 RAG 跟微調的分工,看完就不會再拿 LoRA 去塞公司文件。
- LLM 是什麼?大型語言模型如何撐起 ChatGPT、Claude 與 Gemini — LoRA 微調的對象就是它,裡面也提到台灣 TAIDE 怎麼用微調做繁中在地化。
- RLHF 是什麼?ChatGPT 比 GPT-3 更會聊天的關鍵訓練法 — 另一條調整模型行為的路線,跟 LoRA 解決的問題層次不同。
- AI 五分鐘快報:Qwen 27B 開源、Anthropic 調高風險等級 — Apache 2.0 的開放權重加上 4-bit 量化後約 17GB 顯示記憶體就跑得動,這種模型正是 LoRA 最好的底座。
參考來源
- 微軟 LoRA 官方倉庫 — 論文作者與 arXiv 編號 2106.09685、RoBERTa base 從 1.25 億降到 80 萬個可訓練參數、DeBERTa XXL 從 15 億降到 470 萬、GLUE 平均 87.24 對 86.40、推論不增加延遲。
- LoRA: Low-Rank Adaptation of Large Language Models(論文頁) — 摘要中相較 GPT-3 175B 全參數微調可訓練參數降至萬分之一、顯示記憶體需求降為三分之一、ICLR 2022 收錄。
- Hugging Face 官方部落格《Using LoRA for Efficient Stable Diffusion Fine-Tuning》 — LoRA 套在交叉注意力層、訓練權重約 3MB 且比 UNet 小約一千倍、微調腳本最低 11GB 顯示記憶體、2080 Ti 約 5 小時。
- Hugging Face PEFT 官方倉庫 — 30 億參數模型全參數微調 47.14GB 對 LoRA 14.4GB、準確率 0.863 對人類基準 0.897、T0_3B 的 LoRA 檔案 19MB 對完整模型 11GB。
- QLoRA 官方倉庫 — 4-bit NormalFloat、單張 48GB 顯示卡微調 650 億參數模型、Guanaco 在 Vicuna 評測達 ChatGPT 水準的 99.3%、單卡 24 小時。
- vLLM 官方文件 LoRA Adapters —
enable_lora、max_loras、max_lora_rank參數,同一底座並行服務多組 adapter 與執行期動態載入卸載。
整理一下重點:LoRA 真的不是什麼縮水版微調,它只是想通了一件事 — 要讓大模型換個樣子,其實不用把整面牆敲掉。
希望這一篇有讓你對 LoRA 有比較具體的理解哩~如果發現事實錯誤、定義不準、或翻譯卡卡的,歡迎透過聯絡頁指正,看到我們會盡快修。
我們下篇文章見囉~
本條目由 Array 報報 AI 編輯部根據上方「參考來源」整理,文末已揭露 AI 生成 + 公開資料引用。