Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

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ライブラリ {target=_blank}を使用して、Hugging Faceライブラリと連携し、一般的なオープンソースLLMをHugging Face Hubからシームレスにダウンロードして読み込みます。 まず、テキスト生成モデルのテンプレートをカスタマイズしてください。 デフォルトでは Llama-3.1-8bLLMを使用しますが、engine_config.jsonファイルを変更して使用するOSSモデル名を指定することで、選択するモデルを変更することができます。

前提条件

DataRobotでHugging Face LLMの組み立てを開始する前に、次のリソースを取得します。

テキスト生成カスタムモデルの作成

カスタムLLMを作成するには、モデルワークショップで 新しいカスタムテキスト生成モデルを作成します。 ターゲットタイプテキスト生成に設定し、ターゲットを定義します。

カスタムLLMの必要なファイルをアップロードする前に、GenAI vLLM推論サーバー基本環境リストから選択します。 モデル環境は、カスタムモデルの テスト登録済みカスタムモデルデプロイに使用されます。

必要な環境が利用できない場合はどうなりますか?

GenAI vLLM推論サーバー環境が基本環境リストにない場合、DRUMリポジトリの public_dropin_gpu_environments/vllmディレクトリにあるリソースを使用して カスタム環境を追加することができます。

カスタムLLMのアセンブル

カスタムLLMをアセンブルするには、DRUMリポジトリの model_templates/gpu_vllm_textgenディレクトリにあるカスタムモデルファイルを使用します。 モデルファイルを手動で追加するか、 DRUMリポジトリからプルできます。

モデルファイルを追加した後、読み込むHugging faceモデルを選択できます。 デフォルトでは、このテキスト生成の例は Llama-3.1-8bモデルを使用します。 選択したモデルを変更するには、engine_config.jsonファイルの横にある edit をクリックして--model引数を変更します。

engine_config.json
{
  "args": [
    "--model", "meta-llama/Llama-3.1-8B-Instruct"
  ]
} 

必要なランタイムパラメーターの設定

カスタムLLMのファイルがアセンブルされた後、カスタムモデルのmodel-metadata.yamlファイルで定義されたランタイムパラメーターを設定します。 次のランタイムパラメーターは 未設定なので、設定が必要です。

ランタイムパラメーター 説明
HuggingFaceToken 少なくともREAD権限を備えた Hugging Faceアクセストークンを含む、 資格情報管理ページで作成されたDataRobot APIトークン資格情報
system_prompt カスタムLLMのすべての個別プロンプトの前に付加される「ユニバーサル」プロンプト LLMのレスポンスを指示およびフォーマットします。 システムプロンプトは、レスポンス生成中に作成される構造、トーン、形式、コンテンツに影響を与えることがあります。

さらに、次のランタイムパラメーターのデフォルト値を更新できます。

ランタイムパラメーター 説明
max_tokens チャット補完で生成できるトークンの最大数 この値を使用して、APIを介して生成されたテキストのコストを制御できます。
max_model_len モデルのコンテキスト長 指定しない場合、このパラメーターはモデル設定から自動的に派生します。
prompt_column_name LLMプロンプトを含む入力列の名前
gpu_memory_utilization モデルの実行に使用するGPUメモリーの割合。0から1までの範囲で指定できます。たとえば、0.5という値は、GPUメモリ使用率50%を示します。 指定しない場合、デフォルト値の0.9が使用されます。

高度な設定

[GenAI] vLLM Inference Server実行環境で使用できるランタイムパラメーターと設定オプションの詳細については、環境 READMEを参照してください。

カスタムモデルのリソースの設定

カスタムモデルリソースで、適切なGPUバンドル(少なくともGPU - L / gpu.large)を選択します。

必要なリソースバンドルを推定するには、次の式を使用します。

M=(P×4bytes)(32/Q)×1.2

ここで、各特徴量は以下を表します。

特徴量 説明
M ギガバイト (GB) 単位で必要なGPUメモリー
P モデル内のパラメーターの数(たとえば、Llama-3.1-8bには80億個のパラメーターがあります)。
Q モデルのロードに使用されるビット数(4、8、または16など)

手動計算の詳細

詳細については、 LLMに対応するためのGPUメモリーの計算を参照してください。

Hugging Faceでの自動計算

Hugging faceでGPUメモリー要件を計算することもできます。

この例のモデル Llama-3.1-8bの場合、次のように評価されます。

(8×4bytes)(32/16)×1.2=19.2gigabytes

| したがって、このモデルには19.2GBのメモリーが必要であり、GPU - Lバンドル (1 x NVIDIA A10G | 24GB VRAM | 8 CPU | 32GB RAM) を選択する必要があることを示しています。 |

カスタムLLMのデプロイと実行

カスタムLLMをアセンブルして設定した後、以下を実行します。

デプロイされたLLMでの追加のガバナンスAPIの使用

結果として生成されるLLMデプロイメントは DRUM{ target=_blank } [を使用しているため、デフォルトで追加のガバナンスAPIを使用できます。このAPIは、 [OpenAIのPython APIライブラリ](https://github.com/openai/openai-python){ target=_blank }を使用して](https://github.com/datarobot/datarobot-user-models)OpenAIチャット補完API仕様を実装しています。 詳細については、 OpenAI Python APIライブラリのドキュメントを参照してください。

以下のコードスニペットで強調表示されている行では、{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
from openai import OpenAI
from openai import Stream
import os

dr_base_url="https://app.datarobot.com/api/v2/deployments/{DATAROBOT_DEPLOYMENT_ID}/"

dr_api_key=os.getenv("{DATAROBOT_API_KEY}")

client = OpenAI(base_url=dr_base_url, api_key=dr_api_key)

completion = client.chat.completions.create(
  model="datarobot-deployed-llm",
  messages=[
    {"role": "system", "content": "You are a helpful assistant"},
    {"role": "user", "content": "Where is DataRobot headquartered?"},
  ],
  stream=False
)

print(completion.to_json(indent=2)) 

Dockerを使用したローカルでのテスト

Dockerを使用してローカルでカスタムモデルをテストするには、次のコマンドを使用できます。

Build an image
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 . 
Run the model
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を実行しようとしている場合にのみ必要です。


更新しました 2025年4月9日