使用预配吞吐量

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

预配的吞吐量的工作原理

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

预配吞吐量配额检查

预配吞吐量的最大配额是所购买的生成式 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

示例

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.5-flash",
    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:流量使用预配吞吐量进行处理。

spillover:在超出预配吞吐量配额后,流量将按按需付费配额处理。

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 数) 每秒 token 数的专用限制。您可以使用此指标来了解基于令牌的模型所对应的预置吞吐量最大配额。
/characters 角色 输入和输出字符数分布。
/character_count 字符数 累计输入和输出字符数。
/consumed_throughput 字符吞吐量 吞吐量使用情况(考虑消耗速率),以字符数表示,并纳入配额协调预配吞吐量配额检查

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

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

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

信息中心

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

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

    前往“预配的吞吐量”

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

    按模型划分的已预配吞吐量利用率表中,您可以查看所选时间范围内的以下信息:

    • 您拥有的 GSU 总数。

    • 以 GSU 为单位的吞吐量使用量峰值。

    • 平均 GSU 利用率。

    • 达到预配的吞吐量上限的次数。

  3. 按模型划分的预置吞吐量利用率表格中选择一个模型,即可查看与所选模型相关的更多指标。

信息中心的限制

信息中心可能会显示意外结果,尤其是对于波动较大(例如,每秒查询次数少于 1 次)或不频繁的流量。以下原因可能会导致这些结果:

  • 如果时间范围超过 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. 过滤条件字段中输入 vertex,然后按 Enter 键。Google Vertex AI 随即显示。

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

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

后续步骤