プロビジョンドスループット

概要

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>
Copy

プロビジョニングされたスループットはスキーマレベルのオブジェクトです。CREATE PROVISIONED THROUGHPUT 権限を持つロールは、 USAGE 権限を持つ任意のスキーマで、プロビジョニングされたスループットを作成することができます。

プロビジョニングされたスループットを作成するために使用したロールは、自動的にプロビジョニングされたスループットの OWNERSHIP 権限を付与されます。OWNERSHIP 権限を使用すると、プロビジョニングされたスループットの名前を変更または削除できます。

プロビジョニングされたスループットを使用する権限のロールへの付与

プロビジョニングされたスループットに USAGE 権限を持つロールを付与します。USAGE 権限は、プロビジョニングされたスループット ID で REST API または SQL 通話を行う権限をロールに提供します。

次の SQL コマンドは、プロビジョニングされたスループットに USAGE 権限を付与します。

GRANT USAGE ON PROVISIONED THROUGHPUT <pt_id> TO ROLE <role>
Copy

プロビジョニングされたスループットの使用

プロビジョニングされたスループットの USE または OWNERSHIP 権限を持つロールは、推論にプロビジョニングされたスループットを使用することができます。プロビジョニングされたスループットを使用するために必要な権限については、 スループット権限 を参照してください。

最低提供スループット・ユニット要件

プロビジョニングされたスループットは、最小要件および増分 PTU 要件に従います。最小 PTUs 列の各モデルまたは機能には、リクエストしなければならない最小 PTUs 数が表示されます。PTUs の数が最小値より少ない場合、リクエストは却下されます。

モデルの最小値 PTUs を超えるスループットが必要な場合は、 PTUs を追加する必要があります。インクリメント PTUs 列には、リクエスト可能な最小 PTUs を超える PTU のインクリメントが表示されます。リクエストは、最小値を超える量が増分値の整数倍となるように、 PTUs を指定しなければなりません。そうでない場合、リクエストは拒否されます。

下のテーブルは、利用可能モデル、各モデルに必要な最小の PTUs、最小を超える追加 PTUs のインクリメント要件のリストです。

プロビジョニングされたスループット・- REST API を完了する

モデル

最小 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'
Copy

プロビジョニングされたスループット ID (PT ID) がレスポンスにあります。

ステップ2: プロビジョニングされたスループットを割り当てるためのサポート・ケースの開設

ID を作成した後、Snowflake サポートにサポートチケットを作成して Provisioned Throughput を有効にします。チケットには、 アカウント識別子 と PT ID をプロバイダーとしてご記入ください。必要なときにスループットを確保できるよう、期間開始の7営業日前にチケットを作成することをお勧めします。

ステップ3: プロビジョニングされたスループットのステータスの確認

サポートチケットを作成した後、以下のコマンドを使用してプロビジョニングされたスループットのステータスを確認できます。

DESCRIBE PROVISIONED THROUGHPUT my_pt
Copy

このコマンドは、以下のいずれかの状態を返します。

  • 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"
}'
Copy

注釈

REST API 呼び出しを行うために使用するロールは、プロビジョニングされたスループット ID の USE 権限を持っている必要があります。必要な権限の詳細については、 スループット権限 を参照してください。

終了

プロビジョニングされたスループットは、期間が終了すると推論リクエストの処理を停止します。期間満了後にProvisioned Throughputを API リクエストに使用する場合は、新しいProvisioned Throughput ID を作成し、リクエストに使用する必要があります。