# Kimi-K2-Thinking ## 论文 [Kimi-K2-Thinking technical blog](https://moonshotai.github.io/Kimi-K2/thinking.html) ## 模型简介 Kimi K2 Thinking是最新、能力最强的开源推理模型版本。自Kimi K2起,我们将其构建为一个能够逐步推理并动态调用工具的推理智能体。通过在“人类最后考试”(Humanity's Last Exam, HLE)、“浏览复杂度评估”(BrowseComp)等多项基准测试中显著扩展多步推理深度,并保持对200–300次顺序调用的稳定工具使用,Kimi K2 Thinking树立了新的行业标杆。同时,K2 Thinking作为原生INT4量化模型,拥有256k上下文窗口,实现了推理延迟和GPU内存占用的无损降低。 **核心特性**: - 深度推理与工具协同:经过端到端训练,能够将思维链推理与函数调用交错进行,支持自主研究、代码生成与写作工作流,可在数百个步骤中保持逻辑连贯,不发生偏离。 - 原生 INT4 量化:在后训练阶段采用量化感知训练技术,在低延迟模式下实现无损的2倍推理加速。 - 稳定的长程任务执行能力:可在连续多达200–300次工具调用过程中保持连贯的目标导向行为,超越了此前模型在30–50步后性能衰减的局限。 ## 环境依赖 | 软件 | 版本 | | :------: |:-----------------------------------------:| | DTK | 26.04 | | python | 3.10.12 | | transformers | 4.57.6 | | vllm | 0.15.1+das.opt1.alpha.dtk2604.20260220.g2799735a | | triton | 3.3.0+das.opt2.dtk2604.torch291.20260210.g1329924c | | torch | 2.9.0+das.opt1.dtk2604.20260206.g275d08c2 | 推荐使用镜像: harbor.sourcefind.cn:5443/dcu/admin/base/custom:vllm0.15.1-ubuntu22.04-dtk26.04-0130-py3.10-20260220 - 挂载地址`-v` 根据实际模型情况修改 ```bash docker run -it \ --shm-size 200g \ --network=host \ --name Kimi-K2-Thinking \ --privileged \ --device=/dev/kfd \ --device=/dev/dri \ --device=/dev/mkfd \ --group-add video \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ -u root \ -v /opt/hyhal/:/opt/hyhal/:ro \ -v /path/your_code_data/:/path/your_code_data/ \ harbor.sourcefind.cn:5443/dcu/admin/base/custom:vllm0.15.1-ubuntu22.04-dtk26.04-0130-py3.10-20260220 bash ``` 更多镜像可前往[光源](https://sourcefind.cn/#/service-list)下载使用。 关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装,pycountry库需要单独安装: ``` pip install pycountry ``` ## 数据集 暂无 ## 训练 暂无 ## 推理 ### vllm #### 多机推理 1. 加入环境变量 > 请注意: > 每个节点上的环境变量都写到.sh文件中,保存后各个计算节点分别source`.sh`文件 > > VLLM_HOST_IP:节点本地通信口ip,尽量选择IB网卡的IP,**避免出现rccl超时问题** > > NCCL_SOCKET_IFNAME和 GLOO_SOCKET_IFNAME:节点本地通信网口ip对应的名称 > > 通信口和ip查询方法:ifconfig > > IB口状态查询:ibstat !!!一定要active激活状态才可用,各个节点要保持统一 ```bash export ALLREDUCE_STREAM_WITH_COMPUTE=1 export VLLM_HOST_IP=x.x.x.x # 对应计算节点的IP,选择IB口SOCKET_IFNAME对应IP地址 export NCCL_SOCKET_IFNAME=ibxxxx export GLOO_SOCKET_IFNAME=ibxxxx export NCCL_IB_HCA=mlx5_0:1 # 环境中的IB网卡名字 unset NCCL_ALGO export NCCL_MIN_NCHANNELS=16 export NCCL_MAX_NCHANNELS=16 export NCCL_NET_GDR_READ=1 export HIP_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export VLLM_SPEC_DECODE_EAGER=1 export VLLM_MLA_DISABLE=0 export VLLM_USE_FLASH_MLA=1 export VLLM_RPC_TIMEOUT=1800000 # 海光CPU绑定核 export VLLM_NUMA_BIND=1 export VLLM_RANK0_NUMA=0 export VLLM_RANK1_NUMA=1 export VLLM_RANK2_NUMA=2 export VLLM_RANK3_NUMA=3 export VLLM_RANK4_NUMA=4 export VLLM_RANK5_NUMA=5 export VLLM_RANK6_NUMA=6 export VLLM_RANK7_NUMA=7 ``` 2. 启动RAY集群 > x.x.x.x 对应第一步 VLLM_HOST_IP ```bash # head节点执行 ray start --head --node-ip-address=x.x.x.x --port=6379 --num-gpus=8 --num-cpus=32 # worker节点执行 ray start --address='x.x.x.x:6379' --num-gpus=8 --num-cpus=32 ``` 3. 启动vllm server ```bash ## serve启动 vllm serve moonshotai/Kimi-K2-Thinking \ -tp 32 \ --distributed-executor-backend ray \ --mm-encoder-tp-mode data \ --trust-remote-code \ --tool-call-parser kimi_k2 \ --reasoning-parser kimi_k2 ## client访问 curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "moonshotai/Kimi-K2-Thinking", "messages": [ {"role": "user", "content": "which one is bigger, 9.11 or 9.9? think carefully"} ], "temperature": 0.6 }' ``` ## 效果展示