本地部署 Kimi K3 前,先把“本地”这两个字说清楚:这里指的是在自己的 Linux 多卡 GPU 服务器或私有集群上自托管推理,不是把模型放到普通笔记本或单张消费级显卡上运行。
如果你只是想通过 API 使用 Kimi K3,建议先看 Kimi K3 指南中心 和站内的 API 文章。本篇重点回答另一个问题:当团队需要私有化、内网推理、性能调优或评测环境时,如何本地部署 Kimi K3。
先判断是否真的适合本地部署
官方资料显示,Kimi K3 是 2.8T 总参数、104B 激活参数的 MoE 模型,支持 1,048,576 token 上下文,并使用 MXFP4 权重与 MXFP8 激活。这个规格决定了它不是“下载后随手跑”的小模型。
在正式准备机器前,先问三个问题:
- 你是否有多卡服务器,且 GPU 显存、互联和存储都足够?
- 你是否真的需要本地权重,而不是使用 Kimi 官方 API?
- 你是否有人能维护推理引擎、镜像版本、监控和升级?
如果答案不明确,先用官方 API 做能力验证。只有当数据合规、成本、延迟、内网访问或自定义推理栈确实要求自托管时,再进入本地部署。
推荐部署路线
Kimi 官方 README 当前推荐的推理引擎包括 vLLM、SGLang 和 TokenSpeed。实际选择可以按团队目标拆开:
- vLLM:适合需要 OpenAI-compatible API、批处理、prefix cache 和较成熟生产生态的团队。
- SGLang:适合需要 agent、工具调用、多轮调度或更细粒度 serving 控制的团队。
- TokenSpeed:适合已经围绕 TokenSpeed 做高性能推理实验或集群调度的团队。
截至 2026-07-28,最稳妥的做法不是凭记忆手写一长串参数,而是从官方 README 进入对应 recipe,并以 recipe 的镜像、分布式参数和已知限制为准。
准备服务器环境
一台可用的 Kimi K3 本地部署机器,至少要准备这些部分:
- Linux 服务器或容器化 GPU 集群。
- NVIDIA 或 AMD GPU 驱动,以及与推理镜像匹配的运行时。
- 足够的 GPU 显存、主机内存、本地 SSD 或高速共享存储。
- Hugging Face 或官方权重源访问权限。
- Docker、NVIDIA Container Toolkit 或等价容器运行时。
- 内网可访问的服务端口,例如
8000或30000。
建议先准备环境变量:
export HF_TOKEN="YOUR_HUGGING_FACE_TOKEN"
export MODEL_ID="moonshotai/Kimi-K3"
mkdir -p ~/.cache/huggingface权重体积、下载时间和校验时间都可能很长。生产环境不要把模型缓存放在临时盘,也不要让多个容器同时重复下载同一份权重。
路线一:使用 vLLM 部署 Kimi K3
vLLM 是大多数团队优先评估的路径,因为它可以暴露 OpenAI-compatible /v1/chat/completions 接口,方便接入已有应用、网关和评测脚本。
部署时优先打开官方 vLLM Kimi K3 recipe,使用里面指定的镜像和参数。一个典型启动形状如下:
docker run --gpus all \
--ipc=host \
--shm-size=32g \
-p 8000:8000 \
-e HF_TOKEN="$HF_TOKEN" \
-v ~/.cache/huggingface:/root/.cache/huggingface \
<VLLM_KIMI_K3_IMAGE_FROM_OFFICIAL_RECIPE> \
vllm serve "$MODEL_ID" \
--host 0.0.0.0 \
--port 8000 \
--trust-remote-code \
--max-model-len 1048576这里的 <VLLM_KIMI_K3_IMAGE_FROM_OFFICIAL_RECIPE> 不要随便替换成旧版 vLLM 镜像。Kimi K3 依赖的量化、attention、并行和解析支持更新很快,直接使用 recipe 的镜像更安全。
如果只是做小流量验证,可以先把 --max-model-len 降低到 32768 或 65536,确认服务能启动、能返回、能记录 token,再逐步提高上下文长度。完整 1M 上下文会显著增加 KV cache 和调度压力。
路线二:使用 SGLang 部署 Kimi K3
SGLang 也是官方 README 推荐的路径之一。它适合更复杂的 serving 场景,尤其是 agent、多轮消息、结构化输出、工具调用和调度策略需要更强控制时。
一个最小服务形状如下:
docker run --gpus all \
--ipc=host \
--shm-size=32g \
-p 30000:30000 \
-e HF_TOKEN="$HF_TOKEN" \
-v ~/.cache/huggingface:/root/.cache/huggingface \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "$MODEL_ID" \
--host 0.0.0.0 \
--port 30000生产部署时不要只停留在这个最小形状。你需要根据官方 SGLang cookbook 补齐 tensor parallel、expert parallel、data parallel、memory fraction、max running requests、tool parser 等参数。
路线三:评估 TokenSpeed
TokenSpeed 也是 Kimi 官方 README 列出的 Kimi K3 推理选项。它更偏高性能推理和特定集群调优,适合已经有推理工程团队的组织。
如果你走 TokenSpeed,建议直接从官方 TokenSpeed recipes 开始,不要把 vLLM 或 SGLang 的参数照搬过去。不同引擎的并行、缓存、调度和模型加载策略并不等价。
用 OpenAI-compatible 请求验证
服务启动后,先不要接入真实业务。先从本机或同网段机器发一个最小请求:
curl http://localhost:8000/v1/chat/completions \
-H "content-type: application/json" \
-d '{
"model": "moonshotai/Kimi-K3",
"messages": [
{
"role": "user",
"content": "用三点说明 Kimi K3 本地部署时最容易忽略什么。"
}
],
"max_tokens": 512,
"reasoning_effort": "low"
}'如果你用的是 SGLang 的 30000 端口,把 URL 改成对应地址即可。
Kimi 官方 README 提醒,Kimi K3 默认会返回 reasoning_content,并且多轮对话或工具调用时需要把上一轮 assistant message 原样传回,包括 reasoning_content 和 tool_calls。只保留 content 可能会影响后续轮次。
生产前检查清单
把服务接入用户流量前,至少检查这些点:
- 权重和镜像版本固定,能复现部署。
- GPU 显存、KV cache、队列长度和吞吐都有监控。
- API 层有限流、超时、重试和请求体大小限制。
- 日志能记录 request ID、输入输出 token、延迟和错误类型。
- 长上下文请求有配额,不允许所有用户默认打满 1M token。
- 多轮对话保留完整 assistant message,不丢
reasoning_content。 - OpenAI-compatible 客户端的模型名和 base URL 与服务端一致。
本地部署的价值是控制权,但控制权也意味着维护责任。不要只验证“能返回一段文字”,还要验证高并发、长上下文、失败恢复和升级回滚。
常见问题
普通电脑能不能本地部署 Kimi K3?
不建议。Kimi K3 的规模面向多卡服务器或集群。普通电脑更适合调用官方 API。
可以只用一张 GPU 测试吗?
通常不现实。即使权重是 MXFP4,模型总规模、KV cache 和 serving 开销仍然远超单卡消费级环境。
vLLM 和 SGLang 该选哪个?
已有 OpenAI-compatible 网关、评测脚本和生产 serving 经验时,先试 vLLM。需要更复杂 agent serving 或 SGLang 生态能力时,再试 SGLang。
为什么文中没有给固定镜像名?
因为 Kimi K3 的推理支持仍在快速更新。固定旧镜像名比让读者去官方 recipe 取当前镜像更危险。
