huawei-cloud-ascend-models-deploy について
huawei-cloud-ascend-models-deploy は、Huawei Cloud Ascend DevServer(910B シリーズ)でモデルをデプロイ、テストするスキルです。DevServer を扱うエージェントのワークフロー向けで、単機・2 台構成、推論テスト、状態監視、モデル別スクリプト選択に対応します。
主な機能
- 01単機および2台構成でモデルをデプロイ
- 02LLM、視覚言語、Embedding、Rerank の推論をテスト
- 03デプロイログと状態を確認
- 04モデルカテゴリに応じてスクリプトを選択
- 05対応モデルカタログを表示
活用シーン
- 01Ascend 910B DevServer にモデルをデプロイ
- 02テキストまたはマルチモーダルモデルの推論をテスト
- 03デプロイ中にログと状態を確認
- 04モデルカテゴリに合わせたデプロイコマンドを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-ascend-models-deployインストール後、Claude Code で/huawei-cloud-ascend-models-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdapi-parameters.mdmodel-catalog.mdprerequisites.mdtask-deploy-model.mdtask-test-model.mdtroubleshooting.mdverification-method.mdscripts/deploy_helper.py詳細
Huawei Cloud Ascend Models Deploy
Huawei Cloud Ascend DevServer(910B シリーズ)で大規模言語モデルをデプロイしてテストします。単一マシンおよび2台構成のデプロイ、モデル推論テスト、デプロイ監視に対応しています。
概要
このスキルでは、Huawei Cloud Ascend DevServer(910B シリーズ)で大規模言語モデルをデプロイしてテストします。LLM、VL、Embedding、Rerank モデルの単一マシンおよび2台構成のデプロイに対応しています。
関連スキル(エージェントによるオーケストレーション。直接呼び出し不可。ルール 3):
huawei-cloud-ascend-remote-connect- DevServer への SSH 接続(デプロイの前提条件)huawei-cloud-ascend-command- NPU の状態確認と監視(前提条件およびデプロイ後の監視)
機能:
- モデルのデプロイ(単一ノード、2ノード)
- 推論テスト(LLM チャット、VL マルチモーダル、Embedding、Rerank)
- デプロイログと状態の監視
- モデルカタログとスクリプトの自動照合
デプロイワークフロー(エージェントによるオーケストレーション):
- エージェントが
huawei-cloud-ascend-remote-connectを呼び出して SSH 接続を確立します - エージェントが
huawei-cloud-ascend-commandを呼び出して NPU の健全性と使用可否を確認します - エージェントがこのスキル(
huawei-cloud-ascend-models-deploy)を呼び出してモデルをデプロイします - エージェントが
huawei-cloud-ascend-commandを呼び出して、デプロイ中の NPU の状態を監視します
アーキテクチャ
システムアーキテクチャ図
┌─────────────────────────────────────────────────────────────────────┐
│ Agent Orchestration │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 1. SSH connect (remote-connect) │ │
│ │ 2. NPU health check (ascend-command) │ │
│ │ 3. Deploy model (this skill) │ │
│ │ 4. Monitor NPU (ascend-command) │ │
│ └────────────────────────────┬────────────────────────────────┘ │
│ │ Explicit param passing (Rule 1) │
│ ▼ │
├─────────────────────────────────────────────────────────────────────┤
│ Huawei Cloud Ascend Models Deploy │
│ (Stateless, Rule 2) │
├─────────────────────────────────────────────────────────────────────┤
│ ┌──────────────────┐ ┌──────────────────────────────────┐ │
│ │ Natural Language│ │ Deploy Helper │ │
│ │ Commands │───▶│ - Model Matching & Catalog │ │
│ └──────────────────┘ │ - Script Auto-Match │ │
│ │ - Command Generation │ │
│ └──────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────┼──────────────┐ │
│ ▼ ▼ ▼ │
│ ┌───────────────┐ ┌─────────────────┐ ┌────────┐ │
│ │ Model │ │ Inference │ │ Log │ │
│ │ Deployment │ │ Testing │ │ Status │ │
│ │ │ │ │ │ │ │
│ │ • Single-node │ │ • LLM Chat │ │ • View │ │
│ │ • Dual-node │ │ • VL Multimodal │ │ • Check│ │
│ │ • 910B Series │ │ • Embedding │ │ │ │
│ └───────────────┘ │ • Rerank │ └────────┘ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
エージェントのオーケストレーションフロー
User request: "Deploy Qwen2.5-72B on DevServer 116.204.23.145"
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent Step 1: SSH Connection │
│ → Call huawei-cloud-ascend-remote-connect │
│ → Pass: host, user, password (explicit, Rule 1) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent Step 2: NPU Health Check │
│ → Call huawei-cloud-ascend-command │
│ → Check: NPU list, health, HBM availability │
│ → Fail if NPU not healthy or insufficient HBM │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent Step 3: Deploy Model (this skill) │
│ → Match model from catalog │
│ → Generate deploy script │
│ → Execute deployment │
│ → Stateless execution (Rule 2) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent Step 4: Monitor NPU │
│ → Call huawei-cloud-ascend-command │
│ → Monitor: HBM usage, temperature, processes │
└─────────────────────────────────────────────────────────────┘
│
▼
Deployment Complete
関連スキル一覧
| スキル | 目的 | オーケストレーション段階 |
|---|---|---|
huawei-cloud-ascend-remote-connect | SSH 接続 | デプロイ前:DevServer への接続を確立 |
huawei-cloud-ascend-command | NPU 管理 | デプロイ前:健全性チェック。デプロイ後:監視 |
注:スキル間の直接呼び出しはありません。すべてのオーケストレーションは、ユーザーの意図に基づいてエージェントが行います(ルール 3)。
前提条件
前提条件の確認:Ascend 910B シリーズが必要です
- 対応:910B1、910B2、910B3、910B4
- 非対応:910A、310、310P など
- 次のコマンドで確認します:
npu-smi info
必須ルール(AI は必ず従うこと)
- 記憶だけでコマンドを推測しないでください — 必ず「デプロイスクリプトの自動照合」セクションを読んでください
- 最初に deploy_helper.py を呼び出してください — モデルのカテゴリとスクリプト URL を確認します
- モデルごとに使用するスクリプトが異なります:
- LLM / Embedding / Rerank →
deploy-large-models.sh - VL →
deploy-qwen3-vl-model.sh - OpenSource →
deploy-ai-models.sh
- LLM / Embedding / Rerank →
- デプロイ前に検証してください — ポート、NPU、モデル、カード数
- コマンドを表示して確認を待ってください — 影響の大きい操作のため、直接実行しないでください
自然言語の理解ルール
ユーザーの自然言語から重要な情報を抽出し、コマンドを正確に組み立てます。
操作タイプの判定
| キーワード | 操作 |
|---|---|
| deploy / start / launch | 単一マシンへのデプロイ |
| dual-machine / two-node / dual-node | 2台構成でのデプロイ |
| test / inference / call | テスト(実行) |
| write command / generate command | テストコマンドの作成(生成のみ、実行しない) |
| deployment log / view log | デプロイログの表示 |
| deployment status / is ready | デプロイ状態の表示 |
| model list / supported models | モデルカタログの表示 |
| parameter help / API parameters | パラメータマニュアルの表示 |
情報抽出ルール
モデル名(あいまい一致、大文字・小文字を区別しない、カード数フィルターに対応):
- "qwen3-14b" → Qwen3-14B
- "qwen3-235b" → 複数候補が一致します。Instruct バージョン(Qwen3-235B-A22B-Instruct-2507)を優先するか、ユーザーに確認してください
- "vl-32b" → Qwen3-VL-32B-Instruct
- "bge-m3" → bge-m3
- "qwen3-vl" + 2 cards → カード数が2以下のVLモデルを一致候補として、ユーザーが選べるように一覧表示します
- "qwen3" + 2 cards → カード数が2以下のすべてのQwen3モデルを一致候補として、ユーザーが選べるように一覧表示します
- 複数候補 → すべての候補(カード数とカテゴリを含む)を一覧表示し、ユーザーに確認します
- 一致なし → モデルカタログ全体を表示して、ユーザーに選択してもらいます
カード数:
- "2 cards" / "use 2 cards" / "2 npus" → 2
- "16 cards" / "16 npus" → 16
- "dual-machine" → 16
- 指定なし → モデルカタログに記載された最小カード数を使用します
ポート:
- "port 8022" / "port:8022" → 8022
- 指定なし → デフォルトは8080です
不足しているパラメーター(それぞれ確認し、不足分を質問します):
- モデル名が不足 → "Please specify model name" + モデル一覧を表示します
- カード数が不足 → "Please specify card count, e.g.: 2 cards" + このモデルに必要な最小カード数を表示します
- ポートが不足 → "Please specify port (default 8080), e.g.: port 8001"
- デュアルマシンでヘッドIPが不足 → "Please specify head node IP, e.g.: head:192.168.1.1"
- デュアルマシンでワーカーIPが不足 → "Please specify worker node IP, e.g.: worker:192.168.1.2"
ヘッド/ワーカーIP(デュアルマシンデプロイ):
- "head:1.1.1.1" / "head node 1.1.1.1" → ヘッドノードのIP
- "worker:2.2.2.2" / "worker node 2.2.2.2" → ワーカーノードのIP
プロンプト:
- "prompt:hello" / "ask:hello" → プロンプトのテキスト
- 指定なし → LLMのデフォルトは "hello"、VLのデフォルトは "describe the image"、Embeddingのデフォルトは "I love shanghai"、Rerankのデフォルトは "What is the capital of France?"
画像URL(VLテスト):
- "image:https://xxx.jpg" / URLを直接指定 → 画像URL
- ユーザーが画像を添付 → base64データURLに自動変換します
- 指定なしでマルチモーダルモデルをテストする場合 → 画像URLをユーザーに求めます
マルチモーダル機能の自動検出:
- VLカテゴリ → マルチモーダルに対応
- OpenSource:Qwen3.6-35B-A3B、Qwen3.6-27B → マルチモーダルに対応
- LLMカテゴリ → テキストのみ
- Embedding → テキストのみ
- Rerank → テキストのみ
画像URL変換(ローカル画像 → データURL):
# Efficient base64 conversion
IMG_B64=$(base64 -w 0 ${local_image_path})
IMG_URL="data:image/jpeg;base64,${IMG_B64}"
高度なパラメーター(任意):
- "max_tokens:64" → max_tokens=64
- "temperature:0.7" → temperature=0.7
- "stream" → stream=true
- "system:You are assistant" → system_prompt
- "disable thinking" / "no thinking" → chat_template_kwargs: {"enable_thinking": false}
- (デフォルト = 思考モード有効)
思考モード: Qwen3/Qwen3.6モデルはデフォルトで思考モードになり、最終回答の前に推論プロセスを出力します。
- 思考モードを有効にする:品質が向上しますが、トークン消費量が増えます
- 思考モードを無効にする:直接出力し、トークン消費量を抑えます。簡単な問い合わせに適しています
"chat_template_kwargs": {"enable_thinking": false/true}でリクエスト単位に制御できます
対応マシンタイプ
Ascend 910Bシリーズ(910B1 / 910B2 / 910B3 / 910B4)のみです。デプロイ前にNPUモデルを確認し、910Bシリーズ以外は拒否する必要があります。
モデルカタログ
大規模言語モデル(LLM)— エンドポイント:/v1/chat/completions
| モデル | 最小カード数 |
|---|---|
| Qwen3-14B | 1 |
| Qwen3-30B-A3B-Instruct-2507 | 2 |
| Qwen3-32B | 2 |
| Qwen3-235B-A22B-Thinking-2507 | 16 |
| Qwen3-235B-A22B-Instruct-2507 | 16 |
| DeepSeek-R1-Distill-Llama-70B | 4 |
視覚言語(VL)— エンドポイント:/v1/chat/completions
| モデル | 最小カード数 |
|---|---|
| Qwen3-VL-30B-A3B-Instruct | 2 |
| Qwen3-VL-32B-Instruct | 2 |
| Qwen3-VL-235B-A22B-Instruct | 16 |
| Qwen3-VL-235B-A22B-Instruct-W8A8 | 8 |
Embedding — エンドポイント:/v1/embeddings(V0バックエンドのみ、単一カードのみ)
| モデル | 最小カード数 | マルチカード |
|---|---|---|
| Qwen3-Embedding-8B | 1 | いいえ |
| bge-large-zh-v1.5 | 1 | いいえ |
| bge-m3 | 1 | いいえ |
Rerank — エンドポイント:/v1/rerank(カード1枚のみ)
| モデル | 最小カード数 | 複数カード |
|---|---|---|
| Qwen3-Reranker-8B | 1 | いいえ |
| bge-reranker-v2-m3 | 1 | いいえ |
OpenSource(マルチモーダル)
| モデル | 最小カード数 | 機能 |
|---|---|---|
| Qwen3.6-35B-A3B | 2 | テキスト+画像(MoE) |
| Qwen3.6-27B | 2 | テキスト+画像(MoE) |
| Qwen3-Next-80B-A3B-Instruct | 4 | LLM |
| DeepSeek-V4-Flash-w8a8-mtp | 8 | LLM |
デプロイスクリプトの自動照合(必ず使用し、スクリプト URL を推測しないでください)
スクリプトのパス: scripts/deploy_helper.py
照合ルール(ハードコード済み、精度100%):
| モデルカテゴリ | デプロイスクリプト | 備考 |
|---|---|---|
| LLM | deploy-large-models.sh | Embedding/Rerank と共用 |
| Embedding | deploy-large-models.sh | 上記と同じ |
| Rerank | deploy-large-models.sh | 上記と同じ |
| VL | deploy-qwen3-vl-model.sh | マルチモーダル専用 |
| OpenSource | deploy-ai-models.sh | OpenSource 専用 |
使用方法:
# Match model (returns category, script URL, min cards, etc.)
python3 scripts/deploy_helper.py match <model_name>
# Generate deploy command directly
python3 scripts/deploy_helper.py command <model_name> <cards> <port>
# List all models (optional category filter)
python3 scripts/deploy_helper.py list [LLM|VL|Embedding|Rerank|OpenSource]
AI は最初に deploy_helper.py match を呼び出してカテゴリとスクリプトを確認し、その後、返された deploy_url を使ってコマンドを組み立てる必要があります。記憶から推測しないでください!
基本コマンド
モデルのデプロイとテストに使用する基本コマンドです。詳細な手順については、操作フローを参照してください。
| コマンド | 説明 |
|---|---|
deploy <model> <port> | 単一マシンにモデルをデプロイ |
deploy <model> <port> <cards> | 指定したカード数でデプロイ |
dual-machine deploy <model> head:<IP> worker:<IP> port:<PORT> | 2台構成のクラスターにデプロイ |
test <model> <port> | モデルの推論をテスト |
deployment log | デプロイログを表示 |
deployment status | デプロイ状況を確認 |
model list | 対応モデルを表示 |
操作フロー
I. デプロイ
1. デプロイ前の確認(毎回必ず実行し、省略不可)
順番に確認し、いずれかが失敗したら停止します。
- NPU モデルの確認 — エージェントは
huawei-cloud-ascend-commandを呼び出してチップモデルを確認し、910B シリーズ以外は拒否します - NPU カード数の確認 — エージェントは
huawei-cloud-ascend-commandを呼び出して利用可能なカードを確認し、必要なカード数以上であることを確認します - ユーザー指定カード数の確認 — ユーザーが指定したカード数は最小数以上で、対応範囲(1、2、4、8、16)内である必要があります
- Embedding/Rerank の単一カード確認 — Embedding と Rerank はカード1枚のみ対応しており、複数カードは拒否します
- ポート使用状況の確認 — エージェントは
huawei-cloud-ascend-remote-connectを呼び出してss -tlnp | grep :portを実行し、使用中の場合は通知します - SSH 接続の確認 — 2台構成の場合、ヘッドノードとワーカーノードの両方に SSH 接続できることを確認します
2. 単一マシンへのデプロイ
ユーザーが「deploy model_name port XXXX」または「deploy model_name port XXXX N cards」と指示した場合
デプロイ前に、SSH 経由で mkdir -p /home/modelarts-agent を実行し、ディレクトリが存在することを確認する必要があります。
LLM/Embedding/Rerank コマンドテンプレート:
nohup bash -c 'export model_name=${model} && export required_cards=${cards} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-large-models/single-machine/deploy-large-models.sh && chmod 755 /home/modelarts-agent/deploy-large-models.sh && sh /home/modelarts-agent/deploy-large-models.sh ${model} ${cards} ${port}' > /home/modelarts-agent/deploy_${model}.log 2>&1 &
VL マルチモーダルコマンドテンプレート:
nohup bash -c 'export model_name=${model} && export required_cards=${cards} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-vl-model/single-machine/deploy-qwen3-vl-model.sh && chmod 755 /home/modelarts-agent/deploy-qwen3-vl-model.sh && sh /home/modelarts-agent/deploy-qwen3-vl-model.sh ${model} ${cards} ${port}' > /home/modelarts-agent/deploy_${model}.log 2>&1 &
OpenSource コマンドテンプレート:
nohup bash -c 'export model_name=${model} && export required_cards=${cards} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-large-models/single-machine/open_source/deploy-ai-models.sh && chmod 755 /home/modelarts-agent/deploy-ai-models.sh && sh /home/modelarts-agent/deploy-ai-models.sh ${model} ${cards} ${port}' > /home/modelarts-agent/deploy_${model}.log 2>&1 &
3. 2台構成でのデプロイ
ユーザーが「dual-machine deploy model_name head:IP worker:IP port XXXX」と指示した場合
2台構成でデプロイする前に、ヘッドノードとワーカーノードの両方で mkdir -p /home/modelarts-agent を実行する必要があります。
ヘッドノードのコマンドテンプレート:
nohup bash -c 'export ray_head_ip=${head_ip} && export model_name=${model} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-large-models/dual-machine/qwen3-235b-a22b.sh && chmod 755 /home/modelarts-agent/qwen3-235b-a22b.sh && sh /home/modelarts-agent/qwen3-235b-a22b.sh head ${head_ip} ${model} ${port}' > /home/modelarts-agent/deploy_${model}_head.log 2>&1 &
ワーカーノードのコマンドテンプレート:
nohup bash -c 'export ray_head_ip=${head_ip} && export model_name=${model} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-large-models/dual-machine/qwen3-235b-a22b.sh && chmod 755 /home/modelarts-agent/qwen3-235b-a22b.sh && sh /home/modelarts-agent/qwen3-235b-a22b.sh worker ${head_ip} ${model} ${port}' > /home/modelarts-agent/deploy_${model}_worker.log 2>&1 &
VL の2台構成でのデプロイ:
VL モデル(Qwen3-VL-235B-A22B-Instruct など)には、以下のスクリプトを使用します。
VL ヘッドノードのコマンド:
nohup bash -c 'export ray_head_ip=${head_ip} && export model_name=${model} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-vl-model/dual-machine/qwen3-vl-235b-a22b.sh && chmod 755 /home/modelarts-agent/qwen3-vl-235b-a22b.sh && sh /home/modelarts-agent/qwen3-vl-235b-a22b.sh head ${head_ip} ${model} ${port}' > /home/modelarts-agent/deploy_${model}_head.log 2>&1 &
VL ワーカーノードのコマンド:
nohup bash -c 'export ray_head_ip=${head_ip} && export model_name=${model} && export port=${port} && wget -P /home/modelarts-agent/ https://documentation-samples-17.obs.cn-north-9.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-module/quickly-deploy-llm-on-modelarts-lite-devserver/userdata/deploy-vl-model/dual-machine/qwen3-vl-235b-a22b.sh && chmod 755 /home/modelarts-agent/qwen3-vl-235b-a22b.sh && sh /home/modelarts-agent/qwen3-vl-235b-a22b.sh worker ${head_ip} ${model} ${port}' > /home/modelarts-agent/deploy_${model}_worker.log 2>&1 &
4. デプロイ確認フロー
機密性の高い操作です。実行前にコマンド全体を表示し、ユーザーの「confirm」を待つ必要があります。
デプロイコマンド送信後:
- ユーザーに通知します:準備完了。${model} のデプロイを開始します。ログは
/home/modelarts-agent/deploy_${model}.logにあります - 2 分ごとにログを確認し、進捗(重みの読み込み、Dynamo のコンパイル、サービスの起動など)を報告します
- ポートがリッスン状態になったら、デプロイ成功を通知します
- デプロイ失敗時の対応(厳守):
- デプロイ失敗 = 失敗理由を報告し、自動で再試行しません
- イメージを自動で変更して再試行することは決してありません
- パラメーターを自動で変更して再試行することは決してありません
- 別のデプロイ方法を試すことは決してありません
- エラーのみを報告し、次のステップはユーザーに判断してもらいます
- ユーザーにAPI のサンプルを出力します:
Deployment successful! ${model} is ready
Service URL: http://${IP}:${PORT}/v1/chat/completions
Example request:
curl -X POST http://${IP}:${PORT}/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"${model}","messages":[{"role":"user","content":"hello"}],"max_tokens":256}'
Multimodal request (if supported):
curl -X POST http://${IP}:${PORT}/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"${model}","messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"image_url"}},{"type":"text","text":"describe the image"}]}],"max_tokens":512}'
II. デプロイログ
ユーザーの指示:「deployment log model_name」
エージェントは huawei-cloud-ascend-remote-connect を使って実行します:
tail -50 /home/modelarts-agent/deploy_${model}.log
III. デプロイ状況
ユーザーの指示:「deployment status port XXXX」
エージェントは huawei-cloud-ascend-remote-connect を使って実行します:
ss -tlnp | grep :
ポートがリッスン状態 = サービスのテスト準備完了です。
IV. テスト(実行)
ユーザーの指示:「test model_name prompt:xxx」または「test model_name image:URL」
テストフロー(厳守):
- ユーザーが確認できるよう、curl コマンド全体を表示します
- 実行前にユーザーの「confirm」または「send」を待ちます
- 構造化された結果を出力します:
Test Result
| Field | Value |
|-------|-------|
| id | chatcmpl-xxx |
| model | Qwen3-VL-32B-Instruct |
| prompt_tokens | 93 |
| completion_tokens | 400 |
| total_tokens | 493 |
| finish_reason | stop |
Model Response:
[Extract full content, no truncation]
Raw Response:
[Full JSON, no truncation]
LLM チャット補完
curl -s -X POST http://${IP}:${PORT}/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"${model}","messages":[{"role":"user","content":"${prompt}"}],"max_tokens":1024,"temperature":0.7}'
マルチモーダル VL
curl -s -X POST http://${IP}:${PORT}/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"${model}","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":[{"type":"image_url","image_url":{"url":"${image_url}"}},{"type":"text","text":"${prompt}"}]}],"max_tokens":512,"temperature":0.7}'
埋め込み
curl -s -X POST http://${IP}:${PORT}/v1/embeddings \
-H 'Content-Type: application/json' \
-d '{"model":"${model}","input":"${text}"}'
リランク
curl -s -X POST http://${IP}:${PORT}/v1/rerank \
-H 'Content-Type: application/json' \
-d '{"model":"${model}","query":"${query}","documents":["${doc1}","${doc2}"]}'
V. テストコマンドの作成(生成のみ)
ユーザーの指示:「write test command model_name prompt:xxx」
「test」と同じロジックですが、コマンドテキストを出力するだけで、実行はしません。
API パラメーターのマニュアル
LLM パラメーター(/v1/chat/completions)
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
| model | はい | — | モデル名。デプロイ時と同じです |
| messages | はい | — | メッセージのリスト。各メッセージには role と content が含まれます |
| max_tokens | いいえ | 16 | 最大生成トークン数 |
| temperature | いいえ | 1.0 | サンプリングのランダム性。0=貪欲法 |
| top_p | いいえ | 1.0 | nucleus サンプリングのしきい値 |
| top_k | いいえ | -1 | 上位 K 個のトークンのみを考慮します |
| stream | いいえ | false | ストリーミング出力(SSE) |
| chat_template_kwargs | いいえ | {} | テンプレートのパラメーター。例:{"enable_thinking": false} |
VL の追加パラメーター
| パラメーター | 説明 |
|---|---|
| content[] | 配列形式:image_url オブジェクト+text オブジェクト |
| detail | 画像の精度:auto/high/low |
埋め込みパラメーター(/v1/embeddings)
| パラメーター | 必須 | 説明 |
|---|---|---|
| model | はい | モデル名 |
| input | はい | 文字列または文字列のリスト |
| encoding_format | いいえ | float/base64 |
リランクパラメーター(/v1/rerank)
| パラメーター | 必須 | 説明 |
|---|---|---|
| model | はい | モデル名 |
| query | はい | クエリテキスト |
| documents | はい | リランクするドキュメントのリスト |
| top_n | いいえ | 上位 N 件を返します |
実行モード
このスキルはステートレスモード(ルール 2)で動作します。すべてのコンテキスト(ホスト、認証情報、モデル情報)はエージェントから明示的に渡す必要があります(ルール 1)。
前提条件(エージェントによるオーケストレーション)
このスキルを呼び出す前に、エージェントは必ず以下を実行する必要があります:
-
huawei-cloud-ascend-remote-connectを使ってSSH 接続を確立します- エージェントはユーザーからホスト、ポート、ユーザー、パスワードを受け取ります
- エージェントは接続が成功したことを検証します
-
huawei-cloud-ascend-commandを使ってNPU の状態を確認します- エージェントは NPU の健全性と HBM の空き容量を確認します
- エージェントはモデルのデプロイに十分な数のカードがあることを検証します
スキルの実行
このスキルはエージェントから明示的なパラメーターを受け取ります:
# Model matching (local operation)
python3 scripts/deploy_helper.py match <model_name>
# Script URL generation (local operation)
python3 scripts/deploy_helper.py script <model_name>
# Deploy command generation (local operation)
python3 scripts/deploy_helper.py command <model> <cards> <port>
リモートデプロイの実行
エージェントはリモートサーバー上でデプロイコマンドを実行します:
# Agent uses SSH to execute deployment on DevServer
ssh root@<host> "cd /path/to/model && bash deploy.sh"
デプロイ後(エージェントによるオーケストレーション)
デプロイ後、エージェントは huawei-cloud-ascend-command を呼び出して以下を実行します:
- NPU の HBM 使用量を監視します
- デプロイプロセスの状態を確認します
- モデルのエンドポイントが応答していることを検証します
パラメータのフロー
User Input Agent This Skill
│ │ │
│ host, password │ │
├─────────────────────────▶│ │
│ │ SSH connect │
│ ├───────────────────────────▶│
│ │ │ (remote-connect)
│ │◀───────────────────────────┤
│ │ │
│ │ NPU check │
│ ├───────────────────────────▶│
│ │ │ (ascend-command)
│ │◀───────────────────────────┤
│ │ │
│ model_name, cards │ │
├─────────────────────────▶│ │
│ │ match model │
│ ├───────────────────────────▶│
│ │ │ deploy_helper.py
│ │◀───────────────────────────┤
│ │ │
│ │ execute deploy │
│ ├───────────────────────────▶│
│ │ │ (via SSH)
│ │◀───────────────────────────┤
│ │ │
│ │ monitor NPU │
│ ├───────────────────────────▶│
│ │ │ (ascend-command)
│ │◀───────────────────────────┤
│ │ │
▼ ▼ ▼
注記:スキル間の直接呼び出しはありません。すべてのオーケストレーションはエージェントが行います(ルール 3)。
参考資料
| ドキュメント | 説明 |
|---|---|
| task-deploy-model.md | デプロイタスクの手順 |
| task-test-model.md | テストタスクの手順 |
| model-catalog.md | モデルカタログの全内容 |
| api-parameters.md | API パラメータのリファレンス |
| prerequisites.md | 前提条件のチェックリスト |
| verification-method.md | 検証手順 |
| troubleshooting.md | トラブルシューティングガイド |
| scripts/deploy_helper.py | モデル照合ヘルパー |