段階別の抽出では、大規模な教師モデルを使用し、推論機能を改善して特定のタスクをより適切に実行するように、小規模な生徒モデルをトレーニングします。トレーニングされた抽出モデルでは、大規模な教師モデルで扱う同じ処理を、より低コストかつ低レイテンシで行えます。
基盤モデルを抽出する場合は、教師モデルと生徒モデルを使用します。
教師モデルは、必要なことを実行できる大規模モデルです。ただし、教師モデルは大きさのためにコストが高く、小規模なモデルよりもレイテンシが長くなる可能性があります。
生徒モデルは、教師モデルよりも小さいものになります。トレーニングと抽出のプロセスでは、教師モデルによって生成されたラベル付きの例と推論を使用して、生徒モデルを調整します。結果として得られる抽出モデルのパフォーマンスと推論能力は、元の生徒モデルよりも優れています。
抽出ジョブを作成するときは、教師モデルと生徒モデルを指定します。
モデルのチューニングと抽出のワークフロー
Vertex AI の抽出ワークフローは、次のステップから構成されています。
- モデルのチューニング用データセットを準備する。
- 教師モデルを指定する。
- 生徒モデルを指定する。
- モデルのチューニング用データセットを Cloud Storage バケットにアップロードする。
- モデル抽出ジョブを作成する。
モデルの抽出が完了すると、抽出されたモデルが Vertex AI エンドポイントにデプロイされます。エンドポイントの名前は、チューニング済みモデルの名前と同じになります。新しいプロンプトを作成するときに、抽出されたモデルを Vertex AI Studio で選択できます。
サポートされているモデル
教師モデルには、次の項目を指定できます。
text-unicorn@001
生徒モデルには、次の項目を指定できます。
text-bison@002
データセットのフォーマット
抽出は、ラベル付きとラベルなしのどちらのデータセットでも機能します。数百のサンプルを含む高品質のラベル付きデータセットがある場合は、それを使用することをおすすめします。それ以外の場合は、ラベルのないプロンプト データセットを使用できます。ラベルなしのデータセットを使用すると、教師モデルはラベルと抽出の根拠を生成します。ラベルなしのデータセットを使用する場合は、1,000 を超えるサンプルをおすすめします。
ラベル付きまたはラベルなしの抽出データセットは、JSON Lines(JSONL)形式で、各行に 1 つのチューニング サンプルが含まれている必要があります。モデルを抽出する前に、データセットを Cloud Storage バケットにアップロードします。
各データセットの例には、モデル プロンプトを含む input_text
フィールドと、抽出モデルで生成されるレスポンスのサンプルを含むオプションの output_text
フィールドが含まれます。
input_text
の最大トークン長は 7,168 で、output_text
の最大トークン長は 1,024 です。いずれかのフィールドがトークンの最大長を超えると、超過分のトークンは切り捨てられます。
テキスト生成モデル用のデータセットに含めることができるサンプルの最大数は 10,000 です。
データセットの例
{"input_text": "question: How many people live in Beijing? context: With over 21 million residents, Beijing is the world's most populous national capital city and is China's second largest city after Shanghai. It is located in Northern China, and is governed as a municipality under the direct administration of the State Council with 16 urban, suburban, and rural districts.[14] Beijing is mostly surrounded by Hebei Province with the exception of neighboring Tianjin to the southeast; together, the three divisions form the Jingjinji megalopolis and the national capital region of China.", "output_text": "over 21 million people"}
{"input_text": "question: How many parishes are there in Louisiana? context: The U.S. state of Louisiana is divided into 64 parishes (French: paroisses) in the same manner that 48 other states of the United States are divided into counties, and Alaska is divided into boroughs.", "output_text": "64"}
サンプルに手順を含める
分類などのタスクでは、手順を含まないサンプルのデータセットを作成できます。ただし、データセットのサンプルから手順を除外すると、特に小さなデータセットの場合、手順を含める場合よりも抽出後のパフォーマンスが低下します。
手順を除外:
{"input_text": "5 stocks to buy now", "output_text": "business"}
手順を含む:
{"input_text": "Classify the following text into one of the following classes: [business, entertainment] Text: 5 stocks to buy now", "output_text": "business"}
サンプル データセット
サンプル データセットを使用して抽出を開始できます。以下に示すのは、さまざまな医療専門分野向けの医療用音声文字変換のサンプルを含む、分類タスクのデータセットです。このデータは mtsamples.com からのもので、Kaggle で入手できます。
抽出のサンプル データセットの URI:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl
サンプル評価用データセットの URI:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl
これらのデータセットを使用するには、テキストモデル抽出ジョブの作成時に、該当するパラメータで URI を指定します。
例:
...
"dataset_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl",
...
"evaluation_data_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl",
...
本番環境データとの整合性を維持する
データセットに含まれるサンプルは、想定される本番環境のトラフィックと一致していなければなりません。データセットに特定の書式、キーワード、指示、情報が含まれている場合は、本番環境のデータも同じ形式にし、同じ指示を含んでいる必要があります。
たとえば、データセットのサンプルに "question:"
と "context:"
が含まれている場合は、本番環境のトラフィックにも、データセットの例と同じ順序で "question:"
と "context:"
が含まれるように整形する必要があります。コンテキストを除外すると、データセット内の例に正確な質問が含まれていても、モデルはパターンを認識しません。
抽出データセットを Cloud Storage にアップロードする
チューニング ジョブを実行するには、1 つ以上のデータセットを Cloud Storage バケットにアップロードする必要があります。新しい Cloud Storage バケットを作成するか、既存のバケットを使用してデータセット ファイルを保存できます。バケットのリージョンは重要ではありませんが、モデルをチューニングする Google Cloud プロジェクトのバケットを使用することをおすすめします。
バケットの準備ができたら、データセット ファイルをバケットにアップロードします。
抽出のリージョン設定
抽出ジョブを構成するときに、3 つの Google Cloud リージョン設定を指定できます。1 つのリージョンは、モデルをチューニングするパイプラインが実行される場所です。もう 1 つのリージョンでは、抽出プロセスのモデル チューニング部分が実行され、抽出されたモデルがアップロードされます。
パイプライン ジョブ リージョン
パイプライン ジョブ リージョンは、パイプライン ジョブが実行されるリージョンです。オプションのモデル アップロード リージョンが指定されていない場合、モデルはパイプライン ジョブ リージョンにアップロード、デプロイされます。変換済みデータセットなどの中間データは、パイプライン ジョブ リージョンに保存されます。パイプライン ジョブ リージョンに使用できるリージョンについては、サポートされているパイプライン ジョブとモデル アップロード リージョンをご覧ください。
パイプライン ジョブ リージョンは、次のいずれかの方法で指定する必要があります。
pipelineJobs.create
メソッドで POST リクエストを送信して抽出ジョブを作成する場合は、URL を使用してパイプライン ジョブが実行されるリージョンを指定します。次の URL で、PIPELINE_JOB_REGION
の両方のインスタンスをパイプラインが実行されるリージョンに置き換えます。https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Google Cloud コンソールを使用して抽出ジョブを作成する場合は、抽出ジョブの作成時に [リージョン] コントロールでパイプライン ジョブ リージョンを指定します。Google Cloud コンソールでは、[リージョン] コントロールでパイプライン ジョブ リージョンとモデル アップロード リージョンの両方を指定します。Google Cloud コンソールを使用して抽出ジョブを作成する場合、両方のリージョンは常に同じです。
モデル アップロード リージョン
オプションの tuned_model_location
パラメータを使用して、抽出されたモデルのアップロード先を指定します。モデル アップロード リージョンが指定されていない場合、抽出されたモデルは、パイプライン ジョブ リージョンにアップロードされます。モデル アップロード リージョンには、サポートされているパイプライン ジョブ リージョンとモデル アップロード リージョンのいずれかを使用できます。モデル アップロード リージョンは、次のいずれかの方法で指定できます。
pipelineJobs
メソッドを使用し、POST リクエストを送信して抽出ジョブを作成する場合は、location
パラメータを使用してモデルのアップロード リージョンを指定できます。Google Cloud コンソールを使用して抽出ジョブを作成する場合は、抽出ジョブの作成時に [リージョン] コントロールでモデル アップロード リージョンを指定します。Google Cloud コンソールでは、[リージョン] コントロールでモデル アップロード リージョンとパイプライン ジョブ リージョンの両方を指定します。Google Cloud コンソールを使用して抽出ジョブを作成する場合、両方のリージョンは常に同じです。
抽出のリージョン設定
Vertex AI がモデルを抽出して抽出済みのモデルをアップロードするリージョンを選択します。
チューニング リージョンでは、抽出ジョブの調整部分の計算が行われます。このリージョンは、選択したアクセラレータ タイプによって決まります。
us-central1
- このリージョンを選択すると、8 個の Nvidia A100 80GB GPU が使用されます。europe-west4
- このリージョンを選択すると、TPU v3 Pod の 64 コアが使用されます。
サポートされているパイプライン ジョブ リージョンとモデル アップロード リージョン
次のいずれかのリージョンを使用して、モデル アップロード リージョンとパイプライン ジョブ リージョンを指定できます。
us-central1
europe-west4
asia-southeast1
us-west1
europe-west3
europe-west2
asia-northeast1
us-east4
us-west4
northamerica-northeast1
europe-west9
europe-west1
asia-northeast3
テキストモデル抽出ジョブを作成する
テキストモデル抽出ジョブは、Google Cloud コンソールか API を使用して作成できます。モデルを抽出する構成のガイダンスについては、推奨構成をご覧ください。
REST
モデルの抽出ジョブを作成するには、pipelineJobs
メソッドを使用して POST リクエストを送信します。一部のパラメータは、すべてのモデルでサポートされているわけではないことに注意してください。抽出するモデルに適用可能なパラメータのみを含めるようにしてください。
リクエストのデータを使用する前に、次のように置き換えます。
- PIPELINEJOB_DISPLAYNAME: pipelineJob の表示名。
- OUTPUT_DIR: パイプライン アーティファクトの出力先となるバケットの URI。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL_DISPLAYNAME:
pipelineJob
によってアップロードされる抽出モデルの表示名。 - DATASET_URI: データセット ファイルの URI。
- PIPELINE_JOB_REGION: パイプライン チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。モデルを別のリージョンにアップロードする場合は、
location
パラメータを使用して、チューニング済みのモデルをアップロードするリージョンを指定します。詳細については、モデル アップロードのリージョンをご覧ください。 - MODEL_UPLOAD_REGION: (省略可)チューニング済みモデルがアップロードされるリージョン。モデルのアップロード リージョンを指定しない場合、チューニング済みのモデルは、パイプライン ジョブが実行されるリージョンにアップロードされます。詳細については、モデル アップロードのリージョンをご覧ください。
- ACCELERATOR_TYPE: (省略可、デフォルト
GPU
)モデルのチューニングに使用するアクセラレータのタイプ。有効なオプションは次のとおりです。GPU
: チューニングに 8 個の A100 80 GB GPU を使用します。割り当てが十分にあることを確認してください。GPU
を選択した場合、VPC‐SC がサポートされます。CMEK は、チューニングの場所とモデルのアップロード場所がus-centra1
の場合にサポートされます。詳しくは、管理対象のチューニング リージョンの設定をご覧ください。GPU
を選択すると、モデル チューニングの計算はus-central1
リージョンで行われます。TPU
: チューニングに TPU v3 Pod の 64 コアを使用します。割り当てが十分にあることを確認してください。CMEK はサポートされていませんが、VPC‐SC はサポートされています。TPU
を選択すると、モデル チューニングの計算はeurope-west4
リージョンで行われます。
- TEACHER_MODEL_REFERENCE: 抽出に使用する教師モデルの名前。サポートされているモデルは
text-unicorn@001
です。 - STUDENT_MODEL_REFERENCE: 抽出に使用する生徒モデルの名前。サポートされているモデルは
text-bison@002
です。 - STEPS: モデルのチューニングで実行するステップ数。デフォルト値は 300 です。バッチサイズは、チューニングを行うロケーションとモデルサイズによって異なります。8k モデル(
text-bison@002
、chat-bison@002
、code-bison@002
、codechat-bison@002
など)の場合:us-central1
のバッチサイズは 8 です。europe-west4
のバッチサイズは 24 です。
text-bison-32k
、chat-bison-32k
、code-bison-32k
、codechat-bison-32k
など)の場合:us-central1
のバッチサイズは 8 です。europe-west4
のバッチサイズは 8 です。
たとえば、
europe-west4
でtext-bison@002
をトレーニングする場合、トレーニング データセットに 240 のサンプルがあり、steps
を 20 に設定すると、トレーニングのサンプル数は、20 ステップとバッチサイズ 24 の積、つまり 480 トレーニング ステップになります。この場合、サンプルを 2 回実行するため、トレーニング プロセスにはエポックが 2 つあります。us-central1
では、トレーニング データセットに 240 のサンプルがあり、steps
を 15 に設定した場合、トレーニング サンプル数は 15 ステップとバッチサイズ 8 の積、つまり 120 トレーニング ステップになります。この場合、トレーニング ステップ数がサンプルの半分であるため、エポックが 0.5 個になります。 - LEARNING_RATE_MULTIPLIER: 推奨学習率に適用する乗数。推奨学習率を使用するには、
1.0
を使用します。 - EVAL_DATASET_URI: (省略可)バッチ予測と評価用の評価データセットを含む JSONL ファイルの URI。
chat-bison
では、評価はサポートされていません。詳細については、コードモデルをチューニングするためのデータセット形式をご覧ください。評価データセットには 10~250 個のサンプルが必要です。 - EVAL_INTERVAL: (省略可、デフォルト
20
)各評価間のチューニング ステップの数。評価間隔はチャットモデルではサポートされていません。評価は評価データセット全体で実行されるため、評価間隔が短いほどチューニング時間が長くなります。たとえば、steps
が 200 でEVAL_INTERVAL
が 100 の場合、評価指標のデータポイントは 2 つのみになります。このパラメータを使用するには、evaluation_data_uri
を設定する必要があります。 - ENABLE_EARLY_STOPPING: (省略可、デフォルトは
true
)boolean
。true
に設定すると、評価の実行でモデルのパフォーマンス(予測されたトークンの正確性)に十分な改善が見られなかった場合、すべてのチューニング ステップが完了する前にチューニングが停止します。false
の場合、すべてのチューニング ステップが完了するまでチューニングが続行されます。このパラメータを使用するには、evaluation_data_uri
を設定する必要があります。早期停止の有効化は、チャットモデルではサポートされていません。 - TENSORBOARD_RESOURCE_ID:(省略可)Vertex AI TensorBoard インスタンスの ID。Vertex AI TensorBoard インスタンスは、チューニング ジョブの完了後にテストを作成するために使用されます。Vertex AI TensorBoard インスタンスは、チューニング パイプラインと同じリージョンに存在する必要があります。
- ENCRYPTION_KEY_NAME:(省略可)データの暗号化に使用する顧客管理の暗号鍵(CMEK)の完全修飾名。CMEK は
us-central1
でのみ使用できます。us-central1
を使用して CMEK を指定しない場合は、Google が所有して管理する鍵が使用されます。その他のすべての利用可能なリージョンでは、Google が所有して管理する鍵がデフォルトで使用されます。詳細については、CMEK の概要をご覧ください。 - TEMPLATE_URI: 抽出テンプレートの URI(
https://us-kfp.pkg.dev/ml-pipeline/distillation/distillation/v1.0.0
)。 - SERVICE_ACCOUNT: (省略可)Vertex AI がパイプライン ジョブの実行に使用するサービス アカウント。デフォルトでは、プロジェクトの Compute Engine のデフォルト サービス アカウント(
PROJECT_NUMBER‑compute@developer.gserviceaccount.com
)が使用されます。詳細については、カスタム サービス アカウントの接続をご覧ください。
HTTP メソッドと URL:
POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
リクエストの本文(JSON):
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "model_display_name": "MODEL_DISPLAYNAME", "dataset_uri": "gs://DATASET_URI", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "teacher_model_reference":TEACHER_MODEL_REFERENCE , "student_model_reference":STUDENT_MODEL_REFERENCE , "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER, "evaluation_data_uri": "gs://EVAL_DATASET_URI", "evaluation_interval": EVAL_INTERVAL, "enable_early_stopping": ENABLE_EARLY_STOPPING, "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION", "tensorboard_resource_id": "TENSORBOARD_ID", "encryption_spec_key_name": "ENCRYPTION_KEY_NAME" } }, "encryptionSpec": { "kmsKeyName": "ENCRYPTION_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT", "templateUri": "TEMPLATE_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://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"
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://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。容量を節約するために、pipelineSpec
は切り捨てられています。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
コンソール
Google Cloud コンソールを使用してテキストモデルを抽出するには、次の操作を行います。
- Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
- [チューニングと抽出] タブをクリックします。
- [ 抽出モデルを作成する] をクリックします。
- モデルの詳細を構成します。
- モデル名: 抽出済みモデルの名前を入力します。
- 教師モデル: 教師モデルに使用するモデルを選択します。
- 生徒モデル: 生徒モデルに使用するモデルを選択します。
- リージョン: パイプライン チューニング ジョブが実行されるリージョンとチューニングされたモデルがデプロイされるリージョンを選択します。
- 作業ディレクトリ: モデルのチューニング時にアーティファクトが保存される Cloud Storage のロケーションを入力します。
- [詳細オプション] を開いて、詳細設定を構成します。
- トレーニングのステップ: モデルのチューニングのために実行するステップ数を入力します。デフォルト値は 300 です。バッチサイズは、チューニングを行うロケーションとモデルサイズによって異なります。8k モデル(
text-bison@002
、chat-bison@002
、code-bison@002
、codechat-bison@002
など)の場合:us-central1
のバッチサイズは 8 です。europe-west4
のバッチサイズは 24 です。
text-bison-32k
、chat-bison-32k
、code-bison-32k
、codechat-bison-32k
など)の場合:us-central1
のバッチサイズは 8 です。europe-west4
のバッチサイズは 8 です。
たとえば、
europe-west4
でtext-bison@002
をトレーニングする場合、トレーニング データセットに 240 のサンプルがあり、steps
を 20 に設定すると、トレーニングのサンプル数は、20 ステップとバッチサイズ 24 の積、つまり 480 トレーニング ステップになります。この場合、サンプルを 2 回実行するため、トレーニング プロセスにはエポックが 2 つあります。us-central1
では、トレーニング データセットに 240 のサンプルがあり、steps
を 15 に設定した場合、トレーニング サンプル数は 15 ステップとバッチサイズ 8 の積、つまり 120 トレーニング ステップになります。この場合、トレーニング ステップ数がサンプルの半分であるため、エポックが 0.5 個になります。 - 学習率の乗数: 各イテレーションのステップサイズを入力します。デフォルト値は 1 です。
- アクセラレータ タイプ: (省略可)モデルのチューニングに使用するアクセラレータのタイプを入力します。有効なオプションは次のとおりです。
GPU
: チューニングに 8 個の A100 80 GB GPU を使用します。割り当てが十分にあることを確認してください。GPU
を選択した場合、VPC‐SC がサポートされます。CMEK は、チューニングの場所とモデルのアップロード場所がus-centra1
の場合にサポートされます。詳しくは、管理対象のチューニング リージョンの設定をご覧ください。GPU
を選択すると、モデル チューニングの計算はus-central1
リージョンで行われます。TPU
: チューニングに TPU v3 Pod の 64 コアを使用します。割り当てが十分にあることを確認してください。CMEK はサポートされていませんが、VPC‐SC はサポートされています。TPU
を選択すると、モデル チューニングの計算はeurope-west4
リージョンで行われます。
- TensorBoard インスタンスを追加する:(省略可)Vertex AI TensorBoard インスタンスの ID。Vertex AI TensorBoard インスタンスは、チューニング ジョブの完了後にテストを作成するために使用されます。Vertex AI TensorBoard インスタンスは、チューニング パイプラインと同じリージョンに存在する必要があります。
- 暗号化: (省略可)Google が所有して管理する鍵または顧客管理の暗号鍵(CMEK)のいずれかを選択します。CMEK は
us-central1
リージョンでのみ暗号化に利用できます。他のすべての使用可能なリージョンでは、Google が所有して管理する鍵が使用されます。詳細については、CMEK の概要をご覧ください。 - サービス アカウント: (省略可)ユーザー管理のサービス アカウントを選択します。サービスコードがアクセスできる Google Cloud リソースはサービス アカウントにより決定されます。サービス アカウントを選択しない場合は、ほとんどのモデルに適した権限を含むサービス エージェントが使用されます。
- トレーニングのステップ: モデルのチューニングのために実行するステップ数を入力します。デフォルト値は 300 です。バッチサイズは、チューニングを行うロケーションとモデルサイズによって異なります。8k モデル(
- [続行] をクリックします。
- 抽出データセット ファイルをアップロードする場合は、
JSONL ファイルをアップロードする
- [JSONL ファイルの選択] で [参照] をクリックし、データセット ファイルを選択します。
- [データセットの場所] で [参照] をクリックし、データセット ファイルを保存する Cloud Storage バケットを選択します。
既存の JSONL ファイルを使用する
[Cloud Storage のファイルパス] で [参照] をクリックし、データセット ファイルがある Cloud Storage バケットを選択します。
[JSONL ファイルを Cloud Storage にアップロードする] を選択します。データセット ファイルがすでに Cloud Storage バケットにある場合、[ Cloud Storage 上の既存の JSONL ファイル] を選択します。 - (省略可)抽出モデルを評価するには、[モデル評価を有効にする] を選択して、モデル評価を構成します。
- 評価データセット: (省略可)バッチ予測と評価用の評価データセットを含む JSONL ファイルの URI。
codechat-bison
では、評価はサポートされていません。詳細については、コードモデルをチューニングするためのデータセット形式をご覧ください。評価データセットには 10~250 個のサンプルが必要です。 - 評価間隔: (省略可、デフォルトは
20
)各評価間のチューニング ステップの数。評価間隔はチャットモデルではサポートされていません。評価は評価データセット全体で実行されるため、評価間隔が短いほどチューニング時間が長くなります。たとえば、steps
が 200 でEVAL_INTERVAL
が 100 の場合、評価指標のデータポイントは 2 つのみになります。このパラメータを使用するには、evaluation_data_uri
を設定する必要があります。 - 早期停止を有効にする: (省略可、デフォルトは
true
)boolean
で、true
に設定すると、評価の実行間でモデルのパフォーマンス(予測されるトークンの正確性により測定されます)に十分な改善が見られなかった場合、すべてのチューニング ステップが完了する前にチューニングを停止します。false
の場合、すべてのチューニング ステップが完了するまでチューニングが続行されます。このパラメータを使用するには、evaluation_data_uri
を設定する必要があります。早期停止の有効化は、チャットモデルではサポートされていません。 - チェックポイントの選択を有効にする: 有効にすると、Vertex AI はチューニング ジョブ中に作成されたすべてのチェックポイントから、最適なモデル評価パフォーマンスを持つチェックポイントを選択して返します。無効にすると、チューニング ジョブ中に作成された最後のチェックポイントが返されます。各チェックポイントは、チューニング ジョブ中のモデルのスナップショットを参照します。
- TensorBoard インスタンス:(省略可)Vertex AI TensorBoard インスタンスの ID。Vertex AI TensorBoard インスタンスは、チューニング ジョブの完了後にテストを作成するために使用されます。Vertex AI TensorBoard インスタンスは、チューニング パイプラインと同じリージョンに存在する必要があります。
- 評価データセット: (省略可)バッチ予測と評価用の評価データセットを含む JSONL ファイルの URI。
- [抽出を開始] をクリックします。
推奨構成
タスクごとに基盤モデルを抽出するための推奨構成を、次の表に示します。
タスク | データセットのサンプル数 | ステップをトレーニング |
---|---|---|
分類 | 100+ | 200~1,000 |
要約 | 100~500 以上 | 1,000~1,500 |
抽出型の QA | 100+ | 200~800 |
トレーニング ステップでは、特定のデータセットに対して最高のパフォーマンスを得るために、複数の値(100、200、500 など)を試すことができます。
抽出されたモデルのリストを表示する
現在のプロジェクトに含まれるモデルのリスト(抽出されたモデルを含む)を表示するには、Google Cloud コンソール、または Vertex AI SDK for Python を使用します。
Python
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Vertex AI Python API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
コンソール
Google Cloud コンソールで抽出されたモデルを表示するには、[Vertex AI Model Registry] ページに移動します。
抽出されたテキストモデルを読み込む
次のサンプルコードでは、Vertex AI SDK for Python を使用して、抽出されたテキスト生成モデルを読み込みます。
import vertexai from vertexai.preview.language_models import TextGenerationModel model = TextGenerationModel.get_tuned_model(TUNED_MODEL_NAME)
TUNED_MODEL_NAME
は、抽出されるモデルの修飾リソース名に置き換えます。この名前は、projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
の形式です。抽出されるモデルのモデル ID は、Vertex AI Model Registry で確認できます。
チューニングと評価の指標
モデルのチューニングとモデルの評価の指標を収集して報告するよう、モデルのチューニング ジョブを構成できます。その後で、Vertex AI TensorBoard を使用してこれらの指標を可視化できます。
モデル チューニングの指標
モデルのチューニング ジョブを構成して、chat-bison
、code-bison
、codechat-bison
、text-bison
のチューニング指標を収集できます。
/train_total_loss
: トレーニング ステップでのチューニング データセットの損失。/train_fraction_of_correct_next_step_preds
: トレーニング ステップでのトークンの精度。1 回の予測は一連のトークンで構成されます。この指標は、チューニング用データセットのグラウンド トゥルースと比較したときに予測される、トークンの精度を測定します。/train_num_predictions:
トレーニング ステップで予測されるトークンの数。
モデル評価の指標
モデルのチューニング ジョブを構成して、code-bison
と text-bison
について次の評価指標を収集できます。
/eval_total_loss
: 評価ステップでの評価データセットの損失。/eval_fraction_of_correct_next_step_preds
: 評価ステップでのトークンの精度。1 回の予測は一連のトークンで構成されます。この指標は、評価データセットのグラウンド トゥルースと比較したときに予測される、トークンの精度を測定します。/eval_num_predictions
: 評価ステップで予測されるトークンの数。
指標の可視化は、モデルのチューニング ジョブの完了後に利用できます。チューニング ジョブの作成時に Vertex AI TensorBoard のインスタンス ID のみを指定し、評価データセットを指定しなかった場合、チューニング指標の可視化のみを使用できます。