在NPU平台上,如何尝试跑通Ktransformers + DeepSeek R1?

1、Ktransformers介绍

KTransformers是一个灵活的、以Python为中心的框架,其核心是可扩展性。通过用一行代码实现和注入一个优化的模块,用户可以访问与Transformers兼容的接口、兼容OpenAI和Ollama的RESTful API,甚至是一个简化的类似ChatGPT的Web UI。
在这里插入图片描述

仓库地址:https://github.com/kvcache-ai/ktransformers
考虑到vLLM已经是大规模部署优化的优秀框架,KTransformers特别关注受有限资源限制的本地部署。我们特别关注异构计算机会,例如量化模型的GPU/CPU卸载。例如,我们分别为CPU和GPU支持高效的Llamafile和Marlin内核.

2、环境准备

硬件环境:

Kunpeng-920 + 800IA2

软件版本:

torch-2.4.0
torch_npu-2.4.0.post2-cp311
CANN:version=24.1.0
Python版本:python=3.11

DeepSeek-R1-GGUF:
Int8版本:https://modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/files/ DeepSeek-R1-Q8_0
BF16版本:https://modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/files/ 8bit版本:https://modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/files/ DeepSeek-R1-Q8_0

3、编译 & 运行

根据官网提供的Installation Guide(https://kvcache-ai.github.io/ktransformers/en/install.html)文件,按照步骤进行编译安装。
需要注意点如下:

  1. 建议创建一个独立的conda环境,因为GLIBC的问题,可能需要升级安装libstdcxx-ng库文件
  2. torch,torchvision,torchaudio,这几个软件的版本与torch_npu的版本保持一致,否则会报错不兼容的问题。

3.1 编译

Step 1、下载源码:

git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
git submodule init
git submodule update

Step 2、执行编译安装脚本

bash install.sh

直接执行脚本,会到很多的问题。这里做一个需要修改内容的大概介绍,全量修改详见附件中提供ktransformers.patch文件。

1、 KTransformersOps
由于KTransformersOps提供的是cuda的相关的反量化算子,npu上肯定用不到,而且当前不会用AscendC进行源码编写替代,因此用到KTransformersOps的地方,需要屏蔽掉其调用。

2、cpufeature问题
cpufeature是x86上的一个wheel包,用来获取cpu相关的信息,arm上不存在这个包,需要通过其它的接口进行规避使用。

3、 cuda相关
KTransformers整个框架基于cuda来构建,与cuda的耦合度很高。Cuda相关的组件需要跳过或者规避,如setup.py中:
在这里插入图片描述

内容解释:
CMakeExtension部分的内容:通过CUDAExtension来编译安装ktransformers/ktransformers_ext下的一些手写算子(反量化算子),还有一些pybind11的编译(python提供反量化接口,最终执行是.cu中的手写算子)。

还有一些marlin gpu相关的代码需要修改,如:
/ktransformers/ktransformers/operators/linear.py

from torch import Tensor, nn
# import KTransformersOps 
from ktransformers.util
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值