2026年7月27日,月之暗面正式发布并开源Kimi K3模型权重与技术报告。Kimi K3是全球首个开源的3万亿参数级多模态模型,总参数量达2.8万亿(2.78T),采用Stable LatentMoE架构,内置896个路由专家,单次仅激活16个专家。模型搭载自研KDA混合线性注意力(Kimi Delta Attention)与注意力残差(Attention Residuals)机制,支持100万Token超长上下文窗口,相较前代实现显著的长文本处理能力提升。KDA线性注意力替代了75%的传统注意力层,计算复杂度随文本长度线性增长;同时KV Cache压缩达75%,长文本解码速度提升6.3倍。模型原生具备视觉理解能力,在长周期编程、深度文献分析、工程设计等复杂智能体任务上表现突出,扩展效率较前代提升2.5倍。
资源要求
管理节点:1 台搭载昇腾 910C NPU 的节点(每节点 16 × 64GB 昇腾 910C,HBM2e 显存)。
计算节点:3 台搭载昇腾 910C NPU 的节点(每节点 16 × 64GB 昇腾 910C,HBM2e 显存)。
共享存储:根据资源池选择 OceanFS 或 SFS Turbo,容量需满足模型权重、数据集与镜像存储需求(默认500GB)。
网络:节点间使用 RoCE 或高速以太网连接,管控节点绑定 EIP 用于公网访问,EIP 避免直接暴露在公网,具体可参照安全防护。
环境准备
1.集群开通
天翼云高性能计算集群(HCC)平台拥有 基础版 和 大模型精简版 两种集群版本,根据开通机器类型建议选择 大模型精简版 :
高性能计算集群(HCC) 大模型精简版
功能定位:包含 Slurm 调度系统、apptainer 高性能容器,实现deepseek服务一键启停。
开通步骤:
登录天翼云控制台,进入“弹性高性能计算”产品页面,选择“高性能计算集群”,点击进入集群控制台。
点击“创建集群”,在集群类型中选择“大模型精简版”。
依次配置各项参数,包括计费模式、地域、可用区、集群名称、虚拟私有云、安全组、共享存储( SFS 或 OceanFS)、管理节点和计算节点的对应规格、镜像、磁盘、子网、登录密码。(注:当前 大模型精简版 暂不支持无计算节点的集群创建,需至少配置1台计算节点)
确认所有配置无误后,提交订单并完成集群创建,等待节点纳管完成,直至集群页面显示“可用”“配置完成”状态。
点击已创建的集群,选择左侧“节点”栏,删除配置的计算节点,仅保留管理节点即可。
2.NVMe 磁盘挂载配置
昇腾910C物理机默认配备2×3.2T NVMe SSD,请格式化后用于存储模型文件,提升推理性能。
需将节点的nvme1n1和nvme0n1两块 NVMe 盘分别挂载至/mnt/nvme1n1和/mnt/nvme0n1目录。
可通过以下脚本实现自动化挂载及开机自动挂载的配置:
#!/bin/bash
# 设备列表
devices=("/dev/nvme0n1" "/dev/nvme1n1")
mount_points=("/mnt/nvme0n1" "/mnt/nvme1n1")
fs_type="xfs"
# 确保 root 权限
if [[ $EUID -ne 0 ]]; then
echo "请使用 root 运行此脚本!"
exit 1
fi
for i in "${!devices[@]}"; do
device="${devices[$i]}"
mount_point="${mount_points[$i]}"
# 创建挂载目录
mkdir -p "$mount_point"
# 获取设备的文件系统类型
current_fs=$(blkid -s TYPE -o value "$device")
if [[ -z "$current_fs" ]]; then
echo "设备 $device 没有文件系统,正在格式化为 $fs_type..."
mkfs.xfs -f "$device"
else
echo "$device 已格式化为 $current_fs,跳过格式化"
fi
# 确保设备未被挂载后再尝试挂载
umount "$device" 2>/dev/null
mount -t "$fs_type" "$device" "$mount_point"
if [[ $? -ne 0 ]]; then
echo "错误:无法挂载 $device 到 $mount_point,请检查设备或文件系统!"
exit 1
fi
echo "$device 已成功挂载到 $mount_point"
# 获取 UUID 并更新 /etc/fstab,避免重复添加
uuid=$(blkid -s UUID -o value "$device")
if ! grep -q "$uuid" /etc/fstab; then
echo "UUID=$uuid $mount_point $fs_type defaults 0 0" >> /etc/fstab
echo "$device (UUID=$uuid) 已添加到 /etc/fstab"
else
echo "$device 已存在于 /etc/fstab,无需添加"
fi
done
echo "所有磁盘已成功挂载并配置为开机自动挂载!"将以上脚本保存为mount.sh,并执行
bash mount.sh本指南中部署将统一使用以下路径:
高速容器存储路径:
/mnt/nvme0n1/apptainer/服务部署工作路径:
/home/kimi-k3/模型权重参数路径:
/mnt/nvme1n1/model/
建议将权重参数放在单独的nvme盘中,启动加载时更快。
3.管理节点加入计算队列
Slurm 集群默认架构设计中,管理节点常规场景下不纳入计算调度队列。在大模型训推、高性能算力作业场景下,单靠原有计算节点资源难以满足大模型权重加载、容器运行、推理生成的高算力与大内存诉求。
为最大化挖掘整机集群资源利用率、扩充可用算力规模,需将管理节点从纯管理模式,纳入 Slurm 计算调度队列,使其同时承担集群管理 + 大模型算力计算双重角色,统一参与大模型相关作业调度与算力承载。
sed -i 's/^\s*noderole\s*=.*/NodeRole=server,execute/i' /usr/local/galaxy/cluster/default/galaxy-launcher/etc/launcher.conf
launcher resource setup_scheduler
# {"success": true, "result": null}
# master0001为管控节点hostname,按实际修改;batch是队列名,在计算节点下单页可自定义命名,建议用batch
launcher resource add_node --node_name master0001 --queue_name batch
# {"success": true, "result": null}命令执行成功后,可通过sinfo命令查看计算队列节点
# 查看计算队列节点
sinfo
# PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
# batch* up infinite 4 idle compute[0001-0003],master0001物料准备
1.模型文件获取
方式一:(极速)使用cthpc一键安装工具,分钟级快速下发模型,当前支持:
mkdir -p /mnt/nvme1n1/model
# 使用 cthpc 工具极速下发
cthpc model makecache
cthpc model install Kimi-K3-w4a8 --dir /mnt/nvme1n1/model/方式二:(传统方式速度慢)基于modelscope、魔乐社区、huggingface平台,使用对应工具直接下载(不推荐,受限于公网EIP订阅的带宽大小)
mkdir -p /mnt/nvme1n1/model/Kimi-K3-w4a8
# modelscope下载依赖python3.8+的环境,若缺失,则需要构建虚拟环境
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install modelscope
modelscope download --model Eco-Tech/Kimi-K3-w4a8 --local_dir /mnt/nvme1n1/model/Kimi-K3-w4a82.高性能容器SIF文件获取
基于Apptainer(原 Singularity) 封装的 vLLM-Ascend 昇腾推理加速包,高性能计算集群产品将持续迭代优化,原生适配昇腾 NPU 硬件、无权限壁垒、极致轻量化、生产级稳定,全面超越传统 Docker 容器,是昇腾 AI 推理场景的最优融合选择。
方式一:(极速)使用cthpc一键安装工具,秒级快速下发apptainer高性能容器灌装,当前支持:
mkdir -p /mnt/nvme0n1/apptainer
# 使用 cthpc 工具极速下发
cthpc apptainer makecache
cthpc apptainer install vllm-ascend_kimi-k3-a3 --dir /mnt/nvme0n1/apptainer/方式二:(传统方式速度慢)通过天翼云zos站点直接下载(不推荐,受限于公网EIP订阅的带宽大小)
mkdir -p /mnt/nvme0n1/apptainer
# 使用 wget 从 天翼云ZOS 下载 SIF 镜像
wget https://jiangsu-10.zos.ctyun.cn/galaxy/apptainer/vllm_ascend/vllm-ascend_kimi-k3-a3.sif镜像更新说明
华为会持续更新 vllm-ascend 包,优化推理性能与兼容性。更新时只需重新下载最新 SIF 镜像,替换旧文件即可,无需修改部署配置。
3.模型权重及高性能容器分发至所有节点
将 AI 模型权重文件与高性能业务容器镜像统一分发至集群所有计算节点,确保全节点模型文件、运行环境完全一致,避免单机重复下载。
进入集群工作目录:
mkdir -p /home/bcast
cd /home/bcast创建 / 编辑分发脚本 srun_bcast.sh:
#!/bin/bash
#SBATCH --job-name=bcast
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=1
#SBATCH --partition=batch # batch 需修改为集群初始化时设置的队列名
#SBATCH --time=01:00:00
#SBATCH --output=log_%j.out
#SBATCH --error=log_%j.err
export MPICH_NET_DEV=eno0
module load mpich/3.2.1/gcc-10.3.1
module load cthpc_910b/2.0.0/mpich-3.2.1
# cthpc_model_bcast [发送节点] [发送节点路径] [接受节点路径]
# 管理节点名如 master0001
srun --mpi=pmi2 \
--output=logs/log_%j_%t.log \
--error=logs/log_%j_%t.err \
cthpc_model_bcast a3master0001 /mnt/nvme0n1/apptainer /mnt/nvme0n1/apptainer
srun --mpi=pmi2 \
--output=logs/log_%j_%t.log \
--error=logs/log_%j_%t.err \
cthpc_model_bcast a3master0001 /mnt/nvme1n1/model/Kimi-K3-w4a8 /mnt/nvme1n1/model/Kimi-K3-w4a8提交任务至 Slurm 调度器执行分发
sbatch srun_bcast.sh当前cthpc_model_bcast在部分资源池上线,如您的提交任务时提示不存在二进制文件,请联系天翼云。
推理服务启停
1.创建部署目录
mkdir -p /home/kimi-k3
mkdir -p /home/kimi-k3/logs2.准备启动脚本
将以下脚本保存至/home/kimi-k3/srun.sh
#!/bin/bash
#SBATCH -N 4
#SBATCH --partition=batch
#SBATCH -J kimi
#SBATCH -o logs/log_%J.out
#SBATCH -e logs/log_%J.err
#SBATCH --gres=gpu:16
#SBATCH --exclusive
export LC_CTYPE=C.UTF-8
export MASTER_ADDR=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1 | hostname -i)
export MODEL_NAME=Kimi-K3
export MODEL_PORT=11025
export MODEL_DIR=/mnt/nvme1n1/model/Kimi-K3-w4a8
export VLLM_IMG=vllm-ascend_kimi-k3-a3.sif
echo "模型推理服务API为:http://$MASTER_ADDR:$MODEL_PORT/v1"
echo "模型名称为:$MODEL_NAME"
srun --ntasks-per-node=1 \
-o logs/log_%J.%t.out \
-e logs/log_%J.%t.err \
./node.sh3.准备节点部署脚本
将以下脚本保存至/home/Kimi-K3/node.sh
#!/bin/sh
nic_name="eno0"
local_ip=$(hostname -I | awk '{print $1}')
node0_ip=$MASTER_ADDR
export RPC_PORT=13389
export HCCL_IF_IP=$local_ip
export GLOO_SOCKET_IFNAME=$nic_name
export TP_SOCKET_IFNAME=$nic_name
export HCCL_SOCKET_IFNAME=$nic_name
export VLLM_ENGINE_READY_TIMEOUT_S=7200
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=1
export TASK_QUEUE_ENABLE=1
export HCCL_BUFFSIZE=800
apptainer instance start --no-home --writable-tmpfs \
-B /usr/local/sbin:/usr/local/sbin \
-B /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-B $MODEL_DIR:/model \
$VLLM_IMG app-instance
if [ $SLURM_NODEID == 0 ]; then
apptainer exec instance://app-instance \
vllm serve \
/model \
--served-model-name "$MODEL_NAME" \
--host 0.0.0.0 \
--port $PORT \
--allowed-local-media-path / \
--trust-remote-code \
--tensor-parallel-size 16 \
--data-parallel-size $SLURM_NNODES \
--data-parallel-size-local 1 \
--data-parallel-address $node0_ip \
--data-parallel-rpc-port $RPC_PORT \
--enable-prefix-caching \
--enable-expert-parallel \
--max-num-seqs 16 \
--max-model-len 131027 \
--max-num-batched-tokens 24576 \
--gpu-memory-utilization 0.9 \
--compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}' \
--mm-processor-cache-gb 0 \
--additional-config '{"enable_cpu_binding":true, "enable_flashcomm1":true}' \
--mm-encoder-tp-mode data \
--limit-mm-per-prompt '{"vision_chunk": 40}' \
--enable-auto-tool-choice \
--reasoning-parser kimi_k3 \
--tool-call-parser kimi_k3
else
apptainer exec instance://app-instance \
vllm serve \
/model \
--served-model-name "$MODEL_NAME" \
--host 0.0.0.0 \
--port $PORT \
--allowed-local-media-path / \
--trust-remote-code \
--tensor-parallel-size 16 \
--data-parallel-size $SLURM_NNODES \
--data-parallel-size-local 1 \
--headless \
--data-parallel-start-rank $SLURM_NODEID \
--data-parallel-address $node0_ip \
--data-parallel-rpc-port $RPC_PORT \
--enable-prefix-caching \
--enable-expert-parallel \
--max-num-seqs 16 \
--max-model-len 131027 \
--max-num-batched-tokens 24576 \
--gpu-memory-utilization 0.9 \
--compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}' \
--mm-processor-cache-gb 0 \
--additional-config '{"enable_cpu_binding":true, "enable_flashcomm1":true}' \
--mm-encoder-tp-mode data \
--limit-mm-per-prompt '{"vision_chunk": 40}' \
--enable-auto-tool-choice \
--reasoning-parser kimi_k3 \
--tool-call-parser kimi_k3
fi4.服务启动与停止
# 进入部署目录
cd /home/kimi-k3
# 设置节点启动脚本执行权限
chmod +x node.sh
# 启动 Kimi K3 服务
sbatch srun.sh
# 查看npu运行状态
npu-smi info
# 查看实例和作业运行信息
squeue
# 示例输出
# JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
# 1 batch kimi root R 2:04:45 4 a3compute[0001-0003],a3master0001
# 停止一项服务
# scancel [JOBID],根据上文kimi服务的JOBID为1
scancel 1
# 停止全部服务
scancel --me服务验证与运维
1.推理服务验证
测试方法:向大模型问一个简单的问题,准备如下脚本并保存到check.sh
#!/bin/bash
curl http://localhost:11025/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Kimi-K3",
"messages": [
{"role":"user","content":"你是谁?"}
],
"extra": {"openai_proxy":true}
}'成功响应示例:
sh check.sh
# {"id":"chatcmpl-afa9f1c6daf0729c","object":"chat.completion","created":1785234476,"model":"kimi-k3","choices":[{"index":0,"message":{"role":"assistant","content":"我是 Kimi,由月之暗面(Moonshot AI)开发的 AI 助手。你可以问我问题、让我帮你写代码、总结文档、翻译、 brainstorm 等。","refusal":null,"annotations":null,"audio":null,"function_call":null,"reasoning":"We need answer user in Chinese. User asks 'Who are you?' System background identity says current assistant is Kimi, developed by Moonshot AI (月之暗面). Use naturally when user asks. Need final: 我是 Kimi,由月之暗面(Moonshot AI)开发的 AI 助手... can help coding etc. Need not call further tools. Get straight. Also maybe no overexplaining. Ensure Chinese."},"logprobs":null,"finish_reason":"stop","stop_reason":163586,"token_ids":null,"routed_experts":null}],"service_tier":null,"system_fingerprint":"vllm-0.23.0-tp16-dp4-ep-2ec24851","usage":{"prompt_tokens":128,"total_tokens":266,"completion_tokens":138,"prompt_tokens_details":null,"completion_tokens_details":null},"prompt_logprobs":null,"prompt_token_ids":null,"prompt_text":null,"kv_transfer_params":null}2.推理日志查看
若服务异常,可通过日志排查问题:
# 查看模型推理服务API及模型名
tail -f /home/kimi-k3/logs/log.$JOBID.out
# 查看作业输出日志
tail -f /home/kimi-k3/logs/log.$JOBID.${节点编号}.out
# 查看错误日志
tail -f /home/kimi-k3/logs/log.$JOBID.${节点编号}.err其中JOBID可通过squeue命令查看,节点编号格式为0.x,x从0开始,表示第一个节点。
注意事项
模型版本管理:建议对模型权重、SIF 镜像进行版本化管理,避免更新后无法回滚。
安全防护:生产环境建议配置安全组IP 白名单,减少公网暴露面,并通过天翼云 WAF 防护恶意攻击,推荐以下5种安全组网方案:
ELB+VPN
ELB+NAT 网关。
DDoS+WAF+ELB+NATGW+VPN。
DDoS+WAF+ELB+SDWAN。
DDoS+WAF+ELB+专线
附录
天翼云 HCC 产品文档:弹性高性能计算-产品文档-帮助中心 - 天翼云
Kimi K3 模型下载地址:https://modelscope.cn/models/Eco-Tech/Kimi-K3-w4a8