peft: 它是什麼、解決什麼問題以及為什麼它正受到關注

peft: 它是什麼、解決什麼問題以及為什麼它正受到關注

解決什麼問題

由於大型預訓練模型規模龐大,進行全量微調(full fine-tuning)在運算和儲存方面的成本通常過於昂貴。PEFT 提供了一種方法,可以在不需要更新模型中每一個參數的情況下,將這些模型適應於特定任務。

如何運作

PEFT 並非進行全量微調,而是實作了僅更新少量額外參數(adapters)的方法,同時保持基礎模型凍結。這大幅降低了記憶體和儲存需求。它可以與量化(quantization)技術結合使用,進一步降低模型數據的精度,使得在消費級硬體上訓練大型模型成為可能。

對象是誰

想要在有限的硬體資源下微調大型語言模型(LLMs)或擴散模型(如 Stable Diffusion)的開發者和研究人員,或是需要高效管理多個特定任務的 adapters 的開發者。

重點摘要

  • 海量資源節省:減少 GPU 記憶體使用量和儲存需求(例如:一個 12B 參數的模型可以在 80GB GPU 上進行訓練,而全量微調則會失敗)。
  • 生態系統整合:與 Hugging Face 的 Transformers, Diffusers, Accelerate, 和 TRL 無縫銜接。
  • 小型檢查點(Checkpoints):僅儲存訓練後的 adapter weights,使得檢查點的大小僅為幾 MB 而非 GB。
  • 廣泛支持:支持各種 PEFT 方法,包括 LoRA, IA3, 和 soft prompts。

Sources