モデルのチューニングは、Gemini が特定のタスクをより高い適合率と精度で実行するように適応させるための重要なプロセスです。モデルのチューニングは、特定のダウンストリーム タスクのサンプルセットが含まれるトレーニング データセットをモデルに提供することで行われます。
Gemini チューニング API は、次のユースケースで使用します。
サポートされているモデル:
教師ありファインチューニングは、次の Gemini モデルで使用できます。
Translation LLM V2(translation-llm-002
)もサポートされています。
構文の例
モデルをチューニングする構文。
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs \ -d '{ "baseModel": "...", "supervisedTuningSpec" : { ... "hyper_parameters": { ... }, }, "tunedModelDisplayName": "", }'
パラメータ リスト
実装の詳細については、例をご覧ください。
リクエスト本文
リクエスト本文には、データと次のパラメータが含まれます。
パラメータ | |
---|---|
|
省略可: チューニングする基盤モデルの名前。 |
|
|
supervisedTuningSpec
パラメータ | |
---|---|
|
トレーニング データセットの Cloud Storage URI。データセットは JSONL ファイル形式でなければなりません。最適な結果を得るには、少なくとも 100~500 個のサンプルを含めます。詳細については、教師ありチューニング データセットについてをご覧ください。 |
|
省略可: 検証データセットの Cloud Storage URI。データセットは JSONL ファイル形式にする必要があります。データセットには最大 256 個の例を含めることができます。このファイルを指定すると、ファインチューニング中に検証指標を定期的に生成するためにデータが使用されます。詳細については、教師ありチューニング データセットについてをご覧ください。 |
|
省略可: トレーニング中にモデルがトレーニング データセット全体に対して行った完全なパスの数。Vertex AI は、トレーニング データセットのサイズに合わせてデフォルト値を自動的に調整します。この値は、モデル出力の品質を最適化するために、ベンチマークの結果に基づきます。 |
|
省略可: デフォルトの学習率を調整するための乗数。 |
|
省略可: チューニング用のアダプタのサイズ。 |
|
省略可:
|
AdapterSize
チューニング ジョブのアダプタのサイズ。
パラメータ | |
---|---|
|
アダプタサイズ未指定。 |
|
アダプタサイズ 1。 |
|
アダプタサイズ 4。 |
|
アダプタサイズ 8。 |
|
アダプタサイズ 16。 |
例
教師ありチューニング ジョブを作成する
テキストモデルの教師ありチューニング ジョブは、Vertex AI SDK for Python を使用するか、POST リクエストを送信して作成できます。
基本的なユースケース
基本的なユースケースでは、baseModel
と training_dataset_uri
の値のみを設定します。他のすべてのパラメータはデフォルト値を使用します。
REST
モデルのチューニング ジョブを作成するには、tuningJobs.create
メソッドを使用して POST リクエストを送信します。一部のパラメータは、すべてのモデルでサポートされているわけではないことに注意してください。チューニングするモデルに適用可能なパラメータのみを含めるようにしてください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- TUNING_JOB_REGION: チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。
- BASE_MODEL: チューニングする基盤モデルの名前。
- TRAINING_DATASET_URI: トレーニング データセットの Cloud Storage URI。データセットは JSONL ファイル形式でなければなりません。最適な結果を得るには、少なくとも 100~500 個のサンプルを含めます。詳細については、教師ありチューニング データセットについてをご覧ください。
HTTP メソッドと URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
リクエストの本文(JSON):
{ "baseModel": "BASE_MODEL", "supervisedTuningSpec" : { "training_dataset_uri": "TRAINING_DATASET_URI" }, }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Python
上級者向けのユースケース
上級者向けのユースケースは基本的なユースケースを拡張したものですが、オプションの hyper_parameters
(epoch_count
、learning_rate_multiplier
、adapter_size
など)の値も設定します。
REST
モデルのチューニング ジョブを作成するには、tuningJobs.create
メソッドを使用して POST リクエストを送信します。一部のパラメータは、すべてのモデルでサポートされているわけではないことに注意してください。チューニングするモデルに適用可能なパラメータのみを含めるようにしてください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- TUNING_JOB_REGION: チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。
- BASE_MODEL: チューニングする基盤モデルの名前。
- TRAINING_DATASET_URI: トレーニング データセットの Cloud Storage URI。データセットは JSONL ファイル形式でなければなりません。最適な結果を得るには、少なくとも 100~500 個のサンプルを含めます。詳細については、教師ありチューニング データセットについてをご覧ください。
- VALIDATION_DATASET_URI: 省略可。検証データセット ファイルの Cloud Storage URI。
- EPOCH_COUNT: 省略可。トレーニング中にモデルがトレーニング データセット全体に対して行った完全なパスの数。事前入力された推奨値を使用する場合は、未設定のままにします。
- ADAPTER_SIZE省略可: チューニング ジョブに使用するアダプタのサイズ。チューニング ジョブのアダプタのサイズは、トレーニング可能なパラメータの数に影響します。アダプタサイズが大きいほど、モデルはより複雑なタスクを学習できますが、より大きなトレーニング データセットと長いトレーニング時間が必要になります。
- LEARNING_RATE_MULTIPLIER: 省略可。推奨学習率に適用する乗数。推奨値を使用する場合は、未設定のままにします。
- EXPORT_LAST_CHECKPOINT_ONLY: 省略可: 最新のチェックポイントのみを使用する場合は、
true
に設定します。 - METRIC_SPEC: 省略可: Gen AI Evaluation Service を使用して評価を実行するために使用する 1 つ以上の指標仕様。指標仕様として、
"pointwise_metric_spec"
、"pairwise_metric_spec"
、"exact_match_spec"
、"bleu_spec"
、"rouge_spec"
を使用できます。 - METRIC_SPEC_FIELD_NAME: 省略可: 選択した指標仕様に必要なフィールド。例:
"metric_prompt_template"
- METRIC_SPEC_FIELD_NAME_CONTENT: 省略可: 選択した指標仕様のフィールド コンテンツ。たとえば、ポイントワイズ評価には
"Evaluate the fluency of this sentence: {response}. Give score from 0 to 1. 0 - not fluent at all. 1 - very fluent."
のようなフィールド コンテンツを使用できます。 - CLOUD_STORAGE_BUCKET: 省略可: Gen AI Evaluation Service によって実行された評価の結果を保存する Cloud Storage バケット。
- TUNED_MODEL_DISPLAYNAME: 省略可。チューニングされたモデルの表示名。設定されていない場合は、ランダムな名前が生成されます。
- KMS_KEY_NAME: 省略可。リソースの保護に使用される顧客管理の暗号鍵の Cloud KMS リソース ID。キーの形式は
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key
です。鍵は、コンピューティング リソースが作成されているのと同じリージョンに存在する必要があります。詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。 - SERVICE_ACCOUNT: 省略可。チューニング ジョブ ワークロードが実行されるサービス アカウント。指定しない場合、プロジェクト内の Vertex AI セキュア ファインチューニング サービス エージェントが使用されます。チューニング サービス エージェントをご覧ください。顧客管理のサービス アカウントを使用する場合は、サービス アカウントに
roles/aiplatform.tuningServiceAgent
ロールを付与する必要があります。また、顧客管理のサービス アカウントにチューニング サービス エージェントroles/iam.serviceAccountTokenCreator
ロールを付与します。
HTTP メソッドと URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
リクエストの本文(JSON):
{ "baseModel": "BASE_MODEL", "supervisedTuningSpec" : { "trainingDatasetUri": "TRAINING_DATASET_URI", "validationDatasetUri": "VALIDATION_DATASET_URI", "hyperParameters": { "epochCount": "EPOCH_COUNT", "adapterSize": "ADAPTER_SIZE", "learningRateMultiplier": "LEARNING_RATE_MULTIPLIER" }, "exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY, "evaluationConfig": { "metrics": [ { "aggregation_metrics": ["AVERAGE", "STANDARD_DEVIATION"], "METRIC_SPEC": { "METRIC_SPEC_FIELD_NAME": METRIC_SPEC_FIELD_CONTENT } }, ], "outputConfig": { "gcs_destination": { "output_uri_prefix": "CLOUD_STORAGE_BUCKET" } }, }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME", "encryptionSpec": { "kmsKeyName": "KMS_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT" }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Python
チューニング ジョブを一覧表示する
現在のプロジェクトのチューニング ジョブのリストを表示するには、Vertex AI SDK for Python を使用するか、GET リクエストを送信します。
REST
モデルのチューニング ジョブを作成するには、tuningJobs.create
メソッドを使用して POST リクエストを送信します。一部のパラメータは、すべてのモデルでサポートされているわけではないことに注意してください。チューニングするモデルに適用可能なパラメータのみを含めるようにしてください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID:
- TUNING_JOB_REGION: チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。
HTTP メソッドと URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Python
チューニング ジョブの詳細を取得する
チューニング ジョブの詳細を取得するには、Vertex AI SDK for Python を使用するか、GET リクエストを送信します。
REST
モデルのチューニング ジョブのリストを表示するには、tuningJobs.get
メソッドを使用して GET リクエストを送信し、TuningJob_ID
を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID:
- TUNING_JOB_REGION: チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。
- TUNING_JOB_ID: チューニング ジョブの ID。
HTTP メソッドと URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Python
チューニング ジョブをキャンセルする
チューニング ジョブをキャンセルするには、Vertex AI SDK for Python を使用するか、POST リクエストを送信します。
REST
モデルのチューニング ジョブのリストを表示するには、tuningJobs.cancel
メソッドを使用して GET リクエストを送信し、TuningJob_ID
を指定します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID:
- TUNING_JOB_REGION: チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。
- TUNING_JOB_ID: チューニング ジョブの ID。
HTTP メソッドと URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Python
次のステップ
詳細なドキュメントについては、以下をご覧ください。