Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Journal club] Adaptive Budget Allocation for P...

[Journal club] Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning

More Decks by Semantic Machine Intelligence Lab., Keio Univ.

Other Decks in Technology

Transcript

  1. Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning Qingru Zhang1, Minshuo Chen2,

    Alexander Bukharin1, Pengcheng He3, Yu Cheng3, Weizhu Chen3, Tuo Zhao1 1: Georgia Institute of Technology, 2: Princeton University, 3: Microsoft Azure AI 慶應義塾大学 杉浦孔明研究室 小槻誠太郎 ICLR23 Poster Q. Zhang, M. Chen, A. Bukharin, P. He, Y. Cheng, W. Chen, and T. Zhao, "Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning," in ICLR, 2023.
  2. LLMのパラメータ総数は膨大 (E.g., GPT-3: 175B params) → △ Fine-tuning: 大量の学習可能パラメータ… →

    △ メモリ圧迫 → △ ストレージ圧迫 → △ 学習時間:長 どうにかして減らせないか? 3 前提 – LoRA (Low Rank Adaptation)
  3. LLMのパラメータ総数は膨大 (E.g., GPT-3: 175B params) → △ Fine-tuning: 大量の学習可能パラメータ… →

    △ メモリ圧迫 → △ ストレージ圧迫 → △ 学習時間:長 どうにかして減らせないか? 4 前提 – LoRA (Low Rank Adaptation) LoRA パラメータの差分だけ学習 パラメータの差分を低ランク近似 → パラメータ数削減
  4. ある線形層のパラメータ行列の更新 増分行列Δを分解 学習可能パラメータ減少 6 前提 – LoRA (Low Rank Adaptation)

    嬉しさ 1. Backward path軽量化 2. LoRAはアダプタネットワークだが, 本質はパラメータの差分 →推論時は元のネットワークに 完全に統合可能 →オーバーヘッド無し 3. 保存するパラメータ数が小さい →ストレージにも優しい
  5. He et al. [He+, ICLR22 (spotlight)] LoRA, Prefix Tuningなどのパラメータ効率の良い学習手法を, 事前学習済みモデル

    の特定の隠れ層への修正と捉えて再定義 LoRA [Hu+, ICLR22 (poster)] 増分行列のみを低ランク近似して学習 7 関連研究 – Parameter-efficient transfer learning
  6. 新規性 1. 特異値分解に基づく分割 + back prop.による更新 1. 増分行列の分解 2. 特異値ごとに分けた定式化

    2. 重要度によるランクの割り当て 1. 特異値の更新 2. 重要度の定義 9 提案 – AdaLoRA: ランク𝑟を適用する箇所に応じて適応的に変化
  7. 増分行列の分解 Δ = PΛ𝑄は特異値分解のオマージュ 𝑃, 𝑄: 特異ベクトルを並べた直交行列, Λ: 特異値を並べた対角行列 PΛ𝑄をback

    prop.で最適化 𝑃, 𝑄が直交性を持つよう正則化項𝑅(𝑃, 𝑄)を追加 11 AdaLoRA – 1. 特異値分解に基づく分割 + back prop. 特異値をΛに押し付けているので 直交していれば𝑃𝑇𝑃は単位行列
  8. 増分行列の分解 Δ = PΛ𝑄は特異値分解のオマージュ 𝑃, 𝑄: 特異ベクトルを並べた直交行列, Λ: 特異値を並べた対角行列 初期化:

    Λは0 𝑃, 𝑄はガウス分布に従うランダム 12 AdaLoRA – 1. 特異値分解に基づく分割 + back prop.
  9. Open Review Paper (ICLR23) Paper (arXiv) Implementation in PEFT v0.3.0

    src/peft/tuners/adalora.py - `AdaLoraModel` src/peft/tuners/adalora.py - `AdaLoraLayer` src/peft/tuners/adalora.py - `SVDLinear` src/peft/tuners/adalora.py - `RankAllocator` 24 Appendix – Link