Gerenciar a cota do Serviço OpenAI do Azure

A cota fornece a flexibilidade para gerenciar ativamente a alocação de limites de taxa entre as implantações em sua assinatura. Este artigo explica o processo de gerenciamento de sua cota do OpenAI do Azure.

Pré-requisitos

Importante

Exibir cotas e implantações de modelos requer 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 que você precisará para acessar o Azure OpenAI, consulte nosso guia de RBAC (acesso baseado em função) do Azure.

Essa função pode ser encontrada no portal do Azure em Assinaturas>Controle de acesso (IAM)>Adicionar atribuição de função> pesquise Leitor de Usos dos Serviços Cognitivos. Essa função deve ser aplicada no nível da assinatura, ela não existe no nível do 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 de modelo.

Introdução à cota

O recurso de cota do OpenAI do Azure 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 TPM (Tokens por Minuto). Ao integrar uma assinatura ao OpenAI do Azure, você receberá a cota padrão para a maioria dos modelos disponíveis. Em seguida, você atribuirá o TPM a cada implantação conforme ela for criada, e a cota disponível para esse modelo será reduzida por esse valor. Você pode continuar a criar implantações e atribuí-las ao TPM até atingir o limite de cota. Depois que 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.

Observação

Com uma cota de 240.000 TPM para GPT-35-Turbo no Leste dos EUA, um cliente pode criar uma única implantação de 240 mil TPM, 2 implantações de 120 mil TPM cada ou qualquer número de implantações em um ou vários recursos do OpenAI do Azure, desde que seu TPM adicione menos de 240 mil no total 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. Um limite de taxa de RPM (Solicitações por Minuto) também será imposto cujo valor é definido proporcionalmente para a atribuição do TPM usando a seguinte proporção:

6 RPM por 1000 TPM.

A flexibilidade para distribuir o TPM globalmente em uma assinatura e região permitiu que o Serviço OpenAI do Azure afrouxe outras restrições:

  • O máximo de recursos por região é aumentado para 30.
  • O limite para criar não mais do que uma implantação do mesmo modelo em um recurso foi removido.

Atribuir cota

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 Estúdio de IA do Azure 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 a alocação do TPM selecionando Editar implantação em Gerenciamento>Implantações no Estúdio de IA do Azure. Você também pode modificar essa seleção dentro da nova experiência de gerenciamento de cotas em Gerenciamento>Cotas.

Importante

Cotas e limites estão sujeitos a alterações, para obter as informações mais atualizadas, consulte nosso artigo sobre cotas e limites.

Configurações específicas do modelo

Diferentes implantações de modelo, também chamadas de classes de modelo, têm valores TPM máximos 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 do TPM atualmente é diferente apenas para determinadas classes de modelo:

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

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

Observação

A alocação de Tokens de Cota por Minuto (TPM) 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.

Exibir e solicitar cota

Para obter uma exibição geral de suas alocações de cota entre implantações em uma determinada região, selecione Gerenciamento>Cota no Estúdio de IA do Azure:

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 cota 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 esta assinatura e região. Essa quantidade de cota usada também é representada no grafo de barras.
  • Cota de Solicitação: O ícone neste campo navega para um formulário em que as solicitações para aumentar a cota podem ser enviadas.

Migrando implantações existentes

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

Noções básicas sobre limites de taxa

Atribuir o TPM a uma implantação define os limites de taxa de TPM (Tokens por Minuto) e RPM (Solicitações por Minuto) para a implantação, conforme descrito acima. Os limites de taxa do TPM são baseados no número máximo de tokens que são estimados para 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 cobrança, que é computada após a conclusão de todo o processamento.

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

  • Texto e contagem de prompts
  • A configuração do parâmetro max_tokens
  • A configuração do parâmetro best_of

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

Os limites de taxa rpm são baseados no número de solicitações recebidas ao longo do tempo. O limite de taxa espera que as solicitações sejam distribuídas 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 de 1 ou 10 segundos. Se o número de solicitações recebidas durante esse tempo exceder o 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 OpenAI do Azure estiver monitorando a taxa de solicitação em intervalos de 1 segundo, a limitação 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).

Práticas recomendadas de limite de taxa

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

  • Defina max_tokens e best_of com os valores mínimos que atendem às necessidades do seu cenário. Por exemplo, não defina um valor máximo grande de tokens 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 reduzir o TPM em implantações com necessidades limitadas.
  • Implemente a lógica de repetição no seu aplicativo.
  • Evite alterações bruscas na carga de trabalho. Aumente a carga de trabalho gradualmente.
  • Teste padrões distintos de aumento de carga.

Automatizar a implantação

Esta seção contém modelos de exemplo breves para ajudar você 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. Essa versão da API é apenas para gerenciar seus recursos e não afeta a versão da API usada para chamadas de inferência, como conclusões, conclusões de chat, inserção, geração de imagens etc.

Implantaçã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ário? Descrição
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 deseja que uma nova implantação de modelo tenha.
resourceGroupName string Obrigatório O nome do grupo de recursos associado para essa implantação de modelo.
subscriptionId string Obrigatório ID da Assinatura para a assinatura associada.
api-version string Obrigatório A versão da API a ser usada para esta operação. Isso segue o formato AAAA-MM-DD.

Versões com suporte

Corpo da solicitação

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

Parâmetro Tipo Descrição
sku Sku A definição do modelo de recurso que representa o SKU.
ALOCADA inteiro Isso representa a quantidade de cota que você está atribuindo a essa implantação. Um valor de 1 é igual a 1.000 tokens por minuto (TPM). Um valor de 10 é igual a 10 mil Tokens por Minuto (TPM).

Solicitação 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"}}}'

Observação

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

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

Uso

Para consultar seu uso de cota em uma determinada região, para obter 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ário? Descrição
subscriptionId string Obrigatório ID da Assinatura para a assinatura associada.
location string Obrigatório Local para exibir o uso para ex: eastus
api-version string Obrigatório A versão da API a ser usada para esta operação. Isso segue o formato AAAA-MM-DD.

Versões com suporte

Solicitação 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' 

Exclusão de recursos

Quando uma tentativa de excluir um recurso do Azure OpenAI é feita no portal do Azure, se alguma implantação ainda estiver presente, a exclusão será bloqueada até que as implantações associadas sejam excluídas. Excluir as implantações primeiro permite que as alocações de cota sejam liberadas corretamente 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 disparar uma limpeza imediata de um recurso excluído para liberar a cota, siga as instruções limpar um recurso excluído.

Próximas etapas