使用预配吞吐量

本页介绍了预配吞吐量的工作原理、如何控制超额使用或绕过预配吞吐量,以及如何监控用量。

预配的吞吐量的工作原理

本部分介绍了预配吞吐量如何通过配额强制执行期限内的配额检查来运作。

预配吞吐量配额检查

您的预配吞吐量上限配额是购买的生成式 AI 扩缩单元 (GSU) 数量和每个 GSU 的吞吐量的乘积。每当您在配额强制执行期限内发出请求时,系统都会检查您的预配吞吐量配额。配额强制执行期限是指强制执行预配吞吐量配额上限的频率。

收到请求时,真实响应大小未知。由于我们会优先考虑实时应用的响应速度,因此预配的吞吐量会估算输出令牌大小。如果初始估算值超出可用的预配吞吐量上限配额,系统会按随用随付方式处理请求。否则,系统会按预配吞吐量方式处理请求。具体方法是将初始估算值与预配吞吐量最大配额进行比较。

生成响应并知道真实的输出令牌大小后,系统会将估算值与实际使用量之间的差值添加到可用的预配吞吐量配额金额,以便对实际使用量和配额进行协调。

预配吞吐量配额强制执行期限

对于 gemini-2.0-flash-litegemini-2.0-flash 模型,配额强制执行期限最长可能需要 30 秒,且可能会发生变化。这意味着,在某些情况下,您可能会暂时遇到优先流量超出每秒配额的情况,但不应超出 30 秒的配额。这些时间段基于 Vertex AI 内部时钟时间,与发出请求的时间无关。

例如,如果您购买了 1 GSU 的 gemini-2.0-flash-001,则始终开启的吞吐量应该为每秒 3,360 个令牌。按平均算,每 30 秒的字符数不应超过 100,800 个,该结果的计算公式如下:

3,360 tokens per second * 30 seconds = 100,800 tokens

如果您在一天内只提交了一个请求,该请求在一秒钟内消耗了 8,000 个令牌,那么即使您在请求时超出了每秒 3,360 个令牌的限制,该请求仍可能会作为预配吞吐量请求进行处理。这是因为请求未超过每 30 秒 100,800 个令牌的阈值。

控制超额或绕过预配吞吐量

在超出所购吞吐量时,使用 API 控制超额或按请求绕过预配的吞吐量。

仔细阅读每种选项,确定您必须采取哪些措施才能满足您的使用场景。

默认行为

如果您超出所购买的吞吐量,超出部分将按需使用,并按随用随付费率结算。预配置吞吐量订单生效后,系统会自动执行默认行为。您无需更改代码即可开始使用订单。

仅使用预配吞吐量

如果您通过避免按需费用来管理成本,请仅使用预配吞吐量。超出预配置吞吐量订单金额的请求会返回错误 429

向 API 发送请求时,请将 X-Vertex-AI-LLM-Request-Type HTTP 标头设置为 dedicated

仅使用随用随付

这也称为按需使用。请求会绕过预配吞吐量订单,并直接发送到按用量付费订单。这可能适用于正在开发的实验或应用。

向 API 发送请求时,请将 X-Vertex-AI-LLM-Request-Type HTTP 标头设置为 shared

示例

Gen AI SDK for Python

安装

pip install --upgrade google-genai

如需了解详情,请参阅 SDK 参考文档

设置环境变量以将 Gen AI SDK 与 Vertex AI 搭配使用:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(
    http_options=HttpOptions(
        api_version="v1",
        headers={
            # Options:
            # - "dedicated": Use Provisioned Throughput
            # - "shared": Use pay-as-you-go
            # https://cloud.google.com/vertex-ai/generative-ai/docs/use-provisioned-throughput
            "X-Vertex-AI-LLM-Request-Type": "shared"
        },
    )
)
response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents="How does AI work?",
)
print(response.text)
# Example response:
# Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
#
# Here's a simplified overview:
# ...

REST

设置您的环境后,您可以使用 REST 测试文本提示。以下示例会向发布方模型端点发送请求。

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Vertex-AI-LLM-Request-Type: dedicated" \ # Options: dedicated, shared
  $URL \
  -d '{"contents": [{"role": "user", "parts": [{"text": "Hello."}]}]}'

监控预配吞吐量

您可以使用一组基于 aiplatform.googleapis.com/PublisherModel 资源类型测量的指标来自行监控预配的吞吐量用量。

预配吞吐量流量监控是一项公开预览版功能。

维度

您可以使用以下维度过滤指标:

维度
type input
output
request_type

dedicated:使用预配吞吐量处理流量。

shared:如果预配的吞吐量处于有效状态,那么如果您超出了预配的吞吐量上限,或者您使用了 shared HTTP 标头,系统会默认使用按需付费方式处理流量。

路径前缀

