Usar a capacidade de processamento provisionada

Esta página explica como controlar o excesso ou ignorar a capacidade de processamento provisionada e como monitorar o uso.

Controlar excedentes ou ignorar a capacidade de processamento provisionada

Use a API para controlar excedentes quando você exceder a capacidade de processamento comprada ou para ignorar a capacidade de processamento provisionada por solicitação.

Leia cada opção para determinar o que você precisa fazer para atender ao seu caso de uso.

Comportamento padrão

Se você exceder a capacidade de processamento comprada, os excedentes vão ser cobrados sob demanda e faturados de acordo com a taxa de pagamento por uso. Depois que o pedido de capacidade de processamento provisionada estiver ativo, o comportamento padrão vai ocorrer automaticamente. Não é preciso alterar o código para começar a consumir seu pedido.

Usar apenas a capacidade de processamento provisionada

Se você estiver gerenciando custos evitando cobranças sob demanda, use apenas a capacidade de processamento provisionada. As solicitações que excedem o valor do pedido de capacidade de processamento provisionada retornam um erro 429.

Ao enviar solicitações para a API, defina o cabeçalho HTTP X-Vertex-AI-LLM-Request-Type como dedicated.

Usar apenas o pagamento por uso

Isso também é chamado de uso sob demanda. As solicitações ignoram a capacidade de processamento provisionada e são enviadas diretamente para o pagamento por uso. Isso pode ser útil para experimentos ou aplicativos que estão em desenvolvimento.

Ao enviar solicitações para a API, defina o cabeçalho HTTP X-Vertex-AI-LLM-Request-Type como shared.

Exemplo

Gen AI SDK for Python

Saiba como instalar ou atualizar o Gen AI SDK for Python.

Para saber mais, consulte a documentação de referência do SDK.

Defina variáveis de ambiente para usar o SDK de IA generativa com a 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:
# ...

SDK da Vertex AI para Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.

import vertexai
from vertexai.generative_models import GenerativeModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(
    project=PROJECT_ID,
    location="us-central1",
    # Options:
    # - "dedicated": Use Provisioned Throughput
    # - "shared": Use pay-as-you-go
    # https://cloud.google.com/vertex-ai/generative-ai/docs/use-provisioned-throughput
    request_metadata=[("x-vertex-ai-llm-request-type", "shared")],
)

model = GenerativeModel("gemini-1.5-flash-002")

response = model.generate_content(
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?"
)

print(response.text)
# Example response:
# **Emphasizing the Dried Aspect:**
# * Everlasting Blooms
# * Dried & Delightful
# * The Petal Preserve
# ...

REST

Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.

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."}]}]}'

Monitorar a capacidade de processamento provisionada

É possível monitorar o uso da capacidade de processamento provisionada com as métricas de monitoramento e por solicitação.

Cabeçalhos de resposta

Se uma solicitação tiver sido processada usando a capacidade de processamento provisionada, o seguinte cabeçalho HTTP está presente na resposta. Essa linha de código se aplica somente à chamada de API generateContent.

  {"X-Vertex-AI-LLM-Request-Type": "dedicated"}

Métricas

A capacidade de processamento provisionada pode ser monitorada usando um conjunto de métricas que são medidas no tipo de recurso aiplatform.googleapis.com/PublisherModel. Cada métrica pode ser filtrada com as seguintes dimensões:

  • type: input, output
  • request_type: dedicated, shared

Para filtrar uma métrica e visualizar o uso da capacidade de processamento provisionada, use o tipo de solicitação dedicated. O prefixo do caminho de uma métrica é aiplatform.googleapis.com/publisher/online_serving.

Por exemplo, o caminho completo da métrica /consumed_throughput é aiplatform.googleapis.com/publisher/online_serving/consumed_throughput.

As seguintes métricas do Cloud Monitoring estão disponíveis no recurso aiplatform.googleapis.com/PublisherModel nos modelos Gemini e têm um filtro para o uso de throughput provisionado:

Métrica Nome de exibição Descrição
/characters Caracteres Distribuição de contagem de caracteres de entrada e saída.
/character_count Contagem de caracteres Contagem de caracteres de entrada e saída acumulados.
/consumed_throughput Capacidade de processamento de caracteres Capacidade de processamento consumida, que considera a taxa de burndown em caracteres. Para modelos baseados em token, isso é equivalente à taxa de transferência consumida em tokens * 4.
/model_invocation_count Contagem de invocações de modelo Número de invocações de modelo (solicitações de previsão).
/model_invocation_latencies Latências de invocação de modelo Latências de invocação de modelo (latências de previsão).
/first_token_latencies Latências do primeiro token Duração da solicitação recebida até o primeiro token retornado.
/tokens Tokens Distribuição da contagem de tokens de entrada e saída.
/token_count Contagem de tokens Contagem acumulada de tokens de entrada e saída.

Os modelos Anthropic também têm um filtro para a capacidade de processamento provisionada, mas apenas para tokens/token_count.

A seguir