全部產品
Search
文件中心

Alibaba Cloud Linux:使用NVIDIA GPU部署AI容器鏡像Qwen-7B-Chat

更新時間:Jul 17, 2024

本文聊天機器人為例,介紹如何使用Alibaba Cloud AI Containers(簡稱AC2)提供的AI容器鏡像在NVIDIA GPU上部署通義千問Qwen-7B-Chat。

背景資訊

通義千問-7B(Qwen-7B)是阿里雲研發的通義千問大模型系列的70億參數規模模型。Qwen-7B是基於Transformer的大語言模型,在超大規模的預訓練資料上進行訓練得到。預訓練資料類型多樣,覆蓋廣泛,包括大量網路文本、專業書籍、代碼等。同時,在Qwen-7B 的基礎上,使用對齊機制打造了基於大語言模型的AI助手Qwen-7B-Chat。

重要

Qwen-7B-Chat的代碼依照LICENSE開源,免費商用需填寫商業授權申請。您應自覺遵守第三方模型的使用者協議、使用規範和相關法律法規,並就使用第三方模型的合法性、合規性自行承擔相關責任。

步驟一:建立ECS執行個體

  1. 前往執行個體建立頁

  2. 按照介面提示完成參數配置,建立一台ECS執行個體。

    需要注意的參數如下,其他參數的配置,請參見自訂購買執行個體

    • 執行個體:Qwen-7B-Chat需要顯存大於16 GiB,為了保證模型啟動並執行穩定,執行個體規格至少需要選擇ecs.gn6i-c4g1.xlarge。

    • 鏡像:Alibaba Cloud Linux 3.2104 LTS 64位。

    • 公網IP:選中分配公網IPv4地址,頻寬計費模式選擇按使用流量,頻寬峰值設定為100 Mbps。以加快模型下載速度。

      image

    • 資料盤:Qwen-7B-Chat的運行需要下載多個模型檔案,會佔用大量儲存空間,為了保證模型順利運行,建議資料盤設定為100 GiB。

步驟二:建立Docker運行環境

  1. 安裝Docker。

    在Alibaba Cloud Linux 3上安裝Docker可以參考安裝Docker並使用(Linux)

  2. 運行以下命令,確保Docker守護進程已經啟用。

    sudo systemctl status docker
  3. 安裝NVIDIA驅動以及CUDA組件。

    sudo dnf install -y anolis-epao-release
    sudo dnf install -y kernel-devel-$(uname -r) nvidia-driver{,-cuda}
  4. 使用以下命令安裝NVIDIA Container Toolkit。

    sudo dnf install -y nvidia-container-toolkit
  5. 安裝NVIDIA Container Toolkit時會添加OCI開機前鉤子,以在啟動階段將GPU暴露給容器,所以需要重新啟動Docker守護進程。

    sudo systemctl restart docker

    重啟服務後,Docker就具備了GPU透傳能力,後續建立容器時,需要添加--gpus <gpu-request>參數,指定需要透傳的GPU。

  6. 運行以下命令,建立並運行PyTorch AI容器。

    AC2提供了豐富的AI情境下的容器鏡像,可以使用該鏡像快速建立一個PyTorch運行環境。

    sudo docker pull ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch:2.2.0.1-3.2304-cu121
    sudo docker run -itd --name pytorch --gpus all --net host -v $HOME/workspace:/workspace \
      ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch:2.2.0.1-3.2304-cu121

    以上命令首先拉取容器鏡像,隨後使用該鏡像建立一個以分離模式啟動並執行,名為pytorch的容器,並將使用者的家目錄映射到容器中,以保留開發內容。

步驟三:手動部署Qwen-7B-Chat

  1. 運行以下命令,進入容器環境。

    sudo docker exec -it -w /workspace pytorch /bin/bash

    後續命令需在容器環境中執行,如意外退出,請使用以上命令重新進入容器環境。您可以運行cat /proc/1/cgroup | grep docker命令查看當前環境是否為容器,如有回顯資訊則為容器環境。

  2. 運行以下命令,安裝配置軟體。

    yum install -y git git-lfs wget tmux
  3. 運行以下命令,啟用Git LFS。

    下載預訓練模型需要Git LFS的支援。

    git lfs install
  4. 下載源碼與模型。

    1. 建立一個tmux session。

      tmux

      注意:下載預訓練模型耗時較長,建議在tmux會話中下載。執行個體串連中斷後,通過tmux attach恢複會話。

    2. 運行以下命令,下載Qwen-7B專案源碼,以及預訓練模型。

      git clone https://github.com/QwenLM/Qwen.git
      git clone https://www.modelscope.cn/qwen/Qwen-7B-Chat.git qwen-7b-chat --depth=1
  5. 運行以下命令,部署運行環境。

    AC2容器中,整合了眾多的Python AI相依元件,可以直接使用yumdnf安裝Python運行依賴。

    dnf install -y python-einops \
        python3-datasets \
        python3-gradio \
        python3-mdtex2html \
        python3-protobuf \
        python3-psutil \
        python3-pyyaml \
        python3-rich \
        python3-scikit-learn \
        python3-scipy \
        python3-sentencepiece \
        python3-tensorboard \
        python3-tiktoken \
        python3-transformers \
        python3-transformers-stream-generator \
        yum-utils

    部分相依元件需要手動下載並安裝,防止安裝過程中覆蓋 AC2 鏡像中的組件。

    yumdownloader --destdir ./rpmpkgs python3-timm python3-accelerate
    rpm -ivh --nodeps rpmpkgs/*.rpm && rm -rf rpmpkgs
  6. 運行AI對話。

    1. 運行以下命令,啟動聊天機器人。

      cd /workspace/Qwen
      python3 cli_demo.py -c ../qwen-7b-chat

      部署完成後可以通過在User>提示符處輸入對話內容,就可以與Qwen-7B-Chat大模型進行即時對話。

      image.png

      說明

      您可以運行:exit命令退出聊天機器人