教師ありのファインチューニングは、ラベル付きデータが利用可能な、明確に定義されたタスクがある場合に適しています。これは、言語やコンテンツが、大規模モデルのトレーニングに使用されたデータと大きく異なるドメイン固有のアプリケーションに特に有効です。テキスト、画像、音声、ドキュメントのデータ型をチューニングできます。
教師ありファインチューニングでは、ラベル付きデータセットを使用してモデルの動作を調整します。このプロセスでは、予測と実際のラベルの差を最小限に抑えるために、モデルの重みを調整します。たとえば、次のタイプのタスクでモデルのパフォーマンスを向上させることができます。
- 分類
- 要約
- 抽出型の質問応答
- チャット
詳細については、Gemini で教師ありファインチューニングをいつ使用するかをご覧ください。
サポートされているモデル
教師ありチューニングは、次の Gemini モデルでサポートされています。
gemini-1.5-pro-002
(一般提供、テキスト、画像、音声、ドキュメントをサポート)gemini-1.5-flash-002
(一般提供、テキスト、画像、音声、ドキュメントをサポート)gemini-1.0-pro-002
(プレビュー版、テキスト チューニングのみをサポート)
制限事項
- 入力トークンと出力トークンの最大数:
- トレーニング用サンプル: 32,000
- サービング: 32,000
- 検証データセットのサイズ: 256 個のサンプル
- トレーニング データセット ファイルサイズ: JSONL の場合最大 1 GB
- アダプタサイズ:
Gemini 1.5 Pro
: サポートされている値は 1 と 4 です(デフォルトは 4)。より大きい値を使用する(8 または 16)は失敗します。Gemini 1.5 Flash
: サポートされている値は 1、4、8、16 です(デフォルトは 8)。
教師ありファインチューニングを使用するユースケース
基盤モデルは、期待される出力やタスクがプロンプトで明確かつ簡潔に定義可能で、プロンプトが常に期待される出力を生成する場合に適しています。一般的なパターンから逸脱するニッチな、または特定の情報をモデルに学習させるときは、そのモデルのチューニングを検討してください。たとえば、モデルのチューニングを使用して、モデルに次のことを学習させられます。
- 出力を生成するための特定の構造や形式
- 場合に応じて出力を簡潔または詳細にするなどの、特定の動作
- 入力のタイプに合わせてカスタマイズされた特定の出力
次の例は、プロンプトの指示だけではキャプチャが難しいユースケースです。
分類: 期待されるレスポンスが特定の単語やフレーズ。
モデルをチューニングすると、モデルが冗長なレスポンスを生成しないようにできます。
要約: 要約は特定の形式に従っています。たとえば、チャットの概要で個人情報(PII)の削除が必要な場合があります。
この形式では、話者の名前を
#Person1
と#Person2
で置き換えていますが、記述しにくく、基盤モデルではこのようなレスポンスが自然に得られない可能性があります。抜粋された質問応答: 質問はコンテキストに関するもので、回答はコンテキストの部分文字列です。
「最終氷期極大期」というレスポンスは、コンテキストから抜き出した特定のフレーズです。
チャット: ペルソナ、ロール、キャラクターに合わせて、モデルのレスポンスをカスタマイズする必要があります。
次のような状況でも、モデルをチューニングできます。
- プロンプトが期待する結果を十分に一貫して生成しない。
- タスクが複雑すぎて、プロンプトで定義できない。たとえば、プロンプトで表現するのが難しい動作について、モデルに動作を再現させることができます。
- タスクについての直感が複雑で、引き出すのは簡単だが、プロンプトとして定式化するのが難しい。
- 少数ショットの例を削除して、コンテキストを短くしたい。
チューニング ジョブのリージョンを構成する
変換済みデータセットやチューニング済みモデルなどのユーザーデータは、チューニング ジョブのリージョンに保存されます。チューニング中、計算は使用可能なアクセラレータの他の US
または EU
リージョンにオフロードされる可能性があります。オフロードをユーザーが意識することはありません。
Vertex AI SDK を使用する場合は、初期化時にリージョンを指定できます。例:
import vertexai vertexai.init(project='myproject', location='us-central1')
tuningJobs.create
メソッドで POST リクエストを送信して教師ありファインチューニング ジョブを作成する場合は、URL を使用してチューニング ジョブが実行されるリージョンを指定します。たとえば、次の URL で、TUNING_JOB_REGION
の両方のインスタンスを、ジョブが実行されるリージョンに置き換えてリージョンを指定します。https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
Google Cloud コンソールを使用している場合は、[モデルの詳細] ページの [リージョン] プルダウン フィールドでリージョン名を選択できます。これは、ベースモデルとチューニング済みモデル名を選択するページと同じです。
割り当て
同時チューニング ジョブの数に割り当てが適用されます。どのプロジェクトにも、少なくとも 1 つのチューニング ジョブを実行するためのデフォルトの割り当てがあります。これはグローバル割り当てであり、利用可能なすべてのリージョンとサポートされているモデルで共有されます。複数のジョブを同時に実行する場合は、Global concurrent tuning jobs
の追加の割り当てをリクエストする必要があります。
料金
gemini-1.0-pro-002
の教師ありファインチューニングはプレビュー版です。チューニングがプレビュー版の場合、モデルのチューニングは無料です。
Gemini 1.5 Flash と Gemini 1.5 Pro のチューニングの料金については、Vertex AI の料金をご覧ください。
トレーニング トークンは、トレーニング データセット内のトークンの合計数にエポック数を掛けて計算されます。すべてのモデルで、チューニング後も、チューニング済みモデルの推論費用は引き続き適用されます。推論の料金は、Gemini の各安定版で同じです。詳細については、Vertex AI の料金と利用可能な Gemini モデルの安定版をご覧ください。
次のステップ
- 教師ありファインチューニング データセットを準備する。