>
2026 年 5 月,月之暗面(Moonshot AI)正式开源了 Kimi K2,这是一款基于 MoE 架构、参数总量 1.04 万亿、激活参数 32B 的开源大模型。在多项基准测试中,K2 的代码能力、Agent 能力、长上下文处理(128K)已接近 GPT-4 级别。
相比商业 API 调用的方案,本地部署 Kimi K2 的优势:
本指南将手把手带你用 Ollama + Open WebUI 的组合,30 分钟内完成 Kimi K2 的本地部署。
Kimi K2 的量化版本(Q4_K_M)约 60GB,官方推荐配置:
| 模型版本 | 大小 | 推荐显存 |
|---|---|---|
| K2-Q4_K_M(推荐) | ~60GB | ≥48GB |
| K2-Q3_K_S | ~45GB | ≥32GB |
| K2-Q2_K | ~30GB | ≥24GB |
| K2-IQ4_XS | ~35GB | ≥28GB |
显存不够怎么办? 使用 CPU 模式(速度慢但能跑)或云 GPU(AutoDL/恒源 GPU 平台)。
# 查看 NVIDIA 显卡
nvidia-smi
# 期望看到类似输出:
# +-----------------------------------------+
# | NVIDIA-SMI 535.xx Driver Version |
# | GPU Name | Memory-Usage | Temp |
# | A100 80GB | 0MiB / 81920MiB| 30°C |
# +-----------------------------------------+
Ollama 是目前最流行的本地大模型运行工具,原生支持 Kimi K2。
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装
ollama --version
# 期望:ollama version 0.5.x
# 启动服务
systemctl enable ollama
systemctl start ollama
# 验证 API
curl http://localhost:11434
# 期望:Ollama is running
下载 https://ollama.com/download/Ollama.dmg 双击安装。
默认只监听 127.0.0.1,如需局域网访问:
# 编辑 systemd 服务
sudo systemctl edit ollama
# 添加:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
# 重启
sudo systemctl daemon-reload
sudo systemctl restart ollama
# 拉取 Q4 量化版(约 60GB,需要稳定网络)
ollama pull kimi-k2:q4_K_M
# 拉取 Q3 较小版(约 45GB)
ollama pull kimi-k2:q3_K_S
# 列出已下载模型
ollama list
下载速度优化:
# 设置国内镜像(如阿里云)
export OLLAMA_MIRROR=https://ollama-mirror.cn-hangzhou.oss.aliyuncs.com
# 使用 hf 镜像
export HF_ENDPOINT=https://hf-mirror.com
# 重新拉取
ollama pull kimi-k2:q4_K_M
# 直接命令行对话
ollama run kimi-k2:q4_K_M "你好,请介绍下你自己"
# 期望输出类似:
# 您好!我是 Kimi K2,由月之暗面开发的开源大模型...
# 我擅长长文本处理、代码生成、Agent 任务...
# 退出对话
/bye
# 设置上下文长度(最大 128K)
ollama run kimi-k2:q4_K_M --ctx-size 131072
# 设置 GPU 数量
CUDA_VISIBLE_DEVICES=0,1 ollama run kimi-k2:q4_K_M
# 量化 Q8(更高质量,需要更多显存)
ollama pull kimi-k2:q8_0
命令行太丑?装个 Open WebUI 就有 ChatGPT 那种界面了。
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
-v open-webui-data:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
ghcr.io/open-webui/open-webui:main
# 验证
curl http://localhost:3000
# 期望看到登录页面
浏览器打开 http://你的服务器IP:3000,第一次访问会要求注册管理员账号(第一个注册的用户自动是 admin)。
Open WebUI 会自动读取 Ollama 的模型列表。如果没显示:
kimi-k2:q4_K_M新建对话,选择 Kimi K2 模型,就能像用 ChatGPT 一样用了。
Kimi K2 完全兼容 OpenAI API 格式,可以直接对接现有应用:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k2:q4_K_M",
"messages": [
{"role": "user", "content": "用 Python 写一个 HTTP 服务器"}
],
"temperature": 0.7,
"max_tokens": 2000
}'
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 任意值
)
response = client.chat.completions.create(
model="kimi-k2:q4_K_M",
messages=[
{"role": "system", "content": "你是一个 Python 专家"},
{"role": "user", "content": "写一个 FastAPI 服务"}
],
temperature=0.7
)
print(response.choices[0].message.content)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama",
model="kimi-k2:q4_K_M"
)
response = llm.invoke("解释 Transformer 架构")
print(response.content)
Error: CUDA out of memory. Tried to allocate 2.00 GiB.
GPU 0 has a total capacity of 23.99 GiB of which 0 bytes is free.
# 解决:使用更小的量化版本
ollama pull kimi-k2:q3_K_S
# 或减少上下文
ollama run kimi-k2:q4_K_M --ctx-size 8192
# 1. 设置环境变量使用国内镜像
export OLLAMA_MIRROR=https://ollama-mirror.cn-hangzhou.oss.aliyuncs.com
ollama pull kimi-k2:q4_K_M
# 2. 手动下载后导入
# 从 https://hf-mirror.com/moonshotai/Kimi-K2-Instruct 下载 GGUF 文件
# 放到 ~/.ollama/models/ 目录
# 查看日志
journalctl -u ollama -n 50
# 常见原因:端口被占用
lsof -i :11434
kill -9 <PID>
# 重启
systemctl restart ollama
# Linux 上使用 host.docker.internal 不行,改用:
docker run -d \
--name open-webui \
--network host \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
ghcr.io/open-webui/open-webui:main
# 或指定宿主机 IP
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://192.168.1.100:11434 \
ghcr.io/open-webui/open-webui:main
这是 CPU 模式的正常现象。优化方案:
生产环境通常需要同时部署多个模型(Kimi K2 + Embedding + Reranker),建议用 Docker Compose 统一管理:
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
runtime: nvidia
ports:
- "11434:11434"
volumes:
- ollama-data:/root/.ollama
environment:
- NVIDIA_VISIBLE_DEVICES=all
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
volumes:
- open-webui-data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
depends_on:
- ollama
volumes:
ollama-data:
open-webui-data:
技巧 1:KV Cache 量化
# 启动时启用 FP8 KV Cache(节省 50% 显存)
OLLAMA_KV_CACHE_TYPE=f8e4m3 ollama serve
# INT4 KV Cache(节省 75% 显存,质量略降)
OLLAMA_KV_CACHE_TYPE=int4 ollama serve
技巧 2:Prefix Caching(系统提示词复用)
# 启用自动 prefix caching
# 相同 system prompt 只需计算一次
ollama run kimi-k2:q4_K_M --cache-prefix
技巧 3:多 GPU 分片
# 模型自动分片到多卡
CUDA_VISIBLE_DEVICES=0,1,2,3 ollama serve
# 手动指定层数分配
OLLAMA_NUM_GPU=4 ollama serve
用 ollama-bench 工具压测:
# 安装
pip install ollama-bench
# 压测 100 并发,512 prompt / 1024 output
ollama-bench \
--model kimi-k2:q4_K_M \
--concurrency 100 \
--prompt-tokens 512 \
--output-tokens 1024 \
--duration 60
# 期望结果(4×A100-80GB):
# Throughput: 3500 tokens/s
# Avg latency: 280ms
# P99 latency: 850ms
用 Nginx 给 Open WebUI 加 HTTPS:
server {
listen 443 ssl http2;
server_name ai.your-domain.com;
ssl_certificate /etc/nginx/ssl/ai.crt;
ssl_certificate_key /etc/nginx/ssl/ai.key;
client_max_body_size 100M; # 支持大文件上传
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# SSE 流式响应
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
}
}
# Prometheus 监控 Ollama
# prometheus.yml
scrape_configs:
- job_name: 'ollama'
static_configs:
- targets: ['localhost:11434']
metrics_path: /metrics
# 关键告警规则
# - GPU 显存使用率 > 90% 持续 5 分钟
# - 单卡 GPU 利用率 < 30% 持续 10 分钟(资源浪费)
# - 请求 P99 延迟 > 5 秒
# - 模型加载失败
#!/bin/bash
# backup-ollama.sh
# 每周日凌晨备份模型文件和配置
BACKUP_DIR=/backup/ollama/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
# 1. 备份模型(增量)
rsync -av --delete /root/.ollama/models/ $BACKUP_DIR/models/
# 2. 备份 Open WebUI 数据
docker exec open-webui tar czf - /app/backend/data > $BACKUP_DIR/open-webui.tar.gz
# 3. 备份配置
cp /root/.ollama/config.json $BACKUP_DIR/
cp /etc/systemd/system/ollama.service $BACKUP_DIR/
# 4. 清理 30 天前的备份
find /backup/ollama/ -mtime +30 -exec rm -rf {} \;
echo "备份完成: $BACKUP_DIR"
某电商公司将 Kimi K2 部署为智能客服系统,处理日均 50 万次咨询:
某科技公司为 500 名开发人员部署内部代码助手:
某高校实验室用 Kimi K2 读 arXiv 论文,128K 上下文一次读 60 篇:
| 模型 | 参数量 | 上下文 | 中文能力 | 代码能力 | 硬件要求 |
|---|---|---|---|---|---|
| Kimi K2 | 1.04T (32B 激活) | 128K | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 48GB+ |
| DeepSeek-V3 | 671B (37B 激活) | 64K | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 48GB+ |
| Qwen2.5-72B | 72B | 128K | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 40GB+ |
| Llama-3-70B | 70B | 8K | ⭐⭐⭐ | ⭐⭐⭐⭐ | 40GB+ |
| Mistral-Large-2 | 123B | 128K | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 64GB+ |
K2 在中文理解、长文本处理、Agent 任务上接近 GPT-4 水平,但创意写作和复杂推理略逊。本地部署版适合企业私有化场景,不适合个人娱乐。
不必须,CPU 模式也能跑(速度慢 50 倍)。AMD 显卡需用 ROCm 版本,Apple Silicon 用 Metal 加速。NVIDIA 是最佳选择。
可以!Kimi K2 采用 Modified MIT 协议,允许商用,但需要在产品中标注"基于 Kimi K2 模型"。月活超过 1 亿需联系月之暗面。
能跑 Q3 量化版(~45GB 会溢出),实际可用 Q2 量化(30GB)。4090 跑 K2 不太合适,建议用 Q3 + CPU 卸载。
官网 API 价格 ¥0.012/1K tokens,本地部署一次性硬件投入后永久免费。QPS 限制、稳定性不同。私有数据场景必须本地部署。
本指南完整介绍了 Kimi K2 的本地部署流程。从 Ollama 安装、模型下载,到 Open WebUI 可视化、API 对接、显存优化、生产部署,希望帮你避坑。30 分钟内就能跑起来。
下一步建议:
遇到问题随时微信咨询,或加入知识库会员获取完整部署包+视频教程。
📱 微信:toukenai