指标的路径前缀为 aiplatform.googleapis.com/publisher/online_serving

例如,/consumed_throughput 指标的完整路径为 aiplatform.googleapis.com/publisher/online_serving/consumed_throughput

指标

Gemini 模型的 aiplatform.googleapis.com/PublisherModel 资源上提供以下 Cloud Monitoring 指标。使用 dedicated 请求类型过滤预配吞吐量用量。

指标 显示名称 说明
/dedicated_gsu_limit 上限 (GSU) GSU 中的专用限制。您可以通过此指标了解预配吞吐量的最大配额(以 GSU 为单位)。
/tokens 令牌 输入和输出词元计数分布。
/token_count 词元数 累计输入和输出词元数。
/consumed_token_throughput 令牌吞吐量 吞吐量用量,以令牌为单位,考虑了消耗速率,并纳入了配额对账。请参阅预配吞吐量配额检查

您可以使用此指标了解预配吞吐量配额的使用情况。
/dedicated_token_limit 限制(每秒 token 数) 每秒处理的词元数量专用限制。您可以使用此指标了解基于令牌的模型的预配吞吐量上限。
/characters 角色 输入和输出字符数分布。
/character_count 字符数 累计输入和输出字符数。
/consumed_throughput 字符吞吐量 吞吐量用量(考虑消耗速率),以字符数表示,并纳入了配额对账预配吞吐量配额检查

您可以使用此指标了解预配吞吐量配额的使用情况。

对于基于令牌的模型,此指标等同于令牌消耗的吞吐量乘以 4。
/dedicated_character_limit 限制(每秒字符数) 专用限制(每秒字符数)。您可以使用此指标了解基于字符的模型的预配吞吐量上限。
/model_invocation_count 模型调用次数 模型调用(预测请求)的数量。
/model_invocation_latencies 模型调用延迟时间 模型调用延迟时间(预测延迟时间)。
/first_token_latencies 第一个词元延迟时间 从收到请求到返回第一个词元所用的时间。

Anthropic 模型也具有针对预配吞吐量的过滤器,但仅适用于 tokens/token_count

信息中心

预配的吞吐量的默认监控信息中心提供指标,可让您更好地了解用量和预配的吞吐量利用率。如需访问信息中心,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往预配吞吐量页面。

    前往“预配的吞吐量”

  2. 如需查看各订单中每个模型的预配吞吐量利用率,请选择利用率摘要标签页。

  3. 按模型划分的预配吞吐量使用情况表中选择一个模型,即可查看特定于所选模型的更多指标。

信息中心的限制

信息中心可能会显示您意料之外的结果,尤其是在流量出现突增时。导致这些结果的原因可能包括:

  • 如果时间范围超过 12 小时,则会导致配额强制执行期限的表示不太准确。吞吐量指标及其派生指标(例如利用率)会显示基于所选时间范围的对齐周期的平均值。时间范围扩大时,每个校准时间段也会扩大。对齐期会扩展到计算平均用量的时间范围。由于配额强制执行是按分钟级别计算的,因此将时间范围设置为 12 小时或更短的时间段会生成与实际配额强制执行期限更接近的分钟级数据。如需详细了解校准时间段,请参阅校准:序列内正则化。如需详细了解时间范围,请参阅对时间间隔进行正则化
  • 如果同时提交多个请求,监控汇总可能会影响您过滤出特定请求的能力。
  • 预配的吞吐量会在有请求时节流流量,但会在配额协调后报告使用情况指标。
  • 预配的吞吐量配额强制执行期限独立于监控汇总期限或请求/响应期限,可能也不会与这些期限一致。
  • 如果没有发生错误,您可能会在错误率图表中看到一条错误消息。例如,请求数据时出错。找不到一个或多个资源。

提醒

启用提醒后,请设置默认提醒,以便管理流量使用情况。

启用提醒

如需在信息中心内启用提醒,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往预配吞吐量页面。

    前往“预配的吞吐量”

  2. 如需查看各订单中每个模型的预配吞吐量利用率,请选择利用率摘要标签页。

  3. 选择建议的提醒,系统会显示以下提醒:

    • Provisioned Throughput Usage Reached Limit
    • Provisioned Throughput Utilization Exceeded 80%
    • Provisioned Throughput Utilization Exceeded 90%
  4. 查看有助于您管理流量的提醒。

查看更多提醒详情

如需详细了解提醒,请执行以下操作:

  1. 前往集成页面。

    前往“集成”

  2. 过滤条件字段中输入顶点,然后按 Enter 键。系统随即会显示 Google Vertex AI

  3. 如需查看更多信息,请点击查看详细信息。系统随即会显示 Google Vertex AI 详细信息窗格。

  4. 选择提醒标签页,然后选择提醒政策模板。

后续步骤