すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:AIコンテナイメージを使用して、NVIDIA GPUを搭載したインスタンスにQwen-7B-Chatをデプロイする

最終更新日:Jul 10, 2024

このトピックでは、Alibaba Cloud AI Containers (AC2) が提供する人工知能 (AI) コンテナイメージを使用して、NVIDIA GPUを使用してチャットボットを作成するElastic Compute Service (ECS) インスタンスにQwen-7B-Chatをデプロイする方法について説明します。

手順 1: ECS インスタンスの作成

  1. ECSコンソールのインスタンス購入ページに移動します。

  2. ECSインスタンスの作成のプロンプトに従ってパラメーターを設定します。

    次のパラメータに注意してください。 ECSインスタンス購入ページで他のパラメーターを設定する方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。

    • インスタンス: Qwen-7B-Chatには16 GiBを超えるGPUメモリが必要です。 モデルの安定性を確保するには、少なくともecs.gn6i-c4g1.xlargeインスタンスタイプを選択する必要があります。

    • イメージ: Alibaba Cloud Linux 3.2104 LTS 64ビットイメージを選択します。

    • パブリックIPアドレス: モデルのダウンロードプロセスを高速化するには、[パブリックIPv4アドレスの割り当て] を選択し、帯域幅課金方法を [トラフィック課金] に設定し、最大帯域幅を100 Mbit/sに設定します。

      image

    • データディスク: Qwen-7B-Chat用の複数のモデルファイルをダウンロードする必要があり、それらは大量のストレージスペースを占有します。 モデルが期待どおりに実行されるようにするには、少なくとも100 GiBのデータディスクを追加することを推奨します。

手順2: Dockerランタイム環境の作成

  1. Dockerをインストールします。

    Alibaba Cloud Linux 3を実行するECSインスタンスにDockerをインストールする方法については、「」をご参照ください。

  2. 次のコマンドを実行して、Dockerデーモンが起動していることを確認します。

    sudo systemctl status docker
  3. 次のコマンドを実行して、NVIDIAドライバーとCompute Unified Device Architecture (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. 次のコマンドを実行して、Dockerデーモンを再起動します。 NVIDIA Container Toolkitがインストールされると、Oracle Cloud Infrastructure (OCI) プレスタート・フックが追加されます。 Dockerデーモンの再起動中、GPUはOCI prestartフックを使用してコンテナーにアクセスできるようになります。

    sudo systemctl restart docker

    Dockerデーモンが再起動されると、DockerのGPUパススルー機能が有効になります。 コンテナーを作成するときに、-- gpus <gpu-request> パラメーターを設定して、通過するgpuを指定します。

  6. 次のコマンドを実行して、PyTorch AIコンテナを作成して実行します。

    AC2は、さまざまなAIコンテナイメージを提供します。 イメージを使用して、PyTorchランタイム環境をすばやく作成できます。

    sudo docker pul l 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という名前のコンテナーを作成し、コードを保持するためにホームディレクトリをコンテナーにマップします。

ステップ3: 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 Large File Storage (LFS) を有効にします。

    事前トレーニング済みモデルをダウンロードするには、Git LFSのサポートが必要です。

    git lfs install
  4. ソースコードとモデルをダウンロードします。

    1. tmuxセッションを作成します。

      tmux

      注: 事前にトレーニングされたモデルのダウンロードには長い時間がかかります。 tmuxセッションでモデルをダウンロードすることを推奨します。 インスタンスの切断後、インスタンスに接続し、tmux attachコマンドを実行してセッションを再開します。

    2. 次のコマンドを実行して、Qwen-7B-Chatプロジェクトのソースコードと事前トレーニング済みモデルをダウンロードします。

      git clone https://github.com/QwenLM/Qwen.git
      git clone https:// www.modelscope.cn/qwen/Qwen-7B-Chat.git qwen-7b-chat -- 深さ=1 
  5. 次のコマンドを実行して、ランタイム環境をデプロイします。

    多数のPython AI依存関係がAC2に統合されています。 YUMまたはDandified YUM (DNF) を使用して、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を

    yumdownloader --destdir ./rpmpkgs python3-timm python3-accelerate
    rpm -ivh --nodeps rpmpkgs/*.rpm && rm -rf rpmpkgs
  6. チャットボットとチャットします。

    1. 次のコマンドを実行してチャットボットを起動します。

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

      デプロイが完了したら、User: プロンプトでテキストを入力して、Qwen-7B-Chatモデルとリアルタイムでチャットできます。

      image.png

      説明

      チャットボットを終了するには、:exitコマンドを実行します。