Tuning API

モデルのチューニングにより、ユーザーはモデルの重みを調整して、特定のタスクに合わせてカスタマイズできます。チューニングを実行するには、タスク固有のトレーニング データセットを指定する必要があります。

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

  • Gemini 1.0 Pro
    • Gemini-1.0-pro-002

チューニング ジョブを作成する

パラメータ リスト

パラメータ

source_model

string

チューニング対象のベースモデル。gemini-1.0-pro-002 からサポート

training_dataset

string

トレーニング データを含む Cloud Storage ファイル。データセットは JSONL ファイル形式にする必要があります。

validation_dataset

省略可: string

検証データを含む GCS ファイル。データセットは JSONL ファイル形式にする必要があります。最大 256 個の例を含めることができます。このファイルを指定すると、ファインチューニング中に検証指標を定期的に生成するために使用されます。

epochs

省略可: int

トレーニング中にモデルがトレーニング データセット全体に対して行った完全なパスの数。

learning_rate_multiplier

省略可: float

デフォルトの学習率を調整するための乗数。

tuned_model_display_name

省略可: string

TunedModel の表示名。名前は最大 128 文字で、UTF-8 文字を含めることができます。

  • PROJECT_ID = PROJECT_ID
  • REGION = us-central1

基本的なユースケース

ベースモデル gemini-1.0-pro-002 で、gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl のトレーニング データセット URI を使用してチューニング ジョブを実行します。他のすべてのパラメータは自動値を使用します。

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs \
  -d '{
    "baseModel": "gemini-1.0-pro-002",
    "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl"
    },
  }'

Python

from vertexai.preview import tuning
from vertexai.preview.tuning import sft

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
)
sft_tuning_job.to_dict()

上級者向けのユースケース

ベースモデル gemini-1.0-pro-002 で、gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl のトレーニング データセット URI を使用してチューニング ジョブを実行します。 hyper_parameters を設定します。epoch_countlearning_rate_multiplier のように、ユーザー指定の値を使用します。validation_dataset_uri として gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl を指定します。

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs \
  -d '{
    "baseModel": "gemini-1.0-pro-002",
    "supervisedTuningSpec" : {
        "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
        "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
        "hyper_parameters": {
            "epoch_count": 4,
            "learning_rate_multiplier": 1,
        },
    },
    "tunedModelDisplayName": "tuned_gemini_pro",
  }'

Python

from vertexai.preview import tuning
from vertexai.preview.tuning import sft

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
    epochs=4,
    learning_rate_multiplier=1.0,
  tuned_model_display_name='tuned_gemini_pro'
)
sft_tuning_job.to_dict()

チューニング ジョブを一覧表示する

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

curl

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs

Python

from vertexai.preview.tuning import sft

sft.SupervisedTuningJob.list()

チューニング ジョブを取得する

パラメータ リスト

パラメータ

name

string

チューニング ジョブのリソース名。

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • TUNING_JOB_ID = TUNING_JOB_ID

curl

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs/{tuning_job_id}"

Python

from vertexai.preview import tuning
job = tuning.SupervisedTuningJob("projects/{PROJECT_ID}/locations/{REGION}/tuningJobs/{tuning_job_id}")

チューニング ジョブをキャンセルする

パラメータ

name

string

チューニング ジョブのリソース名。

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs/:cancel

Python

from vertexai.preview.tuning import sft

sft_tuning_job = sft.SupervisedTuningJob("projects/{PROJECT_ID}/locations/{REGION}/tuningJobs/")
sft_tuning_job.cancel()

さらに詳しい情報

詳細なドキュメントについては、以下をご覧ください。