Gerenciar cota do Serviço OpenAI do Azure

A cota oferece a flexibilidade de gerenciar ativamente a alocação de limites de taxa nas implantações em sua assinatura. Este artigo descreve o processo de gerenciamento de sua cota do Azure OpenAI.

Pré-requisitos

Importante

A visualização da cota e a implantação de modelos exigem a função Leitor de Usos dos Serviços Cognitivos . Essa função fornece o acesso mínimo necessário para exibir o uso da cota em uma assinatura do Azure. Para saber mais sobre essa função e as outras funções necessárias para acessar o Azure OpenAI, consulte nosso guia de acesso baseado em função do Azure (Azure RBAC).

Essa função pode ser encontrada no portal do Azure em Controle de acesso de>assinaturas (IAM)>Adicionar pesquisa de atribuição> de função para o Leitor de Usos de Serviços Cognitivos. Essa função deve ser aplicada no nível de assinatura, não existe no nível de recurso.

Se você não quiser usar essa função, a função Leitor de assinatura fornecerá acesso equivalente, mas também concederá acesso de leitura além do escopo do que é necessário para exibir a cota e a implantação do modelo.

Introdução às quotas

O recurso de cota do Azure OpenAI permite a atribuição de limites de taxa para suas implantações, até um limite global chamado de "cota". A cota é atribuída à sua assinatura por região, por modelo, em unidades de Tokens por Minuto (TPM). Ao integrar uma assinatura do Azure OpenAI, você receberá uma cota padrão para a maioria dos modelos disponíveis. Em seguida, você atribuirá o TPM a cada implantação à medida que ela for criada, e a cota disponível para esse modelo será reduzida nesse valor. Você pode continuar a criar implantações e atribuir-lhes TPM até atingir seu limite de cota. Quando isso acontecer, você só poderá criar novas implantações desse modelo reduzindo o TPM atribuído a outras implantações do mesmo modelo (liberando assim o TPM para uso) ou solicitando e sendo aprovado para um aumento de cota de modelo na região desejada.

Nota

Com uma cota de 240.000 TPM para GPT-35-Turbo no Leste dos EUA, um cliente pode criar uma única implantação de TPM de 240K, 2 implantações de TPM de 120K cada ou qualquer número de implantações em um ou vários recursos do Azure OpenAI, desde que seu TPM totalize menos de 240K nessa região.

Quando uma implantação é criada, o TPM atribuído será mapeado diretamente para o limite de taxa de tokens por minuto imposto em suas solicitações de inferência. Também será aplicado um limite de taxa de Solicitações por Minuto (RPM), cujo valor é definido proporcionalmente à atribuição TPM usando a seguinte proporção:

6 RPM por 1000 TPM.

A flexibilidade para distribuir o TPM globalmente dentro de uma assinatura e região permitiu que o Serviço Azure OpenAI afrouxasse outras restrições:

  • Os recursos máximos por região são aumentados para 30.
  • O limite de criação de não mais de uma implantação do mesmo modelo em um recurso foi removido.

Atribuir quota

Ao criar uma implantação de modelo, você tem a opção de atribuir Tokens por Minuto (TPM) a essa implantação. O TPM pode ser modificado em incrementos de 1.000 e será mapeado para os limites de taxa de TPM e RPM impostos em sua implantação, conforme discutido acima.

Para criar uma nova implantação de dentro do Azure AI Studio, em Gerenciamento, selecione Implantações>: Criar nova implantação.

A opção para definir o TPM está na lista suspensa Opções avançadas:

Screenshot of the deployment UI of Azure AI Studio

Após a implantação, você pode ajustar sua alocação de TPM selecionando Editar implantação em Implantações de gerenciamento>no Azure AI Studio. Você também pode modificar essa seleção dentro da nova experiência de gerenciamento de cotas em Cotas de>gerenciamento.

Importante

As quotas e limites estão sujeitos a alterações, para obter as informações mais atualizadas consulte o nosso artigo de quotas e limites.

Configurações específicas do modelo

