ubuntu22.02使用ktransformers0.2.3架設deepseek

字號+ 編輯: 国内TP粉 修訂: 种花家 來源: ktransformers 2025-07-29 我要說兩句(1)

根據官方給出的文档根據實際架設經驗, 做個簡單記錄。

首先在這裡下載英偉達官網敺動, 我的是3090, 使用了Geforce版敺動。

https://www.nvidia.cn/drivers/

接下來,下載cuda和miniconda準備好

wget https://developer.download.nvidia.cn/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run
wget https://mirrors-i.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py312_24.4.0-0-Linux-x86_64.sh

(此步可以跳過)因爲架設AI環境的本地硬盤很小, 不方便存大的模型文档, 正好有NAS, 連接了NAS共享, 用於拉取之前存儲的671b模型

sudo apt install cifs-utils
sudo mount -t cifs //服務器地址/共享目錄名稱 /usr/local/smb/public_assets -o username=用戶名,password=密碼,uid=$(id -u),gid=$(id -g),file_mode=0777,dir_mode=0777

用apt安裝依賴包

sudo apt update && sudo apt install build-essential cmake ninja-build
sudo apt install gcc-12 pkg-config libglvnd-dev

開始安裝N卡敺動

sudo bash NVIDIA-Linux-x86_64-570.133.07.run

安裝敺動的過程中, 有個小插曲, 需要把nouveau敺動屏蔽掉, 傳送門 https://www.wkwkk.com/articles/9141fecaa3abf65b.html

安裝完畢之後, 檢查敺動是否正確

nvidia-smi

如果顯示有顯卡, 敺動就安裝成功, 故障了就需要麻煩查查了

安裝cuda, 注意: 安裝時需要把Driver選項的勾給去掉, 要不然之前的敺動白裝了。

sudo bash cuda_12.8.1_570.124.06_linux.run

把cuda加入到PATH

文档地址 https://kvcache-ai.github.io/ktransformers/en/install.html

接下來使用nano或者vi來把PATH變量寫到系統裡。

sudo nano ~/.bashrc

内容如下:

# Adding CUDA to PATH
if [ -d "/usr/local/cuda/bin" ]; then
    export PATH=$PATH:/usr/local/cuda/bin
fi
if [ -d "/usr/local/cuda/lib64" ]; then
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
    # Or you can add it to /etc/ld.so.conf and run ldconfig as root:
    # echo "/usr/local/cuda-12.x/lib64" | sudo tee -a /etc/ld.so.conf
    # sudo ldconfig
fi
if [ -d "/usr/local/cuda" ]; then
    export CUDA_PATH=/usr/local/cuda
fi

編輯完之後,重進終耑,(你也可以source ~/.bashrc讀配置)

驗证CUDA_PATH是否存在

echo $CUDA_PATH

驗证nvcc到底安裝成功沒

nvcc -V

執行miniconda安裝, 你可以自行決定安裝位置, 安裝器中途會問你是否初始化conda? 如果選yes, 相當於執行了conda init

bash Miniconda3-py312_24.4.0-0-Linux-x86_64.sh

重進終耑, 如果命令提示符左側出現(base)則代表miniconda正確安裝

設定pip包安裝源地址

pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

啓動虛擬環境, 這裡我把kt專用的虛擬環境取名爲ktrans

conda create --name ktrans python=3.11
conda activate ktrans

安裝kt虛擬環境依賴庫

conda install -c conda-forge libstdcxx-ng

測試libstdcxx是否正確安裝, 假設: conda被安裝到了~/conda這個路徑下

strings ~/conda/envs/ktrans/lib/libstdc++.so.6 | grep GLIBCXX

安裝torch和其他關聯依賴庫

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
pip3 install packaging ninja cpufeature numpy openai
sudo apt install git

kt源代碼, 可能需要梯子, 我是在用戶主目錄~當中克隆的

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

上述的git submodule update命令如果因爲網路原因翻車了, 就手動到github克隆ktransformers子目錄thirdparty裡面列出的庫

接下來, 安裝flash attention

pip3 install flash_attn --verbose

這個時候, 你就可以開始編譯kt了

bash install.sh

這個時候終耑應該在編譯kt, 爲了節省時間, 你再另開個modelscope終耑, 用於下載模型。當然你有條件用huggingface也沒毛病。

先從modelscope國内站裡起另外一個conda環境, 我隨便命名的, 就叫modelscope, 開始啓動下載

conda create -n modelscope python=3.11
pip install modelscope

可以從NAS存儲裡下載, 本地沒有的話從modelscope下載

假設: 模型文档存放目錄爲/usr/local/models/DeepSeek-R1-GGUF/ miniconda被安裝到了~/conda/下面

cd /usr/local/models/
sudo ~/conda/envs/modelscope/bin/modelscope download --model unsloth/DeepSeek-R1-GGUF --include DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M* --local_dir ./

下載模型配置文档

cd /usr/local/models/DeepSeek-R1-GGUF/config
sudo ~/conda/envs/modelscope/bin/modelscope download --model deepseek-ai/DeepSeek-R1 --exclude *.safetensors --local_dir ./

回頭看看kt編譯完沒? 如果編譯完成了, 可以切換回ktransformers的虛擬環境的終耑測試一下, 運行本地聊天

(當然, 你如果心急直接想運行接口服務器, 可以跳過此步。)

怕嫌亂,這裡提供一下切換conda虛擬環境的萬用命令(我設定的kt專用虛擬環境名稱是ktrans):

conda deactivate && conda activate ktrans
python -m ktransformers.local_chat --model_path /usr/local/models/DeepSeek-R1-GGUF/config/ --gguf_path /usr/local/models/DeepSeek-R1-GGUF/ --cpu_infer 14

啓動openai標準的服務, 我是16個物理内核, 按照官方文档所說,cpu_infer參數就寫了16+1=17。

cd ~/ktransformers && ktransformers --model_path /usr/local/models/DeepSeek-R1-GGUF/config/ --gguf_path /usr/local/models/DeepSeek-R1-GGUF/ --port 10002 --cache_lens=32000 --max_new_tokens=2000 --cpu_infer 14

等待服務加載完成, 一切就緒了, 開命令行測試看看:

curl -X POST http://服務器地址:10002/v1/chat/completions -H "Content-Type: application/json" \
    -d '{"model": "deepseek-R1", "messages": [{"role": "user", "content": "你是誰"}], "temperature": 0.6, "stream": true}'

完結收工~

閲完此文,您的感想如何?
  • 有用

    24

  • 沒用

    0

  • 開心

    1

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 通過i參數使用國内鏡像給pip安裝提速

  • Conda刪除不用的虛擬環境

  • flask框架知識點總結

  • linux - centos 7.x安裝python3.10教程

我要說說
網上賓友點評
1 樓 IP 222.128.***.254 的嘉賓 说道 : 4个月前
更个0.2.4的