在linux系统中安装ktransformersV0.24部署deepseek r1模型并用open AI风格调用
参考文章:链接
对于这方面是小白的我,走了很多弯路,看网上的教程好像不难,但是我就是遇到很多问题,也不是太懂,本来想在window系统部署,但是教程是linux,也有不少人说window会有异常,最后选择linux系统。
配置:
GPU:NVIDIA 4090(一张)
操作系统: Ubuntu 22.04
内 存: 64GB DDR4 RDIMPC4-3200(共计256GB内存)
处理器: Intel Ieon Gold 63302.0Ghz(28C/56T)
一、安装linux系统ubuntu22.04
1.清华源下载链接
2.制作成镜像
镜像工具:rufus-4.7(Rufus 是一个开源免费的快速制作 U 盘系统启动盘和格式化 USB 的实用小工具,它可以快速把 ISO 格式的系 统镜像文件快速制作成可引导的 USB 启动安装盘,支持 Windows 或 Linux 启动。 Rufus 小巧玲珑,软件体积仅 7 百多 KB ,麻雀虽小,五脏俱全。
- 进入官网链接
- 插入U盘,按照要求选择,然后点击开始
做好镜像,就可以安装了。(反正我安装了好多次,不要问为什么,反正就是有些考虑步骤,最后用了一个1T的硬盘的来安装。)
二、设置源(因为国外有些访问不了)
sudo nano /etc/apt/sources.list
按住 Ctrl+K 逐行删除,或直接全选并删除文本(手动操作)。
配置清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
按 Ctrl+O 保存,回车确认文件名。
按 Ctrl+X 退出。
三、安装conda
1.软件下载
wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
2. 安装conda
bash Anaconda3-2023.03-1-Linux-x86_64.sh
在conda文件的目录下输入命令安装,一路回车,直到他要求输入yes
3. 设置环境变量
配置环境变量,这里的export PATH填的是conda的bin文件地址,我是安装在home目录的所以是这样,前面一个命令是添加环境变量,后者是刷新bashrc
sudo nano /etc/profile
在尾部添加上环境变量
sudo nano ~/.condarcexport PATH=~/anaconda3/bin:$PATH
刷新环境变量
source /etc/profile
source ~/.bashrc
conda -V
查看版本
4.conda配置
sudo nano ~/.condarc
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
show_channel_urls: truessl_verify: true
allow_conda_downgrades: true
以上写入condarc文档
ctrl+shift+v
ctrl+o
enter
ctrl+x
四、pip配置
mkdir ~/.pip
cd ~/.pip/
sudo nano pip.conf
镜像配置
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
ctrl+shift+v
ctrl+o
enter
ctrl+x
返回主界面
cd ~
五、创建conda虚拟环境
conda create --name kt python=3.11
conda init
source ~/.bashrc
conda activate kt
1.安装依赖库
conda install -c conda-forge libstdcxx-ng
查看一下路径,我这里可能安装了几次,路径有些小变化,红色部分就是
记住这个路径,下面会用到
2.验证 GLIBCXX 版本(应包含 3.4.32)
strings /root/miniconda3/envs/kt/lib/libstdc++.so.6 | grep GLIBCXX
strings /home/woli/anaconda3/envs/kt/lib/libstdc++.so.6 | grep GLIBCXX
我第一次安装后不是3.4.32,后面也是deep seek一下怎么修改,deepseek说3.4.30就可以
(1) 添加 Ubuntu Toolchain PPA 并安装 GCC-12:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-12 g++-12
(2) 更新符号链接到新版 libstdc++:
sudo find / -name "libstdc++.so.6" 2>/dev/null
假设路径为 /home/exhitec/anaconda3/envs/kt/lib/libstdc++.so.6
sudo cp /home/exhitec/anaconda3/envs/kt/lib/libstdc++.so.6 /home/exhitec/lib/x86_64-linux-gnu/
sudo ln -sf /home/exhitec/lib/x86_64-linux-gnu/libstdc++.so.6 /home/exhitec/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
修正后再次运行命令
strings /home/woli/anaconda3/envs/kt/lib/libstdc++.so.6 | grep GLIBCXX
【其实我一开始也没注意,会影响后面部署】
3.安装系统依赖
sudo apt update
sudo apt install libtbb-dev libssl-dev libcurl4-openssl-dev libaio1 libaio-dev libfmt-dev libgflags-dev zlib1g-dev patchelf
1)有异常
2)解决方法
修改源
sudo nano /etc/apt/sources.list
复制
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
更新列表
sudo apt clean
sudo apt update
重新执行
sudo apt install libtbb-dev libssl-dev libcurl4-openssl-dev libaio1 libaio-dev libfmt-dev libgflags-dev zlib1g-dev patchelf
4.构建 ktransformers
按照教程是需要科学上网,
由于linux无法科学上网
所以我在win10电脑下载好后传输给服务器linux系统
传输到这个文件夹下/home/exhitec/ktransformers
到存放压缩包得文件夹,然后用终端打开命令
unzip ktransformers-full.zip mv ktransformers-main ktransformers # 根据实际解压结果调整cd ktransformers
没有git需要安装
sudo apt-get install
sudo apt install git
git init
git remote add origin https://github.com/kvcache-ai/ktransformers.git
git submodule update --recursive
5.设置NUMA
查看个数
lscpu | grep "NUMA"
如果是1个(教程是说按照下面的步骤,不过我是两个)
sudo env USE_BALANCE_SERVE=1 PYTHONPATH="$(which python)"
PATH="$(dirname $(which python)):$PATH" bash ./install.sh
# 先安装libnuma-dev
sudo apt install libnuma-dev
提前安装cmake
pip install cmake --upgrade
source ~/.bashrc
因为缺少util-linux包,需要安装一下
sudo apt update
sudo apt install util-linuxlscpu --version
# 然后设置USE_NUMA=1
export USE_NUMA=1
sudo env USE_BALANCE_SERVE=1 PYTHONPATH="$(which python)" PATH="$(dirname $(which python)):$PATH" bash ./install.sh
有异常,一下解决方法
sudo apt-get install dos2unix # 如果未安装,先安装工具
dos2unix ./install.sh
继续执行
sudo env USE_BALANCE_SERVE=1 PYTHONPATH="$(which python)" PATH="$(dirname $(which python)):$PATH" bash ./install.sh
错误的类型挺多的,我就各种ai找方法。
(出现磁盘空间不足,我重装了系统)
这里可以跳过,如果没出现。
后面到了这步我是这样执行的,可能是网络问题
$ sudo env USE_BALANCE_SERVE=1 PYTHONPATH="$(which python)" PATH="$(dirname $(which python)):$PATH" bash ./install.sh --timeout 60
卡最多次的是这个问题
是驱动和cuda问题
我按着教程做,评论问过,说是会安装(PyTorch 2.5.1 ,Cuda 12.4),这个异常出现,我查看cuda是11.5
#输入
nvcc --version
#输出
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
#输入
nvidia-smi
#输出(好像那时候输出的是550,驱动版本不对)
NVIDIA-SMI 570.144 Driver Version: 570.144 CUDA Version: 12.8#查看显卡
lspci | grep -i vga
前往官网链接下载根据显卡驱动,下载
#检查驱动是否存在
ls -l NVIDIA-Linux-x86_64-570.144.run
#赋予执行权限:
chmod +x NVIDIA-Linux-x86_64-570.144.runsudo ./NVIDIA-Linux-x86_64-570.144.run --no-opengl-files#安装后重启验证
nvidia-smi
查看cuda
nvcc --version # 应输出 CUDA 12.4# 检查 CUDA 路径
echo $CUDA_HOME # 应输出类似 /usr/local/cuda-12.4
没有,安装cuda,下载链接链接
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
再次验证cuda
# 检查 CUDA 版本
nvcc --version # 应输出类似 11.8 或 12.x# 检查 CUDA 路径
echo $CUDA_HOME # 应输出类似 /usr/local/cuda 或 /usr/local/cuda-12.2#添加到LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
echo "export LD_LIBRARY_PATH=$CUDA_HOME/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc
重新进入虚拟系统 到ktransformers文件夹下,重新打开终端
$ conda activate kt
$ python --version
$ pip list
$ pip cache purge
$ sudo rm -rf /tmp/* ./build/ ./dist/
(非必须)git submodule update --init --recursive$ sudo env USE_BALANCE_SERVE=1 PYTHONPATH="$(which python)" PATH="$(dirname $(which python)):$PATH" bash ./install.sh --timeout 60
查看KT版本号
pip show ktransformers
六、下载deepseek r1大模型
魔搭社区:不需要魔法 https://www.modelscope.cn/models/unsloth/DeepSeek-R1-GGUF
若未安装screen,可以使用 sudo apt install screen命令进行安装。
#创建
screen -S kt
#重新打开
screen -r kt
#安装
pip install modelscope
#新建文件夹,根据电脑选择下载的版本,我是下载IQ2_XXS
mkdir ./DeepSeek-R1-GGUF
modelscope download --model unsloth/DeepSeek-R1-GGUF --include '**IQ2_XXS**' --local_dir /home/exhitec/autodl-tmp/DeepSeek-R1-GGUF
下载成功
七、下载DeepSeek R1原版模型的配置文件
#创建文件夹
mkdir ./DeepSeek-R1
#下载模型选权重
modelscope download --model deepseek-ai/DeepSeek-R1 --exclude '*.safetensors' --local_dir /root/autodl-tmp/DeepSeek-R1
准备好就可以运行了
#进入虚拟系统
$ conda activate kt#执行命令
python ktransformers/server/main.py \
--port 10002 \
--model_path /home/exhitec/autodl-tmp/DeepSeek-R1 \
--gguf_path /home/exhitec/autodl-tmp/DeepSeek-R1-GGUF/DeepSeek-R1-UD-IQ2_XXS \
--optimize_config_path ktransformers/optimize/optimize_rules/DeepSeek-V3-Chat-serve.yaml \
--max_new_tokens 1024 \
--cache_lens 32768 \
--chunk_size 256 \
--max_batch_size 4 \
--backend_type balance_serve
一下都需要根据实际来改变
这样就成功了
六、下载chatbox来调用
#授权
chmod +x Chatbox-1.11.12-x86_64.AppImage
#执行
./Chatbox-1.11.12-x86_64.AppImage
设置路径,保存,新对话就可以。