# Kimi-K2-Instruct-quantized.w4a16 ## 论文 [Kimi-K2-Instruct](https://github.com/MoonshotAI/Kimi-K2/blob/main/tech_report.pdf) ## 模型简介 该模型是通过将**Kimi-K2-Instruct**的权重量化为INT4数据类型而获得的。这种优化将表示权重所需的位数从16 (FP16/BF16) 减少到4,从而减少了GPU内存需求(约减少75%)。这种权重量化还使模型的磁盘大小减少了约75%。 原始的Kimi K2是一个最先进的专家混合(MoE)语言模型,具有320亿个激活参数和总共1万亿个参数。使用Muon优化器训练后,Kimi K2在前沿知识、推理和编码任务中表现出色,同时精心优化了代理能力。 **主要特点** - INT4量化:该模型已被量化为INT4,显著减少了内存占用,并实现了高吞吐量、低延迟的推理。 - 大规模训练:在一个15.5T令牌上预训练了一个1T参数的MoE模型,且无训练不稳定性。 - MuonClip优化器:我们在前所未有的规模上应用了Muon优化器,并开发了新的优化技术来解决扩展过程中的不稳定性问题。 - 代理智能:特别设计用于工具使用、推理和自主解决问题。
## 环境依赖 | 软件 | 版本 | | :------: | :------: | | DTK | 25.04.2 | | python | 3.10 | | transformers | 4.57.3 | | vllm | 0.11 | | torch | 2.5.1+das.opt1.dtk25041 | 推荐使用镜像: harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk25.04.2-1226-das1.7-py3.10-20251226 - 挂载地址`-v`根据实际模型情况修改 ```bash docker run -it \ --shm-size 60g \ --network=host \ --name kimi-k2 \ --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/vllm:0.11.0-ubuntu22.04-dtk25.04.2-1226-das1.7-py3.10-20251226 bash ``` 更多镜像可前往[光源](https://sourcefind.cn/#/service-list)下载使用。 关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。 ## 数据集 暂无 ## 训练 暂无 ## 推理 ### vllm #### 多机推理 1. 环境变量配置 ```bash export HIP_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 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 # 根据 ibstat 查看 unset NCCL_ALGO export NCCL_TOPO_FILE=null export NCCL_MIN_NCHANNELS=16 export NCCL_MAX_NCHANNELS=16 export NCCL_NET_GDR_READ=1 export VLLM_RPC_TIMEOUT=1800000 # 海光CPU绑定核,intel 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 # 量化相关 export AWQ_MOE_SZ=0 export W4A16_MOE_CUDA=0 export VLLM_USE_LIGHTOP_MOE_ALIGN=0 export VLLM_USE_LIGHTOP=0 export VLLM_USE_PIECEWISE=1 ``` 2. 启动RAY集群 > x.x.x.x 对应第一步 Master节点的 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 vllm serve RedHatAI/Kimi-K2-Instruct-quantized.w4a16 \ --served-model-name kimi-k2 \ --tensor-parallel-size 16 \ --dtype float16 \ --trust-remote-code \ --port 8001 \ --distributed-executor-backend ray ``` 启动完成后可通过以下方式访问: > "max_tokens" 参数为必选参数,如不设置,可能出现模型长时间没有输出的问题。 ```bash curl http://localhost:8001/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "kimi-k2", "messages": [ {"role": "system", "content": "You are Kimi, an AI assistant created by Moonshot AI."}, {"role": "user", "content": "Please give a brief self-introduction."} ], "max_tokens": 512, "temperature": 0.7 }' ``` ## 效果展示
### 精度 DCU与GPU精度一致,推理框架:vllm。 ## 预训练权重 | 模型名称 | 权重大小 | DCU型号 | 最低卡数需求 |下载地址| |:-----:|:----------:|:----------:|:---------------------:|:----------:| | Kimi-K2-Instruct-quantized.w4a16 | 146B | BW1000 | 16 | [Hugging Face](https://huggingface.co/RedHatAI/Kimi-K2-Instruct-quantized.w4a16) | ## 源码仓库及问题反馈 - https://developer.sourcefind.cn/codes/modelzoo/kimi-k2-instruct-quantized.w4a16_vllm ## 参考资料 - https://github.com/MoonshotAI/Kimi-K2 - https://huggingface.co/RedHatAI/Kimi-K2-Instruct-quantized.w4a16