预置吞吐量

概述

使用预置吞吐量为 Snowflake Cortex 上的托管推理预留吞吐量。您可以将吞吐量大小指定为预置吞吐量单位 (PTU),然后 Cortex 将按一个月为周期分配所需容量。您可以在 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 数据库角色,该角色必须具有 PT ID 的 USAGE 权限。有关此权限的更多信息,请参阅 权限

权限

以下部分描述了创建、管理和使用预置吞吐量所需的权限。

创建预置吞吐量

要创建预置吞吐量,您必须使用已获授予账户级 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。它每分钟提供 96 万个词元的吞吐量。如果您需要更高的吞吐量,可以 32 为增量请求额外的 PTUs。

刚开始时,可以使用模型的最低 PTUs,并根据需要添加增量。

成本注意事项

在预置吞吐量期限内,您按照 `Snowflake Credit 消耗表<https://www.snowflake.com/legal-files/CreditConsumptionTable.pdf>`_ 中列出的费率每 PTU 每小时消耗 credit。无论您在期限内的实际使用量如何,您都需要为分配的 PTUs 付费。该期限在 PT 上午 8:00 开始和结束,以预置吞吐量创建中提供的日期为准。

预置吞吐量不会自动续订。要为下一个期限保留吞吐量,请参阅下一节。

预留吞吐量

本教程将指导您完成在 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 (PTID) 在响应中。

第 2 步:提交支持工单以分配预置吞吐量

创建 ID 后,请向 Snowflake 支持部门提交支持工单,以启用预置吞吐量。在工单中,提供您的 账户标识符 和 PT ID。我们建议您在期限开始前七个工作日创建工单,以确保在需要时预留吞吐量。

第 3 步:检查预置吞吐量的状态

创建支持工单后,您可以使用以下命令检查预置吞吐量的状态。

DESCRIBE PROVISIONED THROUGHPUT my_pt
Copy

此命令返回以下状态之一:

  • REQUESTED:PT 请求已收到,但尚未分配容量。

  • APPROVED:PT 已启用,将在指定的开始日期 ACTIVE。

  • ACTIVE:PT 现在可供使用。

  • EXPIRED:PT 已无法使用或未在期限开始之前启用。

第 4 步:在 REST API 调用中使用预置吞吐量 ID

PT 处于 ACTIVE 状态后,您可以在 AI_COMPLETE REST API 调用中使用它。要在推理请求中使用预置吞吐量,请在 API 调用中指定 PT ID。在请求中使用预置吞吐量不会改变 API 的行为。

下面的示例说明如何在 COMPLETE REST API 调用中使用 PT ID:

curl --location 'https://some-account-identifier.snowflakecomputing.cn/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 权限。有关权限的更多信息,请参阅 预置吞吐量权限

终止

期限到期后,预置吞吐量将停止处理推理请求。如果您在期限到期后使用预置吞吐量发出 API 请求,则必须创建新的预置吞吐量 ID 并在请求中使用。

语言: 中文