3.2. KServe を使用した Llama モデルのデプロイ
OpenShift AI で Llama スタックと検索拡張生成 (RAG) ワークロードを使用するには、vLLM モデルサーバーを使用して Llama モデルをデプロイし、KServe を標準デプロイメントモードで設定する必要があります。
前提条件
- Red Hat OpenShift AI にログインしている。
- OpenShift クラスターのクラスター管理者権限を持っている。
- Llama Stack Operator をアクティブ化した。
- KServe がインストールされている。
- シングルモデルサービングプラットフォームを有効にした。シングルモデルサービングプラットフォームを有効にする方法の詳細は、シングルモデルサービングプラットフォームの有効化 を参照してください。
- ダッシュボード設定で、シングルモデルサービングプラットフォームにアクセスできる。ダッシュボード設定オプションの設定に関する詳細は、ダッシュボードのカスタマイズ を参照してください。
- Node Feature Discovery Operator と NVIDIA GPU Operator のインストールを含め、OpenShift AI で GPU サポートが有効になっている。詳細は、Node Feature Discovery Operator のインストール と NVIDIA GPU の有効化 を参照してください。
-
OpenShift CLI (OpenShift Dedicated) のインストール または OpenShift CLI (Red Hat OpenShift Service on AWS) のインストール の説明に従って、OpenShift コマンドラインインターフェイス (
oc) をインストールした。 - データサイエンスプロジェクトを作成した。
- 環境に vLLM サービングランタイムがインストールされており、利用可能である。
-
URI - v1接続タイプを含むモデルのストレージ接続を作成した。このストレージ接続では、Llama 3.2 モデルアーティファクトの場所を定義する必要があります。たとえば、oci://quay.io/redhat-ai-services/modelcar-catalog:llama-3.2-3b-instructです。ストレージ接続の作成の詳細は、データサイエンスプロジェクトへの接続の追加 を参照してください。
この手順は、OpenShift AI バージョン 2.19 以降でのみサポートされています。
- OpenShift AI ダッシュボードでプロジェクトの詳細ページに移動し、Models タブをクリックします。
- Single-model serving platform タイルで、Select single-model をクリックします。
Deploy model ボタンをクリックします。
Deploy model ダイアログが開きます。
モデルのデプロイメントプロパティーを設定します。
- Model deployment name フィールドに、デプロイメントの一意の名前を入力します。
-
Serving runtime フィールドで、ドロップダウンリストから
vLLM NVIDIA GPU serving runtime for KServeを選択します。 -
Deployment mode フィールドで、ドロップダウンリストから
Standardを選択します。 -
Number of model server replicas to deploy を
1に設定します。 Model server size フィールドで、ドロップダウンリストから
Customを選択します。-
CPUs requested を
1 coreに設定します。 -
Memory requested を
10 GiBに設定します。 -
CPU limit を
2 coreに設定します。 -
Memory limit を
14 GiBに設定します。 -
Accelerator を
NVIDIA GPUsに設定します。 -
Accelerator count を
1に設定します。
-
CPUs requested を
- Connection type ドロップダウンリストから適切なデータ接続を選択します。
Additional serving runtime arguments フィールドで、次の推奨される引数を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Deploy をクリックします。
注記モデルのデプロイには数分かかることがあります。特にクラスターにデプロイする最初のモデルの場合は時間がかかる可能性があります。関連するイメージがダウンロードされるため、初回のデプロイには 10 分以上かかる場合があります。
検証
kserve-controller-managerおよびodh-model-controllerPod が実行されていることを確認します。- 新しいターミナルウィンドウを開きます。
- CLI から OpenShift クラスターにログインします。
- OpenShift Web コンソールの右上隅で、ユーザー名をクリックし、Copy login command を選択します。
- ログイン後、Display token をクリックします。
Log in with this token をコピーし、OpenShift コマンドラインインターフェイス (CLI) に貼り付けます。
oc login --token=<token> --server=<openshift_cluster_url>
$ oc login --token=<token> --server=<openshift_cluster_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
kserve-controller-managerおよびodh-model-controllerPod が実行されていることを確認します。oc get pods -n redhat-ods-applications | grep -E 'kserve-controller-manager|odh-model-controller'
$ oc get pods -n redhat-ods-applications | grep -E 'kserve-controller-manager|odh-model-controller'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような出力が表示されることを確認します。
kserve-controller-manager-7c865c9c9f-xyz12 1/1 Running 0 4m21s odh-model-controller-7b7d5fd9cc-wxy34 1/1 Running 0 3m55s
kserve-controller-manager-7c865c9c9f-xyz12 1/1 Running 0 4m21s odh-model-controller-7b7d5fd9cc-wxy34 1/1 Running 0 3m55sCopy to Clipboard Copied! Toggle word wrap Toggle overflow kserve-controller-managerPod とodh-model-controllerPod のどちらも表示されない場合は、デプロイに問題がある可能性があります。また、Pod がリストに表示されているが、そのStatusがRunningに設定されていない場合は、Pod のログでエラーを確認します。oc logs <pod-name> -n redhat-ods-applications
$ oc logs <pod-name> -n redhat-ods-applicationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 推論サービスのステータスを確認します。
oc get inferenceservice -n llamastack oc get pods -n <data science project name> | grep llama
$ oc get inferenceservice -n llamastack $ oc get pods -n <data science project name> | grep llamaCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイすると、次のリソースが自動的に作成されます。
-
ServingRuntimeリソース。 -
InferenceServiceリソース、Deployment、Pod、およびその Pod を参照するサービス。
-
サーバーが実行中であることを確認します。以下に例を示します。
oc logs llama-32-3b-instruct-predictor-77f6574f76-8nl4r -n <data science project name>
$ oc logs llama-32-3b-instruct-predictor-77f6574f76-8nl4r -n <data science project name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のログと同様の出力を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - デプロイしたモデルは、デプロイ先プロジェクトのデータサイエンスプロジェクト詳細ページの Models タブに表示されます。
/v1/chat/completionsAPI を照会したときに Pod ログにConvertTritonGPUToLLVMエラーが表示され、vLLM サーバーが再起動するか、500 Internal Serverエラーが返される場合は、次の回避策を適用します。モデルをデプロイする前に、デプロイメントダイアログの Additional serving runtime arguments フィールドから
--enable-chunked-prefill引数を削除します。次のようなエラーが表示されます。
/opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: error: Failures have been detected while processing an MLIR pass pipeline /opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: note: Pipeline failed while executing [`ConvertTritonGPUToLLVM` on 'builtin.module' operation]: reproducer generated at `std::errs, please share the reproducer above with Triton project.` INFO: 10.129.2.8:0 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server Error
/opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: error: Failures have been detected while processing an MLIR pass pipeline /opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: note: Pipeline failed while executing [`ConvertTritonGPUToLLVM` on 'builtin.module' operation]: reproducer generated at `std::errs, please share the reproducer above with Triton project.` INFO: 10.129.2.8:0 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server ErrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow