Gemini モデルの教師ありファインチューニングについて

教師ありのファインチューニングは、ラベル付きデータが利用可能な、明確に定義されたタスクがある場合に適しています。これは、言語やコンテンツが、大規模モデルのトレーニングに使用されたデータと大きく異なるドメイン固有のアプリケーションに特に有効です。テキスト画像音声ドキュメントのデータ型をチューニングできます。

教師ありファインチューニングでは、ラベル付きデータセットを使用してモデルの動作を調整します。このプロセスでは、予測と実際のラベルの差を最小限に抑えるために、モデルの重みを調整します。たとえば、次のタイプのタスクでモデルのパフォーマンスを向上させることができます。

  • 分類
  • 要約
  • 抽出型の質問応答
  • チャット

詳細については、Gemini で教師ありファインチューニングをいつ使用するかをご覧ください。

サポートされているモデル

教師ありチューニングは、次の Gemini モデルでサポートされています。

  • gemini-1.5-pro-002(GA。テキスト、画像、音声、ドキュメントをサポート)
  • gemini-1.5-flash-002(GA。テキスト、画像、音声、ドキュメントをサポート)
  • 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 モデルの安定版をご覧ください。

次のステップ