QLoRA 量化微調完全指南:4-bit NormalFloat、雙量化與分頁優化器如何省下大量 GPU 記憶體

← INSIGHTS & PERSPECTIVES | 機器學習

QLoRA 量化微調完全指南:4-bit NormalFloat、雙量化與分頁優化器如何省下大量 GPU 記憶體

介紹 QLoRA 量化微調方法:透過 4-bit NormalFloat 量化、雙量化與分頁優化器三項技術,大幅降低大型語言模型 LLM 微調的 GPU 記憶體需求,並在 65B 模型上達到接近 16-bit 全量微調的效能。

QLoRA 擴展了 LoRA,透過量化原始網路的權重值來提高效率,從高解析度資料類型(如 Float32)到較低解析度資料類型(如 int4)。這會減少記憶體需求並加快計算速度。這篇文章整理我學習 QLoRA 時的重點筆記:它的核心原理、三項關鍵技術,以及論文團隊用它做出哪些研究發現。

QLoRA 是什麼?為什麼它能降低微調成本?

QLORA(Quantized LoRA)方法是一種用於大型語言模型(LLMs)的微調的新方法。傳統上,微調大型模型需要龐大的計算資源,而 QLORA 則提出了一種可以在 GPU 上進行低成本微調的方法。QLORA 的關鍵創新在於使用了 4 位量化技術,並引入了可訓練的低秩適配器權重,從而大幅降低了微調過程中所需的記憶體,並且在不影響模型性能的情況下實現了相當於 16 位完全微調基準的預測性能。

QLoRA 技術所做的三個面向改進是什麼?

  • 4-bit 常態浮點(NormalFloat):這是一種資訊理論上最優的量化資料類型,適用於服從常態分佈的資料。與 4-bit 整數和 4-bit 浮點相比,它在實踐中能取得更好的效果。量化是指用更少的位數來表示數據,從而降低記憶體佔用。
  • 雙量化(Double Quantization):這種方法會量化量化常數本身,可以節省大約每個參數 0.37 位(例如對於一個 65B 參數的模型,可以節省大約 3GB 記憶體)。量化常數是量化過程中產生的一些中間值。
  • 分頁優化器(Paged Optimizers):這利用了 NVIDIA 統一記憶體的功能,避免在處理包含長序列的迷你批次資料時梯度檢查點(gradient checkpointing)造成的記憶體激增。梯度檢查點是一種訓練技巧,可以節省記憶體,但可能會降低精度。
QLoRA 分頁優化器與 NVIDIA 統一記憶體示意圖

由上圖可知,QLoRA 利用了 NVIDIA 統一記憶體功能,當 GPU 記憶體不足時,該功能允許 GPU→CPU 無縫頁面傳輸,從而管理 GPU 中突然出現的記憶體峰值,並協助解決記憶體溢出/超限問題。

利用 QLoRA 所做的研究有哪些發現?

由於 QLORA 的高效性,可以進行深入的指令微調和聊天機器人效能研究,所涉及的模型規模是常規微調因記憶體開銷而無法企及的。因此,提出論文的團隊針對多個指令微調資料集、模型架構以及參數規模介於 80M 到 65B 的模型訓練了超過 1000 個模型。除了證明 QLORA 能恢復 16 位元精度效能(§4)以及訓練出最先進的聊天機器人 Guanaco(§5)之外,還分析了訓練模型的趨勢。

首先,他們發現資料品質比資料集大小重要得多,例如,一個包含 9k 個樣本的資料集(OASST1)在聊天機器人效能方面優於一個包含 45 萬個樣本的資料集(子集化的 FLAN v2),即使兩者都旨在支持遵循指令泛化。

其次,他們展示了強大的大規模多任務語言理解(MMLU)基準測試性能並不意味著強大的 Vicuna 聊天機器人基準測試性能,反之亦然——換句話說,對於給定任務而言,數據集的適用性比大小更重要

延伸閱讀

常見問題

QQLoRA 和 LoRA 有什麼差別?

LoRA 只是在凍結的原始權重旁加上低秩適配器來減少可訓練參數;QLoRA 更進一步把凍結的原始權重量化成 4-bit 儲存,微調時的梯度仍走 16-bit 計算,因此記憶體需求大幅下降,效能卻接近 16-bit 全量微調。

QQLoRA 微調後的模型效能會變差嗎?

根據論文實驗,QLoRA 能夠恢復 16 位元精度的效能,在多種任務上與 16-bit 全量微調基準相當。研究團隊訓練了超過 1000 個模型來驗證這一點。

Q什麼是 4-bit NormalFloat(NF4)?

NF4 是一種資訊理論上最優的 4 位元量化資料類型,專為服從常態分佈的權重設計。實務上它比 4-bit 整數(int4)和 4-bit 浮點(fp4)取得更好的效果。

Q雙量化可以省下多少記憶體?

雙量化透過對量化常數本身再做量化,平均每個參數可省下約 0.37 位元;以 65B 參數的模型來說,大約可節省 3GB 的記憶體。

Q什麼規模的模型適合用 QLoRA 微調?

論文實驗涵蓋 80M 到 65B 參數的模型。QLoRA 特別適合在單張或少量消費級 GPU 上微調大型模型,例如用它訓練出的最先進聊天機器人 Guanaco。

參考資料

最後更新

2026-08-28(原文發布於 2024-05-06,本文保留原始筆記內容並補上 GEO 結構。)

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2024-05-06