Hugging FaceハブからのLLMのデプロイ¶
プレミアム機能
Hugging FaceハブからLLMをデプロイするには、GenAIエクスペリメントとGPU推論のためのプレミアム機能へのアクセスが必要です。 これらの機能を有効にするには、DataRobotの担当者または管理者にお問い合わせください。
モデルワークショップを使用して、一般的なオープンソースLLMを Hugging Faceハブから作成およびデプロイし、DataRobotのエンタープライズグレードのGenAI 可観測性とガバナンスでAIアプリを保護します。 The new [GenAI] vLLM Inference Server
execution environment and vLLM Inference Server Text Generation Template
provide out-the-box integration with the GenAI monitoring capabilities and Bolt-on Governance API provided by DataRobot.
このインフラストラクチャは、LLMの推論と提供のためのオープンソースフレームワークであるvLLMライブラリを使用して、Hugging Faceライブラリと連携し、一般的なオープンソースLLMをHugging Face Hubからシームレスにダウンロードして読み込みます。 To get started, customize the text generation model template. It uses Llama-3.1-8b
LLM by default; however, you can change the selected model by modifying the engine_config.json
file to specify the name of the OSS model you would like to use.
前提条件¶
DataRobotでHugging Face LLMの組み立てを開始する前に、次のリソースを取得します。
-
ゲート付きモデルにアクセスするには、 Hugging Faceアカウントと
READ
権限を備えた Hugging Faceアクセストークンが必要です。 In addition to the Hugging Face access token, request model access permissions from the model author.
テキスト生成カスタムモデルの作成¶
カスタムLLMを作成するには、モデルワークショップで 新しいカスタムテキスト生成モデルを作成します。 ターゲットタイプをテキスト生成に設定し、ターゲットを定義します。
カスタムLLMの必要なファイルをアップロードする前に、GenAI vLLM推論サーバーを基本環境リストから選択します。 The model environment is used for testing the custom model and deploying the registered custom model.
必要な環境が利用できない場合はどうなりますか?
GenAI vLLM推論サーバー環境が基本環境リストにない場合、DRUMリポジトリの public_dropin_gpu_environments/vllm
ディレクトリにあるリソースを使用して カスタム環境を追加することができます。
カスタムLLMのアセンブル¶
カスタムLLMをアセンブルするには、DRUMリポジトリの model_templates/gpu_vllm_textgen
ディレクトリにあるカスタムモデルファイルを使用します。 You can add the model files manually, or pull them from the DRUM repository.
モデルファイルを追加した後、読み込むHugging faceモデルを選択できます。 By default, this text generation example uses the Llama-3.1-8b
model. 選択したモデルを変更するには、engine_config.json
ファイルの横にある edit をクリックして--model
引数を変更します。
{
"args": [
"--model", "meta-llama/Llama-3.1-8B-Instruct"
]
}
必要なランタイムパラメーターの設定¶
カスタムLLMのファイルがアセンブルされた後、カスタムモデルのmodel-metadata.yaml
ファイルで定義されたランタイムパラメーターを設定します。 次のランタイムパラメーターは 未設定なので、設定が必要です。
ランタイムパラメーター | 説明 |
---|---|
HuggingFaceToken |
A DataRobot API Token credential, created on the Credentials Management page, containing a Hugging Face access token with at least READ permission. |
system_prompt |
さらに、次のランタイムパラメーターのデフォルト値を更新できます。
ランタイムパラメーター | 説明 |
---|---|
max_tokens |
|
max_model_len |
|
prompt_column_name |
LLMプロンプトを含む入力列の名前 |
gpu_memory_utilization |
高度な設定
[GenAI] vLLM Inference Server
実行環境で使用できるランタイムパラメーターと設定オプションの詳細については、環境 README
を参照してください。
カスタムモデルのリソースの設定¶
カスタムモデルリソースで、適切なGPUバンドル(少なくともGPU - L / gpu.large
)を選択します。
必要なリソースバンドルを推定するには、次の式を使用します。
ここで、各特徴量は以下を表します。
特徴量 | 説明 |
---|---|
\(M\) | ギガバイト (GB) 単位で必要なGPUメモリー |
\(P\) | モデル内のパラメーターの数(たとえば、Llama-3.1-8b には80億個のパラメーターがあります)。 |
\(Q\) | モデルのロードに使用されるビット数(4、8、または16など) |
手動計算の詳細
詳細については、 LLMに対応するためのGPUメモリーの計算を参照してください。
Hugging Faceでの自動計算
Hugging faceでGPUメモリー要件を計算することもできます。
この例のモデル Llama-3.1-8b
の場合、次のように評価されます。
| したがって、このモデルには19.2GBのメモリーが必要であり、GPU - Lバンドル (1 x NVIDIA A10G | 24GB VRAM | 8 CPU | 32GB RAM) を選択する必要があることを示しています。 |
カスタムLLMのデプロイと実行¶
カスタムLLMをアセンブルして設定した後、以下を実行します。
-
カスタムモデルをテストする(テキスト生成モデルの場合、テストプランには起動テストと予測エラーテストのみが含まれます)。
デプロイされたLLMでの追加のガバナンスAPIの使用¶
Because the resulting LLM deployment is using DRUM, by default, you can use the Bolt-on Governance API which implements the OpenAI chat completion API specification using the OpenAI Python API library. 詳細については、 [OpenAI Python APIライブラリのドキュメント]{0}を参照してください。
以下のコードスニペットで強調表示されている行では、{DATAROBOT_DEPLOYMENT_ID}
および{DATAROBOT_API_KEY}
のプレースホルダーをLLMデプロイのIDとDataRobot APIキーに置き換える必要があります。
Call the Chat API for the deployment | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Dockerを使用したローカルでのテスト¶
Dockerを使用してローカルでカスタムモデルをテストするには、次のコマンドを使用できます。
export HF_TOKEN=<INSERT HUGGINGFACE TOKEN HERE>
cd ~/datarobot-user-models/public_dropin_gpu_environments/vllm
cp ~/datarobot-user-models/model_templates/gpu_vllm_textgen/* .
docker build -t vllm .
docker run -p8080:8080 \
--gpus 'all' \
--net=host \
--shm-size=8GB \
-e DATAROBOT_ENDPOINT=https://app.datarobot.com/api/v2 \
-e DATAROBOT_API_TOKEN=${DATAROBOT_API_TOKEN} \
-e MLOPS_DEPLOYMENT_ID=${DATAROBOT_DEPLOYMENT_ID} \
-e TARGET_TYPE=textgeneration \
-e TARGET_NAME=completions \
-e MLOPS_RUNTIME_PARAM_HuggingFaceToken="{\"type\": \"credential\", \"payload\": {\"credentialType\": \"api_token\", \"apiToken\": \"${HF_TOKEN}\"}}" \
vllm
複数のGPUの使用
--shm-size
引数は、複数のGPUを利用してLLMを実行しようとしている場合にのみ必要です。