Kimi-K2-Thinking#
简介#
Kimi-K2-Thinking 是 Moonshot AI 开发的大规模混合专家(MoE)模型。它采用混合思考架构,在复杂推理和问题求解任务中表现出色。
本文档将展示模型的主要验证步骤,包括支持的特性、环境准备、单节点部署和功能验证。
支持的特性#
请参阅支持的特性矩阵获取模型支持的特性列表。
请参阅特性指南获取特性的配置方法。
环境准备#
模型权重#
Kimi-K2-Thinking(bfloat16):需要 1 个 Atlas 800 A3(64G × 16)节点。下载模型权重。
建议将模型权重下载到共享目录,例如 /mnt/sfs_turbo/.cache/。
安装#
您可以使用官方 Docker 镜像直接运行 Kimi-K2-Thinking。
根据您的机器类型选择镜像,并在节点上启动 Docker 镜像,请参考使用 Docker 安装。
使用 Docker 运行#
# Update the vllm-ascend image
export IMAGE=m.daocloud.io/quay.io/ascend/vllm-ascend:v0.20.2rc1
export NAME=vllm-ascend
# Run the container using the defined variables
# Note: If you are running bridge network with docker, please expose available ports for multiple nodes communication in advance
docker run --rm \
--name $NAME \
--net=host \
--shm-size=1g \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci4 \
--device /dev/davinci5 \
--device /dev/davinci6 \
--device /dev/davinci7 \
--device /dev/davinci8 \
--device /dev/davinci9 \
--device /dev/davinci10 \
--device /dev/davinci11 \
--device /dev/davinci12 \
--device /dev/davinci13 \
--device /dev/davinci14 \
--device /dev/davinci15 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /mnt/sfs_turbo/.cache:/home/cache \
-it $IMAGE bash
验证量化模型#
请注意,在从 Hugging Face 下载的原始模型的 config.json 中,需要将 "quantization_config.config_groups.group_0.targets" 的值从 ["Linear"] 修改为 ["MoE"]。
{
"quantization_config": {
"config_groups": {
"group_0": {
"targets": [
"MoE"
]
}
}
}
}
您的模型文件结构如下所示:
.
|-- chat_template.jinja
|-- config.json
|-- configuration_deepseek.py
|-- configuration.json
|-- generation_config.json
|-- model-00001-of-000062.safetensors
|-- ...
|-- model-00062-of-000062.safetensors
|-- model.safetensors.index.json
|-- modeling_deepseek.py
|-- tiktoken.model
|-- tokenization_kimi.py
|-- tokenizer_config.json
多 NPU 在线推理#
运行以下脚本在多 NPU 上启动 vLLM 服务器:
对于 Atlas 800 A3(64G*16)节点,tensor-parallel-size 至少应为 16。
export HCCL_BUFFSIZE=1024
export TASK_QUEUE_ENABLE=1
export OMP_PROC_BIND=false
export HCCL_OP_EXPANSION_MODE=AIV
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export SERVER_PORT=8000
vllm serve moonshotai/Kimi-K2-Thinking \
--tensor-parallel-size 16 \
--port $SERVER_PORT \
--max-model-len 8192 \
--max-num-batched-tokens 8192 \
--max-num-seqs 12 \
--gpu-memory-utilization 0.9 \
--trust-remote-code \
--enable-expert-parallel \
--no-enable-prefix-caching
服务器启动后,您可以使用输入提示词查询模型。
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "kimi-k2-thinking",
"messages": [
{"role": "user", "content": "Who are you?"}
],
"temperature": 1.0
}'