第4章 AMD ROCm AI アクセラレーターを使用した Podman によるサービングと推論
AMD ROCm AI アクセラレーター上で実行される Podman と Red Hat AI Inference Server を使用して、大規模言語モデルのサービングおよび推論を行います。
前提条件
- Podman または Docker がインストールされている。
- sudo 権限のあるユーザーでログインする。
-
registry.redhat.io
にアクセスでき、ログインしてている。 - Hugging Face アカウントがあり、Hugging Face アクセストークンが生成されている。
データセンターグレードの AMD ROCm AI アクセラレーターがインストールされた Linux サーバーにアクセスできる。
AMD GPU の場合:
アクセラレーターでサポートされている vLLM 量子化スキームの詳細は、Supported hardware を参照してください。
手順
サーバーホストでターミナルを開き、
registry.redhat.io
にログインします。podman login registry.redhat.io
$ podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、AMD ROCm イメージをプルします。
podman pull registry.redhat.io/rhaiis/vllm-rocm-rhel9:3.2.1
$ podman pull registry.redhat.io/rhaiis/vllm-rocm-rhel9:3.2.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow システムで SELinux が有効になっている場合は、デバイスアクセスを許可するように SELinux を設定します。
sudo setsebool -P container_use_devices 1
$ sudo setsebool -P container_use_devices 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ボリュームを作成してコンテナーにマウントします。コンテナーが使用できるようにコンテナーの権限を調整します。
mkdir -p rhaiis-cache
$ mkdir -p rhaiis-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod g+rwX rhaiis-cache
$ chmod g+rwX rhaiis-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HF_TOKEN
Hugging Face トークンを作成するか、private.env
ファイルに追加します。source コマンドでprivate.env
ファイルを読み込みます。echo "export HF_TOKEN=<your_HF_token>" > private.env
$ echo "export HF_TOKEN=<your_HF_token>" > private.env
Copy to Clipboard Copied! Toggle word wrap Toggle overflow source private.env
$ source private.env
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AI Inference Server コンテナーイメージを起動します。
AMD ROCm アクセラレーターの場合:
amd-smi static -a
を使用して、コンテナーがホストシステムの GPU にアクセスできることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- GPU を使用するには、AMD システムのビデオグループとレンダリンググループの両方に属している必要があります。GPU にアクセスするには、
--group-add=keep-groups
で補助グループオプションをコンテナーに渡す必要があります。
コンテナーを起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ターミナルの別のタブで、API を使用してモデルにリクエストを送信します。
curl -X POST -H "Content-Type: application/json" -d '{ "prompt": "What is the capital of France?", "max_tokens": 50 }' http://<your_server_ip>:8000/v1/completions | jq
curl -X POST -H "Content-Type: application/json" -d '{ "prompt": "What is the capital of France?", "max_tokens": 50 }' http://<your_server_ip>:8000/v1/completions | jq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow