モデルのチューニングの概要

基盤モデルをチューニングすると、パフォーマンスを改善できます。基盤モデルは汎用的にトレーニングされているため、期待したタスクが実行されないことがあります。これは、モデルに実行させたいタスクが特殊で、プロンプトの設計のみではモデルに学習させるのが難しいためです。

このような場合は、モデルをチューニングして、特定のタスクに対するモデルのパフォーマンスを改善します。モデルのチューニングにより、指示が不十分な場合でも特定の出力要件をモデルが遵守するように設定できます。このページでは、モデルのチューニングの概要、Vertex AI で利用可能なチューニング オプションについて説明します。また、これらのオプションを使用するタイミングについても説明します。

モデルのチューニングの概要

モデルのチューニングは、独自のタスクの例を多数含むトレーニング データセットをモデルに提供することで行うことができます。固有のニッチなタスクでは、少数の例でモデルをチューニングすることで、モデルのパフォーマンスを大幅に改善できます。モデルをチューニングすると、プロンプトに必要な例が少なくなります。

Vertex AI では、基盤モデルのチューニングに対して次の方法がサポートされています。

Gemini

教師ありチューニング

Gemini モデルの教師ありチューニングでは、新しいスキルを教えることでモデルのパフォーマンスを改善します。ラベル付けされた何百ものサンプルを含むデータを使用して、目的の動作やタスクを模倣するようモデルに学習させます。ラベル付きの各例は、推論中にモデルに出力させる内容を示しています。

教師ありのチューニング ジョブを実行すると、モデルは、目的のタスクの実行や目的の動作の学習に必要な情報をエンコードするのに役立つ追加のパラメータを学習します。これらのパラメータは推論の際に使用されます。チューニング ジョブの出力は、新しく学習したパラメータを元のモデルと組み合わせた新しいモデルです。

テキストモデルの教師ありチューニングは、モデルの出力が複雑ではなく、比較的定義が簡単な場合に適しています。分類、感情分析、エンティティ抽出、複雑でないコンテンツの要約、ドメイン固有のクエリの作成には、教師ありのチューニングが推奨されます。コードモデルの場合は、教師ありのチューニングが唯一の選択肢です。

PaLM

教師ありチューニング

PaLM モデルの教師ありチューニングでは、新しいスキルを教えることでモデルのパフォーマンスを改善します。ラベル付けされた何百ものサンプルを含むデータを使用して、目的の動作やタスクを模倣するようモデルに学習させます。ラベル付きの各例は、推論中にモデルに出力させる内容を示しています。

教師ありのチューニング ジョブを実行すると、モデルは、目的のタスクの実行や目的の動作の学習に必要な情報をエンコードする際に役立つ追加のパラメータを学習します。これらのパラメータは推論の際に使用されます。チューニング ジョブの出力は、新しく学習したパラメータを元のモデルと組み合わせた新しいモデルです。

テキストモデルの教師ありチューニングは、モデルの出力が複雑ではなく、比較的定義が簡単な場合に適しています。分類、感情分析、エンティティ抽出、複雑でないコンテンツの要約、ドメイン固有のクエリの作成には、教師ありのチューニングが推奨されます。コードモデルの場合は、教師ありのチューニングが唯一の選択肢です。

人間からのフィードバックを用いた強化学習(RLHF)によるチューニング

PaLM モデルの人間からのフィードバックを用いた強化学習(RLHF)では、人間が指定する好みを使用して言語モデルを最適化します。人間のフィードバックを使用してモデルをチューニングすることで、モデルを人間の好みに合わせてチューニングし、タスクに関して複雑な直感を持つシナリオで好ましくない結果を削減できます。たとえば、RLHF は、海に関する詩の書き方など、あいまいなタスクに対して有効です。人間に海に関する 2 つの詩を示し、その人に好みの詩を選ぶよう求めることができます。

RLHF チューニングは、モデルの出力が複雑で、教師ありのチューニングでは容易に解決できない場合に適しています。RLHF チューニングは、質問応答、複雑なコンテンツの要約、リライトなどのコンテンツ作成におすすめです。コードモデルでは RLHF チューニングはサポートされていません。

モデル抽出

PaLM モデルのモデル抽出は、大規模なモデルがあり、必要な処理能力を低下させることなくモデルを小さくする場合に適しています。モデルを抽出するプロセスでは、元のモデルよりも低コストで、低レイテンシの新しいトレーニング済みモデルが作成されます。

LLM の LoRA と QLoRA の推奨事項

Low-Rank Adaptation of Large Language Models(LoRA)を使用して、Vertex AI LLM モデルをチューニングすることもできます。

このセクションでは、LoRA と、よりメモリ効率の高いバージョンである QLoRA の使用に関する推奨事項を示します。

LoRA チューニングの推奨事項

次の表は、LoRA または QLoRA を使用して LLM をチューニングする際の推奨事項をまとめたものです。

仕様 推奨事項 詳細
GPU メモリの効率 QLoRA QLoRA では、LoRA と比較して GPU メモリのピーク使用量が約 75% 少なくなります。
スピード LoRA LoRA は QLoRA よりもチューニング速度が約 66% 高速です。
費用対効果 LoRA どちらの方法も費用は比較的低額ですが、LoRA は QLoRA よりも最大で 40% 費用が少なくなります。
最大シーケンス長 QLoRA 最大シーケンス長を長くすると GPU メモリの消費量が増加します。QLoRA では使用する GPU メモリが少ないため、最大シーケンス長を長くすることができます。
精度の向上 同じ どちらの方法でも精度は同程度に向上します。
バッチサイズの大きさ QLoRA QLoRA では、はるかに大きなバッチサイズがサポートされています。たとえば、次の GPU で openLLaMA-7B をチューニングする際のバッチサイズの推奨事項は次のとおりです。
  • 1 x A100 40G:
    • LoRA: 推奨のバッチサイズは 2 です。
    • QLoRA: 推奨のバッチサイズは 24 です。
  • 1 x L4:
    • LoRA: バッチサイズ 1 はメモリ不足エラー(OOM)で失敗します。
    • QLoRA: 推奨のバッチサイズは 12 です。
  • 1 x V100:
    • LoRA: バッチサイズ 1 はメモリ不足エラー(OOM)で失敗します。
    • QLoRA: 推奨のバッチサイズは 8 です。

次のステップ