当前位置: 首页 > news >正文

在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

设置路径,保存,新对话就可以。
在这里插入图片描述

相关文章:

  • SpringMVC 静态资源处理 mvc:default-servlet-handler
  • 01_Long比较值 类型相同值不同
  • 联想昭阳笔记本 风扇一键静音优化操作指南
  • RuoYi-Vue项目Docker镜像构建、推送与部署完整流程
  • FEKO许可安装
  • CF2096G Wonderful Guessing Game 构造
  • 强制缓存vs协商缓存
  • 2025系统架构师---黑板架构风格
  • element通过业务按钮点击导入,调用el-upload的导入方法
  • 日本IT|UIUX主要的工作都是哪些?及职业前景
  • 关于PyQt5信号槽机制的解析
  • Spring AOP 详解
  • ARCGIS PRO 在地图中飞行
  • (done) 吴恩达版提示词工程 9. 总结 (就是复述一遍前面的内容,以及建议你基于LLM开发应用程序)
  • 8、HTTPD服务--CGI机制
  • linux两个特殊的宏 _RET_IP_ 和_THIS_IP_ 实现
  • 第15节:传统分类模型-K近邻(KNN)算法
  • 【文献速递】snoRNA-SNORD113-3/ADAR2通过对PHKA2的A-to-I编辑影响胶质母细胞瘤糖脂代谢
  • Nginx配置文件介绍
  • 创建一个springboot的项目-简洁步骤
  • 赛力斯拟赴港上市:去年扭亏为盈净利59亿元,三年内实现百万销量目标
  • 五一假期上海铁路预计发送446万人次,同比增长8.4%
  • 专业竞演、剧场LIVE直播,32位越剧新星逐梦上海
  • 《沙尘暴》:用贴近生活的影像和表演拍摄悬疑剧
  • 李在明当选韩国共同民主党总统候选人
  • 戴昕谈隐私、数据、声誉与法律现实主义