2.3. 投機的デコーディングとマルチモーダル推論の有効化
vLLM NVIDIA GPU ServingRuntime for KServe ランタイムを設定して、大規模言語モデル (LLM) の推論時間を最適化するための並列処理技術である投機的デコーディングを使用できます。
ランタイムを設定して、Vision-Language Model (VLM) の推論をサポートすることもできます。VLM は、視覚データとテキストデータの両方を統合するマルチモーダルモデルのサブセットです。
次の手順では、投機的デコーディングとマルチモーダル推論用に vLLM NVIDIA GPU ServingRuntime for KServe をカスタマイズする方法を説明します。
前提条件
- OpenShift AI 管理者権限を持つユーザーとして OpenShift AI にログインしている。
- ドラフトモデルで投機的デコーディングに vLLM モデルサービングランタイムを使用している場合は、元のモデルと投機的モデルを S3 互換オブジェクトストレージ内の同じフォルダーに保存している。
手順
- シングルモデルサービングプラットフォームへのモデルのデプロイ で説明されている手順に従って、モデルをデプロイします。
- Serving runtime フィールドで、vLLM NVIDIA GPU ServingRuntime for KServe を選択します。
プロンプト内での n-gram のマッチングを使用した投機的デコーディング用に vLLM モデルサービングランタイムを設定するには、Configuration parameters セクションの Additional serving runtime arguments に次の引数を追加します。
--speculative-model=[ngram] --num-speculative-tokens=<NUM_SPECULATIVE_TOKENS> --ngram-prompt-lookup-max=<NGRAM_PROMPT_LOOKUP_MAX> --use-v2-block-manager<NUM_SPECULATIVE_TOKENS>と<NGRAM_PROMPT_LOOKUP_MAX>を独自の値に置き換えます。注記推論スループットは、n-gram による推測に使用されるモデルによって異なります。
ドラフトモデルを使用した投機的デコーディング用に vLLM モデルサービングランタイムを設定するには、Configuration parameters セクションの Additional serving runtime arguments に次の引数を追加します。
--port=8080 --served-model-name={{.Name}} --distributed-executor-backend=mp --model=/mnt/models/<path_to_original_model> --speculative-model=/mnt/models/<path_to_speculative_model> --num-speculative-tokens=<NUM_SPECULATIVE_TOKENS> --use-v2-block-manager-
<path_to_speculative_model>と<path_to_original_model>を、S3 互換オブジェクトストレージ上の投機的モデルと元のモデルへのパスに置き換えます。 -
<NUM_SPECULATIVE_TOKENS>を独自の値に置き換えます。
-
マルチモーダル推論用に vLLM モデルサービングランタイムを設定するには、Configuration parameters セクションの Additional serving runtime arguments に次の引数を追加します。
--trust-remote-code注記--trust-remote-code引数は、信頼できるソースからのモデルでのみ使用してください。- Deploy をクリックします。
検証
投機的デコーディング用に vLLM モデルサービングランタイムを設定している場合は、次のサンプルコマンドを使用して、デプロイされたモデルへの API リクエストを確認します。
curl -v https://<inference_endpoint_url>:443/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <token>"マルチモーダル推論用に vLLM モデルサービングランタイムを設定している場合は、次のサンプルコマンドを使用して、デプロイした Vision-Language Model (VLM) への API リクエストを確認します。
curl -v https://<inference_endpoint_url>:443/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d '{"model":"<model_name>", "messages": [{"role":"<role>", "content": [{"type":"text", "text":"<text>" }, {"type":"image_url", "image_url":"<image_url_link>" } ] } ] }'