agent-platform-tuning-management について
Python SDKでAgent PlatformのGenAIチューニングジョブを管理する手順スキルです。ジョブの一覧表示や詳細確認、実行中ジョブのキャンセルを扱い、中断前には明示的な確認を求めます。
主な機能
- 01チューニングジョブの一覧表示
- 02ジョブの状態と詳細の確認
- 03確認後の実行中ジョブのキャンセル
- 04Google Cloud環境のセットアップ案内
活用シーン
- 01実行中のチューニングジョブの検索
- 02チューニング実行の状態確認
- 03確認後の長時間実行ジョブの停止
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google/ skills --skill agent-platform-tuning-managementインストール後、Claude Code で/agent-platform-tuning-managementを入力して読み込まれたか確認します。
詳細
エージェントプラットフォームのチューニング管理
このスキルでは、Agent Platform Python SDK を使用して GenAI チューニングジョブを管理する方法を説明します。チューニング実行のステータスを確認したい場合、実行中のチューニングジョブを探したい場合、または時間がかかりすぎているジョブをキャンセルしたい場合に、このスキルを使用します。
安全性と確認の段階(重大)
ユーザーに代わってコマンドを実行する前に、要求された操作に応じて、以下の安全性の段階を必ず遵守してください。
- 段階 R:読み取り専用(
list、get)- ルール:確認は不要です。ユーザーへの情報収集のため、これらのコマンドをただちに実行できます。
- 段階 D:破壊的・中断を伴う操作(
cancel)- ルール:キャンセルは段階 D の操作であり、明示的なテキスト入力による確認(例:「確認しました」または「はい、キャンセルしてください」)が必要です。
- ドライラン確認カードに必須の項目:チューニングジョブをキャンセルする前に、以下を明確に記載したドライランの確認プレビューを必ず提示してください。
- 対象リソース:チューニングジョブの完全なリソース名または ID(例:
projects/<PROJECT_ID>/locations/<REGION>/tuningJobs/<JOB_ID>)。 - コマンド/スクリプト:実行する正確なキャンセルコマンドまたは Python コード。
- 予想される影響:実行中のチューニングジョブが停止します。進行中のトレーニングは中断され、再開できません。
- ユーザーに明示的な確認を求めてください(例:「確認しますか?『確認しました』または『はい、キャンセルしてください』と返信してください。」)。
- 対象リソース:チューニングジョブの完全なリソース名または ID(例:
- 同一ターン内の実行禁止:プレビューカードを提示したターンと同じターンで、キャンセルを実行してはいけません。直ちに処理を止め、新しいターンでユーザーが確認するまで待ってください。ユーザーが事前に確認していた場合(例:「はい、確認しました。チューニングジョブをキャンセルしてください……」)や、修正したジョブ ID を提示した場合でも、その特定のジョブ ID のドライランプレビューを必ず提示し、別のターンで確認を得てからキャンセルを実行してください。
フェーズ 0:環境のセットアップ
重大:以下の Python スニペットを実行する前に、次の手順に従って環境が正しく初期化されていることを必ず確認してください。
-
Google Cloud 認証:Google Cloud アカウントで認証し、Agent Platform にアクセスするためのアクティブな Application Default Credentials(ADC)を設定します。
gcloud auth login gcloud auth application-default login -
Python の依存関係:このスキルには
google-cloud-aiplatformが必要です。仮想環境は作成しないでください。仮想環境は空の状態で始まり、環境がすでに提供しているパッケージを隠してしまうため、不要なインストールが発生します。必要なものだけを確認し、インストールしてください。python3 -c "import vertexai" || pip install google-cloud-aiplatform -
実行:Python スニペットは通常の
python3で実行します。先に有効化する環境はありません。
ワークフローの判断ツリー
-
情報の確認:プロジェクト ID とリージョンはわかっていますか?
- いいえ -> 不足しているプロジェクト ID とリージョンをテキストでユーザーに尋ねるか、gcloud の設定を確認するよう案内してください。どちらの場所にもこの情報がない場合は、ユーザーに情報の提供を求めてください。独自に無作為なリージョンを検索してはいけません。
- はい -> ステップ 2 に進みます。
-
タスクの種類:ユーザーは何をしたいですか?
- ジョブを検索または一覧表示する -> Python SDK を使用してチューニングジョブを一覧表示します。(段階 R)
- ステータスを確認する/特定のジョブを調査する -> Python SDK を使用してチューニングジョブの詳細を取得します。(段階 R)
- ジョブをキャンセルする -> 確認を求めてから、Python SDK を使用してチューニングジョブをキャンセルします。(段階 D)
Python SDK の使用
メモ
リソースの確認とプロジェクト/ジョブが見つからない場合: Python スニペットの実行に失敗し、エラー(
403 Permission Denied、404 Not Found、INVALID_ARGUMENT、またはダミーのプロジェクト ID やジョブ ID、存在しないプロジェクト ID やジョブ ID を示すエラーなど)が発生した場合、プロジェクトまたはチューニングジョブが存在しないか、アクセスできないことを必ずユーザーに伝えてください。有効な Project ID または Job ID を提示するよう必ずユーザーに求め、回答を待つためにツールの実行を直ちに停止してください。再試行したり、ループしたりしてはいけません。リソースが有効だと決めつけたり、ユーザーから有効な情報を受け取る前に追加のスクリプトを実行したりしてもいけません。
1. チューニングジョブの一覧表示(Tier R)
ユーザーが「実行中のチューニングジョブはありますか?」と尋ねた場合、または特定のジョブ ID を探したい場合:
from google.cloud import aiplatform_v1
project_id = "YOUR_PROJECT_ID"
region = "YOUR_REGION"
parent = f"projects/{project_id}/locations/{region}"
client = aiplatform_v1.GenAiTuningServiceClient(
client_options={"api_endpoint": f"{region}-aiplatform.googleapis.com"}
)
jobs = client.list_tuning_jobs(parent=parent)
for job in jobs:
print(f"Name: {job.name}")
print(f"Base Model: {job.base_model}")
print(f"State: {job.state}")
list_tuning_jobs は page_size キーワードを受け取りません。設定するには、リクエストを渡してください:
client.list_tuning_jobs(request={"parent": parent, "page_size": 50})。
2. 特定のジョブの詳細を取得する(Tier R)
ユーザーが Tuning Job ID を提示し、そのステータスを尋ねた場合:
from google.cloud import aiplatform_v1
project_id = "YOUR_PROJECT_ID"
region = "YOUR_REGION"
job_id = "YOUR_JOB_ID" # 19-digit ID
name = f"projects/{project_id}/locations/{region}/tuningJobs/{job_id}"
client = aiplatform_v1.GenAiTuningServiceClient(
client_options={"api_endpoint": f"{region}-aiplatform.googleapis.com"}
)
job = client.get_tuning_job(name=name)
print(f"Name: {job.name}")
print(f"Base Model: {job.base_model}")
print(f"State: {job.state}")
print(f"Tuning Model: {job.tuned_model_display_name}")
3. ジョブをキャンセルする(Tier D)
ユーザーが実行中のチューニングジョブの停止、中止、またはキャンセルを明示的に要求した場合:
安全性の確認:続行する前に、ユーザーが明示的に入力して確認する必要があります。 対象リソース、コマンド/スクリプト、予想される影響を記載したドライランの確認カードを提示し、「I confirm」または「Yes, cancel it」と入力するようユーザーに求めてください。ユーザーが事前に確認の意思を示していた場合や、修正後または新しいジョブ ID を提示している場合でも、その特定のジョブ ID に対するプレビューカードを提示し、新しいターンで明示的な承認が得られるまで待つ必要があります。
重要
新しいターンでユーザーの返答を受け取る前に、キャンセルのコードやコマンドを実行しては絶対にいけません。 確認が得られると推測したり、決めつけたりしてはなりません。プレビューカードを提示したのと同じターン内にキャンセルを実行することは、重大な安全違反です。
from google.cloud import aiplatform_v1
project_id = "YOUR_PROJECT_ID"
region = "YOUR_REGION"
job_id = "YOUR_JOB_ID" # 19-digit ID
name = f"projects/{project_id}/locations/{region}/tuningJobs/{job_id}"
client = aiplatform_v1.GenAiTuningServiceClient(
client_options={"api_endpoint": f"{region}-aiplatform.googleapis.com"}
)
client.cancel_tuning_job(name=name)
print(f"Successfully requested cancellation for {name}")