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
Para qualquer tarefa que exija a visualização da cota disponível, recomendamos o uso da 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. Pode continuar a criar implementações e atribuir-lhes TPM até atingir o seu limite de quota. 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, selecione Implantações>, Implantar modelo, Implantar modelo>>base, Selecione Modelo>Confirmar.
Após a implantação, você pode ajustar sua alocação de TPM selecionando e editando seu modelo na página Implantações no Azure AI Studio. Você também pode modificar essa configuração na página de cota do Modelo 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.
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:
- Implantação: implantações de modelo divididas por classe de modelo.
- Tipo de cota: há um valor de cota por região para cada tipo de modelo. A quota abrange todas as versões desse modelo.
- Alocação de cota: 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 navega até um formulário onde 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 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.
Importante
A contagem de tokens usada no cálculo do limite de taxa é uma estimativa baseada em parte na contagem de caracteres da solicitação de API. A estimativa do token de limite de taxa não é a mesma que o cálculo do token usado para faturamento/determinação de que uma solicitação está abaixo do limite de token de entrada de um modelo. Devido à natureza aproximada do cálculo do token de limite de taxa, é esperado que um limite de taxa possa ser acionado antes do que pode ser esperado em comparação com uma medição exata de contagem de tokens para cada solicitação.
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
2023-05-01
Especificações Swagger
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
2023-05-01
Especificações Swagger
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