【音频标注】- deepseek-R1满血版 1.58 Bit模型落地部署(一)
本文介绍了DeepSeek-R1满血版1.58Bit模型的落地部署过程。采用Unsloth+KTransformer方案进行动态量化,预计占用显存10G-16G,内存约60G。部署中遇到flash-attention下载中断、GCC版本过高、CUDA版本冲突等问题,通过软链接解决libcudart缺失、降级GCC至12版本等方式处理。最终因CUDA版本冲突,建议采用Docker方案实现多版本共存。
背景
基于Unsloth + KTransformer方案的大模型动态量化,是当前性价比最高的模型落地思路。本文主要是DeepSeek-R1满血版的1.58 Bit动态量化版本的落地。预计占用显存10G-16G,占用内存约60G。
硬件条件:
4090显卡48G显存128G内存,闲置内存一般在90G左右。
部署过程
- 创建环境
conda create -n kt python=3.11 -y
conda activate kt
python -m pip install torch==2.2.2+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
python -m pip install /home/hyt/HYT/tools/torch-2.2.2+cu118-cp311-cp311-linux_x86_64.whl
python -m pip install torch==2.2.2+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
python -m pip install /home/hyt/HYT/tools/flash_attn-2.5.8+cu118torch2.2cxx11abiTRUE-cp311-cp311-linux_x86_64.whl
sudo apt-get install --only-upgrade libstdc++6
conda install -c conda-forge libstdcxx-ng
- flash-attention下载失败
Ubuntu 服务器下载 flash-attention 失败。总是在 93% 进度上下载中断。
(KG) hyt@user-H3C-UniServer-R4900-G5:/opt/KTransformers+Unsloth$ git clone --recursive https://github.com/Dao-AILab/flash-attention.git
正克隆到 'flash-attention'...
remote: Enumerating objects: 11691, done.
remote: Counting objects: 100% (631/631), done.
remote: Compressing objects: 100% (250/250), done.
接收对象中: 93% (10915/11691), 9.96 MiB | 25.00 KiB/s
error: RPC 失败。curl 56 Recv failure: 连接被对方重置
error: 预期仍然需要 3701 个字节的正文
找了好久找到了这个
flash_attn-2.5.8+cu118torch2.2cxx11abiTRUE-cp311-cp311-linux_x86_64.whl
并按以上python torch 版本重建虚拟环境。
- 缺 libcudart.so* 报错
有两个错误,
警告:
There are no g++ version bounds defined for CUDA 12.9
报错:
ninja: error: ‘/usr/local/cuda/lib64/libcudart.so’, needed by … missing
3.1 先查真正的 libcudart 在哪
用命令
find /root/miniconda3/envs/kt -name 'libcudart.so*'
(kt) root@user-H3C-UniServer-R4900-G5:/opt/KTransformers+Unsloth/code/ktransformers# find /root/miniconda3/envs/kt -name 'libcudart.so*'
/root/miniconda3/envs/kt/targets/x86_64-linux/lib/libcudart.so.12
/root/miniconda3/envs/kt/targets/x86_64-linux/lib/libcudart.so.12.9.79
/root/miniconda3/envs/kt/lib/libcudart.so.12
/root/miniconda3/envs/kt/lib/libcudart.so.12.9.79
/root/miniconda3/envs/kt/lib/libcudart.so.*
/root/miniconda3/envs/kt/lib/python3.11/site-packages/nvidia/cuda_runtime/lib/libcudart.so.12
/root/miniconda3/envs/kt/lib/libcudart.so
3.2 建立软链接,骗骗编译器:
sudo mkdir -p /usr/local/cuda/lib64
sudo ln -s \
/root/miniconda3/envs/kt/lib/libcudart.so \
/usr/local/cuda/lib64/libcudart.so
sudo mkdir -p /usr/local/cuda/include
sudo ln -s \
/root/miniconda3/envs/kt/targets/x86_64-linux/include \
/usr/local/cuda/include
3.3 重装ktransformer
cd /opt/KTransformers+Unsloth/code/ktransformers
python -m pip install . --no-build-isolation --use-pep517
3.4 重装ktransformer失败
error: #error -- unsupported GNU version! gcc versions later than 12 are not supported!
具体来说,CUDA 编译器 nvcc 不支持你当前的 GCC 版本。它明确指出 GCC 版本大于 12 的不支持,而你当前可能安装的是 GCC 13 或更高版本。
3.5 降级GCC,设置 gcc-12 和 g+±12 为系统默认
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
3.6 找不到cicc文件,怀疑是cuda安装不完整
需要考虑重装,重装就不用cuda12.9了,换最兼容的12.2。
选择合适系统的版本后,它给出下载指令:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
执行指令后下载和安装成功。
安装到一半发现需要用的cuda 和toolkits版本 与别的项目有冲突。陷入僵局。查阅资料,发现,需要用docker才可以避开cuda和tookit的多版本冲突。所以,需要进行docker化。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)