mcpField
H
huawei-cloud-modelarts-training-management

huawei-cloud-modelarts-training-management

github.com/huaweicloudクラウド・DevOps59121 回インストール2 日前に更新
リポジトリ

huawei-cloud-modelarts-training-management について

hcloud CLIを通じてHuawei Cloud ModelArtsのトレーニングジョブと関連リソースを管理するスキルです。ジョブ、アルゴリズム、実験、ハイパーパラメーター検索、モデルのインポート、イメージ保存を扱い、書き込み操作には安全確認を設けています。

主な機能

  1. 01ジョブと関連リソースの管理
  2. 02アルゴリズム、タグ、実験の管理
  3. 03イベント、段階、タスクの照会
  4. 04ハイパーパラメーター検索とモデルのインポート
  5. 05トレーニングイメージ保存タスクの作成
  6. 06書き込み前の確認と安全チェック

活用シーン

  1. 01トレーニングジョブの作成や確認
  2. 02アルゴリズムや実験の管理
  3. 03ジョブイベントやログの確認
  4. 04モデルのインポートやイメージ保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-modelarts-training-management

インストール後、Claude Code で/huawei-cloud-modelarts-training-managementを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
api-paths.md
cli-command-examples.md
cli-installation-guide.md
dataflow-diagram.md
iam-policies.md
known-issues.md
pricing-inquiry.md
verification-method.md
scripts/
query-pricing.sh

詳細

Huawei Cloud ModelArts トレーニング管理

hcloud CLI を介した ModelArts トレーニングジョブと関連リソースのライフサイクル全体管理 — 8 つの機能領域にわたる 52 の API インターフェース。


概要

このスキルでは、hcloud CLI を通じて Huawei Cloud ModelArts のトレーニングジョブと関連リソースを管理できます。トレーニングジョブの CRUD、アルゴリズム管理、トレーニング実験、自動探索(ハイパーパラメーター調整)、モデルのインポート、トレーニングイメージの保存など、トレーニングのライフサイクル全体を網羅しています。

アーキテクチャ
User Request → Agent → hcloud ModelArts <Operation> --cli-region={region} [--params] → Huawei Cloud ModelArts API
対応するシナリオ
  • トレーニングジョブ管理:トレーニングジョブの作成、一覧表示、詳細表示、停止、削除。ログ、メトリクス、エンジン、フレーバー、クォータの照会
  • アルゴリズム管理:トレーニングアルゴリズムの作成、一覧表示、詳細表示、更新、削除。ギャラリーへの公開
  • トレーニングジョブのタグ:トレーニングジョブのタグの作成、詳細表示、削除
  • トレーニング実験:トレーニング実験の作成、一覧表示、詳細表示、更新、削除、確認
  • トレーニングジョブのイベント:ジョブイベント、ステージ、タスクの照会。システムイベントとスケジュール済みイベントの一覧表示
  • モデルのインポート:AI モデルのインポート、一覧表示、詳細表示、削除。ModelArts エージェンシーの作成
  • 自動探索:ハイパーパラメーター探索の試行、パラメーター分析、yaml テンプレートの照会
  • トレーニングイメージの保存:トレーニングジョブのイメージ保存タスクの作成と照会

前提条件

  1. hcloud CLI がインストールされ、認証済みであること — 参考:https://support.huaweicloud.com/qs-hcli/hcli_02_003.html
  2. Huawei Cloud AK/SK が hcloud で設定されていること(下記の「セキュリティと認証情報の確認」を参照)
  3. 対象リージョンで ModelArts サービス が有効になっていること
  4. IAM 権限 — references/iam-policies.md を参照してください
セキュリティと認証情報の確認

⚠️ 重大:このセクションではエージェントのセキュリティ境界を定義します。厳守してください。

🔒 セキュリティルール(必須)
  • 🚫 AK/SK の値を読み取ったり、表示したり、出力したりすることは絶対にしないでください(例:cat ~/.hcloud/config.json、echo $HW_ACCESS_KEY は禁止)
  • 🚫 ~/.hcloud/config.json などの認証情報ファイルや、シークレットが含まれている可能性があるファイルを読み取ったり、cat したりすることは絶対にしないでください
  • 🚫 会話やコマンドラインで AK/SK を直接入力するようユーザーに求めることは絶対にしないでください
  • 🚫 hcloud configure set --cli-access-key=... --cli-secret-key=... を実行することは絶対にしないでください — 認証情報の設定はユーザーの責任であり、エージェントセッションの外で行います
  • 🚫 すべての API 呼び出しで --cli-access-key/--cli-secret-key を渡すことは絶対にしないでください — リクエストの処理中、プロセス一覧(ps aux)に値が表示されます
  • ✅ 認証情報の状態を確認するには、必ず hcloud configure list を使用してください(値ではなく、設定の有無のみを確認)
  • ✅ 有効なプロファイルがない場合は、停止して、このセッションの外で認証情報を設定するようユーザーに案内してください
  • ✅ メインアカウントではなく、最小限の権限を持つ IAM ユーザーの使用を推奨してください