Implantações de modelos diferentes, também chamadas de classes de modelo, têm valores máximos de TPM exclusivos que agora você pode controlar. Isso representa a quantidade máxima de TPM que pode ser alocada para esse tipo de implantação de modelo em uma determinada região. Embora cada tipo de modelo represente sua própria classe de modelo exclusiva, o valor máximo de TPM atualmente é diferente apenas para determinadas classes de modelo:

  • GPT-4
  • GPT-4-32K
  • Texto-Davinci-003

Todas as outras classes de modelo têm um valor TPM máximo comum.

Nota

A alocação de TPM (Quota Tokens-Per-Minute) não está relacionada ao limite máximo de token de entrada de um modelo. Os limites de token de entrada do modelo são definidos na tabela de modelos e não são afetados pelas alterações feitas no TPM.

Ver e solicitar cota

Para obter uma visão completa de suas alocações de cota em implantações em uma determinada região, selecione Cota de Gerenciamento>no Azure AI Studio:

Screenshot of the quota UI of Azure AI Studio

  • Nome da cota: há um valor de cota por região para cada tipo de modelo. A quota abrange todas as versões desse modelo. O nome da cota pode ser expandido na interface do usuário para mostrar as implantações que estão usando a cota.
  • Implantação: implantações de modelo divididas por classe de modelo.
  • Uso/Limite: para o nome da cota, isso mostra a quantidade de cota usada pelas implantações e a cota total aprovada para essa assinatura e região. Essa quantidade de cota utilizada também é representada no gráfico de barras.
  • Solicitar cota: o ícone neste campo navega até um formulário onde as solicitações de aumento de cota podem ser enviadas.

Migrando implantações existentes

Como parte da transição para o novo sistema de cotas e alocação baseada em TPM, todas as implantações de modelo OpenAI existentes do Azure foram migradas automaticamente para usar a cota. Nos casos em que a alocação TPM/RPM existente excede os valores padrão devido a aumentos de limite de taxa personalizados anteriores, TPM equivalente foi atribuído às implantações afetadas.

Compreender os limites de taxa

A atribuição do TPM a uma implantação define os limites de taxa de Tokens por Minuto (TPM) e Solicitações por Minuto (RPM) para a implantação, conforme descrito acima. Os limites de taxa do TPM são baseados no número máximo de tokens que se estima serem processados por uma solicitação no momento em que a solicitação é recebida. Não é o mesmo que a contagem de tokens usada para faturamento, que é calculada depois que todo o processamento é concluído.

À medida que cada solicitação é recebida, o Azure OpenAI calcula uma contagem máxima estimada de tokens processados que inclui o seguinte:

  • Prompt de texto e contagem
  • A configuração de parâmetros max_tokens
  • A configuração de parâmetros best_of

À medida que as solicitações entram no ponto de extremidade de implantação, a contagem estimada de token máximo processado é adicionada a uma contagem de token em execução de todas as solicitações que é redefinida a cada minuto. Se, a qualquer momento durante esse minuto, o valor limite da taxa TPM for atingido, outras solicitações receberão um código de resposta 429 até que o contador seja redefinido.

Os limites da taxa de RPM baseiam-se no número de pedidos recebidos ao longo do tempo. O limite de taxa espera que os pedidos sejam distribuídos uniformemente durante um período de um minuto. Se esse fluxo médio não for mantido, as solicitações poderão receber uma resposta 429, mesmo que o limite não seja atingido quando medido ao longo de um minuto. Para implementar esse comportamento, o Serviço OpenAI do Azure avalia a taxa de solicitações de entrada em um pequeno período de tempo, normalmente 1 ou 10 segundos. Se o número de solicitações recebidas durante esse período exceder o que seria esperado no limite de RPM definido, as novas solicitações receberão um código de resposta 429 até o próximo período de avaliação. Por exemplo, se o Azure OpenAI estiver monitorando a taxa de solicitação em intervalos de 1 segundo, o limite de taxa ocorrerá para uma implantação de 600 RPM se mais de 10 solicitações forem recebidas durante cada período de 1 segundo (600 solicitações por minuto = 10 solicitações por segundo).

Melhores práticas de limite de taxa

