huawei-cloud-modelarts-training-management
huawei-cloud-modelarts-training-management について
hcloud CLIを通じてHuawei Cloud ModelArtsのトレーニングジョブと関連リソースを管理するスキルです。ジョブ、アルゴリズム、実験、ハイパーパラメーター検索、モデルのインポート、イメージ保存を扱い、書き込み操作には安全確認を設けています。
主な機能
- 01ジョブと関連リソースの管理
- 02アルゴリズム、タグ、実験の管理
- 03イベント、段階、タスクの照会
- 04ハイパーパラメーター検索とモデルのインポート
- 05トレーニングイメージ保存タスクの作成
- 06書き込み前の確認と安全チェック
活用シーン
- 01トレーニングジョブの作成や確認
- 02アルゴリズムや実験の管理
- 03ジョブイベントやログの確認
- 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.mdapi-paths.mdcli-command-examples.mdcli-installation-guide.mddataflow-diagram.mdiam-policies.mdknown-issues.mdpricing-inquiry.mdverification-method.mdscripts/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 テンプレートの照会
- トレーニングイメージの保存:トレーニングジョブのイメージ保存タスクの作成と照会
前提条件
- hcloud CLI がインストールされ、認証済みであること — 参考:https://support.huaweicloud.com/qs-hcli/hcli_02_003.html
- Huawei Cloud AK/SK が hcloud で設定されていること(下記の「セキュリティと認証情報の確認」を参照)
- 対象リージョンで ModelArts サービス が有効になっていること
- 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:⚠️ 実行前チェック(書き込み操作では必須)
書き込み操作(作成/更新/削除/停止/変更/パッチ/通知/承認)を実行する前に、必ず次の操作を行ってください。
- references/known-issues.md を読みます — 対象 API に関連するセクションを確認します
- 文書化されている回避策を適用します — 特に、次のリスクの高い操作に注意してください。
操作 重大な問題 必要な対応 CreateTrainingJob v2 の kind/metadata/spec/tasks形式を使用する必要がありますv2 の JSON 構造で --cli-jsonInputを使用しますCreateTrainingJob(専用プール) 専用プールでは flavor_idは受け付けられませんflavor_idを省略し、代わりにpool_idを指定しますCreateAlgorithm JSON では metadataとjob_configをネストした構造にする必要があります正しいネスト構造で --cli-jsonInputを使用します(known-issues #27 を参照)CreateAlgorithm OBS のコードディレクトリが存在し、アクセス可能である必要があります API 呼び出しの前に OBS パスを確認します StopTrainingJob creating/waiting/running状態のジョブのみ停止できます先にジョブのステータスを確認します CreateModel source_locationの形式はobs://bucket/path/である必要がありますOBS パスの形式を確認します CreateModel model_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_type | hws.service.type.modelarts | ModelArts のサービス種別 |
resource_type | hws.resource.type.modelarts | ModelArts のリソース種別 |
usage_measure_id | 4 | 時間(課金単位) |
size_measure_id | 14 | インスタンス数 |
| BSS API リージョン | cn-north-1 | BSS 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 から返されるトレーニングジョブ ID | 39cefbeb-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 ...]
| 機能 | 説明 | 例 |
|---|---|---|
| サービス名 | 固定:ModelArts | ModelArts |
| 操作名 | パスカルケース | 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 | トレーニングジョブ管理 | 14 | CreateTrainingJob, ListTrainingJobs, ShowTrainingJobDetails, StopTrainingJob, DeleteTrainingJob, ShowTrainingJobLogs/Metrics/Engines/Flavors/Quotas |
| 2 | アルゴリズム管理 | 7 | CreateAlgorithm, ListAlgorithms, ShowAlgorithmByUuid, ChangeAlgorithm, DeleteAlgorithm, ShowSearchAlgorithms, CreateAlgorithmVersionToGallery |
| 3 | トレーニングジョブのタグ | 3 | CreateTrainJobTags, ShowTrainJobTags, DeleteTrainJobTags |
| 4 | トレーニング実験 | 6 | CreateTrainingExperiment, List/Show/Delete/Change/Check experiments |
| 5 | トレーニングジョブのイベント | 7 | ListTrainingJobEvents/Stages/Tasks, ListEvents/Categories/ScheduledEvents, AcceptScheduledEvent |
| 6 | モデルのインポート | 6 | CreateModel, ListModels, ShowModel, DeleteModel, ShowModelEngineAndRuntime, CreateModelArtsAgency |
| 7 | 自動探索 | 7 | ShowAutoSearchTrials/PerTrial/ParamsAnalysis/YamlTemplates, ShowAutoSearchTrialEarlyStop |
| 8 | トレーニングイメージの保存 | 2 | CreateSaveImageJob, ShowSaveImageJob |
コマンドを実行する際は、正確なパラメーター名、必須/任意のフラグ、使用パターンについて、必ずリファレンスファイルを参照してください。
対応範囲の境界(能力境界)
このスキルが対応するのは、ModelArts のトレーニング管理のみです。対象は8つの機能ドメインにわたる52のAPIです(上記のコアコマンドを参照)。以下のModelArts機能には対応していません。
| 未対応のドメイン | 操作例 | 推奨事項 |
|---|---|---|
| Notebook(開発環境) | CreateNotebook, ListNotebooks, ShowNotebook | ModelArtsコンソールまたは専用のNotebookスキルを使用してください |
| 推論サービス(オンラインサービス) | CreateService, ListServices, ShowService | ModelArtsコンソールまたは推論スキルを使用してください |
| リソースプール/クラスター | CreateResourcePool, ListResourcePools | ModelArtsコンソールを使用してください |
| ワークフローのオーケストレーション | CreateWorkflow, ListWorkflows | ModelArtsコンソールを使用してください |
| イメージ管理(SWR) | ListImages, ShowImage | SWRコンソールまたはCLIを直接使用してください |
| DevServer | CreateDevServer, ListDevServers | ModelArtsコンソールを使用してください |
| ワークスペース管理 | CreateWorkspace, ListWorkspaces | ModelArtsコンソールを使用してください |
上記の未対応機能についてリクエストを受けた場合は、このスキルでは対応していないことを明確にユーザーへ伝え、ModelArtsコンソール(
https://console.huaweicloud.com/modelarts/)または該当する専用スキルの使用を提案してください。
パラメーターの確認
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
{region} | はい | Huawei Cloudのリージョン | cn-north-4, cn-east-3 |
{training_job_id} | ジョブ操作 | トレーニングジョブのUUID | xxx-xxx-xxx |
{algorithm_id} | アルゴリズム操作 | アルゴリズムのUUID | xxx-xxx-xxx |
{experiment_id} | 実験操作 | トレーニング実験のUUID | xxx-xxx-xxx |
{model_id} | モデル操作 | モデルのUUID | xxx-xxx-xxx |
{job_id} | SaveImage操作 | イメージ保存ジョブのUUID | xxx-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.md | 52 個すべての API の詳細な CLI コマンド構文と例 |
| references/pricing-inquiry.md | トレーニングジョブの BSS 従量課金料金照会(作成前のコスト見積もり) |
| references/iam-policies.md | 最小権限の IAM ポリシー |
| references/verification-method.md | 検証およびテスト方法 |
| references/dataflow-diagram.md | Mermaid データフロー図 |
| references/acceptance-criteria.md | 受け入れ基準チェックリスト |
| references/api-paths.md | SDK ソース内の REST API パス |
| references/cli-installation-guide.md | CLI のインストールと認証ガイド |
| 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を使用します。