✅ エージェントによる認証情報の確認(許容される唯一の確認方法)
# Step 1: Check credential status — presence only, not values
hcloud configure list
  • ✅ 想定される結果:mode: AKSK を含む有効なプロファイルが表示される

  • ❌ 空または無効な場合 → 以下の 3 ステップの手順をユーザーに案内してください。

    手順(ユーザー向けコピー&ペースト用):

    「有効な認証情報が見つかりませんでした。ターミナルで以下の 3 つの手順を実行してください。」

    ① AK/SK を取得する Huawei Cloud コンソール にログインし、IAM → アクセスキーに進みます。アクセスキーがない場合は、「アクセスキーの作成」をクリックし、安全な場所に保存してください。

    ② ターミナルで以下を実行する(初回のみの設定):

    hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>
    

    (①の手順で取得した値に <YOUR_AK> と <YOUR_SK> を置き換えてください)

    ③ 戻って「設定済み」と伝えてください。 動作を確認します。

    注:configure set コマンドは、認証情報を ~/.hcloud/config.json に保存します。その後、すべての hcloud コマンドで認証情報が自動的に使用されるため、AK/SK を再度渡す必要はありません。

    エージェント:configure set コマンドは絶対に実行しないでください。

🔧 ユーザーの責任(ドキュメント用であり、エージェントによる実行ではありません)

ユーザーはエージェントセッションの外部(自身のターミナル)で認証情報を設定します。

# One-time setup — run this in your terminal, NOT in the agent chat
HISTCONTROL=ignorespace
 hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>

⚠️ 注:hcloud CLI は HW_ACCESS_KEY/HW_SECRET_KEY 環境変数を読み取りません(これらは Python SDK 専用です)。サポートされている認証情報の設定方法は hcloud configure set のみです。


ワークフロー

ステップ 1:操作を特定する

ユーザーのリクエストに基づいて、必要なトレーニング操作を判断します。

ユーザーの意図操作カテゴリ
トレーニングジョブの作成/一覧表示/詳細表示/停止/削除トレーニングジョブ管理
アルゴリズムの作成/一覧表示/詳細表示/更新/削除アルゴリズム管理
トレーニングジョブタグの作成/表示/削除トレーニングジョブタグ
実験の作成/一覧表示/詳細表示/更新/削除トレーニング実験
ジョブのイベント、ステージ、タスクの照会トレーニングジョブイベント
モデルのインポート/一覧表示/詳細表示/削除モデルインポート
自動検索の試行、パラメーター分析の照会自動検索
トレーニングジョブのイメージを保存トレーニングイメージ保存
ステップ 2:CLI コマンドを実行する
hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]

{region} は、実際のリージョン(例:cn-north-4)に置き換える必要があります。リージョンをハードコードしないでください。

ステップ 2.5:⚠️ 実行前チェック(書き込み操作では必須)

書き込み操作(作成/更新/削除/停止/変更/パッチ/通知/承認)を実行する前に、必ず次の操作を行ってください。

  1. references/known-issues.md を読みます — 対象 API に関連するセクションを確認します
  2. 文書化されている回避策を適用します — 特に、次のリスクの高い操作に注意してください。
