记录ktransformers的搭建过程

记录最近公司要用到deepseek-r1 671B的模型,希望内网部署,但又显存不足,机缘巧合看到介绍ktransformers的帖子,尝试了搭建,现记录一下。

环境介绍:

在docker中使用nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 image搭建。CUDA版本12.1

1. 创建一个名为ks的容器(有墙)

docker run  --name ks -idt swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04

2. 进入容器

docker exec -it ks /bin/bash

3.安装一些小工具和依赖

apt update

apt install -y vim

apt install -y locales

apt install -y file

apt install  -y gdb

apt-get install gcc g++ cmake ninja-build

apt install -y wget

apt install -y sudo

apt install curl

# 生成utf-8

locale-gen en_US.UTF-8

4.安装cuda 12.1

cd /home/

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run

sh cuda_12.1.1_530.30.02_linux.run

chmod +x cuda_12.1.1_530.30.02_linux.run

./cuda_12.1.1_530.30.02_linux.run

然后依照提示安装即可

5.安装miniconda环境

mkdir /home/miniconda

docker cp /mnt/e/Miniconda3-latest-Linux-x86_64.sh ks:/home/miniconda

cd /home/miniconda/

chmod +x Miniconda3-latest-Linux-x86_64.sh

sh Miniconda3-latest-Linux-x86_64.sh

输入conda路径是,输入/home/conda

6.添加环境变量 ~/.bashrc

vim ~/.bashrc

export LANG=en_US.UTF-8

export LC_CTYPE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

export PATH=/home/conda/bin:/usr/local/cuda/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

export CUDA_PATH=/usr/local/cuda

7. init conda env

conda init

退出container,再次进入

docker exec -it ks /bin/bash

8.创建conda ktransformers 环境

conda create --name ktransformers python=3.11

conda activate ktransformers

设置pypi,一个是清华的,一个是官方的,自行选择

# (optinal)配置清华大学pypi

python -m pip install --upgrade pip

pip config set global.index-url Simple Index

# (optinal)配置官方pypi

python -m pip install --upgrade pip

pip config set global.index-url Simple index

9. 安装pytorch和依赖

conda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia

pip install packaging ninja cpufeature numpy

10. 检查libstdc++.so.6版本

ktransformers要求版本必须大于3.4.30

查看/home/conda/envs/ktransformers/libstdc++.so.6中是否有3.4.30,命令如下:

strings /home/conda/envs/ktransformers/lib/libstdc++.so.6 | grep GLIBCXX

如果没有,通过以下命令更新:

conda install -c conda-forge libstdcxx-ng

11. 安装其他依赖

apt install npm

pip install flash_attn

12.此时检查nodejs是否是>=18.3的版本

node -v

如果不满足,先卸载

apt-get remove --purge nodejs

apt-get autoremove

apt-get install -f

再安装node js

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

apt-get install -y nodejs

node -v

注意:如果包还有冲突,用以下命令删除后,再次执行安装

apt-get remove --purge libnode-dev

13.开始安装ktransformers

cd /home

git clone GitHub - kvcache-ai/ktransformers: A Flexible Framework for Experiencing Cutting-edge LLM Inference Optimizations

cd /home/ktransformers/ktransformers/website/

npm install @vue/cli

npm run build

cd /home/ktransformers

pip install .

bash install.sh

到此编译成功,可将本container commit成image

docker commit ks ktransformers:12.1

14.开始使用

先把container创建出来(根据自己的情况挂载磁盘和端口,官方默认端口是10002):

docker run -itd  --gpus all -v e:/huggingface:/home/huggingface -p 10005:10005 --name ks-gpu ktransformers:12.1

docker exec -it ks-gpu /bin/bash

进入后,切换conda环境

conda activate ktransformers

ktransformers --model_path /home/huggingface/models/DeepSeek-V2-Lite/ --gguf_path /home/huggingface/models/itlwas_DeepSeek-V2-Lite-Q4_K_M-GGUF/  --port 10005 --web True

看到开始加载

直到出现

代表加载完成,在浏览器中输入http://localhost:10005/web/index.html#/chat

更多的参数看kvcache-ai/ktransformers: A Flexible Framework for Experiencing Cutting-edge LLM Inference Optimizations

转载请注明出处,谢谢!

知识应是公开的,分享让coder更加强大...

### 安装和配置 KTransformers 环境 #### 创建虚拟环境 为了避免与其他项目产生依赖冲突,建议为KTransformers创建一个独立的虚拟环境。可以使用`conda`或`venv`等工具来创建虚拟环境。 对于`conda`用户: ```bash conda create -n ktransformers python=3.8 conda activate ktransformers ``` 对于`venv`用户: ```bash python3 -m venv ktransformers source ktransformers/bin/activate ``` [^1] #### 安装依赖 在激活的虚拟环境中安装KTransformers所需的依赖库。这些依赖库通常包括但不限于PyTorch、TensorFlow等深度学习框架以及CUDA等相关工具。具体的版本号和其他细节可以根据项目的官方文档进行调整。 ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 pip install tensorflow ``` 注意:上述命令中的包名和URL仅作为示例,在实际操作时应参照最新的官方指南以获取最准确的信息。 #### 编译源代码 因为KTransformers包含一些自定义的操作符和优化策略,因此需要编译其源码才能正常使用。这一步骤可能涉及到C++或其他编程语言的知识,并且需要用到像CMake这样的构建工具来进行编译工作。 假设已经下载好了KTransformers仓库,则可以在终端中执行如下指令完成编译过程: ```bash cd path_to_ktransformers_source_code mkdir build && cd build cmake .. make -j$(nproc) ``` 这里`path_to_ktransformers_source_code`应该替换为你本地存储KTransformers源文件的实际路径;而`-j$(nproc)`参数用于并行化编译流程从而加快速度。 #### 配置环境变量 为了让操作系统能够识别新生成的二进制文件位置以便于后续调用,需将它们所在目录加入到系统的PATH环境变量里去。如果是在Linux/MacOS下的话,可以通过编辑`.bashrc`或者`.zshrc`等方式实现这一点。 例如向~/.bashrc追加一行: ```bash export PATH=$HOME/path_to_ktransformers_build:$PATH ``` 记得保存更改后的配置文件并通过`source ~/.bashrc`使设置立即生效。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值