スタートガイド
Red Hat AI Inference Server のスタートガイド
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat AI Inference Server は、LLM でのサービングと推論を最適化するコンテナーイメージです。AI Inference Server を使用すると、コストを削減しながらパフォーマンスを向上させる方法でモデルをサービングおよび推論できます。
第1章 AI Inference Server について リンクのコピーリンクがクリップボードにコピーされました!
AI Inference Server は、アップストリームのオープンソースソフトウェアを基盤として、エンタープライズグレードの安定性とセキュリティーを提供します。AI Inference Server は、最先端の推論機能を提供するアップストリーム vLLM プロジェクト を活用します。
たとえば、AI Inference Server は、完全なバッチが蓄積されるまで待つのではなく、継続的なバッチ処理を使用して、リクエストが到着するとすぐに処理します。テンソル並列処理により、LLM ワークロードが複数の GPU に分散されます。これらの機能により、レイテンシーが短縮され、スループットが向上します。
推論モデルのコストを削減するために、AI Inference Server はページングされたアテンションを使用します。LLM は、ユーザーとの会話を理解するためにアテンションと呼ばれるメカニズムを使用します。通常、アテンションは大量のメモリーが使用され、その多くは無駄になっています。ページングアテンションは、オペレーティングシステムの仮想メモリーの動作と同様に、LLM にメモリーをプロビジョニングすることで、このメモリーの浪費に対処します。このアプローチではメモリーの消費量が少なくなり、コストが削減されます。
AI Inference Server によるコスト削減とパフォーマンス向上を確認するには、次の手順を実行します。
第2章 製品とバージョンの互換性 リンクのコピーリンクがクリップボードにコピーされました!
次の表は、Red Hat AI Inference Server 3.0 でサポートされている製品バージョンを示しています。
| 製品 | サポート対象バージョン |
|---|---|
| Red Hat AI Inference Server | 3.0 |
| vLLM core | 0.8.4 |
| LLM Compressor | 0.5.1 テクノロジープレビュー |
第3章 AI Inference Server を使用したサービングおよび推論 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat AI Inference Server で大規模な言語モデルをサービングし、推論します。
前提条件
- Podman または Docker がインストールされている。
NVIDIA または AMD GPU を使用する Linux サーバーにアクセスでき、root 権限のあるユーザーとしてログインしている。
NVIDIA GPU の場合:
- NVIDIA ドライバーがインストールされている
- NVIDIA Container Toolkit がインストールされている
- システムに NVswitch を使用する NVIDIA GPU が複数ある場合は、Fabric Manager を起動するための root アクセスが割り当てられている。
AMD GPU の場合:
- ROCm ソフトウェアがインストールされている
-
registry.redhat.ioにアクセスでき、ログインしている。 - Hugging Face アカウントがあり、Hugging Face トークンが生成されている。
-
注記AMD GPU は FP8 (W8A8) および GGUF 量子化スキームのみをサポートします。詳細は、サポートされているハードウェア を参照してください。
手順
以下の表を使用して、インフラストラクチャーの正しいイメージを特定します。
Expand GPU AI Inference Server イメージ NVIDIA CUDA (T4、A100、L4、L40S、H100、H200)
registry.redhat.io/rhaiis/vllm-cuda-rhel9:3.0.0AMD ROCm (MI210、MI300X)
registry.redhat.io/rhaiis/vllm-rocm-rhel9:3.0.0サーバーホストでターミナルを開き、
registry.redhat.ioにログインします。podman login registry.redhat.io
$ podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow GPU に該当するイメージをプルします。
podman pull registry.redhat.io/rhaiis/vllm-<gpu_type>-rhel9:3.0.0
$ podman pull registry.redhat.io/rhaiis/vllm-<gpu_type>-rhel9:3.0.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow システムで SELinux が有効になっている場合は、デバイスアクセスを許可するように SELinux を設定します。
sudo setsebool -P container_use_devices 1
$ sudo setsebool -P container_use_devices 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow ボリュームを作成してコンテナーにマウントします。コンテナーが使用できるようにコンテナーの権限を調整します。
mkdir -p rhaiis-cache
$ mkdir -p rhaiis-cacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod g+rwX rhaiis-cache
$ chmod g+rwX rhaiis-cacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow HF_TOKENHugging Face トークンを作成するか、private.envファイルに追加します。source コマンドでprivate.envファイルを読み込みます。echo "export HF_TOKEN=<your_HF_token>" > private.env
$ echo "export HF_TOKEN=<your_HF_token>" > private.envCopy to Clipboard Copied! Toggle word wrap Toggle overflow source private.env
$ source private.envCopy to Clipboard Copied! Toggle word wrap Toggle overflow AI Inference Server コンテナーイメージを起動します。
NVIDIA CUDA アクセラレーターの場合:
ホストシステムに複数の GPU があり、NVSwitch を使用している場合は、NVIDIA Fabric Manager を起動します。システムで NVSwitch が使用されているかどうかを検出するには、まず
/proc/driver/nvidia-nvswitch/devices/にファイルが存在するかどうかを確認してから NVIDIA Fabric Manager を起動します。NVIDIA Fabric Manager を起動するには root 権限が必要です。ls /proc/driver/nvidia-nvswitch/devices/
$ ls /proc/driver/nvidia-nvswitch/devices/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
0000:0c:09.0 0000:0c:0a.0 0000:0c:0b.0 0000:0c:0c.0 0000:0c:0d.0 0000:0c:0e.0
0000:0c:09.0 0000:0c:0a.0 0000:0c:0b.0 0000:0c:0c.0 0000:0c:0d.0 0000:0c:0e.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start nvidia-fabricmanager
$ systemctl start nvidia-fabricmanagerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要NVIDIA Fabric Manager は、NVswitch を使用する複数の GPU を搭載したシステムにのみ必要です。詳細は、NVIDIA Server Architectures を参照してください。
次のコマンドを実行して、Red Hat AI Inference Server コンテナーがホスト上の NVIDIA GPU にアクセスできることを確認します。
podman run --rm -it \ --security-opt=label=disable \ --device nvidia.com/gpu=all \ nvcr.io/nvidia/cuda:12.4.1-base-ubi9 \ nvidia-smi
$ podman run --rm -it \ --security-opt=label=disable \ --device nvidia.com/gpu=all \ nvcr.io/nvidia/cuda:12.4.1-base-ubi9 \ nvidia-smiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーを起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- SELinux が有効になっているシステムに必要です。
--security-opt=label=disableは、SELinux がボリュームマウント内のファイルを再ラベル付けするのを防ぎます。この引数を使用しない場合、コンテナーが正常に実行されない可能性があります。 - 2
- 共有メモリーに問題が発生する場合は、
--shm-sizeを8GBに増やしてください。 - 3
- ホスト UID をコンテナー内の vLLM プロセスの有効な UID にマッピングします。
--user=0を渡すこともできますが、これは--usernsオプションよりも安全性が低くなります。--user=0を設定すると、コンテナー内で vLLM が root として実行されます。 - 4
- Hugging Face API アクセストークン を使用して
HF_TOKENを設定してエクスポートします。 - 5
- SELinux が有効になっているシステムに必要です。Debian または Ubuntu オペレーティングシステムの場合、または SELinux なしで Docker を使用する場合は、
:Z接尾辞は使用できません。 - 6
- AI Inference Server コンテナーを複数の GPU で実行する場合は、GPU の数に合わせて
--tensor-parallel-sizeを設定します。
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 | jqcurl -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 | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 主要なメトリクスを使用した Red Hat AI Inference Server の利点の検証 リンクのコピーリンクがクリップボードにコピーされました!
AI Inference Server でサービングされる LLM モデルのパフォーマンスを評価するには、次のメトリクスを使用します。
- Time to first token (TTFT): モデルが応答の最初のトークンを提供するまでにかかる時間
- Time per output token (TPOT): モデルが、要求を送信した各ユーザーに出力トークンを提供するまでにかかる時間
- Latency: モデルが完全な応答を生成するまでにかかる時間。
- Throughput: すべてのユーザーおよび要求で、モデルが同時に生成できる出力トークンの数
AI Inference Server およびその他の推論サーバーがこれらのメトリクスに従ってどのように動作するかを示すベンチマークテストを実行するには、以下の手順を実行します。
前提条件
- AI Inference Server コンテナーイメージ
- GitHub アカウント
- Python 3.9 以降
手順
ホストシステムで、AI Inference Server を起動し、モデルをサービングします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 別のターミナルタブで、ベンチマークツールの依存関係をインストールします。
pip install vllm pandas datasets
$ pip install vllm pandas datasetsCopy to Clipboard Copied! Toggle word wrap Toggle overflow vLLM Git repository のクローンを作成します。
git clone https://github.com/vllm-project/vllm.git
$ git clone https://github.com/vllm-project/vllm.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow ./vllm/benchmarks/benchmark_serving.pyスクリプトを実行します。python vllm/benchmarks/benchmark_serving.py --backend vllm --model RedHatAI/Llama-3.2-1B-Instruct-FP8 --num-prompts 100 --dataset-name random --random-input 1024 --random-output 512 --port 8000
$ python vllm/benchmarks/benchmark_serving.py --backend vllm --model RedHatAI/Llama-3.2-1B-Instruct-FP8 --num-prompts 100 --dataset-name random --random-input 1024 --random-output 512 --port 8000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
結果は、主要なサーバーメトリクスをもとにした AI Inference Server のパフォーマンスを示しています。
このベンチマークのパラメーターを変更して、再度実行してみてください。バックエンドとしての vllm が他のオプションとどのように比較されるかに注目してください。スループットは一貫して高くなり、レイテンシーは低くなるはずです。
-
--backendの他のオプションは、tgi、lmdeploy、deepspeed-mii、openai、openai-chatです。 -
--dataset-nameの他のオプションはsharegpt、burstgpt、sonnet、random、hfです。
関連情報
- vLLM ドキュメント
- LLM Inference Performance Engineering: Best Practices、Mosaic AI Research 著。スループットやレイテンシーなどのメトリクスを解説しています。
第5章 トラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat AI Inference Server 3.0 の次のトラブルシューティング情報では、モデルの読み込み、メモリー、モデルの応答品質、ネットワーク、および GPU ドライバーに関連する一般的な問題を説明します。一般的な問題に対する回避策 (ある場合) が説明されています。
vLLM で最も一般的な問題は、インストール、モデルの読み込み、メモリー管理、および GPU 通信などに関連するものです。ほとんどの問題は、正しく設定された環境を使用し、互換性のあるハードウェアとソフトウェアのバージョンを確保し、推奨の設定方法に従うことで解決できます。
問題が解決しない場合は、VLLM_LOGGING_LEVEL=DEBUG をエクスポートしてデバッグログを有効にし、ログを確認してください。
export VLLM_LOGGING_LEVEL=DEBUG
$ export VLLM_LOGGING_LEVEL=DEBUG
5.1. モデル読み込みエラー リンクのコピーリンクがクリップボードにコピーされました!
ユーザー namespace 指定せずに Red Hat AI Inference Server コンテナーイメージを実行すると、認識されないモデルエラーが返されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
ValueError: Unrecognized model in RedHatAI/Llama-3.2-1B-Instruct-FP8. Should have a model_type key in its config.json
ValueError: Unrecognized model in RedHatAI/Llama-3.2-1B-Instruct-FP8. Should have a model_type key in its config.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow このエラーを解決するには、コンテナーが root ユーザーで実行されるように、Podman パラメーターとして
--userns=keep-id:uid=1001を渡します。Red Hat AI Inference Server がモデルをダウンロードするときに、ダウンロードが失敗したり、停止したりすることがあります。モデルのダウンロードがハングしないようにするには、まず
huggingface-cliを使用してモデルをダウンロードします。以下に例を示します。huggingface-cli download <MODEL_ID> --local-dir <DOWNLOAD_PATH>
$ huggingface-cli download <MODEL_ID> --local-dir <DOWNLOAD_PATH>Copy to Clipboard Copied! Toggle word wrap Toggle overflow モデルをサービングするときは、モデルが再度ダウンロードされないように、ローカルモデルパスを vLLM に渡します。
Red Hat AI Inference Server がディスクからモデルをロードすると、プロセスが停止することがあります。大規模なモデルはメモリーを消費し、メモリーが不足すると、RAM とディスク間でデータをスワップするため、システムの速度が低下します。ネットワークファイルシステムの速度が遅いか、使用可能なメモリーが不足すると、過剰なスワップが発生する可能性があります。これは、ファイルシステムがクラスターノード間で共有されているクラスターで発生する可能性があります。
可能な場合は、モデルをローカルディスクに保存して、モデルの読み込み時の速度が低下しないようにします。システムに十分な CPU メモリーがあることを確認してください。
システムにモデルを処理するのに十分な CPU 容量があることを確認してください。
場合によっては、Red Hat AI Inference Server がモデルの検査に失敗することがあります。エラーはログに報告されます。以下に例を示します。
#... File "vllm/model_executor/models/registry.py", line xxx, in \_raise_for_unsupported raise ValueError( ValueError: Model architectures [''] failed to be inspected. Please check the logs for more details.#... File "vllm/model_executor/models/registry.py", line xxx, in \_raise_for_unsupported raise ValueError( ValueError: Model architectures [''] failed to be inspected. Please check the logs for more details.Copy to Clipboard Copied! Toggle word wrap Toggle overflow このエラーは、vLLM がモデルファイルのインポートに失敗した場合に発生します。これは通常、vLLM ビルド内の依存関係が欠落しているか、バイナリーが古くなっていることに関連しています。
モデルのアーキテクチャーによってはサポートされないものがあります。検証済みモデル のリストを参照してください。たとえば、次のエラーは、使用しようとしているモデルがサポートされていないことを示しています。
Traceback (most recent call last): #... File "vllm/model_executor/models/registry.py", line xxx, in inspect_model_cls for arch in architectures: TypeError: 'NoneType' object is not iterableTraceback (most recent call last): #... File "vllm/model_executor/models/registry.py", line xxx, in inspect_model_cls for arch in architectures: TypeError: 'NoneType' object is not iterableCopy to Clipboard Copied! Toggle word wrap Toggle overflow #... File "vllm/model_executor/models/registry.py", line xxx, in \_raise_for_unsupported raise ValueError( ValueError: Model architectures [''] are not supported for now. Supported architectures: #...#... File "vllm/model_executor/models/registry.py", line xxx, in \_raise_for_unsupported raise ValueError( ValueError: Model architectures [''] are not supported for now. Supported architectures: #...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記DeepSeekV2VLなどの一部のアーキテクチャーでは、--hf_overridesフラグを使用してアーキテクチャーを明示的に指定する必要があります。次に例を示します。--hf_overrides '{\"architectures\": [\"DeepseekVLV2ForCausalLM\"]}--hf_overrides '{\"architectures\": [\"DeepseekVLV2ForCausalLM\"]}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 8 ビット浮動小数点 (FP8) モデルをロードすると、特定のハードウェアでランタイムエラーが発生することがあります。FP8 には GPU ハードウェアアクセラレーションが必要です。
deepseek-r1などの FP8 モデルや、F8_E4M3テンソルタイプでタグ付けされたモデルをロードすると、エラーが発生します。以下に例を示します。triton.compiler.errors.CompilationError: at 1:0: def \_per_token_group_quant_fp8( \^ ValueError("type fp8e4nv not supported in this architecture. The supported fp8 dtypes are ('fp8e4b15', 'fp8e5')") [rank0]:[W502 11:12:56.323757996 ProcessGroupNCCL.cpp:1496] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())triton.compiler.errors.CompilationError: at 1:0: def \_per_token_group_quant_fp8( \^ ValueError("type fp8e4nv not supported in this architecture. The supported fp8 dtypes are ('fp8e4b15', 'fp8e5')") [rank0]:[W502 11:12:56.323757996 ProcessGroupNCCL.cpp:1496] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記特定のアクセラレーターがサポートされていることを確認するには、スタートガイド を参照してください。現在 FP8 モデルに対応するアクセラレーターは次のとおりです。
モデルをサービングするときに、ホストシステムに関連するランタイムエラーが発生することがあります。たとえば、以下のようなエラーがログに表示される場合があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この問題は、
vllmの起動時に--shm-size=2g引数を渡すことで回避できます。
5.2. メモリーの最適化 リンクのコピーリンクがクリップボードにコピーされました!
- モデルが大きすぎて単一の GPU で実行できない場合は、メモリー不足 (OOM) エラーが発生します。量子化、テンソル並列化、精度の低下などのメモリー最適化オプションを使用して、メモリー消費を削減します。詳細は、Conserving memory を参照してください。
5.3. 生成されたモデルの応答品質 リンクのコピーリンクがクリップボードにコピーされました!
シナリオによっては、更新後に生成されたモデル応答の品質が低下する可能性があります。
新しいバージョンでは、デフォルトのサンプリングパラメーターソースが更新されました。vLLM バージョン 0.8.4 以降の場合、デフォルトのサンプリングパラメーターは、モデル作成者によって提供される
generation_config.jsonファイルから取得されます。ほとんどの場合、モデル作成者はどのサンプリングパラメーターがモデルに最適かを把握している可能性が高いため、このパラメーターにより応答の品質が向上するはずです。ただし、場合によっては、モデル作成者が提供するデフォルトが原因でパフォーマンスが低下する可能性があります。この問題が発生した場合は、
--generation-config vllmサーバー引数を使用して、古いデフォルトでモデルをサービングしてみてください。重要--generation-config vllmサーバー引数を適用することでモデル出力が改善される場合は、引き続き vLLM のデフォルトを使用し、Hugging Face のモデル作成者にデフォルトのgeneration_config.jsonを更新して、より品質の高い世代を生成するように依頼してください。
5.4. CUDA アクセラレーターエラー リンクのコピーリンクがクリップボードにコピーされました!
CUDA アクセラレーターを使用してモデルを実行すると
self.graph.replay()エラーが発生する可能性があります。vLLM がクラッシュし、エラートレースが
vllm/worker/model_runner.pyモジュールのself.graph.replay()メソッドの付近でエラーが発生した場合、CUDAGraphクラス内で発生する CUDA エラーである可能性が最も高くなります。エラーの原因となる特定の CUDA 操作を特定するには、
vllmコマンドラインに--enforce-eagerサーバー引数を追加してCUDAGraphの最適化を無効にし、問題のある CUDA 操作を分離します。ハードウェアまたはドライバーの設定が誤っているために、アクセラレーターと CPU の通信に問題が発生する可能性があります。
一部の NVIDIA GPU タイプが搭載されたマルチ GPU システムでは、NVIDIA Fabric Manager が必要です。
nvidia-fabricmanagerパッケージおよび関連する systemd サービスがインストールされていないか、パッケージが実行されていない可能性があります。diagnostic Python script を実行して、NVIDIA Collective Communications Library (NCCL) と Gloo ライブラリーコンポーネントが正しく通信しているかどうかを確認します。
NVIDIA システムでは、次のコマンドを実行して Fabric Manager のステータスを確認します。
systemctl status nvidia-fabricmanager
$ systemctl status nvidia-fabricmanagerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 正常に設定されたシステムでは、サービスはアクティブになり、エラーなく実行されるはずです。
-
テンソル並列処理を有効にして vLLM を実行し、NVIDIA マルチインスタンス GPU (MIG) ハードウェアで
--tensor-parallel-sizeを 1 より大きく設定すると、初期モデルの読み込みフェーズまたはシェイプチェックフェーズでAssertionErrorが発生します。これは通常、vLLM を起動したときに最初に発生するエラーです。
5.5. ネットワークエラー リンクのコピーリンクがクリップボードにコピーされました!
複雑なネットワーク設定ではネットワークエラーが発生する可能性があります。
ネットワークの問題のトラブルシューティングを行うには、以下のように誤った IP アドレスが表示されている DEBUG ステートメントのログを検索します。
DEBUG 06-10 21:32:17 parallel_state.py:88] world_size=8 rank=0 local_rank=0 distributed_init_method=tcp://<incorrect_ip_address>:54641 backend=nccl
DEBUG 06-10 21:32:17 parallel_state.py:88] world_size=8 rank=0 local_rank=0 distributed_init_method=tcp://<incorrect_ip_address>:54641 backend=ncclCopy to Clipboard Copied! Toggle word wrap Toggle overflow この問題を修正するには、以下のように
VLLM_HOST_IP環境変数で正しい IP アドレスを設定します。export VLLM_HOST_IP=<correct_ip_address>
$ export VLLM_HOST_IP=<correct_ip_address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NCCL および Gloo の IP アドレスに関連付けられたネットワークインターフェイスを指定します。
export NCCL_SOCKET_IFNAME=<your_network_interface>
$ export NCCL_SOCKET_IFNAME=<your_network_interface>Copy to Clipboard Copied! Toggle word wrap Toggle overflow export GLOO_SOCKET_IFNAME=<your_network_interface>
$ export GLOO_SOCKET_IFNAME=<your_network_interface>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6. Python マルチプロセスエラー リンクのコピーリンクがクリップボードにコピーされました!
Python マルチプロセスの警告またはランタイムエラーが発生する可能性があります。これは、コードが Python マルチプロセス用に適切に構造化されていない場合に発生する可能性があります。以下は、コンソールの警告の例です。
WARNING 12-11 14:50:37 multiproc_worker_utils.py:281] CUDA was previously initialized. We must use the `spawn` multiprocessing start method. Setting VLLM_WORKER_MULTIPROC_METHOD to 'spawn'. See https://docs.vllm.ai/en/latest/getting_started/troubleshooting.html#python-multiprocessing for more information.WARNING 12-11 14:50:37 multiproc_worker_utils.py:281] CUDA was previously initialized. We must use the `spawn` multiprocessing start method. Setting VLLM_WORKER_MULTIPROC_METHOD to 'spawn'. See https://docs.vllm.ai/en/latest/getting_started/troubleshooting.html#python-multiprocessing for more information.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は Python ランタイムエラーの例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ランタイムエラーを解決するには、Python コードを更新し、
if__name__ = "__main__":ブロックの背後でvllmの使用を保護します。以下に例を示します。if __name__ = "__main__": import vllm llm = vllm.LLM(...)if __name__ = "__main__": import vllm llm = vllm.LLM(...)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7. GPU ドライバーまたはデバイスパススルーの問題 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat AI Inference Server コンテナーイメージを実行すると、デバイスパススルーエラーが GPU ドライバーによって発生しているのか、NVIDIA Container Toolkit などのツールによって発生しているのか不明な場合があります。
ホストマシンにインストールされている NVIDIA Container Toolkit がホスト GPU を認識できることを確認します。
nvidia-ctk cdi list
$ nvidia-ctk cdi listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NVIDIA アクセラレーター設定がホストマシンに作成されていることを確認します。
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
$ sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Red Hat AI Inference Server コンテナーがホスト上の NVIDIA GPU にアクセスできることを確認します。
podman run --rm -it --security-opt=label=disable --device nvidia.com/gpu=all nvcr.io/nvidia/cuda:12.4.1-base-ubi9 nvidia-smi
$ podman run --rm -it --security-opt=label=disable --device nvidia.com/gpu=all nvcr.io/nvidia/cuda:12.4.1-base-ubi9 nvidia-smiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow