このトピックでは、Alibaba Cloud AI Containers (AC2) が提供する人工知能 (AI) コンテナイメージを使用して、NVIDIA GPUを使用してチャットボットを作成するElastic Compute Service (ECS) インスタンスにQwen-7B-Chatをデプロイする方法について説明します。
手順 1: ECS インスタンスの作成
ECSコンソールのインスタンス購入ページに移動します。
ECSインスタンスの作成のプロンプトに従ってパラメーターを設定します。
次のパラメータに注意してください。 ECSインスタンス購入ページで他のパラメーターを設定する方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
インスタンス: Qwen-7B-Chatには16 GiBを超えるGPUメモリが必要です。 モデルの安定性を確保するには、少なくともecs.gn6i-c4g1.xlargeインスタンスタイプを選択する必要があります。
イメージ: Alibaba Cloud Linux 3.2104 LTS 64ビットイメージを選択します。
パブリックIPアドレス: モデルのダウンロードプロセスを高速化するには、[パブリックIPv4アドレスの割り当て] を選択し、帯域幅課金方法を [トラフィック課金] に設定し、最大帯域幅を100 Mbit/sに設定します。
データディスク: Qwen-7B-Chat用の複数のモデルファイルをダウンロードする必要があり、それらは大量のストレージスペースを占有します。 モデルが期待どおりに実行されるようにするには、少なくとも100 GiBのデータディスクを追加することを推奨します。
手順2: Dockerランタイム環境の作成
Dockerをインストールします。
Alibaba Cloud Linux 3を実行するECSインスタンスにDockerをインストールする方法については、「」をご参照ください。
次のコマンドを実行して、Dockerデーモンが起動していることを確認します。
sudo systemctl status docker
次のコマンドを実行して、NVIDIAドライバーとCompute Unified Device Architecture (CUDA) コンポーネントをインストールします。
sudo dnf install -y anolis-epao-release sudo dnf install -y kernel-devel-$(uname -r) nvidia-driver{,-cuda}
次のコマンドを実行して、NVIDIA Container Toolkitをインストールします。
sudo dnf install -y nvidia-container-toolkit
次のコマンドを実行して、Dockerデーモンを再起動します。 NVIDIA Container Toolkitがインストールされると、Oracle Cloud Infrastructure (OCI) プレスタート・フックが追加されます。 Dockerデーモンの再起動中、GPUはOCI prestartフックを使用してコンテナーにアクセスできるようになります。
sudo systemctl restart docker
Dockerデーモンが再起動されると、DockerのGPUパススルー機能が有効になります。 コンテナーを作成するときに、
-- gpus <gpu-request>
パラメーターを設定して、通過するgpuを指定します。次のコマンドを実行して、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のデプロイ
次のコマンドを実行して、コンテナー環境に入ります。
sudo docker exec -it -w /workspace pytorch /bin/bash
後続のコマンドを実行するには、コンテナー環境を使用する必要があります。 予期せず終了した場合は、コンテナ環境に再度入ります。
cat /proc/1/cgroup | grep docker
コマンドを実行して、現在の環境がコンテナーであるかどうかを確認できます。 コマンド出力が返された場合、環境はコンテナです。次のコマンドを実行して、必要なソフトウェアをインストールおよび設定します。
yum install -y git git-lfs wget tmux
次のコマンドを実行して、Git Large File Storage (LFS) を有効にします。
事前トレーニング済みモデルをダウンロードするには、Git LFSのサポートが必要です。
git lfs install
ソースコードとモデルをダウンロードします。
tmuxセッションを作成します。
tmux
注: 事前にトレーニングされたモデルのダウンロードには長い時間がかかります。 tmuxセッションでモデルをダウンロードすることを推奨します。 インスタンスの切断後、インスタンスに接続し、
tmux attach
コマンドを実行してセッションを再開します。次のコマンドを実行して、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
次のコマンドを実行して、ランタイム環境をデプロイします。
多数の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
チャットボットとチャットします。
次のコマンドを実行してチャットボットを起動します。
cd /workspace/Qwen python3 cli_demo.py -c ../qwen-7b-chat
デプロイが完了したら、
User:
プロンプトでテキストを入力して、Qwen-7B-Chatモデルとリアルタイムでチャットできます。説明チャットボットを終了するには、
:exit
コマンドを実行します。