searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

在天翼云主机上运行Docker并部署KTransformer+DeepSeek-R1模型(实践)

2025-03-04 02:25:38
13
0

🔥 保姆级教程 | 天翼云GPU主机+Docker部署KTransformer+DeepSeek-R1全流程实录(附完整代码) 🔥


📖 目录导航

🚀 1. 基础环境校验 🐳 2. Docker安装全流程 🔌 3. NVIDIA容器工具配置 🐧 4. Ubuntu镜像环境搭建 🤖 5. 模型部署全步骤 必看注意事项 高频问题解答


一、基础环境要求 ✅

🖥️ 硬件配置

  • 必须设备:NVIDIA GPU云服务器(实测A100通过)

  • 系统版本:Ubuntu 22.04 LTS(强烈建议全新安装)

  • 驱动要求:已安装GPU驱动且CUDA版本匹配

🔍 环境验证

nvidia-smi  # 查看GPU的信息,确保本机的驱动安装完成

二、Docker安装指南 🐳

完整安装代码(逐行复制执行)

# 步骤1:更新源列表
sudo apt update

# 步骤2:安装基础依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 步骤3:添加GPG密钥
curl -fsSL docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker-archive-keyring.gpg

# 步骤4:配置镜像源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker-archive-keyring.gpg]
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 步骤5:安装Docker CE
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 步骤6:启动服务
sudo systemctl start docker
sudo systemctl enable docker

# 步骤7:验证安装
sudo docker --version  # 应显示类似"Docker version 24.0.7"

三、NVIDIA容器工具安装 🔌

完整代码(含配置检测)

# 配置镜像源(注意换行符!)
curl -fsSL nvidia.github.io/libnvidia-container/gpgkey | sudo gpg -dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 安装工具包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 配置运行时
sudo nvidia-ctk runtime configure --runtime=docker

# 重启检测
sudo systemctl restart docker
cat /etc/docker/daemon.json  # 应显示nvidia配置信息

四、Ubuntu镜像搭建环境 🐧

完整操作代码

# 拉取官方镜像
docker pull ubuntu:22.04

# 启动容器(必须参数!)
docker run --gpus all -it -v /data:/data ubuntu:22.04 bash

📌 参数说明

--gpus all   # 启用全部GPU设备
-v /data:/data  # 挂载宿主机/data目录到容器内/data

五、Docker环境内部进行KTransformer模型部署 🤖

1️⃣ CUDA环境配置(逐行执行!)

# 下载CUDA 12.4安装包
wget 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 --silent --toolkit

# 配置环境变量
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

# 验证安装
nvcc -V  # 应显示"release 12.4"

2️⃣ Conda环境配置(完整代码)

# 安装图形库依赖
apt install libgl1-mesa-glx libegl1-mesa libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6

# 下载Anaconda 2024.10
wget repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh

# 创建安装目录
mkdir anaconda3

# 执行安装(按提示输入yes)
bash Anaconda3-2024.10-1-Linux-x86_64.sh

# 初始化conda
conda init

3️⃣ Python环境配置(严格顺序!)

# 创建虚拟环境
conda create --name ktrans python=3.11
conda activate ktrans

# 配置pip镜像源
pip config set global.index-url mirrors.aliyun.com/pypi/simple

# 安装核心依赖
pip install --upgrade pip
pip install torch packaging ninja cpufeature numpy

# 安装flash-attn(关键步骤!)
pip install flash-attn --no-build-isolation

# 修复libstdc++冲突
sudo apt-get update
sudo apt-get install --only-upgrade libstdc++6
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/anaconda3/envs/ktrans/bin/../lib/libstdc++.so.6

4️⃣ KTransformer部署代码

# 克隆仓库(含子模块)
git clone github.com/kvcache-ai/ktransformers.git
cd ktransformers
git submodule init
git submodule update

# 执行安装脚本
sh ./install.sh

5️⃣ 启动模型(按需修改路径!)

export USE_NUMA=1
python ./ktransformers/local_chat.py \
 --model_path /model/path \          # 替换实际模型路径
 --gguf_path /gguf/file/path \       # 替换GGUF文件路径
 --cpu_infer 32                      # CPU线程数根据配置调整

⚠️ 血泪教训总结

  1. GPU权限问题

    # 如果报错尝试添加--privileged
    docker run --privileged --gpus all ...
  2. 环境变量持久化

    # 将以下内容添加到~/.bashrc
    echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
  3. 镜像加速配置

    # /etc/docker/daemon.json 添加
    {
     "registry-mirrors": ["your-mirror.aliyuncs.com"]
    }

❓ 高频问题解答

Q1:报错Failed to initialize NVML

# 解决方案:检查驱动-CUDA版本匹配
nvidia-smi  # 查看CUDA版本
nvcc -V     # 查看容器内CUDA版本

Q2:容器内无法识别GPU

# 验证步骤(必须在容器内执行!)
docker exec -it 容器名 nvidia-smi
# 若无输出,重新安装NVIDIA Container Toolkit

Q3:pip安装超时

# 临时换源
pip install -i pypi.tuna.tsinghua.edu.cn/simple 包名

💡 本帖所有代码均经实测验证,建议直接复制执行 👍 如果对你有帮助,求点赞/收藏/转发三连!有问题欢迎评论区讨论!

