リソース/モデルのトレーニング/トレーニング中のプロセス

手法

フルファインチューニング

フルファインチューニングは、モデル内のすべての重みを更新します。動作を変更する余地が最も大きい反面、モデル自体のサイズの何倍ものGPUメモリを必要とし、ベースモデルが持っていたスキルを損なう可能性が最も高くなります。

第6章読了時間 2分参考文献 5件

概要

フルファインチューニングは、独自のデータ例を使用してモデル全体の学習を継続します。すべてのレイヤーのすべての重みが変更される可能性があります。これは最も直接的なファインチューニングの形式であり、メカニズムとしてはモデル構築の後半段階と同じです。代替手段として、元の重みを凍結し、代わりに小さなアドオンを学習させるLoRAなどのパラメータ効率の良いファインチューニング(PEFT)があります。

メモリの消費先

モデルの実行には重みのみが必要です。すべての重みを学習するには、それぞれの重み自体に加えて、勾配とオプティマイザの状態が必要になります。通常の混合精度セットアップでAdamWを使用する場合、フォワードパスとバックワードパス用の16ビットの重みと16ビットの勾配に加え、安定した更新を維持するための32ビットの重みのマスターコピーとAdamの2つの32ビット移動平均が含まれます。ZeROの論文の計算では、これを重みあたり16バイトとしていますが、勾配を32ビットで保持する他のセットアップでは約18バイトになります。

学習可能な重みあたりのメモリ
per trainable weight · AdamW · mixed precision
  16-bit weight              2 bytes
  16-bit gradient            2 bytes
  32-bit master weight       4 bytes
  32-bit Adam momentum       4 bytes
  32-bit Adam variance       4 bytes
  ───────────────────────────────────
                            16 bytes   + activations

7B model:  7 × 10⁹ × 16 bytes ≈ 112 GB
フルファインチューニング16-bit + Adam≈ 112 GBLoRA16-bitベース、凍結≈ 15 GBQLoRA4-bitベース、凍結≈ 4–5 GBAdam + fp32コピー凍結された重み学習可能な重み勾配オプティマイザの状態
アクティベーション前の、70億パラメータモデルのファインチューニングに必要なおおよそのGPUメモリ。Adamを使用したフルファインチューニングでは、各重みに対して約16バイト(重み、その勾配、単精度のマスターコピー、および2つのオプティマイザ統計量)が必要です。LoRAはベースモデルを凍結したままにするため、勾配とオプティマイザの状態は小さなアダプタ(ここでは約4,000万の重み)にのみ存在します。
70億パラメータモデルの3つのアプローチ
  1. 16ビットでの実行のみ: 70億 × 2バイト ≈ 14 GB。
  2. AdamWを使用したフルファインチューニング: アクティベーション前に、70億 × 16バイト ≈ 112 GB。これは80 GBのGPU1基の容量を超えるため、ZeROやFSDPなどの技術を使用して複数のGPUにジョブを分割し、オプティマイザの状態、勾配、重みを分散させます。
  3. Llamaスタイルの7Bモデルのすべての線形レイヤーにランク16のLoRAを適用: 約4,000万の学習可能な重み(モデルの0.6%)。その学習状態は、凍結された14 GBのベースモデルに加えて、約4,000万 × 16バイト ≈ 0.6 GBとなり、合計で約15 GBになります。
  4. QLoRA: 4ビットで保持される凍結されたベースモデルは約3.5 GBを占めるため、合計は約4〜5 GBにアクティベーションを加えたものとなり、一般的なコンシューマー向けGPU1基で対応可能な範囲に収まります。
  5. どの場合でもアクティベーションがさらに上乗せされ、バッチサイズとシーケンス長に応じて増加します。勾配チェックポイント(Gradient checkpointing)を使用すると、計算量を増やす代わりにアクティベーションメモリを削減できます。

得られるメリット

