Kimi-K3 本地推理:3 步跑出第一条结果
【免费下载链接】Kimi-K3项目地址: https://ai.gitcode.com/MoonshotAI/Kimi-K3
Kimi-K3 是 MoonshotAI 开源的 2.8T 参数原生多模态 MoE 模型,MXFP4 量化权重和 transformers 适配代码直接放在仓库里,本地推理的全部材料齐了。你的目标只有一个:把 Kimi-K3 在自有 GPU 上跑通——拉权重、装依赖、出第一条结果。想部署或改这个模型的人,照着敲就行。
最短路径:3 条命令跑通本地推理 🚀
git lfs install git clone https://gitcode.com/MoonshotAI/Kimi-K3- 为什么先装 LFS:96 个
model-*.safetensors权重分片(每个约 2.3GB)都是 Git LFS 对象,不启用 LFS 只会拉到 133 字节的指针文件,加载模型必挂。
pip install "transformers==4.56.2" tokenizers tiktoken torch safetensors accelerate numpy pillow- 为什么锁 4.56.2:
config.json里transformers_version就是这个版本;仓库没有requirements.txt,依赖要自己装。tiktoken支撑分词器,pillow/numpy支撑视觉预处理。
python -c "from transformers import AutoTokenizer; t=AutoTokenizer.from_pretrained('.'); print(t.encode('Kimi K3 本地推理'))"- 为什么先跑分词器:纯 CPU、秒级出 token id,不用碰权重,先确认
tiktoken.model+ tokenization_kimi.py 这条链路通。
最后加载完整模型(约 225GB 显存,多卡机器再跑):
python << 'PY' from transformers import AutoModelForCausalLM, AutoProcessor model = AutoModelForCausalLM.from_pretrained(".", device_map="auto", torch_dtype="auto") processor = AutoProcessor.from_pretrained(".") inputs = processor(text="用一句话介绍 Kimi-K3", return_tensors="pt") print(model.generate(**inputs, max_new_tokens=64)) PY仓库里该盯住的 5 个文件
- config.json:架构与量化总开关——93 层、896 专家每 token 激活 16 个,
quantization_config声明 MXFP4(mxfp4-pack-quantized); - modeling_kimi_k3.py:多模态主模型
KimiK3ForConditionalGeneration,负责 MoonViT 视觉塔与文本主干的拼接; modeling_kimi_linear.py:文本主干实现,KDA 线性注意力 + Gated MLA + LatentMoE,读前向路径看它;tokenization_kimi.py+tiktoken.model:tiktoken 分词器,词表 163840,<|media_pad|>等特殊 token 在此注册;kimi_k3_processor.py+kimi_k3_vision_processing.py+media_utils.py:图片输入流水线(navit resize、14×14 patch、in_patch_limit65536 上限)。
96 个权重分片加model.safetensors.index.json不用读,索引文件只管"张量名 → 分片"的映射。
三个真正改变推理体验的参数
reasoning_effort:思考强度,K3 思考永远开启,API 请求顶层字段,取low/high/max,默认max。改它直接影响思考长度和延迟——批量跑选low,难题选max。top_p:仓库评测基线是 temperature=1.0 + top-p 0.95(单步任务)或 1.0(agent 任务)。单次问答建议 0.95,多轮工具循环用 1.0。max_length:generation_config.json默认 1048576,对齐 1M 上下文。本地试跑没人真跑百万 token,先设几千,KV cache 内存直接省一个量级。
输入、模型、硬件:各改一处让结果更快更准
- 输入侧:多轮对话必须把上一条 assistant 消息原样传回
messages,包括reasoning_content和tool_calls——K3 是按"保留思考历史"训练的,只回传content会让多轮质量明显劣化。 - 输入侧:图片别贪多,
preprocessor_config.json的in_patch_limit上限 65536,每张高分辨率图都在吃 token 预算。 - 模型侧:仓库的 transformers 代码只适合验证和调试,生产服务走 README 推荐的推理引擎(vLLM / SGLang / TokenSpeed),都原生支持 K3;权重本身已是 MXFP4 量化感知训练产物,直接加载,别再叠一层量化。
- 硬件侧:2.8T 总参数(激活约 104B),96 个分片约 225GB,单卡放不下——多卡张量并行是前提,不是可选项。
踩坑速查表
| 现象 | 最可能原因 | 一步修复 |
|---|---|---|
| 权重目录是一堆 133 字节文本 | clone 没走 LFS,只拉到指针文件 | 仓库目录执行git lfs install && git lfs pull |
AutoConfig不认识kimi_k3 | transformers 过旧,或auto_map指向的本地 .py 不在同目录 | 升级到transformers==4.56.2,用仓库根目录整个路径加载 |
| 加载权重时 OOM 或长时间卡死 | 约 225GB 权重没做并行切分 | 上多卡张量并行(vLLM/SGLang),或先跑分词器验证环境 |
| 多轮输出串味、"失忆" | 只传回content,丢了reasoning_content | 把完整 assistant 消息原样传回messages |
下一步去读仓库 README.md 的 "Model Usage" 一节,确认你所在场景的消息格式;要搭 agent 的话,直接用 Kimi Code CLI 并在其中选 Kimi K3 试一轮完整工具循环。
【免费下载链接】Kimi-K3项目地址: https://ai.gitcode.com/MoonshotAI/Kimi-K3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考