0条评论
0 / 1000
孔****睿
2文章数
0粉丝数
孔****睿
2 文章 | 0 粉丝
原创

在天翼云主机上运行Docker并部署KTransformer+DeepSeek-R1模型(实践)

2025-03-04 02:25:38
13
0

🔥 保姆级教程 | 天翼云GPU主机+Docker部署KTransformer+DeepSeek-R1全流程实录(附完整代码) 🔥


📖 目录导航

🚀 1. 基础环境校验 🐳 2. Docker安装全流程 🔌 3. NVIDIA容器工具配置 🐧 4. Ubuntu镜像环境搭建 🤖 5. 模型部署全步骤 必看注意事项 高频问题解答


一、基础环境要求 ✅

🖥️ 硬件配置

  • 必须设备:NVIDIA GPU云服务器(实测A100通过)

  • 系统版本:Ubuntu 22.04 LTS(强烈建议全新安装)

  • 驱动要求:已安装GPU驱动且CUDA版本匹配

🔍 环境验证

nvidia-smi  # 查看GPU的信息,确保本机的驱动安装完成

二、Docker安装指南 🐳

完整安装代码(逐行复制执行)

# 步骤1:更新源列表
sudo apt update

# 步骤2:安装基础依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 步骤3:添加GPG密钥
curl -fsSL docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker-archive-keyring.gpg

# 步骤4:配置镜像源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker-archive-keyring.gpg]
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 步骤5:安装Docker CE
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 步骤6:启动服务
sudo systemctl start docker
sudo systemctl enable docker

# 步骤7:验证安装
sudo docker --version  # 应显示类似"Docker version 24.0.7"

三、NVIDIA容器工具安装 🔌

完整代码(含配置检测)

# 配置镜像源(注意换行符!)
curl -fsSL nvidia.github.io/libnvidia-container/gpgkey | sudo gpg -dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 安装工具包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 配置运行时
sudo nvidia-ctk runtime configure --runtime=docker

# 重启检测
sudo systemctl restart docker
cat /etc/docker/daemon.json  # 应显示nvidia配置信息

四、Ubuntu镜像搭建环境 🐧

完整操作代码

# 拉取官方镜像
docker pull ubuntu:22.04

# 启动容器(必须参数!)
docker run --gpus all -it -v /data:/data ubuntu:22.04 bash

📌 参数说明

--gpus all   # 启用全部GPU设备
-v /data:/data  # 挂载宿主机/data目录到容器内/data

五、Docker环境内部进行KTransformer模型部署 🤖

1️⃣ CUDA环境配置(逐行执行!)

# 下载CUDA 12.4安装包
wget 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 --silent --toolkit

# 配置环境变量
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

# 验证安装
nvcc -V  # 应显示"release 12.4"

2️⃣ Conda环境配置(完整代码)

# 安装图形库依赖
apt install libgl1-mesa-glx libegl1-mesa libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6

# 下载Anaconda 2024.10
wget repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh

# 创建安装目录
mkdir anaconda3

# 执行安装(按提示输入yes)
bash Anaconda3-2024.10-1-Linux-x86_64.sh

# 初始化conda
conda init

3️⃣ Python环境配置(严格顺序!)

# 创建虚拟环境
conda create --name ktrans python=3.11
conda activate ktrans

# 配置pip镜像源
pip config set global.index-url mirrors.aliyun.com/pypi/simple

# 安装核心依赖
pip install --upgrade pip
pip install torch packaging ninja cpufeature numpy

# 安装flash-attn(关键步骤!)
pip install flash-attn --no-build-isolation

# 修复libstdc++冲突
sudo apt-get update
sudo apt-get install --only-upgrade libstdc++6
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/anaconda3/envs/ktrans/bin/../lib/libstdc++.so.6

4️⃣ KTransformer部署代码

# 克隆仓库(含子模块)
git clone github.com/kvcache-ai/ktransformers.git
cd ktransformers
git submodule init
git submodule update

# 执行安装脚本
sh ./install.sh

5️⃣ 启动模型(按需修改路径!)

export USE_NUMA=1
python ./ktransformers/local_chat.py \
 --model_path /model/path \          # 替换实际模型路径
 --gguf_path /gguf/file/path \       # 替换GGUF文件路径
 --cpu_infer 32                      # CPU线程数根据配置调整

⚠️ 血泪教训总结

  1. GPU权限问题

    # 如果报错尝试添加--privileged
    docker run --privileged --gpus all ...
  2. 环境变量持久化

    # 将以下内容添加到~/.bashrc
    echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
  3. 镜像加速配置

    # /etc/docker/daemon.json 添加
    {
     "registry-mirrors": ["your-mirror.aliyuncs.com"]
    }

❓ 高频问题解答

Q1:报错Failed to initialize NVML

# 解决方案:检查驱动-CUDA版本匹配
nvidia-smi  # 查看CUDA版本
nvcc -V     # 查看容器内CUDA版本

Q2:容器内无法识别GPU

# 验证步骤(必须在容器内执行!)
docker exec -it 容器名 nvidia-smi
# 若无输出,重新安装NVIDIA Container Toolkit

Q3:pip安装超时

# 临时换源
pip install -i pypi.tuna.tsinghua.edu.cn/simple 包名

💡 本帖所有代码均经实测验证,建议直接复制执行 👍 如果对你有帮助,求点赞/收藏/转发三连!有问题欢迎评论区讨论!

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0