フルファインチューニングは、アダプターが到達できる小さな部分空間だけでなく、あらゆる方向にモデルを変更できます。両者を比較したある研究では、フルファインチューニングは一般的なLoRA設定の10〜100倍のランクで変更を学習し、約10万例の大規模なコードや数学の学習セットでより多くを学習することがわかりました。トーン、フォーマット、ドメイン特有の言い回しを教える数百から数千のチャット例を使用する一般的なビジネスケースでは、すべてのレイヤーに適用されたLoRAは、概ねフルファインチューニングと同等の結果をもたらします。

代償:忘却

破滅的忘却(Catastrophic forgetting)とは、新しいことを学習したネットワークが以前に学習した内容を失う傾向のことです。フルファインチューニングはすべての重みを変更できるため、一般的な能力を上書きする余地が最も大きくなります。例えば、製品に関する質問には完璧に答えるものの、無関係な指示に従う能力が低下したサポートモデルなどがこれに該当します。継続的な指示チューニング(Instruction tuning)に関する実証研究では、1Bから7Bパラメータのモデル全体で忘却が観察されており、ベースを凍結するLoRAでファインチューニングされたモデルは忘却が少ないことがわかっています。

  • エポック数を減らし、学習率を低くすることで、重みが初期状態から大きく変動するのを防ぎます。
  • 独自のデータだけでなく、幅広い指示に従う例を一定割合含めるなど、一般的なデータを混在させます。
  • 対象タスク以外も評価します。 評価に一般的な質問をいくつか含めることで、性能の低下(リグレッション)を検出できるようにします。
  • フルファインチューニングによる効果が実際に測定されていない限り、アダプターの使用を推奨します。

フルファインチューニングとLoRAの比較

項目フルファインチューニングLoRAアダプター
学習可能な重みすべて通常0.1〜1%
学習に必要なメモリ重みあたり約16バイト、およびアクティベーション凍結されたベースモデル(重みあたり2バイト、または4ビットで約0.5バイト)と小規模なアダプター
保存される結果モデル全体のコピー(例:16ビットの7Bモデルで約14GB)アダプターファイル(通常数十〜数百MB)
一般的な学習率約1e-5約10倍
忘却リスク高い低い
最適な用途実質的な新しいスキルを学習させる大規模データセットトーン、フォーマット、ドメイン特有の言い回しの調整。1つのベースモデルから複数のバリアントを作成する場合

よくある間違い

  • より徹底しているように聞こえるという理由でフルファインチューニングを選択すること。小規模なデータセットでは、測定可能な効果が得られないにもかかわらず、はるかに高いコストがかかることが一般的です。
  • モデルのダウンロードサイズからGPUメモリを見積もること。すべての重みを学習するには、16ビットの重みの約8倍のメモリに加えて、アクティベーション用のメモリが必要になります。
  • 高い学習率で多数のエポックを学習させ、対象タスクのみをテストした結果、一般的なスキルが低下していることに後から気づくこと。
  • フルファインチューニングを行うたびに、保存および提供するためのフルサイズのモデルが生成されることを忘れてしまうこと。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01ZeRO: Memory Optimizations Toward Training Trillion Parameter ModelsRajbhandari et al., 2019 · arXiv · arxiv.orgパラメータあたり16バイトという計算の根拠、およびそれを複数のGPUに分散させるために使用されるシャーディングのソース。
  2. 02GPU memory usageHugging Face Transformers docs · huggingface.co学習中の重み、オプティマイザの状態、勾配、およびアクティベーションの内訳。
  3. 03LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgコードと数学におけるフルファインチューニングとLoRAの詳細な比較:それぞれが学習することと忘却すること。
  4. 04An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuningLuo et al., 2023 · arXiv · arxiv.org
  5. 05LoRA vs. full fine-tuningTogether AI docs · docs.together.aiアダプターからフルファインチューニングに移行するタイミングに関する、プロバイダーの実践的なアドバイス。

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