核心概念
AdaZeta 框架透過結合快速張量化適配器和自適應查詢排程,顯著提高了零階微調大型語言模型的性能和收斂性,有效解決了傳統方法的記憶體效率和散度問題。
文獻資訊: Yang, Yifan, et al. "AdaZeta: Adaptive Zeroth-Order Tensor-Train Adaption for Memory-Efficient Large Language Models Fine-Tuning." arXiv preprint arXiv:2406.18060v2 (2024).
研究目標: 本文旨在解決大型語言模型 (LLM) 微調過程中,隨著模型規模增長而日益嚴重的記憶體需求問題,並提升現有記憶體效率零階 (MeZO) 方法的性能和收斂性。
方法: 本文提出了 AdaZeta 框架,其核心包含兩個組成部分:
快速張量化適配器:利用張量訓練 (TT) 分解壓縮適配器層的權重矩陣,減少可訓練參數數量,並透過平行壓縮方法加速前向傳遞過程。
自適應查詢調整:採用次線性遞增的查詢數量調整策略,在每個訓練 epoch 開始時更新查詢數量,有效降低零階梯度估計的變異數,解決大型模型微調中的散度問題。
主要發現:
AdaZeta 在多項自然語言理解和生成任務上,相較於其他記憶體效率基準方法(如 Zero-shot、ICL、LP)以及現有的零階微調方法(如 MeZO、MeZO-LoRA 和 Sparse-MeZO),都展現出更優越的準確度。
AdaZeta 能有效解決大型模型零階微調中常見的散度問題,並在收斂速度上顯著優於 MeZO-LoRA 和 Sparse-MeZO 等方法。
AdaZeta 在記憶體使用效率方面表現出色,僅需較小的記憶體佔用即可完成大型模型的微調任務。
主要結論: AdaZeta 框架提供了一種高效且記憶體效率高的 LLM 微調解決方案,透過結合快速張量化適配器和自適應查詢排程,有效解決了傳統方法的不足,並在性能和收斂性方面取得顯著提升。
論文貢獻:
提出了 AdaZeta 框架,在多項任務中超越了其他零階微調方法,並具有更快的收斂速度。
引入了一種新的壓縮方法,將張量化適配器的前向傳遞速度提高了 20% 以上。
開發了一種自適應查詢數量排程,透過次線性增加查詢數量來解決零階微調中持續存在的散度問題。
提供了理論和實驗結果,證明了該方法的訓練效率和性能。
研究限制與未來方向:
目前多個查詢在每個訓練步驟中是按順序執行的,這限制了進一步的速度提升。未來可以透過在 GPU 上實施平行或分散式優化技術來優化此過程。
雖然本文提出了一種快速張量化適配器,但在前向傳遞過程中,這些適配器的壓縮過程仍有進一步的優化空間。未來可以透過 CUDA 編程方面的進展來顯著提高該方法的性能。
統計
AdaZeta 方法在 Llama-2-7B 模型上微調 SST2 任務僅需 14GB 記憶體,實現了相對於完整模型微調方法超過 8 倍的記憶體縮減。
AdaZeta 方法在使用相同學習率的情況下,僅需不到 1000 步即可達到 MeZO-LoRA 方法在 6000 步才能達到的損失最小化程度,速度提升了 6 倍。
使用平行壓縮方法的 AdaZeta 方法比使用傳統順序比較的 AdaZeta 方法訓練時間縮短了 20%。