操作重大な問題必要な対応
CreateTrainingJobv2 の kind/metadata/spec/tasks 形式を使用する必要がありますv2 の JSON 構造で --cli-jsonInput を使用します
CreateTrainingJob(専用プール)専用プールでは flavor_id は受け付けられませんflavor_id を省略し、代わりに pool_id を指定します
CreateAlgorithmJSON では metadata と job_config をネストした構造にする必要があります正しいネスト構造で --cli-jsonInput を使用します(known-issues #27 を参照)
CreateAlgorithmOBS のコードディレクトリが存在し、アクセス可能である必要がありますAPI 呼び出しの前に OBS パスを確認します
StopTrainingJobcreating/waiting/running 状態のジョブのみ停止できます先にジョブのステータスを確認します
CreateModelsource_location の形式は obs://bucket/path/ である必要がありますOBS パスの形式を確認します
CreateModelmodel_type は有効な値である必要があります有効な値について known-issues #22 を確認します
CreateSaveImageJobジョブが running 状態である必要があります。SWR 名前空間も必要ですジョブのステータスと SWR 設定を確認します
ChangeAlgorithm--metadata.name パラメーターを含める必要がありますリクエストに metadata.name を追加します
NotifyTrainingJobInformationパラメーター名が API ドキュメントと異なりますknown-issues #24 を確認します
UpdateTrainingJob有効な CLI 操作ではありません代わりに ChangeTrainingJob を使用します

この手順を省略すると、回避可能なエラーが発生します。 表中の問題はすべて、実際の API テストを通じて確認されたものです。

ステップ 3:料金の照会(課金対象の操作の場合)

課金対象の書き込み操作(パブリックリソースプールでの CreateTrainingJob、CreateTrainingExperiment)を実行する前に、BSS で料金を照会し、見積もり費用をユーザーに提示します。

📖 料金照会の詳しい手順については、references/pricing-inquiry.md をお読みください。

課金対象の操作
操作照会の要否条件
CreateTrainingJob✅ はいパブリックリソースプールを使用する場合(pool_id を指定しない)
CreateTrainingJob❌ いいえ専用リソースプールを使用する場合(pool_id を指定 — プールはすでに課金されています)
CreateTrainingExperiment✅ はい実験によっては、コンピューティング費用が発生するトレーニングジョブが起動される場合があります
その他すべての操作❌ いいえ読み取り操作、削除、停止、タグなどでは料金は発生しません
照会ワークフロー
1. Detect chargeable operation (CreateTrainingJob without pool_id)
2. Extract flavor_id from spec.resource.flavor_id parameter
3. Get project ID via IAM KeystoneListAuthProjects
4. Call BSS ListOnDemandResourceRatings to query on-demand price
5. Calculate estimated cost: unit_price × node_count × estimated_duration
6. Display price table and cost estimate to user
7. Proceed to Step 4 (user confirmation) after showing pricing info
すばやく料金を照会する

料金をすばやく照会するには、ヘルパースクリプトを使用します。

# Query single flavor
bash scripts/query-pricing.sh --region cn-north-4 --flavor modelarts.bm.gpu.v100

# Query multiple flavors for comparison
bash scripts/query-pricing.sh --region cn-north-4 --flavor modelarts.bm.gpu.v100 --flavor modelarts.cpu.8u32g --flavor modelarts.bm.ascend910
BSS 照会パラメーター(固定)
パラメーター値説明
cloud_service_typehws.service.type.modelartsModelArts のサービス種別
resource_typehws.resource.type.modelartsModelArts のリソース種別
usage_measure_id4時間(課金単位)
size_measure_id14インスタンス数
BSS API リージョンcn-north-1BSS API では常に cn-north-1 を使用します
ステップ 4:書き込み操作を処理する

すべての書き込み操作(作成/更新/削除/停止/変更/パッチ適用/通知/承諾/一括処理)では、実行前にユーザーに確認を求めてください。課金対象の操作では、確認時にステップ 3 の料金情報を確認します。

ステップ 5:コンソール URL を生成する(CreateTrainingJob の後)

トレーニングジョブの作成に成功したら、ユーザーがウェブコンソールでジョブの詳細に直接アクセスできるよう、ModelArts コンソール URLを生成して表示します。

URL 形式

トレーニングジョブの詳細ページ(CreateTrainingJob の後):

https://console.huaweicloud.com/modelarts/?region={region}#/training/detail/{job_id}

トレーニングジョブの一覧ページ(ListTrainingJobs の後):

https://console.huaweicloud.com/modelarts/?region={region}#/training
コンポーネント説明例
{region}ジョブが作成されたリージョンcn-north-4
{job_id}CreateTrainingJob から返されるトレーニングジョブ ID39cefbeb-0d86-46cb-a55a-fe6a62f3529b

重要:詳細ページには #/training/detail/{job_id}、一覧ページには #/training を使用してください(新しいコンソールのパス)。#/trainingJobs/details/{job_id} や #/trainingJobs は使用しないでください。これらは廃止された古いコンソールのパスです。

ワークフロー
1. CreateTrainingJob returns job_id in the response
2. Construct console URL: https://console.huaweicloud.com/modelarts/?region={region}#/training/detail/{job_id}
3. Display the URL to the user with a summary of the created job
出力例
✅ Training job created successfully!

  Job Name:    my-training-job
  Job ID:      39cefbeb-0d86-46cb-a55a-fe6a62f3529b
  Status:      creating
  Region:      cn-north-4

  🔗 Console URL:
  https://console.huaweicloud.com/modelarts/?region=cn-north-4#/training/detail/39cefbeb-0d86-46cb-a55a-fe6a62f3529b

注:コンソール URL ではハッシュルーティング(#/training/detail/{job_id})を使用します。古いパス #/trainingJobs/details/{job_id} は使用しないでください。廃止されたコンソールページにリダイレクトされます。トレーニングジョブが存在し、ユーザーにそのリージョンの ModelArts へのアクセス権限がある限り、URL は有効です。


KooCLI コマンド形式の標準

hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]
機能説明例
サービス名固定:ModelArtsModelArts
操作名パスカルケースListTrainingJobs、CreateTrainingJob
リージョンパラメーター--cli-region={region}--cli-region=cn-north-4
単純なパラメーター--key=value--training_job_id=xxx
インデックス付きパラメーター--key.1=value1--tasks.1.role=worker
project_id省略した場合は自動解決設定済みのプロジェクト ID を使用

注:--project_id を省略すると、認証情報から自動的に解決されます。特定のプロジェクトを対象にする場合に限り、明示的に指定してください。

複雑なパラメーター:複雑なネストされたパラメーター(例:config、spec)には、--cli-jsonInput=/path/to/file.json を使用してください。JSON ファイルでは、本文を {"body": {...}} のエンベロープで囲む必要があります。


主なコマンド

8 つの機能ドメインにわたる CLI コマンド例 52 件は、別のリファレンスファイルに記載されています。

📖 詳細なコマンド構文、パラメーター、例については、references/cli-command-examples.md を参照してください。

クイックインデックス
#ドメインAPI主な操作
1トレーニングジョブ管理14CreateTrainingJob, ListTrainingJobs, ShowTrainingJobDetails, StopTrainingJob, DeleteTrainingJob, ShowTrainingJobLogs/Metrics/Engines/Flavors/Quotas
2アルゴリズム管理7CreateAlgorithm, ListAlgorithms, ShowAlgorithmByUuid, ChangeAlgorithm, DeleteAlgorithm, ShowSearchAlgorithms, CreateAlgorithmVersionToGallery
3トレーニングジョブのタグ3CreateTrainJobTags, ShowTrainJobTags, DeleteTrainJobTags
4トレーニング実験6CreateTrainingExperiment, List/Show/Delete/Change/Check experiments
5トレーニングジョブのイベント7ListTrainingJobEvents/Stages/Tasks, ListEvents/Categories/ScheduledEvents, AcceptScheduledEvent
6モデルのインポート6CreateModel, ListModels, ShowModel, DeleteModel, ShowModelEngineAndRuntime, CreateModelArtsAgency
7自動探索7ShowAutoSearchTrials/PerTrial/ParamsAnalysis/YamlTemplates, ShowAutoSearchTrialEarlyStop
8トレーニングイメージの保存2CreateSaveImageJob, ShowSaveImageJob

コマンドを実行する際は、正確なパラメーター名、必須/任意のフラグ、使用パターンについて、必ずリファレンスファイルを参照してください。


対応範囲の境界(能力境界)

このスキルが対応するのは、ModelArts のトレーニング管理のみです。対象は8つの機能ドメインにわたる52のAPIです(上記のコアコマンドを参照)。以下のModelArts機能には対応していません。

未対応のドメイン操作例推奨事項
Notebook(開発環境)CreateNotebook, ListNotebooks, ShowNotebookModelArtsコンソールまたは専用のNotebookスキルを使用してください
推論サービス(オンラインサービス)CreateService, ListServices, ShowServiceModelArtsコンソールまたは推論スキルを使用してください
リソースプール/クラスターCreateResourcePool, ListResourcePoolsModelArtsコンソールを使用してください
ワークフローのオーケストレーションCreateWorkflow, ListWorkflowsModelArtsコンソールを使用してください
イメージ管理(SWR)ListImages, ShowImageSWRコンソールまたはCLIを直接使用してください
DevServerCreateDevServer, ListDevServersModelArtsコンソールを使用してください
ワークスペース管理CreateWorkspace, ListWorkspacesModelArtsコンソールを使用してください

上記の未対応機能についてリクエストを受けた場合は、このスキルでは対応していないことを明確にユーザーへ伝え、ModelArtsコンソール(https://console.huaweicloud.com/modelarts/)または該当する専用スキルの使用を提案してください。


パラメーターの確認

パラメーター必須説明例
{region}はいHuawei Cloudのリージョンcn-north-4, cn-east-3
{training_job_id}ジョブ操作トレーニングジョブのUUIDxxx-xxx-xxx
{algorithm_id}アルゴリズム操作アルゴリズムのUUIDxxx-xxx-xxx
{experiment_id}実験操作トレーニング実験のUUIDxxx-xxx-xxx
{model_id}モデル操作モデルのUUIDxxx-xxx-xxx
{job_id}SaveImage操作イメージ保存ジョブのUUIDxxx-xxx-xxx
{project_id}いいえ(自動)プロジェクトID。省略すると自動的に解決されますデフォルトを使う場合は省略
{workspace_id}いいえワークスペースIDデフォルトのワークスペースを使う場合は省略

SDKへのフォールバック

CLIの不具合によりCLI操作が失敗した場合は、SDKにフォールバックしてください。

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmodelarts.v2.modelarts_client import ModelArtsClient
from huaweicloudsdkmodelarts.v2.region.modelarts_region import ModelArtsRegion

credentials = BasicCredentials(ak="{AK}", sk="{SK}", project_id="{project_id}")
client = ModelArtsClient.new_builder() \
    .with_credentials(credentials) \
    .with_region(ModelArtsRegion.value_of("{region}")) \
    .build()

参考ドキュメント

ドキュメント説明
references/cli-command-examples.md52 個すべての API の詳細な CLI コマンド構文と例
references/pricing-inquiry.mdトレーニングジョブの BSS 従量課金料金照会(作成前のコスト見積もり)
references/iam-policies.md最小権限の IAM ポリシー
references/verification-method.md検証およびテスト方法
references/dataflow-diagram.mdMermaid データフロー図
references/acceptance-criteria.md受け入れ基準チェックリスト
references/api-paths.mdSDK ソース内の REST API パス
references/cli-installation-guide.mdCLI のインストールと認証ガイド
references/known-issues.md既知の問題と回避策

既知の問題の概要

  • 複雑なネストされたパラメーター:CreateTrainingJob、CreateAlgorithm、CreateModel などでは、JSON ファイルを指定して --cli-jsonInput を使用してください。
  • --cli-jsonInput の構文:ファイルパスを直接指定してください(@ 接頭辞は不要です)。JSON は {"body": {...}} でラップする必要があります。
  • トレーニングジョブのログ:ShowObsUrlOfTrainingJobLogs は一時的な OBS URL を返します(有効期間は 5 分間です)。
  • StopTrainingJob:creating、waiting、running 状態のジョブのみ停止できます。
  • 自動検索:試行の早期停止は、実行中の試行でのみ機能します。

詳細については、references/known-issues.md を参照してください。


注意事項

  • すべての書き込み操作(Create/Update/Delete/Stop/Change/Patch/Notify/Accept)では、実行前にユーザーの確認が必要です。
  • 料金照会:CreateTrainingJob(パブリックプール)および CreateTrainingExperiment では、実行前に BSS 料金照会が行われます。references/pricing-inquiry.md を参照してください。
  • 専用リソースプール:専用リソースプール(pool_id を指定)を使用するトレーニングジョブでは、料金照会は不要です。プールにはすでに課金されています。
  • リージョンはハードコードされていません。{region} プレースホルダーを使用します。
  • project_id が省略された場合は、自動的に解決されます。
  • いずれのファイルにも AK/SK はハードコードされていません。ユーザーがエージェントのセッション外で hcloud configure set を使用して認証情報を設定します。
  • エージェントは、認証情報の有無の確認にのみ hcloud configure list を使用する必要があります。AK/SK の値を読み取ったり、表示したりすることは絶対にしないでください。
  • 有効な認証情報が見つからない場合、エージェントは処理を停止し、ユーザーに 3 ステップの設定手順を案内する必要があります(前提条件のセクションを参照してください)。
  • CLI でバグが発生した場合は、SDK にフォールバックできます。
  • 複雑なネストされたパラメーターには、JSON ファイルを指定して --cli-jsonInput を使用します。

コメント