Para minimizar os problemas relacionados aos limites de taxa, é uma boa ideia usar as seguintes técnicas:

  • Defina max_tokens e best_of para os valores mínimos que atendem às necessidades do seu cenário. Por exemplo, não defina um valor de max-tokens grande se você espera que suas respostas sejam pequenas.
  • Use o gerenciamento de cotas para aumentar o TPM em implantações com alto tráfego e para reduzir o TPM em implantações com necessidades limitadas.
  • Implemente a lógica de repetição na aplicação.
  • Evite alterações acentuadas na carga de trabalho. Aumente a carga de trabalho gradualmente.
  • Teste diferentes padrões de aumento de carga.

Automatize a implantação

Esta seção contém breves modelos de exemplo para ajudá-lo a começar a criar implantações programaticamente que usam cota para definir limites de taxa de TPM. Com a introdução da cota, você deve usar a versão 2023-05-01 da API para atividades relacionadas ao gerenciamento de recursos. Esta versão da API é apenas para gerenciar seus recursos e não afeta a versão da API usada para inferir chamadas, como conclusão, conclusão de bate-papo, incorporação, geração de imagem, etc.

Implementação

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/deployments/{deploymentName}?api-version=2023-05-01

Parâmetros de caminho

Parâmetro Type Necessária? Description
accountName string Obrigatório O nome do seu Recurso OpenAI do Azure.
deploymentName string Obrigatório O nome da implantação que você escolheu quando implantou um modelo existente ou o nome que você gostaria que uma nova implantação de modelo tivesse.
resourceGroupName string Obrigatório O nome do grupo de recursos associado para essa implantação de modelo.
subscriptionId string Obrigatório ID da subscrição associada.
api-version string Obrigatório A versão da API a utilizar para esta operação. Segue o formato AAAA-MM-DD.

Versões suportadas

Corpo do pedido

Este é apenas um subconjunto dos parâmetros disponíveis do corpo da solicitação. Para obter a lista completa dos parâmetros, consulte a documentação de referência da API REST.

Parâmetro Tipo Description
sku Sku A definição do modelo de recursos que representa a SKU.
capacidade integer Isso representa a quantidade de cota que você está atribuindo a essa implantação. Um valor de 1 equivale a 1.000 Tokens por Minuto (TPM). Um valor de 10 é igual a 10k Tokens por Minuto (TPM).

Pedido de exemplo

curl -X PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-temp/providers/Microsoft.CognitiveServices/accounts/docs-openai-test-001/deployments/gpt-35-turbo-test-deployment?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"sku":{"name":"Standard","capacity":10},"properties": {"model": {"format": "OpenAI","name": "gpt-35-turbo","version": "0613"}}}'

Nota

Há várias maneiras de gerar um token de autorização. O método mais fácil para teste inicial é iniciar o Cloud Shell a partir do portal do Azure. Em seguida, execute o az account get-access-token. Você pode usar esse token como seu token de autorização temporária para testes de API.

Para obter mais informações, consulte a documentação de referência da API REST para usos e implantação.

Utilização

Para consultar o uso da sua cota em uma determinada região, para uma assinatura específica

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2023-05-01

Parâmetros de caminho

Parâmetro Type Necessária? Description
subscriptionId string Obrigatório ID da subscrição associada.
location string Obrigatório Local para visualizar o uso por exemplo: eastus
api-version string Obrigatório A versão da API a utilizar para esta operação. Segue o formato AAAA-MM-DD.

Versões suportadas

Pedido de exemplo

curl -X GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CognitiveServices/locations/eastus/usages?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' 

Eliminação de recursos

Quando uma tentativa de excluir um recurso do Azure OpenAI é feita do portal do Azure, se alguma implantação ainda estiver presente, a exclusão é bloqueada até que as implantações associadas sejam excluídas. A exclusão das implantações primeiro permite que as alocações de cota sejam liberadas adequadamente para que possam ser usadas em novas implantações.

No entanto, se você excluir um recurso usando a API REST ou algum outro método programático, isso ignorará a necessidade de excluir implantações primeiro. Quando isso ocorrer, a alocação de cota associada permanecerá indisponível para atribuir a uma nova implantação por 48 horas até que o recurso seja limpo. Para acionar uma limpeza imediata de um recurso excluído para liberar a cota, siga as instruções de limpeza de um recurso excluído.

Próximos passos

  • Para revisar os padrões de cota para o Azure OpenAI, consulte o artigo cotas e limites