REST APIを使用して、オンデマンドで基礎モデルをプログラマブルにデプロイします。 foundation modelをオンデマンドで展開することで、組織専用の専用ハードウェアで利用できるようになります。 IBMは、オンデマンドでデプロイ可能な一連のモデルを提供しています。
開始前に
- 基礎モデルをオンデマンドでデプロイするには、タスク認証情報を設定するか、有効にする必要があります。 詳細については、タスク資格情報の管理を参照のこと。
- foundation modelをオンデマンドで展開するための要件と考慮事項を確認する。
モデル資産の作成
/ml/v4/models
エンドポイントを使用して、オンデマンドでデプロイしたいfoundation modelモデルのアセットを作成することができます。
次のコードスニペットは、foundation modelをオンデマンドでデプロイするためのアセットをwatsonx.aiRuntime リポジトリに作成する方法を示しています。 モデルをデプロイする際には、このコードによって生成されたアセットIDを使用してください。
curl -X POST "https://<cluster url>/ml/v4/models?version=2024-01-29" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '{
"type": "curated_foundation_model_1.0",
"version": "1.0",
"name": "granite",
"space_id": "<Space id for deployment>",
"foundation_model": {
"model_id": "ibm/granite-13b-chat-v2-curated"
}
}'
オンデマンドfoundation modelのデプロイメントの作成
/ml/v4/deployments
エンドポイントを使用すると、デプロイメントスペースにfoundation modelモデルをオンデマンドでデプロイできます。 配置用のモデル アセットを作成したときに生成されたアセット ID を使用する必要があります。 詳細については、モデル資産の作成を参照してください。
次のコードスニペットは、foundation modelをオンデマンドでデプロイするためのオンラインデプロイメントの作成方法を示しています:
curl -X POST "https://<cluster url>/ml/v4/deployments?version=2024-01-29" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '{
"asset": {
"id": <Asset id created>
},
"online": {
"parameters": {
"serving_name": "llma"
}
},
"description": "<Description>,
"name": "mi",
"space_id": <Space id for deployment>
}'
配備状況のポーリング
配置 ID を使用して配置ステータスをポーリングできます。 ステータスが初期化から準備完了に変わると、配置は使用できるようになります。
次のコードサンプルは、REST API を使用してデプロイメントステータスをポーリングする方法を示しています:
curl -X GET "https://<replace with your cloud hostname>/ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&project_id=<replace with your project ID>" \
-H "Authorization: Bearer <replace with your token>"
出力:
"deployed_asset_type": "curated_foundation_model"
オンデマンドで展開される基礎モデルのテスト
オンライン推論用にオンデマンドで展開されるfoundation modelをテストすることができます。
次のコード・スニペットは、オンライン推論のためにオンデマンドでデプロイされるfoundation modelをテストする方法を示しています:
curl -X POST "https://<replace with your cloud hostname>/ml/v1/deployments/<replace with your deployment ID>/text/generation?version=2024-01-29" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '{
"input": "Hello, what is your name",
"parameters": {
"max_new_tokens": 200,
"min_new_tokens": 20
}
}'
オンデマンドで展開される基盤モデルの管理
REST APIを使用して、オンデマンドでデプロイされたfoundation modelモデルにアクセス、更新、拡張、削除できます。
デプロイされたモデルへのアクセス
REST APIを使用して、デプロイメントスペースにオンデマンドでデプロイされているすべてのファウンデーションモデルのリストを取得するには、クエリパラメータ 'type=curated_foundation_model
を設定します。
次のコードサンプルは、REST API を使用して、デプロイメントスペースにオンデマンドでデプロイされているすべての基盤モデルにアクセスする方法を示しています:
curl -X GET "https://<replace with yourcloud hostname>/ml/v4/deployments?version=2024-01-29&space_id=<replace with your space ID>&type=curated_foundation_model" \
-H "Authorization: Bearer <replace with your token>"
配置の更新
名前、説明、タグなど、配置に必要な配置メタデータを更新します。
次のコードサンプルは、オンデマンドでデプロイされるfoundation modelの名前を更新する方法を示しています:
curl -X PATCH "https://<replace with your cloud hostname>//ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&project_id=<replace with your space ID>" \
-H "Authorization: Bearer <replace with your token>" \
-H "content-type: application/json" \
--data '[{
"op": "replace",
"path": "/name",
"value": "<replace with updated deployment name>"
}]'
配備の拡大
1つの配置スペースに配置できるのは、foundation modelのオンデマンド・モデルのインスタンス1つだけです。 需要の増加に対応するために、追加のコピーを作成することで配備を拡張できます。
次のコードサンプルは、デプロイのレプリカ数をスケールする方法を示しています:
curl -X PATCH "<replace with your cloud hostname>/ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&space_id=<replace with your space ID>" \
-H "Authorization: Bearer $token" \
-H "content-type: application/json" \
--data '[{
"op": "replace",
"path": "/hardware_request",
"value": {"num_nodes": 2}
}]'
- ハードウェアリソースを拡張したい場合は、「
PATCH
操作に「/hardware_request
パラメータを使用し、「num_nodes
パラメータに値を指定してハードウェアノード数を更新する。size
パラメータを '/hardware_request
と併用することはできない。 - foundation modelのパラメータ(
/online/parameters/foundation_model
)を更新するために'PATCH
操作を使用することはできません。
デプロイメントの削除
導入したfoundation modelが不要になった場合は、削除することで課金されなくなります。
以下のコードサンプルは、REST APIを使ってオンデマンドでデプロイされたfoundation modelモデルを削除する方法を示しています:
curl -vk -X DELETE "https://<replace with your cloud hostname>/ml/v4/deployments/<replace with your deployment ID>?version=2024-01-29&space_id=<replace with your space ID>" -H "Authorization: Bearer <replace with your token>"
サンプル・ノートブック
次のサンプル・ノートブックは、オンデマンドでプログラム的に展開される基礎モデルに対するプロンプトを示します。 ノートブックを実行する前に、 foundation modelをオンデマンドでデプロイする必要があります。
ノートブック | 説明 |
---|---|
Granite Text-to-SQL モデルによる推論 | セットアップ スキーマリンクモデルのプロンプトを作成 WX.AI エンドポイントを使用してスキーマリンクモデルの推論を実行 スキーマリンクモデル出力のプロセスをポスト SQL生成モデルのプロンプトを作成 WX.AI エンドポイントを使用してSQL生成モデルの推論を実行 |
詳細情報
親トピック 専用ファンデーションモデルの展開