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

QLoRA: Efficient Finetuning of Quantized LLMs

Sansan R&D
January 18, 2024

QLoRA: Efficient Finetuning of Quantized LLMs

■イベント
NeurIPS 2023 論文読み会
https://lycorptech-jp.connpass.com/event/302510/

■発表者
技術本部 研究開発部 Data Analysisグループ
齋藤 慎一朗

■対象論文
QLoRA: Efficient Finetuning of Quantized LLMs
https://arxiv.org/abs/2305.14314

■研究開発職 採用情報
https://media.sansan-engineering.com/randd

■Sansan Tech Blog
https://buildersbox.corp-sansan.com/

Sansan R&D

January 18, 2024
Tweet

More Decks by Sansan R&D

Other Decks in Technology

Transcript

  1. - QLoRAは、性能を維持しながら、48GBのGPUで65Bのパラメータモデル をfine-tuning可能な効率的な⼿法である。 - 3つの⼿法で実現されている。 - 4-bit NormalFloat: 正規分布の重みに最適な新しいデータ型である。 -

    Double Quantization: 量⼦化定数を更に量⼦化することでメモリを削減する。 - Paged Optimizers: メモリスパイクを防ぐ。 - Guanaco(QLoRAを⽤いたChatbot)は、Vicunaベンチマークにおいて、 GPU1つを⽤いたfine-tuningを24時間を⾏い、ChatGPTの性能の99.3%に 達する。 1ページでまとめ
  2. - 課題 - ⼤規模⾔語モデルで保存/最適化するパラメータを減らしたい - ⼿法 - ベースモデルの線形層の隣にΔ𝑊 = 𝐵𝐴(

    Adapter層 )を追加す る。 - ベースモデルの線形層は凍結する。 - Δ𝑊 = 𝐵𝐴のみ Fine Tuningし、結果を⾜す - 結果 - Full Fine Tuningと⽐較して、 > 学習パラメータ数を削減した > 性能は同等である - 推論コストが増加しない LoRA(Low-Rank Adaptation) Figure 1(Edward et al., 2021)
  3. - QLoRA論⽂内での数式 - 𝑌 = 𝑋𝑊 + 𝑠𝑋𝐿! 𝐿" >

    𝑋𝑊 ∈ 𝑌 𝑤𝑖𝑡ℎ 𝑋 ∈ ℝ!×#, 𝑊 ∈ ℝ#×$ > 𝐿% ∈ ℝ#×&, 𝐿' ∈ ℝ&×$ > 𝑠は定数 - 注: LoRA論⽂(Edward et al., 2021)のFIgure 1とは 変数名が異なる LoRA(Low-Rank Adaptation) 𝒐 Figure 1(Edward et al., 2021) ⼀部改変 𝑾 ∈ ℝ𝒉×𝒐 𝒉 𝑳𝟏 𝑳𝟐 𝑿 𝒀 𝒃
  4. - QLoRA論⽂内での説明(32bit → 8bitする例) - Block-wise k-bit Quantization(量⼦化) > X()*+

    = round %', -./0-1 2$%&' X345' = round(c345' 6 X345') - 𝑐は定数 - 8bitの範囲は[-127, 127] - Dequantization(量⼦化を元に戻す) > dequant c345', X()*+ = 2()*+ 6$%&' = X345' 量⼦化
  5. - 量⼦化された4ビットモデルを性能劣化なしにfine- tuneできることを初めて実証する。 - 注:ここで量⼦化するのは元のモデルである。 - 𝑌 = 𝑋𝑊 +

    𝑠𝑋𝐿! 𝐿" でいうと 𝑊 の部分を量⼦化する。 - 𝐿! , 𝐿" の部分はメモリをあまり利⽤していないため、ス コープ外である。 ⽬的 𝒐 Figure 1(Edward et al., 2021) ⼀部改変 𝑾 ∈ ℝ𝒉×𝒐 𝒉 𝑳𝟏 𝑳𝟐 𝑿 𝒀 𝒃
  6. - 正規分布に基づくデータに対して情報理論的に最適な量⼦化データ型であ る。 - Quantile Quantization(Dettmers et al., 2022)に基づく。 -

    各ビンが⼊⼒テンソルから割り当てられる値の数が等しい。 - ブロック単位での量⼦化アプローチを⾏う。 > 外れ値の影響が低減される。 > 正規化を各コアで独⽴して計算可能である。 - pretrained neural networkの重みは⼀般的に標準偏差σを持つ0中⼼の正規 分布を持っているため、4-bit NormalFloat が有効である。 4-bit NormalFloat
  7. - ⼿順 1. 標準正規分布N(0, 1) を27 + 1個に量⼦化するための閾値を決め、[-1, 1]に正規化する。 2.

    ⼊⼒重みテンソルを[−1, 1]の範囲に正規化する。 3. 2で得られた結果を、1で決めた閾値を⽤いて量⼦化する。 - ⼿順1における閾値を決める⽅法 - 隣接する⼆つの量⼦位置の平均を取る。 - 𝑞8 = % ' (𝑄9 8 ',:% + 𝑄9( 8:% ',:% )) > 𝑞# : 𝑖番⽬の量⼦値 > 𝑄$ :標準正規分布の量⼦関数 > 𝑘: 量⼦化に使⽤されるビット数 4-bit NormalFloat
  8. - メモリを節約するために、量⼦化定数を更に量⼦化する。 - 例えば、32bitの量⼦化定数をblocksize(パラメータ)が64の 𝑊 に対して 利⽤する場合、32bit分はメモリが必要になる。パラメータあたりの追加 のメモリは32/64 = 0.5bitである。

    - Double Quantizationを利⽤すると、パラメータあたりの追加のメモリは 8/64 + 32/(64・256) = 0.127ビットとなり、パラメータあたり0.5 - 0.127 = 0.373ビットの削減となる。 Double Quantization
  9. ⁃ ページング ⁃ コンピュータにおけるメモリ管理技術の1つであり、補助記憶装置にデータを 格納し、あるいは取り出す⾏為 ※ ⁃ NVIDIA unified memoryを利⽤する際、optimizerのメモリをGPUとCPUの

    間でページングすることで、GPUのメモリ不⾜を回避する。 ⁃ GPUがメモリ不⾜になったときに⾃動的にCPU RAMに退避され、 optimizerの更新ステップでメモリが必要になったときに再びGPUメモリ にページングされる。 Paged Optimizers ※ 引⽤元: https://www.sompocybersecurity.com/column/glossary/paging
  10. QLoRA(全体) - LoRA(再掲) - Y = XW + sXL! L"

    - LoRAにdata typeを追記 - 𝑌&'!( = 𝑋&'!(𝑊&'!( + s𝑋&'!(𝐿! &'!(𝐿" &'!( - QLoRA - Y)*!( = X)*!(doubleDequant(c! *+,", c" -./01, W2*3) + X)*!(L! )*!(L" )*!( > doubleDequant 𝑐% ;<5', 𝑐' 7=!8>, 𝑊7=!8> = dequant dequant 𝑐% ;<5', 𝑐' 7=!8> , 𝑊?!8> = 𝑊@;%A 差分はここだけ
  11. QLoRA vs Standard Finetuning - Stanford-Alpaca = llama-7b + LoRA

    - Stanford-Alpacaは、RougeLにおいて ⼗分な性能が でない。 - Alpaca(Ours)は、Stanford-Alpacaに対し、全ての linear transformer blockでLoRAを⾏い、性能が出る ことを確認した。 - このことから、LoRAの最も重要なhyper parameterは、LoRA adaptersを合計何個使うかで あることを発⾒した。 Figure 2
  12. - QLoRAは、性能を維持しながら、48GBのGPUで65Bのパラメータモデル をfine-tuning可能な効率的な⼿法である。 - 3つの⼿法で実現されている。 - 4-bit NormalFloat: 正規分布の重みに最適な新しいデータ型である。 -

    Double Quantization: 量⼦化定数を更に量⼦化することでメモリを削減する。 - Paged Optimizers: メモリスパイクを防ぐ。 - Guanaco(QLoRAを⽤いたChatbot)は、Vicunaベンチマークにおいて、 GPU1つを⽤いたfine-tuningを24時間を⾏い、ChatGPTの性能の99.3%に 達する。 1ページでまとめ(再掲)