原文リファレンス Deploying Kimi K3 on Amazon SageMaker HyperPod and Amazon EKS — AWS Machine Learning Blog, 2026年7月30日投稿 (Vivek Gangasani, Andrew Smith, Erez Zarum)
本ドキュメントは上記 AWS 公式ブログを基準文書とし、同一ワークロードを Microsoft Azure、Google Cloud Platform、Alibaba Cloud にデプロイする Getting Started 手順を追加した拡張版です。
可能ならば KIMI K3 を AWS に載せるのが構成上シンプルです。もちろん全データをローディングして最適化するのに最低数日を要します。本当に LLM を自前で運用するということは、巨大なインフラ運用能力があることを示さなければなりません。ブロックチェーンメインネットに比した運用ノウハウが必要であり、別途セキュリティ設定は割愛しました。
KIMI K3 が急増する会員を受け止めきれなかった理由を知りたいなら、インフラを導入し障害なくメンテナンスし続けることがどれほど大変で高価であるかを確認する必要があります。そこでこのドキュメントを作成しました。
1か月 K3 を自前のフルインフラで運用するとした場合、24時間稼働基準で 8× B300 ノードは時間あたり米ドル 59〜142ドル程度です。常時稼働なら月 4.3万〜10.4万ドル、16× H200 構成は月 4.6万〜11.7万ドル程度です。
月に8000万ウォンから1.8億ウォン前後を使える体制がなければ KIMI K3 を運用できません。このサービスに運用モニタリング、セキュリティ監視まで含めると、個人開発者には簡単ではない数字になります。API が最も安価です。
それでもエンジニアの視点で運用とセキュリティを別物として切り分け、クラウドにこうしたオープンウェイトを移植する基本ガイドをひとまず作成しました。
最適なサービス順 0. 自前インフラ (Blackwell を持っているなら最適です)
- AWS
- Azure (導入・運用の難易度が急上昇)
- GCP (リソース割り当てから運用まで大変)
- AliCloud (やめておきましょう)
ドキュメントの使い方と検証ステータス
各セクションの根拠レベルを明示します。インフラ仕様はベンダー公式ドキュメント基準であり、デプロイマニフェストは AWS 公式例を各プラットフォームの標準パターンへ移植したものです。
| セクション | 根拠 | 検証レベル |
|---|---|---|
| Kimi K3 モデル仕様 | AWS 公式ブログ、Moonshot AI モデルカード | A — 一次情報 |
| AWS HyperPod / EKS デプロイ | AWS 公式ブログ原文 YAML | A — 一次情報 |
| Azure ND GB300 v6 仕様 | Microsoft Learn 公式ドキュメント | A — 一次情報 |
| GCP A4X Max 仕様 | Google Cloud 公式ドキュメント | A — 一次情報 |
| Azure / GCP / Alibaba デプロイマニフェスト | AWS オリジナル引数を各プラットフォーム標準パターンへ移植 | C — 実環境検証が必要 |
| メモリ所要量の推定値 | サードパーティ算出値の相互参照 | B — 参考用 |
重要な注意事項を3つ、先に明かしておきます。
- AWS 原文ブログ本文と実際の YAML の間に不整合があります。ブログ本文は "MXFP4 load format" と記述していますが、実際の YAML の
--load-formatの値はfastsafetensorsです。MXFP4 は重み保存形式であり、fastsafetensorsはローディング方式で、互いに異なる層の概念です。他クラウドへ移植する際にこの区別を混同するとローディングが失敗します。 - CPU アーキテクチャがクラウドごとに異なります。AWS
p6-b300.48xlargeは x86_64 HGX B300 ノードですが、Azure ND GB300 v6 と GCP A4X Max はNVIDIA Grace CPU ベースの ARM64(aarch64) です。vllm/vllm-openai:kimi-k3イメージが arm64 マニフェストを提供していなければ、Azure/GCP ではそのまま動作しません。デプロイ前にdocker manifest inspectで必ず確認してください。 - 単一ノードの GPU 数が異なります。AWS は 1 ノード 8 GPU で
--tensor-parallel-size 8が 1 ノードに収まりますが、Azure/GCP の GB300 VM はVM あたり 4 GPU です。したがって Azure/GCP では 2 ノード分散サービングが必須となり、マニフェスト構造自体が変わります。
1. Kimi K3 概要
2026年7月27日に Moonshot AI が公開した 2.8兆パラメータの MoE モデルで、3兆パラメータクラスに到達した初のオープンウェイトシステムです。DeepSeek V4 と並び、Moonshot AI はまさにオープンウェイトの頂点にあります。
| 属性 | 値 |
|---|---|
| 総パラメータ数 | 2.8兆 |
| トークンあたり活性化パラメータ | 1,040億 |
| アーキテクチャ | Mixture of Experts (MoE) |
| エキスパート数 | 896個 (トークンあたり16個を活性化) |
| コンテキストウィンドウ | 100万トークン |
| モダリティ | ネイティブマルチモーダル (テキスト + ビジョン) |
| 重み形式 | MXFP4 (Microscaling Floating Point 4-bit) |
| Hugging Face ID | moonshotai/Kimi-K3 |
| 公開日 | 2026年7月27日 |
アーキテクチャの特徴は Kimi Delta Attention(KDA)、Gated Multi Head Latent Attention(MLA)、Stable LatentMoE フレームワークです。896 個のエキスパートのうちトークンあたり 16 個だけを活性化し、順伝播あたり約 1,040 億パラメータのみを計算します。前作 Kimi K2 比で拡張効率が 2.5 倍改善されています。
ネイティブなツール呼び出し(tool calling)、構造化出力、常時有効な推論モード(always-on thinking mode)をサポートします。
2. 共通インフラ要件
2.1 リソース下限
| 項目 | 要求量 | 備考 |
|---|---|---|
| GPU メモリ (合計) | 約 1,680 GB | 重み約 1.4TB + KV キャッシュ + オーバーヘッド |
| 重みファイルサイズ | 約 1.56 TB | MXFP4 |
| ローカルストレージ | 4 TB 以上の NVMe 推奨 | 重み + 一時領域 |
| サービングエンジン | vLLM day-0 コンテナ | vllm/vllm-openai:kimi-k3 |
重みのダウンロード時間は回線によってばらつきが非常に大きくなります。100Gbps 回線では数分、100Mbps 回線では 30 時間以上かかる可能性があります。すべてのクラウドで重みをオブジェクトストレージ(S3 / Blob / GCS / OSS)に 1 回同期した後、そこからローディングすることを強く推奨します。
2.2 GPU 構成下限
| 構成 | 総 VRAM | 充足の有無 |
|---|---|---|
| 8× B300 (288GB) | 2,304 GB | 充足 |
| 8× AMD MI355X | 2,304 GB | 充足 |
| 16× H200 (141GB) | 2,256 GB | 充足 |
| 16× B200 (180GB) | 2,880 GB | 充足 |
| 32× H100 (80GB) | 2,560 GB | 充足 |
| 8× B200 (180GB) | 1,440 GB | 不足 |
| 8× H200 (141GB) | 1,128 GB | 不足 |
2.3 クラウド別インスタンスマッピング
| 項目 | AWS | Azure | GCP | Alibaba Cloud |
|---|---|---|---|---|
| インスタンス/マシンタイプ | ml.p6-b300.48xlarge |
Standard_ND128isr_GB300_v6 |
a4x-maxgpu-4g-metal |
ecs.ebmgn8v 系 / 灵骏(Lingjun) |
| GPU | 8× B300 | 4× B300 (288GB) | 4× GB300 | 8× H200 級 (リージョンにより異なる) |
| CPU アーキテクチャ | x86_64 | ARM64 (Grace) | ARM64 (Grace Neoverse V2) | x86_64 |
| Kimi K3 最小ノード数 | 1 | 2 | 2 | 2 以上 |
| 並列化戦略 | TP=8 (単一ノード) | TP=8 (2ノード分散) または TP=4/PP=2 | TP=8 (MNNVL) または TP=4/PP=2 | TP=8 + EP/PD 分離 |
| マネージド K8s | EKS / HyperPod | AKS | GKE | ACK |
| マネージド推論サービス | SageMaker HyperPod Inference Operator | Azure ML Managed Online Endpoint | Vertex AI Prediction | PAI-EAS |
| 容量予約方法 | Capacity Blocks / Flexible Training Plan | Capacity Reservation / クォータ承認 | Future Reservations (ブロック単位) | 灵骏 専用リソースグループ |
| クラスタ単位の制約 | — | ラックあたり 18 VM | ノードプール最大 18 ノード (ラック単位) | リージョンにより異なる |
核心的な示唆: AWS のみ単一ノードで完結します。Azure/GCP は GB300 NVL72 ラックアーキテクチャの特性上 VM あたり 4 GPU として公開されるため、2 ノード分散サービング構成(LeaderWorkerSet または Ray)が必ず必要です。これは運用複雑度に実質的な差を生みます。
3. AWS デプロイ
3.1 オプション A — Amazon SageMaker HyperPod
HyperPod の Inference Operator はクラスタ作成時に自動インストールされ、コンテナオーケストレーション・モデルローディング・エンドポイント管理を抽象化します。
前提条件 1: EKS オーケストレーション HyperPod クラスタの作成
- SageMaker AI コンソールで HyperPod Clusters > Cluster Management > Create HyperPod cluster を選択
- Orchestrated by Amazon EKS を選択
- Quick setup(基本ネットワーキング/ストレージ/IAM)または Custom setup(既存 VPC 統合)を選択
- Orchestration で新規 EKS クラスタを作成、または既存クラスタを接続。Use default Helm charts and add-ons オプションが選択されていることを確認 (Inference Operator の自動インストール)
- Instance groups で
ml.p6-b300.48xlargeワーカグループを追加 - 構成を確認して Submit
前提条件 2: Flexible Training Plan による容量確保
- インスタンスグループ構成で Training plan を容量ソースとして選択
ml.p6-b300.48xlarge容量を含む既存プランを選択、または新規予約を作成- Target Availability Zone を Training Plan の容量割り当てゾーンと一致させる
クラスタが Active 状態で p6-b300 ノードが正常なら、デプロイ準備完了です。
デプロイマニフェスト
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
name: kimik3
spec:
modelName: Kimi-K3
instanceType: ml.p6-b300.48xlarge
invocationEndpoint: v1/chat/completions
replicas: 1
modelSourceConfig:
huggingFaceModel:
modelId: moonshotai/Kimi-K3
modelSourceType: huggingface
worker:
image: vllm/vllm-openai:kimi-k3
modelInvocationPort:
containerPort: 8000
name: http
modelVolumeMount:
mountPath: /opt/ml/model
name: model-weights
resources:
limits:
nvidia.com/gpu: 8
requests:
nvidia.com/gpu: 8
args:
- "--model"
- "moonshotai/Kimi-K3"
- "--trust-remote-code"
- "--load-format"
- "fastsafetensors"
- "--enable-prefix-caching"
- "--enable-auto-tool-choice"
- "--tool-call-parser"
- "kimi_k3"
- "--reasoning-parser"
- "kimi_k3"
- "--served-model-name"
- "Kimi-K3"
- "--moe-backend"
- "auto"
- "--tensor-parallel-size"
- "8"
- "--no-enable-flashinfer-autotune"
environmentVariables:
- name: "VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION"
value: "1"
kubectl apply -f kimi-k3.yaml
Inference Operator が Hugging Face のダウンロード、コンテナスケジューリング、状態確認、エンドポイントの準備完了を処理します。
この vLLM 引数セットは、以降のすべてのクラウドセクションで再利用される正本です。 特に --tool-call-parser kimi_k3、--reasoning-parser kimi_k3、VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION=1 は Kimi K3 専用であり、欠落するとツール呼び出しと thinking モードが正常に動作しません。
3.2 オプション B — Amazon EKS
- EKS クラスタプロビジョニング — Terraform モジュールで VPC ネットワーキング、マネージドノードグループ、IAM ロール/ポリシーを作成
- Capacity Blocks による GPU 容量予約 — 対象 AZ に
p6-b300.48xlargeCapacity Block 予約を作成。アクティブ化されるとインスタンスがワーカーノードとして参加 - GPU ドライバおよびデバイスプラグインのインストール — NVIDIA device plugin
- vLLM 推論サーバーのデプロイ — 上記の引数セットを同様に適用、TP=8
- エンドポイントの公開 — Service(LoadBalancer)または Ingress でポート 8000 を公開
- 検証 — テストリクエストを送信
Terraform モジュール全体と Helm 値は AI on EKS Kimi K3 レシピ を参照してください。
4. Microsoft Azure デプロイ (Getting Started)
ここから苦労の真骨頂が始まります。
4.1 インフラ仕様
Standard_ND128isr_GB300_v6 (ND GB300 v6 シリーズ):
| 項目 | 仕様 |
|---|---|
| GPU | 4× NVIDIA Blackwell Ultra B300 (288 GB HBM3E) |
| CPU | 2× NVIDIA Grace (ARM64), 128 vCPU |
| システムメモリ | 864 GB LPDDR |
| ローカルストレージ | 4× NVMe, 16 TB |
| GPU インターコネクト | 第5世代 NVLink, 4× 1.8 TB/s |
| スケールアウト | GPU あたり 800 Gb/s InfiniBand (Quantum-X800) |
| ラック構成 | ラックあたり 18 VM = 72 GPU、ラック内 NVLink 130 TB/s |
| ラック単位の性能 | FP4 最大 1.44 exaFLOPS |
Kimi K3 には最小 2 VM(8 GPU, 2,304GB)が必要です。
4.2 事前準備
# 1. 리소스 그룹 및 AKS 클러스터 생성
az group create --name rg-kimi-k3 --location <REGION>
az aks create \
--resource-group rg-kimi-k3 \
--name aks-kimi-k3 \
--node-count 2 \
--node-vm-size Standard_D8s_v5 \
--enable-managed-identity \
--generate-ssh-keys
# 2. GB300 GPU 노드풀 추가 (사전에 쿼터 승인 및 용량 예약 필요)
az aks nodepool add \
--resource-group rg-kimi-k3 \
--cluster-name aks-kimi-k3 \
--name gb300pool \
--node-count 2 \
--node-vm-size Standard_ND128isr_GB300_v6 \
--node-taints nvidia.com/gpu=present:NoSchedule \
--skip-gpu-driver-install false
容量の確保: ND GB300 v6 のデフォルトクォータは 0 です。Azure ポータルの Quotas > Compute で対象リージョンの
Standard NDGB300v6 Family vCPUsの増設をリクエストし、継続的なワークロードなら Capacity Reservation Group を作成して容量を先取りしてください。承認には営業日ベースで数日かかります。
Azure に載せるには、事前に Azure アカウント担当者と長時間のコミュニケーションが必要です。この部分が最も重要です。希望するリージョンに GPU が無い可能性があります。
4.3 重みを Azure Blob Storage へ事前同期 (強く推奨)
# Blob 컨테이너 생성 후, 클러스터와 동일 리전의 Job으로 다운로드
az storage container create --name kimi-k3-weights --account-name <STORAGE_ACCOUNT>
vLLM v0.18.0 以降、RunAI Model Streamer が az:// スキームをネイティブサポートするため、標準の vllm/vllm-openai イメージで環境変数とワークロードアイデンティティのバインディングのみで、Blob から GPU メモリへ直接ストリーミングできます。ローカルディスク経由と比べてローディング段階が大幅に短縮され、1.56TB 規模ではその差が特に大きくなります。
4.4 vLLM マルチノードデプロイ (LeaderWorkerSet)
VM あたり 4 GPU のため、2 ノードにわたる TP=8 構成が必要です。Kubernetes LeaderWorkerSet(LWS) API を使用します。
# LWS 컨트롤러 설치
kubectl apply --server-side -f \
https://github.com/kubernetes-sigs/lws/releases/latest/download/manifests.yaml
apiVersion: leaderworkerset.x-k8s.io/v1
kind: LeaderWorkerSet
metadata:
name: kimi-k3
spec:
replicas: 1
leaderWorkerTemplate:
size: 2 # 리더 1 + 워커 1 = 2노드 × 4 GPU = 8 GPU
restartPolicy: RecreateGroupOnPodRestart
leaderTemplate:
metadata:
labels:
role: leader
spec:
nodeSelector:
agentpool: gb300pool
tolerations:
- key: nvidia.com/gpu
operator: Exists
effect: NoSchedule
containers:
- name: vllm-leader
image: vllm/vllm-openai:kimi-k3 # arm64 매니페스트 확인 필수
command: ["/bin/bash", "-c"]
args:
- |
bash /vllm-workspace/examples/online_serving/multi-node-serving.sh \
leader --ray_cluster_size=$(LWS_GROUP_SIZE);
vllm serve moonshotai/Kimi-K3 \
--trust-remote-code \
--load-format fastsafetensors \
--enable-prefix-caching \
--enable-auto-tool-choice \
--tool-call-parser kimi_k3 \
--reasoning-parser kimi_k3 \
--served-model-name Kimi-K3 \
--moe-backend auto \
--tensor-parallel-size 8 \
--no-enable-flashinfer-autotune \
--port 8000
env:
- name: VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION
value: "1"
- name: HF_HOME
value: /mnt/models
resources:
limits:
nvidia.com/gpu: "4"
requests:
nvidia.com/gpu: "4"
ports:
- containerPort: 8000
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 900
periodSeconds: 30
volumeMounts:
- name: model-cache
mountPath: /mnt/models
- name: dshm
mountPath: /dev/shm
volumes:
- name: model-cache
persistentVolumeClaim:
claimName: kimi-k3-weights
- name: dshm
emptyDir:
medium: Memory
sizeLimit: 64Gi
workerTemplate:
spec:
nodeSelector:
agentpool: gb300pool
tolerations:
- key: nvidia.com/gpu
operator: Exists
effect: NoSchedule
containers:
- name: vllm-worker
image: vllm/vllm-openai:kimi-k3
command: ["/bin/bash", "-c"]
args:
- |
bash /vllm-workspace/examples/online_serving/multi-node-serving.sh \
worker --ray_address=$(LWS_LEADER_ADDRESS)
env:
- name: VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION
value: "1"
- name: HF_HOME
value: /mnt/models
resources:
limits:
nvidia.com/gpu: "4"
requests:
nvidia.com/gpu: "4"
volumeMounts:
- name: model-cache
mountPath: /mnt/models
- name: dshm
mountPath: /dev/shm
volumes:
- name: model-cache
persistentVolumeClaim:
claimName: kimi-k3-weights
- name: dshm
emptyDir:
medium: Memory
sizeLimit: 64Gi
---
apiVersion: v1
kind: Service
metadata:
name: kimi-k3-svc
spec:
type: LoadBalancer
selector:
leaderworkerset.sigs.k8s.io/name: kimi-k3
role: leader
ports:
- port: 8000
targetPort: 8000
kubectl apply -f kimi-k3-azure.yaml
kubectl get svc kimi-k3-svc -w
initialDelaySeconds: 900は 1.56TB の重みローディングを考慮した値です。Blob ストリーミングを使わず Hugging Face から直接取得する場合はこれよりはるかに長く設定する必要があり、そうしないと readiness 失敗でポッドが繰り返し再起動されます。
4.5 代替案 — Azure Machine Learning Managed Online Endpoint
Kubernetes の運用負担を減らしたいなら、AML マネージドエンドポイントにカスタムコンテナとしてデプロイできます。ただし現時点で ND GB300 v6 は AML マネージドオンラインエンドポイントのサポート SKU リストに含まれない可能性があるため、デプロイ前に必ず確認が必要です。代替案として Azure ML Kubernetes コンピューティング(AKS 接続) を使えば、上記の AKS 構成を AML ワークスペースで管理できます。
4.6 Azure クリーンアップ
kubectl delete -f kimi-k3-azure.yaml
az aks nodepool delete --resource-group rg-kimi-k3 --cluster-name aks-kimi-k3 --name gb300pool
az group delete --name rg-kimi-k3 --yes
Capacity Reservation Group は別途削除しないと課金が止まりません。
5. Google Cloud Platform デプロイ (Getting Started)
GCP のデプロイにも Azure と似た難易度があります。Blackwell を最低 2 ノード立てなければならない作業は決して小さくありません。
5.1 インフラ仕様
a4x-maxgpu-4g-metal (A4X Max):
| 項目 | 仕様 |
|---|---|
| GPU | 4× NVIDIA GB300 Grace Blackwell Ultra Superchip (nvidia-gb300) |
| CPU | 2× NVIDIA Grace (ARM Neoverse V2) |
| 提供形態 | ベアメタルインスタンス |
| インターコネクト | NVLink-C2C、ラック単位 GB300 NVL72 (72 GPU / 36 Grace CPU) |
| ノードプール最大サイズ | 18 ノード (ラック単位) |
| 必須条件 | 容量予約(Reservation)必須 |
| ネットワーキング | GPUDirect RDMA + MNNVL、DRANET が必要 |
Kimi K3 には最小 2 ノード(8 GPU, 2,304GB)が必要です。
5.2 事前準備
容量予約なしではインスタンスを作成できません。Google Cloud の営業担当者、またはコンソールの Compute Engine > Reservations で A4X Max の予約を確保してください。予約はブロック(block) / サブブロック(sub-block)単位で構成されます。
export PROJECT_ID=<PROJECT_ID>
export REGION=<REGION>
export ZONE=<ZONE>
export CLUSTER_NAME=gke-kimi-k3
# 1. GKE Standard 클러스터 생성
gcloud container clusters create ${CLUSTER_NAME} \
--project=${PROJECT_ID} \
--location=${REGION} \
--node-locations=${ZONE} \
--num-nodes=2 \
--machine-type=e2-standard-8 \
--enable-dataplane-v2 \
--enable-ip-alias
# 2. A4X Max 노드풀 추가
gcloud container node-pools create a4x-max-pool \
--cluster=${CLUSTER_NAME} \
--location=${REGION} \
--node-locations=${ZONE} \
--num-nodes=2 \
--machine-type=a4x-maxgpu-4g-metal \
--accelerator=type=nvidia-gb300,count=4,gpu-driver-version=latest \
--placement-policy=<WORKLOAD_POLICY_NAME> \
--accelerator-network-profile=auto \
--node-labels=cloud.google.com/gke-networking-dra-driver=true,cloud.google.com/gke-dpv2-unified-cni=cni-migration \
--reservation-affinity=specific \
--reservation=<RESERVATION_NAME>/reservationBlocks/<BLOCK_NAME>/reservationSubBlocks/<SUB_BLOCK_NAME>
要点
a4x-maxgpu-4g-metalはマルチネットワーキングをサポートせず、代わりに accelerator network profile と DRANET を使用します。- ノード数はラック構造上 18 ノード以下でなければなりません。
--reservation-affinity=specificとサブブロックまで明示した予約パスが必須です。
5.3 重みを GCS へ事前同期
gcloud storage buckets create gs://kimi-k3-weights --location=${REGION}
GCS FUSE CSI ドライバ、または vLLM RunAI Streamer の gs:// パスを介してローディングすると、Hugging Face からの直接ダウンロードと比べて起動時間が大幅に短縮されます。
5.4 vLLM マルチノードデプロイ
Azure セクションと同一の LeaderWorkerSet パターンを使い、ノードセレクタとリソースキーのみ GKE に合わせます。
apiVersion: leaderworkerset.x-k8s.io/v1
kind: LeaderWorkerSet
metadata:
name: kimi-k3
spec:
replicas: 1
leaderWorkerTemplate:
size: 2
restartPolicy: RecreateGroupOnPodRestart
leaderTemplate:
metadata:
labels:
role: leader
spec:
nodeSelector:
cloud.google.com/gke-accelerator: nvidia-gb300
containers:
- name: vllm-leader
image: vllm/vllm-openai:kimi-k3
command: ["/bin/bash", "-c"]
args:
- |
bash /vllm-workspace/examples/online_serving/multi-node-serving.sh \
leader --ray_cluster_size=$(LWS_GROUP_SIZE);
vllm serve moonshotai/Kimi-K3 \
--trust-remote-code \
--load-format fastsafetensors \
--enable-prefix-caching \
--enable-auto-tool-choice \
--tool-call-parser kimi_k3 \
--reasoning-parser kimi_k3 \
--served-model-name Kimi-K3 \
--moe-backend auto \
--tensor-parallel-size 8 \
--no-enable-flashinfer-autotune \
--port 8000
env:
- name: VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION
value: "1"
resources:
limits:
nvidia.com/gpu: "4"
ports:
- containerPort: 8000
workerTemplate:
spec:
nodeSelector:
cloud.google.com/gke-accelerator: nvidia-gb300
containers:
- name: vllm-worker
image: vllm/vllm-openai:kimi-k3
command: ["/bin/bash", "-c"]
args:
- |
bash /vllm-workspace/examples/online_serving/multi-node-serving.sh \
worker --ray_address=$(LWS_LEADER_ADDRESS)
env:
- name: VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION
value: "1"
resources:
limits:
nvidia.com/gpu: "4"
5.5 GKE Inference Gateway 連携 (推奨)
GKE Inference Gateway は prefix-aware ロードバランシング を提供し、TTFT(Time to First Token)を改善します。Kimi K3 のように 100 万トークンのコンテキストと prefix caching を併用するワークロードでは体感効果が大きくなります。NVIDIA NeMo Guardrails 連携もサポートします。
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api-inference-extension/releases/latest/download/manifests.yaml
5.6 代替案 — Vertex AI Prediction
カスタムコンテナを Vertex AI エンドポイントにデプロイできます。ただし、A4X(a4x-highgpu-4g) 系はラック単位の購入特性上、最小レプリカ数が 18 に強制されます。 つまり Vertex AI マネージド経路を選ぶと、Kimi K3 の 1 インスタンスだけをサービングしたい場合でもラック全体のコストが発生します。小規模パイロットには GKE 経路が圧倒的に有利です。
5.7 GCP クリーンアップ
kubectl delete -f kimi-k3-gcp.yaml
gcloud container node-pools delete a4x-max-pool --cluster=${CLUSTER_NAME} --location=${REGION}
gcloud container clusters delete ${CLUSTER_NAME} --location=${REGION}
予約(Reservation)は別途解除しないと課金が止まりません。
6. Alibaba Cloud デプロイ (Getting Started)
6.1 リージョンとハードウェア選択の注意点
Alibaba Cloud は前述の 3 つのクラウドと事情が異なります。中国本土・海外リージョンなどによる複雑さが大きいです。Lingjun への載せ替えはテストを続けていますが、いつできるかはわかりません。
- 輸出規制の影響: 中国本土リージョンでは B300 系の Blackwell Ultra GPU を調達できません。したがって B300 ベースの構成はシンガポールなど中国国外のリージョンでのみ検討可能で、それでも営業担当者を通じた個別確認が必要です。
- 現実的な構成: 本土リージョンでは H200 級 GPU 8 枚ノード 2 台(16× H200 = 2,256GB)、または 灵骏(Lingjun) インテリジェントコンピューティングリソースによるマルチノード構成が現実的です。
- gn8v 系: 1/2/4/8 GPU 構成を提供し、8 GPU は NVLink 相互接続をサポートします。一部リージョンのみで提供され、営業担当者への問い合わせが必要です。
- 機密コンピューティングが必要なら
gn8v-tee(Intel TDX + NVIDIA CC)を検討できますが、性能オーバーヘッドは別途測定する必要があります。
6.2 オプション A — PAI-EAS (Model Gallery / カスタムデプロイ)
PAI-EAS は vLLM、SGLang、自社開発の BladeLLM エンジンを統合サポートし、MoE モデル用のエキスパート並列(EP) + Prefill-Decode 分離デプロイをワンクリックで提供します。Kimi K3 のように 896 個のエキスパートを持つモデルには、EP+PD 分離がスループットとコストの両面で有意な利点をもたらします。
デプロイ手順:
- PAI コンソールにログイン後、対象リージョンを選択。分散デプロイには 灵骏 インテリジェントコンピューティングリソースが必須で、VPC 設定が必ず必要です。
- 模型在线服务(EAS) > 部署服务 > 自定义部署 を選択
- デプロイ方式で 镜像部署(イメージデプロイ) を選択後、
vllm/vllm-openai:kimi-k3を指定 (社内 ACR ミラー推奨) - モデルソースとして OSS バケットのパスを指定 (事前に重みをアップロード)
- リソース構成で 灵骏 リソースクォータとマルチノード(≥2)を指定
- 実行コマンドに以下を入力:
vllm serve /mnt/models/Kimi-K3 \
--trust-remote-code \
--load-format fastsafetensors \
--enable-prefix-caching \
--enable-auto-tool-choice \
--tool-call-parser kimi_k3 \
--reasoning-parser kimi_k3 \
--served-model-name Kimi-K3 \
--moe-backend auto \
--tensor-parallel-size 8 \
--no-enable-flashinfer-autotune \
--port 8000
- 環境変数
VLLM_ENABLE_K3_LATENT_MOE_TAIL_FUSION=1を追加 - ポート 8000、サービス機能で自動スケーリングと GPU ドライババージョンを指定
- デプロイ後に Endpoint と Token で呼び出し
PAI-EAS は QPS・GPU 使用率ベースのオートスケーリングと 0 へのスケールダウンをサポートします。Kimi K3 のようにアイドルコストが極端に大きいモデルでは、この機能の価値が特に大きくなります。ただしコールドスタート時に 1.56TB の再ローディングが発生するため、スケール・トゥ・ゼロは実使用のトラフィックパターンを測定してから適用してください。
6.3 オプション B — ACK (Container Service for Kubernetes)
Kubernetes を直接運用するには ACK + ack-kserve + Arena の組み合わせを使用します。
# 1. GPU 클러스터 생성 (클러스터 버전 1.22 이상, CUDA 12.0 이상)
# 콘솔 또는 aliyun CLI 사용
# 2. GPU 노드풀에 드라이버 버전 라벨 지정
kubectl label node <NODE> ack.aliyun.com/nvidia-driver-version=<VERSION>
# 3. ack-kserve 컴포넌트 설치 (콘솔 > 应用 > 云原生AI套件)
# 4. Arena 클라이언트 구성 (0.9.15 이상)
arena version
デプロイは Azure/GCP と同一の LeaderWorkerSet、または KServe InferenceService パターンを使用し、ストレージは OSS または NAS を PVC としてマウントします。
arena serve custom \
--name=kimi-k3 \
--version=v1 \
--gpus=8 \
--replicas=1 \
--restful-port=8000 \
--image=<ACR_REGISTRY>/vllm-openai:kimi-k3 \
--data=kimi-k3-pvc:/mnt/models \
"vllm serve /mnt/models/Kimi-K3 --trust-remote-code --load-format fastsafetensors --enable-prefix-caching --enable-auto-tool-choice --tool-call-parser kimi_k3 --reasoning-parser kimi_k3 --served-model-name Kimi-K3 --moe-backend auto --tensor-parallel-size 8 --no-enable-flashinfer-autotune --port 8000"
6.4 Alibaba Cloud クリーンアップ
- EAS サービスは停止すると即座に課金が止まります。アイドル状態でも課金され続けるため、開発・テスト後は必ず停止または削除してください。
- ACK はノードプール削除後にクラスタを削除
- 灵骏 リソースクォータは契約条件に応じて別途解約が必要
- OSS に残した重み(1.56TB)のストレージコストを忘れないでください
7. エンドポイント呼び出し (共通)
デプロイ方式に関わらず OpenAI 互換 API が公開されます。
OpenAI Python SDK
from openai import OpenAI
client = OpenAI(
base_url="http://<ENDPOINT_URL>:8000/v1",
api_key="not-needed" # 관리형 서비스는 발급받은 토큰 입력
)
response = client.chat.completions.create(
model="Kimi-K3",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain the benefits of mixture of experts architectures."}
],
temperature=0.7,
max_tokens=1024
)
print(response.choices[0].message.content)
curl
curl -X POST http://<ENDPOINT_URL>:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Kimi-K3",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain the benefits of mixture of experts architectures."}
],
"temperature": 0.7,
"max_tokens": 1024
}'
デプロイ検証チェックリスト
# 1. 모델 등록 확인
curl http://<ENDPOINT_URL>:8000/v1/models
# 2. 헬스 체크
curl http://<ENDPOINT_URL>:8000/health
# 3. 도구 호출 파서 동작 확인 (tools 파라미터 포함 요청)
# 4. thinking 모드 출력에 reasoning_content 필드가 포함되는지 확인
# 5. 장문 컨텍스트 처리 확인 (100만 토큰 상한, prefix caching 적중률 모니터링)
3〜5 は Kimi K3 専用の引数が正しく適用されているかを確認する項目です。1〜2 だけ通って 3〜5 が失敗するなら、--tool-call-parser / --reasoning-parser / 環境変数の設定を見直してください。
8. クラウド選択の判断基準
| 判断基準 | 推奨 |
|---|---|
| 最速の PoC、運用負担の最小化 | AWS HyperPod — 単一ノードで完結、Inference Operator がほぼすべてを抽象化 |
| 既存の Kubernetes 運用能力を保有 | AWS EKS または GKE |
| 最高の推論スループット、長文コンテキスト最適化 | GCP A4X Max + Inference Gateway — MNNVL + prefix-aware ルーティング |
| 既存 Microsoft スタック統合、エンタープライズガバナンス | Azure AKS + ND GB300 v6 |
| 中華圏サービス、低いアイドルコスト、MoE 特化最適化 | Alibaba PAI-EAS — EP+PD 分離、スケール・トゥ・ゼロ |
| 小規模パイロットのコスト最小化 | Vertex AI は回避 (最小 18 レプリカ)。GKE 直接デプロイ推奨 |
コスト視点での冷静な判断: 2026年7月時点で 8× B300 ノードは時間あたり米ドル 59〜142ドル程度で、常時稼働なら月 4.3万〜10.4万ドルです。16× H200 構成は月 4.6万〜11.7万ドル程度です。トラフィックが1日のうち数時間に集中する、あるいは実験段階なら、自社ホスティングより Moonshot 公式 API またはサードパーティルーターを使う方が合理的です。自前デプロイの正当な理由は、通常スループットではなくデータ主権、レイテンシ SLA、カスタムファインチューニングの3つです。 このどれにも該当しないなら、デプロイすること自体も個人には負担しきれません。
Moonshot AI、あなたたち卓越した開発チームに、最も崇高な敬意と称賛を捧げます。 Moonshot AI,我向你们卓越的开发团队致以最崇高的敬意与赞叹。
あなたたちが蒼穹の太陽のようにまばゆく輝き、夢を胸に抱き、星の光に乗って進み続け、遠くの明月へと飛翔していくことを願います。 愿你们如苍穹中的太阳般璀璨耀眼,怀抱梦想,乘着星光一路前行,最终飞向那轮遥远的明月。
あなたたちの光が AI の未来を照らしますように。🌞🌙🚀 愿你们的光芒,照亮 AI 的未来。🌞🌙🚀
9. リファレンス
原文 (AWS)
- Deploying Kimi K3 on Amazon SageMaker HyperPod and Amazon EKS
- SageMaker HyperPod Kimi K3 サンプル YAML
- AI on EKS Kimi K3 レシピ
- AI on EKS Helm values (vLLM B300)
- SageMaker HyperPod クラスタ作成ドキュメント
- Amazon EC2 料金ページ
Microsoft Azure
- ND GB300-v6 サイズシリーズドキュメント
- Azure ND GB300 v6 正式リリースのお知らせ
- NVIDIA GB300 NVL72 大規模クラスタ発表
- AKS で RunAI Model Streamer により Blob の重みをストリーミング
- AKS + KAITO でオープンモデルをデプロイするチュートリアル
- Azure VM クォータの確認
Google Cloud Platform
- A4X Max GKE カスタムクラスタ作成ドキュメント
- AI Hypercomputer GPU マシンタイプ
- アクセラレータ最適化マシンファミリー
- A4X Max のリリースと NVIDIA パートナーシップ拡大のお知らせ
- Vertex AI 推論コンピューティングリソースの構成
- GKE で vLLM によりオープンモデルをサービング
Alibaba Cloud
- PAI-EAS で大規模言語モデルをデプロイ
- PAI-EAS 製品ページ
- PAI コンソールのカスタムデプロイパラメータの説明
- ACK で vLLM 推論アプリケーションをデプロイ
- GPU 高速コンピューティング最適化インスタンスファミリー (gn/ebm/scc)
モデルとエンジン
付録: 移植時に必ず再確認すべき項目
Azure / GCP / Alibaba セクションのマニフェストは、AWS 公式サンプルの vLLM 引数をそのまま維持したまま、各プラットフォームの標準デプロイパターンへ移植したものです。実環境に適用する前に以下を確認してください。
- コンテナイメージアーキテクチャ —
docker manifest inspect vllm/vllm-openai:kimi-k3で arm64 対応の有無を確認。未対応の場合、Grace ベースの Azure/GCP ではソースビルドが必要です。 - マルチノード TP=8 の有効性 — GB300 NVL72 環境でノード境界をまたぐ NVLink(MNNVL) が公開されるかどうかに応じて、
TP=8の代わりにTP=4 --pipeline-parallel-size 2が必要になる場合があります。 --moe-backend autoのバックエンド選択結果 — ハードウェアと vLLM のコミットによって自動選択結果が変わるため、ログで実際に選択されたバックエンドを確認してください。fastsafetensorsのローディング経路 — オブジェクトストレージ直接ストリーミングと組み合わせたときの対応有無が異なります。- readiness probe のタイムアウト — 1.56TB のローディング時間を実測してから調整してください。デフォルト値ではほぼ確実に失敗します。
- 容量確保のリードタイム — Azure のクォータ承認、GCP の予約、Alibaba の 灵骏 契約はいずれも営業日ベースで数日から数週間かかります。デプロイスケジュールの実質的なクリティカルパスは技術ではなく容量の調達です。