QLORA: 量子化 LLM の効率的な微調整
序文
LoRA 実装に基づいた、リソースが少ない大規模な言語モデルの微調整シナリオに関する記事では、1 枚の 48G プロフェッショナル カードで 65B の大規模モデルを微調整でき、そのパフォーマンスは本格的な微調整に匹敵します。業界に大きな波紋を巻き起こした。この記事では、ビデオ メモリの需要を大幅に削減するためにどのようなテクノロジが使用されているかを確認するために、この記事を詳細かつ徹底的に分析します。
論文: https://arxiv.org/pdf/2305.14314.pdf
コード: https://github.com/artidoro/qlora
概要
この論文では、ビデオ メモリのオーバーヘッドを大幅に削減でき、完全な 16 ビット精度を維持しながら 48G ビデオ メモリ上で 65B パラメータ モデルを微調整できる効率的な微調整方法である QLORA を提案します。QLORA は、凍結された 4 ビットの量子化された事前トレーニング済み言語モデルを通じて、勾配を LoRA に逆伝播します。最適な微調整モデルは ChatGPT パフォーマンスの 99.3% を達成し、微調整時間はわずか 24 時間です。QLORA では、ビデオ メモリを削減するために、次のような革新的なテクノロジーを多数導入しています。
- 4 ビット浮動小数点数 (NF4)。理論的には正規分布の重みに最適です。
- 二重量子化。量子化定数を量子化することで平均メモリ フットプリントを削減します。
- ページング オプティマイザー。メモリのスパイクを管理します。
著者は、8 つの命令ファインチューニング データセットを使用して、さまざまなサイズの 1,000 以上のモデルで実験を行い、モデルのパフォーマンスを詳細に分析しました。QLORA ファインチューニングが小規模なモデルでも SOTA を達成できることがわかりました。
序章
大規模なモデルの微調整にはコストがかかり、従来の 16 ビット LLaMA 65B パラメータ モデルには 780 GB 以上のビデオ メモリが必要です。最近の量子化方法は LLM のメモリ使用量を削減できますが、それらは推論段階にのみ適用できます。
この論文では、パフォーマンスを低下させることなく量子化された 4 ビット モデルを微調整できる機能を初めて実証します。つまり、事前トレーニングされたモデルは 4 ビットに量子化され、その後、微調整のために小さなセットの低ランク アダプター (LoRA) が追加されます。パフォーマンスを低下させることなく、65B モデルのメモリ要件を 780GB から 48GB に削減しました。著者が設計した最小の 7B Guanaco モデルは、5GB のビデオ メモリのみを必要とし、微調整効果は 26GB AIpaca よりも 20% 以上高くなります。
QLORA は、パフォーマンスを損なうことなくビデオ メモリの使用量を削減するために設計された革新的なテクノロジーを多数導入しています。
- 4 ビット NormalFloat。理論的には正規分布の重みに最適です。
- 二重量子化。量子化定数を量子化する方式で、パラメータあたり 0.37 ビット (65GB モデルの場合は 3GB) を節約します。
- ページ化されたオプティマイザー。NVIDIA ユニファイド メモリを使用して、処理チェックポイントのメモリ スパイクを回避します。
上記の方法を LoRA に統合すると、以前の LoRA 関連の作業のパフォーマンスの損失が回避されます。
著者は 80M ~ 65B のスケールで 1,000 以上のモデルを微調整し、次のことを発見しました。
- データ品質はデータセットのサイズよりも重要です。
- 特定のタスクでは、データセットの適合性がサイズよりも重要です。
- チャットボットのパフォーマンス評価では、モデルの評価方法が人間の評価と比較して非決定的になる可能性があることが判明しました。
バックグラウンド
ブロック単位の k ビット量子化
量子化は、より情報量の多い表現を、より情報量の少ない表現に離散化するプロセスです。これは通常、データのビット数を減らすことを意味し、低ビット データ型の値の範囲を最大限に活用するために、入力データは通常、ターゲット データ型で許可される範囲に再スケーリングおよび正規化されます。この正規化プロセスは通常、テンソルとして編成される入力データを絶対最大値で除算することによって実現されます。たとえば、32 ビット浮動小数点テンソルを 8 ビット [-127, 127] に量子化するには、次のようにします。
XI n 18 = 丸め ( 127 absmax ( XFP 32 ) XFP 32 ) = 丸め ( c FP 32 ⋅ XFP 32 ) \mathbf{X}^{\mathrm{In}18}=\operatorname{round}\left (\frac{127}{\演算子名{absmax}\left(\mathbf{X}^{\mathrm{FP}32}\right)} \mathbf{X}^{\mathrm{FP}32}\right) =\演算子名{round}\left(c^{\mathrm{FP}32}\cdot\mathbf{X}^{\mathrm{FP}32}\right)バツ18年に=ラウンド(アブマックス( XFP32) _127バツFP32) _=ラウンド( cFP32_ _⋅バツFP32) _
ここで、c は量子化定数 (比率) であり、逆量子化はその逆のプロセスです。
dequant ( c FP 32 , XI nt 8 ) = XI n 88 c FP 32 = XFP 32 \operatorname{dequant}\left(c^{\mathrm{FP}32}, \mathbf{X}^{\mathrm{ ; Int} 8}\right)=\frac{\mathbf{X}^{\mathrm{In}88}}{c^{\mathrm{FP}32}}=\mathbf{X}^{\mathrm{ FP } 32}デカント( cFP32、 _バツあなた8)=cFP32_ _バツ88年=バツFP32_ _
この方法の問題は、外れ値が現れると、一部の量子化位置が完全に利用されなくなることです。この問題を解決するための一般的なアプローチは、入力テンソルを、それぞれが独自の量子化定数 c を持つ独立した量子化ブロックに分割することです。具体的には、入力テンソルX ∈ R b × h \mathbf{X} \in \mathbb{R}^{b \times h}バツ∈Rb × hは、サイズ B の n 個の連続するブロック (等しい長さの n 個の間隔) に分割され、これらのブロックは個別に量子化されて、量子化テンソルと n 個の量子化定数 cic_ic私は。
低ランクアダプター
低ランク アダプター (LoRA) は、元のモデル パラメーターを固定し、少数のトレーニング可能なパラメーターを使用してメモリを削減する方法です。LoRA メソッドは、追加の因数分解投影操作を導入することで線形投影を強化し、モデルのパフォーマンスを向上させます。効果。与えられた投影XW = Y \mathbf{XW=Y}XW=Y,その中X ∈ R b × h \mathbf{X} \in \mathbb{R}^{b \times h}バツ∈Rb × h,W ∈ R h × o \mathbf{W} \in \mathbb{R}^{h \times o}W∈Rh × o、解:
Y = XW + s XL 1 L 2 \mathbf{Y}=\mathbf{XW} + s\mathbf{XL_1L_2}Y=XW+sXL _ _1L2
その中L 1 ∈ R h × r \mathbf{L_1} \in \mathbb{R}^{h \times r}L1∈Rh × r,L 2 ∈ R r × o \mathbf{L_2} \in \mathbb{R}^{r \times o}L2∈Rr × o、s はスカラーです。
パラメータ効率の高い微調整のメモリ要件
LoRA はパラメータ効率の高い微調整方法 (PEFT) であるため、LLM 微調整プロセスのメモリ使用量は、LoRA パラメータではなく活性化勾配によって決まります。7B LLaMA の微調整を例にとると、LoRA の重みは 0.2% しか占めておらず、メモリ使用量に関しては、LoRA 入力勾配が 567MB であるのに対し、LoRA パラメータは 26MB しか占めていません。勾配チェックポイントを使用することにより、シーケンスごとの入力勾配は平均 18MB に削減されますが、これでもすべての LoRA 重みを合わせたものよりも多くのメモリを消費します。したがって、LoRA パラメータの量を減らしても、ビデオ メモリの利点はわずかしか得られません。より多くのアダプタを使用し、勾配チェックポイントなどの他の場所でビデオ メモリを削減することをお勧めします。
QLORA の微調整
QLORA は、NF4 量子化と二重量子化の 2 つの戦略を通じて高忠実度の 4 ビット微調整を実現し、さらに、ページング オプティマイザーを導入して、勾配チェックポイント中のビデオ メモリのピークによるビデオ メモリ不足を防ぎます。
QLORA のデータ型には、低精度の保存型 (4 ビット) と計算データ型 (16 ビット) が含まれます。つまり、QLORA 重みテンソルが使用される場合、テンソルは BFloat16 に逆量子化され、16 ビットの行列乗算が実行されます。
4 ビット NormalFloat 量子化
NF データ型は、情報理論の最適なデータ型である分位量子化に基づいており、各量子化間隔の値が等しいことを保証できます。分位量子化の主な制限は、分位値推定プロセスのコストが高いことです。そのため、推定には高速な分位数近似アルゴリズム (SRAM 分位数など) が使用されますが、外れ値に対しては大きな誤差が発生します。
入力テンソルが固定量子化定数を持つ分布から得られる場合、コストのかかる量子化推定と近似誤差を回避できます。この場合、入力テンソルは同じ分位数を持ち、正確な分位数推定が計算上可能になります。
事前学習済みモデルのニューラル ネットワークの重みは通常N 〜 ( 0 , σ ) \mathcal{N} \sim(0, \sigma)であるため、N〜( 0 ,σ )正規分布なので、σ をスケーリングすることですべての重みを単一の固定分布に変換できます。この論文のデータ型では、ランダム間隔は [-1, 1] に設定されています。したがって、データ型とニューラル ネットワークの重みは両方ともこの間隔に正規化されます。
上記の説明に従った分布計算プロセスは次のとおりです。
- 理論的な N(0,1) 分布の 2^k+1 分位数を推定すると、正規分布に適した k 分位数の量子化データ タイプが得られます。
- そのデータ型を取得して正規化します。
- 入力重みテンソルを正規化して量子化を実行します。
重みの範囲とデータ型の範囲が一致すると、量子化は通常どおり続行できます。ステップ 3 は、k 分位数の標準偏差と一致するように入力テンソルの標準偏差を再スケーリングすることになります。より正式には、著者らはデータ型の 2^k 値qi q_iを推定します。q私は以下のように:
qi = 1 2 ( QX ( i 2 k + 1 ) + QX ( i + 1 2 k + 1 ) ) q_i=\frac{1}{2}\left(Q_X\left(\frac{i}{ 2^k+1}\right)+Q_X\left(\frac{i+1}{2^k+1}\right)\right)q私は=21( Q×(2k+1私は)+Q×(2k+1私+1) )
ここで、QX ( ⋅ ) Q_X(・)Q×( ⋅)は、標準正規関数 N(0,1) の分位関数です。ただし、対称 k ビット量子化には問題があります。つまり、この方法ではゼロを正確に表現できません。ただし、ゼロの正確な表現は、パディングやその他のゼロ値要素を量子化する際のエラーを回避するため、重要な特性です (つまり、ゼロには正確なエンコードが必要です)。離散ゼロ点が 0 であることを保証するために、著者らは 2 つの範囲の分位数qi q_iq私は非対称のデータ型を作成します。マイナスの部分はqi q_iq私は範囲は2 k − 1 2^{k-1}です。2k − 1、正の部分は2 k − 1 + 1 2^{k-1}+12k − 1+1、次にこれらのqi q_iq私はそれらを統合し、重複する 0 を削除します。
二重量子化
つまり、量子化定数はメモリをさらに節約するために量子化されます。量子化定数が余分なスペースを占有するためです。
二重量子化は、最初の量子化定数c 2 FP 32 c_2^{\rm FP32}になります。c2FP322 回目の量子化の入力として、量子化された量子化定数c 2 FP 8 c_2^{\rm FP8}c2FP8と2 段目の量子化定数c 1 FP 32 c_1^{\rm FP32}c1FP32。著者は、パフォーマンスを低下させることなく、2 番目の量子化にブロック サイズ 256 の 8 ビット浮動小数点を使用しています。c 1 FP 32 c_1^{\rm FP32}c1FP32は正の数なので、0点対称として処理する必要があります。例としてブロック サイズを 64 ビットとすると、元の量子化定数のビデオ メモリ使用量は 32/64=0.5、量子化定数の量子化後の占有量は 8/64+32/64*256=0.127 ビットとなり、それぞれパラメータは 0.373 ビット削減されます。
ページ化されたオプティマイザー
NVIDIA ユニファイド メモリ機能を使用することで、CPU と GPU 間のページ間転送が実現され、GPU メモリが不足している場合でも正常に処理できます。具体的には、GPU メモリが不足している場合は自動的に CPU の RAM に移動され、オプティマイザの更新ステップで必要に応じて GPU メモリにフェッチされて戻されます。
クローラ
上記のコンポーネントを組み合わせると、次のような単一の線形層定義 QLORA が得られます。
YBF 16 = XBF 16 doubleDequant ( c 1 EP 32 , c 2 k -bit , WNF 4 ) + XBF 16 L 1 BF 16 L 2 BF 16 \mathbf {Y }^{\mathrm{BF} 16}=\mathbf{X}^{\mathrm{BF} 16} \text { doubleDequant }\left(c_{1}^{\mathrm{EP} 32}, c_ {2 }^{\mathrm{k} \text {-bit }}, \mathbf{W}^{\mathrm{NF} 4}\right)+\mathbf{X}^{\mathrm{BF} 16} \mathbf {L}_{1}^{\mathrm{BF} 16} \mathbf{L}_{2}^{\mathrm{BF} 16}YBF16 _=バツBF 16 ダブルデカント ( c1EP32 _、c2kビット 、WNF4 ) _+バツBF16L _ _1BF16 _L2BF16 _
public public doubleDequant(・) public
doubleDequant( c 1 FP 32 , c 2 k -bit , W k -bit ) = dequant ( dequant ( c 1 FP 32 , c 2 k -bit ) , W 4 bit ) ; = WBF 16 \text {doubleDequant}\left(c_{1}^{\mathrm{FP}32}, c_{2}^{\mathrm{k}\text{-bit}}, \mathbf{W}^ { \mathrm{k}\text {-bit}}\right)=\operatorname{dequant}\left(\operatorname{dequant}\left(c_{1}^{\mathrm{FP}32}, c_{2 } ^{\mathrm{k}\text {-bit}}\right), \mathbf{W}^{4\mathrm{bit}}\right)=\mathbf{W}^{\mathrm{BF} } } ダブルデカント ( c1FP32 _、c2kビット 、Wkビット )=デカント(相当な( c1FP32 _、c2kビット )、W4ビット)=WBF 16 の
作者は NF4 を W に適用し、FP8 をc 2 c_2c2、W は、 c 2 c_2の場合、量子化精度を高めるために 64 ビット サイズのブロックを採用します。c2メモリを節約するには、256 個の小さなブロックを使用します。
パラメータの更新は∂ E ∂ L i \frac{\partial E }{\partial \mathbf{L}_{i}}に対してのみ行われます∂L _私は∂E _、4 ビットの重み勾配∂ E ∂ W \frac{\partial E }{\partial \mathbf{W}} の代わりに∂W _∂E _。ただし、前者の計算には後者の計算が必要です。つまり、最初の式でWNF 4 \mathbf{W}^{\rm{NF4}}を入力します。WNF4出力はWNF 16 \mathbf{W}^{\rm{NF16}}WNF16 はBFloat16 精度の導関数∂ E ∂ W \frac{\partial E }{\partial \mathbf{W}} を∂W _∂E _。
一般に、QLoRA にはストレージ データ型 (4 ビット NormalFloat) と計算データ型 (16 ビット BrainFloat) があり、ストレージ データ型を計算データ型に逆量子化して順方向および逆方向伝播を実行しますが、計算のみ Weight を使用します。 16 ビット BrainFloat の LoRA パラメータの勾配。
QLoRA vs. 標準微調整
QLoRA はビデオ メモリの節約に大きな利点があるため、パフォーマンスの面で完全な微調整と同じ効果を達成できるでしょうか?
実験装置
著者は 3 つの異なるアーキテクチャ モデルで実験を実施し、16 ビット アダプターの微調整を使用した QLoRA と完全な微調整の 3B モデルを比較しました。詳細については、付録 A を参照してください。
ページング オプティマイザーは長いシーケンスと小さなバッチのデータを処理するためにのみ使用されるため、著者は簡単な測定を行っただけで、バッチ サイズが 16 の場合、ページング オプティマイザーは従来のオプティマイザーと同じトレーニング速度を提供することを確認しました。今後の作業は、ページング オプティマイザーの効率が低下する状況に焦点を当てることができます。
デフォルトの LoRA ハイパーパラメータが 16 ビットのパフォーマンスと一致しない
以下の図に示すように、標準の LoRA では完全な微調整のパフォーマンスを達成することはできません。
実験では、LoRA のパフォーマンスに影響を与える最も重要なハイパーパラメータは LoRA の数であり、各レイヤーで LoRA を使用すると、完全な微調整の効果に匹敵することがわかりました。チューニング。
4 ビット NormalFloat は 4 ビット浮動小数点よりも優れたパフォーマンスをもたらします
著者らは、以下の図と表に示すように、さまざまなアーキテクチャとサイズの LLM でさまざまなデータ型を使用して実験評価を実施しています。
FP4 や Int4 と比較して、NF4 はパフォーマンスを大幅に向上させ、二重量子化によりパフォーマンスを低下させることなくメモリ使用量を削減していることがわかります。
k ビット QLORA は、16 ビットの完全微調整および 16 ビット LoRA パフォーマンスに適合します
最近の研究では、推論には 4 ビット量子化が可能であることが示されていますが、16 ビット微調整に比べてパフォーマンスが低下します。4 ビット アダプターを微調整することで、失われたパフォーマンスを回復することは可能でしょうか?
まず、16 ビットの完全に微調整された RoBERTA モデルと T5 モデル (両方のサイズ範囲は 125M ~ 3B) と比較した結果は次のとおりです。 16 ビット、8 ビット、および 4 ビットのアダプター メソッドでは、次のことが観察されます
。完全に微調整された 16 ビットのベースライン パフォーマンスを再現します。これは、量子化の精度の問題がアダプターの微調整によって完全に回復できることを示しています。
次に、パラメータ範囲 7B ~ 65B のモデルで 4 ビット QLoRA が 16 ビット LoRA と一致するかどうかをテストします。結果は次の表に示されています。NF4
は 16 ビット LoRA のパフォーマンスを完全に回復し、FP4 の QLoRA が 16 ビット LoRA に約 1 パーセント遅れていることもわかりました。その理由は次のとおりです。
- QLORA と NF4 は、16 ビットのフル トリムと 16 ビットの LoRA トリムのパフォーマンスを複製します。
- NF4 は、量子化精度の点で FP4 を上回ります。
まとめ
上記の実験を要約すると、NF4 データ型の 4 ビット QLoRA は 16 ビットのフル微調整と LoRA 微調整のパフォーマンスを達成でき、NF4 は FP4 よりも効率的であることがわかります。さらに、MMLU と Elo の結果は、アダプタ パラメータの数を増やす一方で精度を下げることが効果的であることを示しています。
QLoRA でチャットボットを最先端に推進
このセクションでは、指導の微調整について詳しく調査します。これらのモデルを微調整する命令のパフォーマンスを評価するために、著者らは MMLU で評価し、現実世界のチャットボットのパフォーマンス評価のための新しい手法を開発しました。
実験装置
データ
著者は、OASST1、HH-RLHF、AIpaca など、さまざまな言語、データ サイズ、ライセンスをカバーする 8 つの最新データセットを選択しています。
トレーニングのセットアップ
異なるデータセットの異なる目標によって引き起こされる交絡効果を回避するために、人間の判断を含むデータセットであっても、クロスエントロピー損失のみが QLoRA モデルを微調整する目的関数として使用され、強化学習は使用されません。という方法が使われます。この目的は、微調整プロセスの一貫性を確保し、さまざまなトレーニング目的によって生じるノイズを軽減することです。すべての実験では、デュアル量子化とページング オプティマイザーを備えた NF4 QLoRA アプローチを使用します。
ベースライン
著者らは、このモデルを研究用 (Vicuna、Open Assistant) および商用 (GPT-4、GPT-3.5-turbo、および Bard) のチャットボット システムと比較しています。その中で、研究モデルはLLaMAを微調整したものです。
評価
著者は、MMLU ベンチマークを使用して、さまざまな言語理解タスクのパフォーマンスを測定します。さらに、自動評価と人間による評価を通じて、生成言語能力がテストされます。
ベンチマークデータ
著者は、Vicuna および OASST1 データセットをベンチマークとして評価します。
自動評価
著者は GPT-4 を使用して、ビクーニャ データセット上のさまざまなモデルの出力をスコアリングします。GPT-4 には重大な順序効果があるため、つまり、モデルはプロンプト内の初期の位置応答のスコアを増加させます。インパクト、2 順位の下の平均スコア。
スコアリング スキームは 3 つのカテゴリのラベル付け問題に縮小され、最適な出力は GPT-4 によって出力され、説明が提供されます。
人間の評価
GPT-4 の現在の判断が信頼できることを証明するのは難しいため、著者は Vicuna で 2 つの人間による並行評価を実行し、比較のために 2 人のアノテーターと ChatGPT を雇い、ペアごとの比較のために 3 人のアノテーターを雇いました。これは手動で行うことができます。 ChatGPT のパフォーマンスまたは品質に関する評価データ。
エロ評価
著者は、Elo スコアリング メカニズムを使用して、競技会の形式でさまざまなモデルのパフォーマンスを評価します。各試合後の Elo スコアの変化は、期待される結果に比例します。つまり、予期せぬ番狂わせが発生すると、パフォーマンスに大きな変化が生じます。 Elo スコアは予想どおりでしたが、結果はより小さな変化でした。最後に、時間の経過とともに、Elo スコアは最終的にモデルの機能と一致します。
グアナコ: OASST1 でトレーニングされた QLORA は最先端のチャットボットです
自動評価と手動評価に基づくと、QLoRA で調整されたモデル Guanaco 65B は、ChatGPT に匹敵する最高のパフォーマンスを発揮するオープンソース チャットボット モデルです。以下の表は、ChatGPT と比較した Vicuna ベンチマーク結果です。
Guanaco 65B は GPT-4 の後で最もパフォーマンスの高いモデルであり、Guanaco 33B は Vicuna 13B モデルよりも多くのパラメータを持っていますが、4 ビット精度の重みを使用しているため、21GB は 26GB よりもメモリ効率が高く、パフォーマンスが向上していることがわかります。 3パーセントポイントの差でした。さらに、Guanaco 7B は 5GB の RAM を搭載した最新の携帯電話に簡単に搭載でき、それでも Alpaca 13B よりも 20 パーセント近く高いスコアを獲得しています。
さらに、GPT-4 とヒューマン・アノテーターのシステムレベルの判断との間には適度な一致があるため、モデルベースの評価は人間による評価に代わる信頼できる手段となります。
上の表の Elo ランキングは、Guanaco 33B および 65B モデルが Vicuna および OA ベンチマークで GPT-4 を除くすべてのモデルを上回り、ChatGPT のパフォーマンスに匹敵することを示しています。さらに、異なるデータセットの下でのモデルのパフォーマンスは異なります。これは、強力で優れた MMLU パフォーマンスが強力なチャットボット パフォーマンスを意味するものではなく、その逆も同様であることを示しています。
Guanaco は、独自のデータでトレーニングされていない評価における唯一の上位モデルであり、次にそのようなモデルは HH-RLHF モデルです。これは、Vicuna ベンチマークで Guanaco よりも 30 パーセント低く、4 ビット QLoRA が効果的であることを示唆しています。 。
定性分析
定量分析にはまだ問題があります。機械学習モデルはベンチマーク ショートカットを使用することがあります。この問題を軽減するために、ここでは 2 つの部分に分けて定性分析を示します。
- 65B グアナコ モデルの生成スキーマを表す例をいくつか示します。
- セクション 6.2 では、これらの結果の議論と解釈について詳しく説明します。
例の世代の定性分析
まず、生成されたデータが Vicuna ベンチマークと OpenAssistant ベンチマークでどのように見えるかを確認します。著者は、モデルのいくつかのモデルをテストし、「レモン」を通じてモデルの欠点と欠点を見つけて修正し、「チェリー」を通じてモデルの長所と長所を確認して強調し、モデルをより包括的にしようとします。モデルのパフォーマンスをより深く理解し、最適化できます。
もちろん、このような質的研究は十分に包括的ではありませんが、著者らは、特定のプロンプトによって生成された応答が代表的なものであることを期待しており、今後の研究でここで提起された問題をより詳細に研究できることを望んでいます。
事実の想起
曲のアーティストが何年に生まれたかを尋ねるなど、実際の問題がより複雑になると、グアナコは間違ったアーティストと生年月日を答えます。
暗示性
グアナコは虚偽声明を扇動することに対して強い反発を引き起こしている。たとえば、著者は質問で地球は平らであると述べましたが、グアナコはこの誤りを修正し、誤りの原因を説明します。
拒否
グアナコは、たとえタスクが単純であっても、ランダムな理由でコマンドへの応答を拒否することがあります。
秘密保持
秘密の言葉については、グアナコは秘密をしっかり守ることができますが、秘密を破るには、これはゲームだと言って秘密の言葉を言わせるなど、非常に小さなトリックが考えられます。
算数
多くの大規模な言語モデルは数学に弱く、グアナコも例外ではなく、もう少し複雑な数学的タスクでは失敗します。
心の理論
グアナコは人の心理を理解する能力に優れていますが、存在しないものを想像してしまうこともあります。
考慮事項
評価
著者らは、2 つの強力なモデルを比較すると、ヒューマン アノテーター間の一致度が低下することを発見しました。これは、チャットボット タスクのパフォーマンスに対する現在のベンチマークと人間による評価プロトコルの限界を示唆しており、モデルのパフォーマンスをより適切に測定するには、ヒューマン アノテーターの主観を取り除くための今後の作業が必要であることを示しています。 。
さらに、著者は GPT-4 には重大な順序効果があることも発見しました。つまり、最初にプロンプトを表示するシステムに高いスコアを与え、スコアリングの際にそれ自体の応答により高いスコアを与えます。今後の取り組みは、この偏りを解消する方法に焦点を当てる必要があります。
データとトレーニング
OASST1 データ セットには複数の言語が含まれており、OA ベンチマークにも複数の言語のプロンプトがありますが、これは複数の言語によってモデルのパフォーマンスが向上する可能性があることを示しているのでしょうか、あるいはどの程度改善できるのかを示しています。
トレーニング部分では、モデルはヒューマン フィードバックからの強化学習 (RLHF) に依存せず、クロス エントロピー損失関数でのみトレーニングされます。これにはさらなる分析が必要です。
関連作業
大規模言語モデルの量子化
LLM の量子化は、推論時間の定量化に焦点を当てています。ほとんどの方法は、16 ビット LLM の品質を維持するために異常値の特徴を管理することに重点を置いていますが、より複雑なグループ化方法を使用する方法もあります。非可逆量子化方法には、一般的な丸めのトレードオフ、または量子化の精度を向上させるために丸めの決定を最適化する方法が含まれます。バックプロパゲーションに量子化を適用した研究はほとんどありません。
アダプターによる微調整
LoRA は、完全な 16 ビット微調整パフォーマンスを達成することが証明されています。さらに、プロンプト調整、埋め込み層入力の微調整、隠れ層の微調整、偏差の微調整など、他のパラメーターの有効性を確認する方法もあります。これらの方法は、定量的にさらに調査できます。
命令の微調整
命令微調整では、さまざまなデータ ソースからの入出力ペアを使用して事前トレーニング済み LLM を微調整し、入力をキューとして指定した出力を生成します。メソッドとデータセットには、MetaICL、MetaTuning、InstructGPT、FLAN などが含まれます。
チャットボット
既存のチャットボットは通常、人間によるフィードバックによる強化学習 (RLHF) に基づいているか、人工知能フィードバック (RLAIF) を使用したトレーニング用に既存のモデルからデータを生成します。
制限と議論
著者は、QLoRA が 16 ビットのフル微調整の 33B および 65B モデルに匹敵できることを証明していません。もう 1 つの制限は、命令微調整モデルの評価であり、作者は MMLU、OA などのデータセットに対してのみ微調整を行っており、BigBench や RAFT については微調整を行っていない、つまりモデル評価の幅が十分ではありません。 。
さらに、著者らは、ベンチマークのパフォーマンスが微調整データとベンチマーク データセットの類似性に依存する可能性があることを発見しました。そのため、評価する前に、評価の目標が何であるかを慎重に検討する必要があります。
この記事のもう 1 つの限界は、グアナコの評価が十分に包括的ではないことです。また、精度の面では3ビットモデルやその他のビットモデルでも評価が可能であり、パラメータ妥当性の学習方法にも多くの手法が利用可能です。
より広範な影響
QLoRA メソッドは、モデルのパフォーマンスを低下させることなく、単一のコンシューマ グレードのグラフィックス カードで 33B パラメータ モデルの微調整を実現し、単一のプロフェッショナル グレードのグラフィックス カードで 65B パラメータ モデルの微調整を初めて実現しました。QLoRA は、大企業と小規模チームの間のコンピューティング リソースのギャップを埋めるのに役立ちます。
さらに、もう 1 つの影響は、QLoRA メソッドがモバイル デバイス LLM の微調整における重要なマイルストーンになる可能性があることです (7B モデルの微調整は携帯電話上で実現できます)。 12s. ChatGPT の性能には及ばないものの、大規模モデルに適しており、プライバシー保護と大規模モデルの展開は非常に重要です。
概要を読む
QLoRA 自体は革新的なものではありませんが、複数の作業を統合して、以前の手法の問題点を 1 つずつ打破することで、完全な微調整の効果を達成することができ、NF4 量子化と二重量子化の 2 つの戦略を実現できます。高忠実度の 4 ビット微調整、ページング オプティマイザーは、ビデオ メモリのピーク不足の問題を解決できます。これらの方法を組み合わせると 1+1>2 の効果が得られ、1 枚のコンシューマ グレードのグラフィックス カードで 33B の大型モデルの微調整を実現し、1 枚のプロフェッショナル グレードのグラフィックス カードで 65B の大型モデルの微調整を実現します。グラフィックスカード。上記の部分は記事の前半で、コンピューティング リソースが少ないシナリオでも QLoRA 手法を微調整できることを証明しており、後半は QLoRA のパフォーマンスを検証するための Guanaco モデルの導入に関する内容です。Guanaco は QLoRA の微調整に基づいた大規模なモデルであり、著者は定性的および定量的な分析を通じて他の大規模なモデルと比較し、Guanaco のパフォーマンスが ChatGPT のパフォーマンスと同等であることを証明し、間接的に QLoRA がフルチューニングの能力を達成していることを証明しました。パフォーマンスの面での微調整 モデルの他のいくつかの特性についてさらに調査します。
そうすると、この記事の焦点は当然前半になります。定量化のプロセスがよくわからないので、インパクトを深めるにはコードを読む必要があります。この作業から私にとって最大のインスピレーションは、ただ単に数値化することはできないということです。自分の仕事をやみくもに行うが、それを業界のニーズと組み合わせる、またはアプリケーションの問題を見つけて、既存の知識を使って問題を解決する方法を見つける。たとえば、QLoRA は LoRA に基づいています。ビデオがメモリが足りないのでデータを圧縮し、ビデオメモリにピーク値ができたのでその一部を入れる これらのことは簡単に考えられますが、このような作業をこれまで誰もやったことがありません。過去 2 年間の需要が十分ではなかった理由。問題を解決するためにさらに努力することによってのみ、より多くの問題を発見し、記事のためのより多くのインスピレーションを得ることができます。