在银河麒麟V10上离线安装千问VL - Qwen2-VL-72B-Instruct-GPTQ-Int4

发布于:2024-12-18 ⋅ 阅读:(176) ⋅ 点赞:(0)

需要在客户服务器上安装 Qwen2-VL-72B-Instruct-GPTQ-Int4,不能联网,安装的系统是 银河麒麟V10
思路是在客服服务器上安装docker,然后通过docker运行vllmQwen2-VL-72B-Instruct-GPTQ-Int4

1.系统版本确认

[root@localhost nvidia-container-toolkit]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"

2.准备

下面这些操作建议在一台能联网的 银河麒麟V10 服务器上操作完成。

2.1 显卡驱动和CUDA,直接下载 CUDA Toolkit,里面自带驱动

进入 CUDA Toolkit 12.6 Update 3 Downloads 下载
在这里插入图片描述

  • 下载
wget https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux.run
  • cuda_12.6.3_560.35.05_linux.run拷贝到U盘。

2.2 docker 和 docker-compose

下载linux二进制包,可以参考:

  1. https://docs.docker.com/engine/install/binaries/
  2. https://docs.docker.com/compose/install/standalone/
  • 下载
wget https://download.docker.com/linux/static/stable/x86_64/docker-27.4.0.tgz
wget https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-linux-x86_64
  • docker-27.4.0.tgzdocker-compose-linux-x86_64拷贝到U盘。

2.3 制作 nvidia-container-toolkit 的离线安装包

这里需要一台能够联网的并且安装了 银河麒麟V10系统的电脑

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
  
sudo yum install -y nvidia-container-toolkit

# 下载所有依赖
mkdir nvidia-container-toolkit
cd nvidia-container-toolkit
repotrack nvidia-container-toolkit
cd ..
tar -czvf nvidia-container-toolkit.tar.gz nvidia-container-toolkit

nvidia-container-toolkit.tar.gz拷贝到U盘。

2.4 下载镜像:vllm/vllm-openai:v0.6.4

由于众所周知的某个原因,官方镜像下载是需要科学上网的。我们这里使用:docker.unsee.tech/vllm/vllm-openai:v0.6.4

  • 下载
docker pull docker.unsee.tech/vllm/vllm-openai:v0.6.4
docker save docker.unsee.tech/vllm/vllm-openai:v0.6.4 > vllm-openai.tar
  • vllm-openai.tar拷贝到U盘。

2.5 下载模型:Qwen2-VL-72B-Instruct-GPTQ-Int4

  • 下载
yum install git-lfs
git lfs install

# 模型 Qwen2-VL-7B-Instruct-GPTQ-Int4
git clone https://www.modelscope.cn/Qwen/Qwen2-VL-7B-Instruct-GPTQ-Int4.git
  • 将 目录Qwen2-VL-7B-Instruct-GPTQ-Int4拷贝到U盘。

2.6. 准备docker-compose.yaml 文件

services:
  vllm:
    container_name: vllm
    restart: always
    image: docker.unsee.tech/vllm/vllm-openai:v0.6.4
    ipc: host
    volumes:
      - ./Qwen2-VL-7B-Instruct-GPTQ-Int4:/models/Qwen2-VL-7B-Instruct-GPTQ-Int4
    command: 
      - "--model"
      - "/models/Qwen2-VL-7B-Instruct-GPTQ-Int4"
      - "--served-model-name"
      - "Qwen2-VL-7B-Instruct-GPTQ-Int4"
      # 调小该值可以节省显存,但是可能导致无法启动
      # - "--gpu-memory-utilization"
      # - "0.80"

      - "--quantization"
      - "gptq"
    ports:
      - 8000:8000
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

3. U盘中的文件确认

  • cuda_12.6.3_560.35.05_linux.run
  • docker-27.4.0.tgz
  • docker-compose-linux-x86_64
  • nvidia-container-toolkit.tar.gz
  • vllm-openai.tar
  • Qwen2-VL-7B-Instruct-GPTQ-Int4
  • docker-compose.yaml

4. 安装过程

4.1. 将上面准备的文件拷贝到客户服务器上,假设目录为/opt/qwen

4.2. 安装CUDA Toolkit

重点是需要切换到纯文本模式,关闭 X server 服务

# 1.停止 X server
systemctl stop lightdm

# 2. 安装
sh ./cuda_12.6.3_560.35.05_linux.run
# 3. 默认选项就可以

在这里插入图片描述
在这里插入图片描述

4.3. 安装docker和docker-compose

  • 先卸载已有docker
dnf remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
  • 安装docker
# 解压
tar xzvf docker-27.4.0.tgz

# 拷贝
cp docker/* /usr/bin/

# 制作 /etc/systemd/system/docker.service, 注册为服务;(略)参考:https://blog.csdn.net/chexlong/article/details/127932711

# 加载docker.service
systemctl daemon-reload

# 设置为开启启动
systemctl enable docker.service

# 启动服务
systemctl start docker.service
  • 安装docker-compose
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

4.4. 安装nvidia-container-toolkit

# 解压
tar -xzvf nvidia-container-toolkit.tar.gz
cd nvidia-container-toolkit

# 安装
rpm -Uvh --force --nodeps *.rpm


# 生成默认配置文件
nvidia-ctk runtime configure

# 重启docker服务
systemctl restart docker

4.5 使用docker-compose运行 Qwen-VL

保留 文件docker-compose.yaml 和 目录Qwen2-VL-7B-Instruct-GPTQ-Int4, 其他文件和目录可以删除了。

docker-compose up -d

5 测试

curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
    "model": "Qwen2-VL-7B-Instruct-GPTQ-Int4",
    "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": [
        {"type": "image_url", "image_url": {"url": "https://modelscope.oss-cn-beijing.aliyuncs.com/resource/qwen.png"}},
        {"type": "text", "text": "What is the text in the illustrate?"}
    ]}
    ]
    }'
curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
    "stream":true,
    "model": "Qwen2-VL-7B-Instruct-GPTQ-Int4",
    "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "你叫什么名字"}
    ]
    }'

网站公告

今日签到

点亮在社区的每一天
去签到