プロビジョンドスループット¶
概要¶
Provisioned Throughputを使用して、Snowflake Cortex上で管理された推論用のスループットを確保します。スループットサイズをプロビジョンドスループットユニット (PTU) として指定すると、Cortexは1ヶ月の期間、必要な容量を割り当てます。REST API のコールで PTUs を使用すると、一貫したエンド ユーザー エクスペリエンスが得られます。この関数は、 AWS および Azure クラウドの以下のモデルで利用可能です。
Mistral Large 2
Llama 3.1-405B
Llama 3.1-70B
Llama 3.1-8B
Snowflake-Llama3.3-70B
Snowflake-Llama3.3-405B
アクセス制御の要件¶
ユーザーは、 SNOWFLAKE.CORTEX_USER データベース・ロールに USAGE 権限を付与されたロールを、 PT ID に使用する必要があります。この権限の詳細については、 権限 をご参照ください。
権限¶
以下のセクションでは、プロビジョニングされたスループットを作成、管理、および使用するために必要な権限について説明します。
プロビジョニングされたスループットの作成¶
プロビジョニングされたスループットを作成するには、アカウントレベル CREATE PROVISIONED THROUGHPUT 権限が付与されたロールを使用する必要があります。既定の設定では、 ACCOUNTADMIN がプロビジョニングされたスループットを作成できる唯一のロールです。ACCOUNTADMIN ロールを使用して、別のロールに CREATE PROVISIONED THROUGHPUT 権限を付与することができます。
次の SQL コマンドを使用して、プロビジョニングされたスループットを作成する権限を付与します。
GRANT CREATE PROVISIONED THROUGHPUT ON ACCOUNT TO ROLE <role>
プロビジョニングされたスループットはスキーマレベルのオブジェクトです。CREATE PROVISIONED THROUGHPUT 権限を持つロールは、 USAGE 権限を持つ任意のスキーマで、プロビジョニングされたスループットを作成することができます。
プロビジョニングされたスループットを作成するために使用したロールは、自動的にプロビジョニングされたスループットの OWNERSHIP 権限を付与されます。OWNERSHIP 権限を使用すると、プロビジョニングされたスループットの名前を変更または削除できます。
プロビジョニングされたスループットを使用する権限のロールへの付与¶
プロビジョニングされたスループットに USAGE 権限を持つロールを付与します。USAGE 権限は、プロビジョニングされたスループット ID で REST API または SQL 通話を行う権限をロールに提供します。
次の SQL コマンドは、プロビジョニングされたスループットに USAGE 権限を付与します。
GRANT USAGE ON PROVISIONED THROUGHPUT <pt_id> TO ROLE <role>
プロビジョニングされたスループットの使用¶
プロビジョニングされたスループットの USE または OWNERSHIP 権限を持つロールは、推論にプロビジョニングされたスループットを使用することができます。プロビジョニングされたスループットを使用するために必要な権限については、 スループット権限 を参照してください。
最低提供スループット・ユニット要件¶
プロビジョニングされたスループットは、最小要件および増分 PTU 要件に従います。最小 PTUs 列の各モデルまたは機能には、リクエストしなければならない最小 PTUs 数が表示されます。PTUs の数が最小値より少ない場合、リクエストは却下されます。
モデルの最小値 PTUs を超えるスループットが必要な場合は、 PTUs を追加する必要があります。インクリメント PTUs 列には、リクエスト可能な最小 PTUs を超える PTU のインクリメントが表示されます。リクエストは、最小値を超える量が増分値の整数倍となるように、 PTUs を指定しなければなりません。そうでない場合、リクエストは拒否されます。
下のテーブルは、利用可能モデル、各モデルに必要な最小の PTUs、最小を超える追加 PTUs のインクリメント要件のリストです。
モデル |
最小 PTUs |
インクリメント PTUs |
---|---|---|
Mistral Large 2 |
256 |
128 |
Llama 3.1-405B |
512 |
256 |
Llama 3.1-70B |
128 |
64 |
Llama 3.1-8B |
64 |
32 |
Snowflake-Llama3.3-70B |
128 |
64 |
Snowflake-Llama3.3-405B |
512 |
256 |
PTU サイズの決定¶
アプリケーションに必要な PTUs は、ワークロードプロファイルによって異なります。例えば、Llama 3.1-8Bでは、毎分500リクエスト (RPM) 、リクエスト出力あたり500トークンのワークロードは、最小64 PTUs です。毎分 960K のトークンを処理します。より多くのスループットが必要な場合は、 PTUs を 32 個単位で追加リクエストできます。
最初のうちは、モデルの最小値 (PTUs) を使用し、必要に応じて増分を追加できます。
コストの考慮事項¶
Provisioned Throughput の期間中、 Snowflake クレジット消費テーブル にリストされている割合で、毎時 PTU ごとクレジットが消費されます。期間中の実際の使用量にかかわらず、割り当てられた PTUs の料金が発生します。期間は午前8時に始まり、午前8時に終わります。プロビジョニングされたスループット作成でプロバイダーに提供された日付に対する PT。
プロビジョニングされたスループットは自動更新されません。別の期間のスループットを予約するには、次のセクションを参照してください。
スループットの予約¶
このチュートリアルでは、Cortexの COMPLETE 関数の REST API 呼び出しで、プロビジョニングされたスループットを予約および使用するプロセスについて説明します。
ステップ1: プロビジョニングされたスループット ID の作成¶
プロビジョニングされたスループットを始めるには、 SQL を使用して、以下の情報でリクエストを作成します。
クラウドプロバイダー
モデル
PTUs の数。
期間の開始(プロビジョニングされたスループットの利用可能期間)
期間(プロビジョニングされたスループットの利用可能期間)の終了。
以下の例では、 AWS に my_pt
プロビジョニング・スループット・リソースを作成し、モデル llama3.1-8B
を指定して、2025 年 4 月 15 日から 2025 年 5 月 15 日まで 64 プロビジョニングされたスループット・ユニット (PTUs) を割り当てています。
CREATE PROVISIONED THROUGHPUT my_pt CLOUD_PROVIDER='aws', MODEL='llama3.1-8B', PTUS=64, TERM_START='2025-04-15' TERM_END='2025-05-15'
プロビジョニングされたスループット ID (PT ID) がレスポンスにあります。
ステップ2: プロビジョニングされたスループットを割り当てるためのサポート・ケースの開設¶
ID を作成した後、Snowflake サポートにサポートチケットを作成して Provisioned Throughput を有効にします。チケットには、 アカウント識別子 と PT ID をプロバイダーとしてご記入ください。必要なときにスループットを確保できるよう、期間開始の7営業日前にチケットを作成することをお勧めします。
ステップ3: プロビジョニングされたスループットのステータスの確認¶
サポートチケットを作成した後、以下のコマンドを使用してプロビジョニングされたスループットのステータスを確認できます。
DESCRIBE PROVISIONED THROUGHPUT my_pt
このコマンドは、以下のいずれかの状態を返します。
REQUESTED: PT リクエストを受け取りましたが、容量はまだ割り当てられていません。
APPROVED: PT が有効で、指定された開始日に ACTIVE となります。
ACTIVE: PT が利用可能になりました。
EXPIRED: PT が使用できなくなったか、期間開始前に有効になっていませんでした。
ステップ 4: REST API の呼び出しで Provisioned Throughput ID を使用します。¶
PT が ACTIVE の状態になったら、 AI_COMPLETE REST API の呼び出しで使用できます。推論リクエストでプロビジョニングされたスループットを使用するには、 API 呼び出しで PT ID を指定します。リクエストでプロビジョニングされたスループットを使用しても、 API の動作は変わりません。
次の例は、 COMPLETE REST API の呼び出しで PT ID を使用する方法を示しています。
curl --location 'https://some-account-identifier.snowflakecomputing.com/api/v2/cortex/inference:complete' \
--header 'X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: ••••••' \
--data '{
"model": "snowflake-llama-3.1-8b",
"messages": [
{
"content": "Write an essay on the benefits of provisioned throughput."
}
],
"provisioned_throughput_id": "f3a27d60-f61f-4247-8aa3-6272ea0d7a8d"
}'
注釈
REST API 呼び出しを行うために使用するロールは、プロビジョニングされたスループット ID の USE 権限を持っている必要があります。必要な権限の詳細については、 スループット権限 を参照してください。
終了¶
プロビジョニングされたスループットは、期間が終了すると推論リクエストの処理を停止します。期間満了後にProvisioned Throughputを API リクエストに使用する場合は、新しいProvisioned Throughput ID を作成し、リクエストに使用する必要があります。