Translation LLM モデルを作成して管理する
このドキュメントでは、カスタム Translation LLM モデルをチューニングして使用する方法について説明します。
始める前に
始める前に、教師ありファインチューニング データセットを準備する必要があります。ユースケースに応じて、要件は異なります。
- チューニング用のテキスト データセットを準備する: テキスト チューニング
Vertex AI API を有効にする
カスタム TLLM モデルをチューニングするには、次の操作を行う必要があります。
Vertex AI API を有効にします。
API を有効にするために必要なロール
API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法をご確認ください。
サポートされているモデル
translation-llm-002(テキスト チューニングをサポート。プレビュー版)
チューニング ジョブを作成する
教師ありファインチューニング ジョブは、REST API または Google Gen AI SDK を使用して作成できます。
REST
モデルのチューニング ジョブを作成するには、tuningJobs.create メソッドを使用して POST リクエストを送信します。一部のパラメータは、すべてのモデルでサポートされているわけではありません。チューニングするモデルに適用可能なパラメータのみを含めるようにしてください。
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: PROJECT_ID。
- TUNING_JOB_REGION: チューニング ジョブを実行するリージョン。これは、チューニング済みのモデルをアップロードするデフォルトのリージョンでもあります。サポートされているリージョン:
us-central1 - BASE_MODEL: チューニングする翻訳モデルの名前。サポートされる値は
translation-llm-002です。 - TRAINING_DATASET_URI: トレーニング データセットの Cloud Storage URI。データセットは JSONL ファイル形式でなければなりません。最適な結果を得るには、少なくとも 100 ~ 500 個のサンプルを含めます。詳細については、教師ありチューニング データセットについてをご覧ください。
- VALIDATION_DATASET_URI省略可。検証データセット ファイルの Cloud Storage URI。
- TUNED_MODEL_DISPLAYNAME: 省略可。チューニングされたモデルの表示名。設定されていない場合は、ランダムな名前が生成されます。
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",
},
"tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME"
}
リクエストを送信するには、次のいずれかのオプションを選択します。
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
チューニング ジョブのリストを表示する
現在のプロジェクトのチューニング ジョブのリストを表示するには、 Google Cloud コンソール、
Google Gen AI SDK を使用するか、tuningJobs メソッドを使用して GET リクエストを送信します。
REST
モデルのチューニング ジョブのリストを表示するには、tuningJobs.list メソッドを使用して GET リクエストを送信します。
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト 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
コンソール
コンソールで Google Cloud チューニング ジョブを表示するには、 [Agent Platform Studio] ページに移動します。
[Agent Platform Studio] に移動
[Translation LLM tuned models] セクションの表に表示されている Translation LLM チューニング ジョブを確認します。
チューニング ジョブの詳細を取得する
現在のプロジェクトのチューニング ジョブの詳細を取得するには、
コンソール、Google Gen AI SDK を使用するか、 Google Cloud
メソッドを使用して GET リクエストを送信します。tuningJobs
REST
モデルのチューニング ジョブのリストを表示するには、tuningJobs.get メソッドを使用して GET リクエストを送信し、TuningJob_ID を指定します。
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト 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
コンソール
チューニング済みモデルの詳細を Google Cloud コンソールで表示するには、 [Agent Platform Studio] ページに移動します。
[Agent Platform Studio] に移動
[Translation LLM tuned models] の表でモデルを見つけて、[詳細] をクリックします。
モデルの詳細が表示されます。
チューニング ジョブをキャンセルする
現在のプロジェクトのチューニング ジョブをキャンセルするには、 Google Cloud コンソール、
Google Gen AI SDK を使用するか、tuningJobs メソッドを使用して POST リクエストを送信します。
REST
モデルのチューニング ジョブのリストを表示するには、tuningJobs.cancel メソッドを使用して GET リクエストを送信し、TuningJob_ID を指定します。
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト 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
コンソール
コンソール Google Cloud でチューニング ジョブをキャンセルするには、 [Agent Platform Studio] ページに移動します。
[Agent Platform Studio] に移動
[Translation tuned models] の表で、 [実行を管理] をクリックします。
[キャンセル] をクリックします。
モデルに関する情報を取得する
トレーニングが完了すると、モデル ID などのモデルに関する情報を取得できます。
使用可能なモデルの一覧を表示するには、[Agent Platform Studio] ページに移動します。
[Agent Platform Studio] に移動
チューニング済みモデルを使用する
次の例では、モデル ID が 1395675701985363739 のカスタムモデルを使用してテキストを翻訳します。カスタム Translation LLM を使用するには、モデル ID として
models/translation-llm-custom/{model-id}
を指定します。
翻訳に使用するモデルを指定するには、
model
クエリ パラメータを使用します。
REST
リクエストのデータを使用する前に、 次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION: カスタムモデルが配置されているリージョン(
us-central1など)。
HTTP メソッドと URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:translateText
リクエストの本文(JSON):
{
"model": "projects/PROJECT_ID/locations/LOCATION/model/translation-llm-custom/1395675701985363739",
"sourceLanguageCode": "en",
"targetLanguageCode": "ru",
"contents": ["Dr. Watson, please discard your trash. You've shared unsolicited email with me.
Let's talk about spam and importance ranking in a confidential mode."]
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:translateText"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:translateText" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"translation": {
"translatedText": "Доктор Ватсон, пожалуйста, откажитесь от своего мусора.
Вы поделились нежелательной электронной почтой со мной. Давайте поговорим о
спаме и важности рейтинга в конфиденциальном режиме.",
"model": "projects/PROJECT_NUMBER/locations/LOCATION/model/translation-llm-custom/1395675701985363739"
}
}
Python
チューニングと検証の指標
モデルのチューニングとモデルの評価の指標を収集して報告するよう、モデルのチューニング ジョブを構成できます。その後、Agent Platform Studio でこれらの指標を可視化できます。
チューニング済みモデルの詳細を Google Cloud コンソールで表示するには、 [Agent Platform Studio] ページに移動します。
[Agent Platform Studio] に移動
[チューニングと抽出] テーブルで、指標を表示する調整済みモデル の名前をクリックします。
チューニング指標は [モニタリング] タブに表示されます。
モデル チューニングの指標
モデルのチューニング ジョブは、translation-llm-002 について次のチューニング指標を自動的に収集します。
/train_total_loss: トレーニング ステップでのチューニング データセットの損失。/train_fraction_of_correct_next_step_preds: トレーニング ステップでのトークンの精度。単一の推論は、一連の予測されるトークンで構成されます。この指標は、チューニング用データセットのグラウンド トゥルースと比較したときに予測されるトークンの精度を測定します。/train_num_predictions:トレーニング ステップで予測されるトークンの数。
モデル検証の指標
モデルのチューニング ジョブを構成して、translation-llm-002 について次の検証指標を収集できます。
/eval_total_loss: 検証ステップでの検証データセットの損失。/eval_fraction_of_correct_next_step_preds: 評価ステップでのトークンの精度。単一の推論は、一連の予測されるトークンで構成されます。この指標は、検証データセットのグラウンド トゥルースと比較したときに予測されるトークンの精度を測定します。/eval_num_predictions: 検証ステップで予測されるトークンの数。
指標の可視化は、チューニング ジョブの実行が開始された後に利用できます。 チューニングの進捗に応じてリアルタイムで更新されます。 チューニング ジョブの作成時に検証データセットを指定しなかった場合、チューニング指標の可視化のみを行うことができます。
次のステップ
- 生成 AI ナレッジベースを構築するソリューションで教師ありファインチューニングを使用する方法について、ジャンプ スタート ソリューション: 生成 AI ナレッジベースを確認する。