详细演示SageMaker和EKS上部署开源大模型的具体方案。对想自建模型服务的程序员提供可复现的技术参考。
开放权重模型已经强大到足以处理多步骤 Agent 工作流、高级推理和长周期编码等复杂任务。然而,随着这些模型能力不断增强,模型规模也在持续扩大。托管数万亿参数的架构,需要专门构建的基础设施、高端 GPU 算力以及经过优化的服务框架。2026 年 7 月 27 日,Moonshot AI 发布了 Kimi K3。这是一款拥有 2.8 万亿参数的 Mixture of Experts(MoE)模型,也是首个达到 3 万亿参数级别的开放权重系统。Kimi K3 在提供前沿级智能能力的同时,还公开了模型权重,使组织能够在自己的基础设施上自行托管当前能力最强的模型之一。
本文将介绍在 AWS 上部署 Kimi K3 的两种方式:Amazon SageMaker HyperPod 和 Amazon Elastic Kubernetes Service(Amazon EKS)集群。
Kimi K3 采用差异化架构构建,其中包括 Kimi Delta Attention(KDA)、Gated Multi Head Latent Attention(MLA)和 Stable LatentMoE 框架。该模型将 2.8 万亿参数分布在 896 个专业化 Expert 中,每个 token 仅激活其中 16 个。这意味着每次前向传播大约会激活 1040 亿个参数,与其前代 Kimi K2 相比,扩展效率提升了 2.5 倍。
Kimi K3 擅长长周期编码任务、Agent 工作流和复杂推理。它原生支持工具调用、结构化输出,以及用于多步骤问题求解的常驻思考模式。
Kimi K3 的开放权重已发布在 Hugging Face 上,模型标识符为 moonshotai/Kimi-K3。权重采用 MXFP4(Microscaling Floating Point 4-bit)格式分发,能够在模型质量与内存效率之间取得有效平衡,适用于大规模推理部署。
考虑到模型的架构和规模,运行 Kimi K3 服务需要使用面向 Kimi K3 的 vLLM day-0 推理容器。在撰写本文时,Kimi K3 对应的 vllm commits 位于 vllm/vllm-openai:kimi-k3。我们预计这些改动会在后续版本中合并到 vllm 主容器。vLLM 原生支持 MoE 架构、tensor parallelism 和 MXFP4 量化格式,因此是运行该模型时推荐使用的服务引擎。
部署如此大规模的模型需要可观的 GPU 算力。Kimi K3 需要一个 p6-b300 实例(ml.p6-b300.48xlarge)。该实例提供 8 块 NVIDIA B300 Blackwell Ultra GPU,并配备高带宽互连,从而满足在完整 Expert 池上高效执行 tensor-parallel 推理的需要。
AWS 提供了两种获取这类算力的主要机制:
Flexible Training Plans(用于 SageMaker HyperPod):提供承诺式容量预留,可将其分配给 HyperPod 集群,确保 GPU 资源能够持续用于推理工作负载。
Capacity Blocks:允许你在指定时间段内预留 EC2 GPU 实例,无须长期承诺即可确保获得 p6-b300 容量。Amazon EKS 工作负载通过定向使用预留容量来消耗这些资源。
Amazon SageMaker HyperPod 搭配 Inference Operator,提供了部署 Kimi K3 最简单的方式。Inference Operator 会在创建集群时自动安装,并对容器编排、模型加载和 endpoint 管理等复杂工作进行抽象。
部署模型之前,需要先完成以下两个前置步骤来搭建基础设施。
部署模型之前,必须先预置一个 HyperPod 集群。打开 Amazon SageMaker AI 控制台,并按照集群创建流程操作:
打开 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 及其他必要的 Operator。
在 Instance groups 下,添加一个使用 ml.p6-b300.48xlarge 实例类型配置的 Worker Group。
检查配置,然后选择 Submit 开始预置。
如需完整操作指南,请参阅“使用 Amazon EKS 编排创建 SageMaker HyperPod 集群”文档。
ml.p6-b300.48xlarge 实例类型需要预留容量。Flexible Training Plan 会为 Blackwell GPU 节点提供承诺式容量预留,保证集群可以使用 p6-b300 实例,而不必与通用按需资源池中的其他工作负载争抢容量。进入 SageMaker Console,根据所需时间和实例数量选择一个 FTP block。创建或关联 Training Plan 的步骤如下:
在 Instance Group 配置中,选择 Training plan 作为容量来源。
选择一个包含 ml.p6-b300.48xlarge 容量的现有 Plan,或者创建新的预留,并指定所需的实例数量和使用时长。
设置 Target Availability Zone,使其与 Training Plan 容量所在的可用区一致。
当集群进入 Active 状态,并且 p6-b300 节点均处于健康状态后,就可以部署模型了。
要在 HyperPod 上部署 Kimi K3,请将以下 InferenceEndpointConfig manifest 应用到集群:
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"
这个 yaml 也已提供在 GitHub repository 中。使用以下命令应用该配置:kubectl apply -f kimi-k3.yaml
Inference Operator 会负责从 Hugging Face 下载模型、调度容器、执行健康检查,以及确认 endpoint 就绪。当 endpoint 转换到 ready 状态后,它会在配置的调用路径上公开一个与 OpenAI 兼容的 API。
对于希望自行管理 Kubernetes 基础设施的团队,可以将 Kimi K3 部署在独立的 Amazon EKS 集群上,并通过 EC2 Capacity Blocks 获取 GPU 容量。Capacity Blocks 允许你在指定时长内预留 p6-b300 实例,而无须做出长期承诺。
AI on EKS 项目提供了一套可直接用于推理的集群 recipe,可自动完成端到端预置。总体而言,部署过程包括以下阶段:
使用项目提供的 Terraform modules 创建一个针对 GPU 优化的 EKS 集群。其中包括 VPC 网络、Managed Node Group,以及 GPU 工作负载所需的 IAM Role 和 Policy。
在目标 Availability Zone 中为 p6-b300.48xlarge 实例创建 Capacity Block 预留。Capacity Blocks 可以保证所请求的 GPU 节点在预留时间窗口内可用。预留生效后,这些实例会作为 Worker Node 加入 EKS 集群。
该 recipe 会在 Node Group 上安装 NVIDIA device plugin 和 GPU 驱动,使 Kubernetes 能够发现可用 GPU,并将工作负载调度到这些 GPU 上。
使用 Helm chart 或 Kubernetes manifest 部署 vLLM 容器,并传入 Kimi K3 特有的参数,包括值为 8 的 tensor-parallel size、MXFP4 load format 和 MoE backend 配置。模型标识符指向 Hugging Face repository;或者,也可以将模型权重同步到 Amazon Simple Storage Service(Amazon S3),以加快模型加载速度。服务参数与前面 HyperPod 配置中展示的参数一致。
通过 Kubernetes Service(类型为 LoadBalancer,或经由 Ingress controller)在 8000 端口公开 vLLM 服务器,从而为应用提供与 OpenAI 兼容的 /v1/chat/completions endpoint。
向 endpoint 发送测试请求,并确认模型成功返回响应,以验证部署是否正常。
如需完整部署指南,包括 Terraform modules、Helm values 和分步说明,请参阅 AI on EKS Kimi K3 recipe。
部署完成后,Kimi K3 endpoint 会公开一个与 OpenAI 兼容的 Chat Completions API。你可以使用 OpenAI Python SDK 或简单的 curl 命令调用它。
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 -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
}'
将 <ENDPOINT_URL> 替换为 HyperPod Inference Operator 或 EKS ingress 配置所公开的服务 endpoint。
为了避免持续产生费用,当不再需要本教程中创建的资源时,请将其删除。
运行 kubectl delete -f kimi-k3.yaml 删除 InferenceEndpointConfig。
在 SageMaker AI 控制台中,进入 HyperPod Clusters,选择你的集群,然后选择 Delete。
如果不再需要 Flexible Training Plan 预留,请释放或取消该预留。
删除 vLLM deployment 及其关联的 Kubernetes services。
终止 GPU Node Group,或者使用 Terraform(terraform destroy)删除 EKS 集群。
如果 Capacity Block 预留尚未到期,请将其释放。
有关 p6-b300 实例和 Capacity Block 预留的定价详情,请参阅 Amazon EC2 定价页面。
Kimi K3 代表着开放权重模型能力的新前沿,而 AWS 提供了以大规模方式部署它所需的基础设施和托管服务。无论选择流程更精简的 HyperPod Inference Operator,还是更灵活的自管理 EKS 集群,p6-b300 GPU 实例、vLLM 服务和 MXFP4 量化权重的组合,都能够为这个全球规模最大的开放模型提供一套内置健康检查、自动恢复和 endpoint 就绪验证能力的部署方案。以下资源可以帮助你开始部署:
SageMaker HyperPod Kimi K3 示例
AI on EKS Kimi K3 Recipe
创建 SageMaker HyperPod 集群(AWS 文档)
Hugging Face 上的 Kimi K3