O que é taxa de transferência provisionada?

Observação

A oferta provisionada do Serviço OpenAI do Azure recebeu atualizações significativas em 12 de agosto de 2024, incluindo o alinhamento do modelo de compra com os padrões do Azure e a transição para uma cota independente de modelo. É altamente recomendável que os clientes integrados antes desta data leiam a atualização de agosto do OpenAI do Azure provisionado para entender melhor essas mudanças.

A funcionalidade da taxa de transferência provisionada permite que você especifique a quantidade de taxa de transferência necessária em uma implantação. Em seguida, o serviço aloca a capacidade de processamento de modelo necessária e garante que ele esteja pronto para você. A taxa de transferência é definida em termos de PTU (unidades de taxa de transferência provisionada), que é uma maneira normalizada de representar a taxa de transferência para sua implantação. Cada par de modelo/versão requer diferentes quantidades de PTU para implantar e fornecer diferentes quantidades de taxa de transferência por PTU.

O que o tipo de implantação provisionada fornece?

  • Desempenho previsível: latência máxima estável e taxa de transferência para cargas de trabalho uniformes.
  • Capacidade de processamento reservada: Uma implantação configura a quantidade de taxa de transferência. Uma vez implantada, a taxa de transferência estará disponível, sendo usada ou não.
  • Economia de custos: as cargas de trabalho com alta taxa de transferência podem oferecer economia de custos em comparação com o consumo baseado em token.

Uma implantação do OpenAI do Azure é uma unidade de gerenciamento para um modelo de OpenAI específico. Uma implantação fornece acesso ao cliente a um modelo de inferência e integra mais recursos, como a Moderação de Conteúdo (Consulte a documentação da moderação de conteúdo).

O que você obtém?

Tópico Provisionado
O que é isso? Fornece uma taxa de transferência garantida em incrementos menores do que a oferta provisionada existente. As implantações terão uma latência máxima consistente para determinado modelo/versão.
Para quem são? Clientes que desejam uma taxa de transferência garantida com uma variação de latência mínima.
Quota Unidades de taxa de transferência provisionada-gerenciada para um determinado modelo.
Latency Latência máxima restrita do modelo. A latência geral é um fator de forma de chamada.
Utilização Medida de utilização provisionada-gerenciada fornecida no Azure Monitor.
Estimando o tamanho Calculadora fornecida no estúdio e script de benchmarking.

Quais modelos e regiões estão disponíveis para taxa de transferência provisionada?

Região gpt-4, 0613 gpt-4, 1106-Preview gpt-4, 0125-Preview gpt-4, turbo-2024-04-09 gpt-4o, 2024-05-13 gpt-4o-mini, 2024-07-18 gpt-4-32k, 0613 gpt-35-turbo, 1106 gpt-35-turbo, 0125
australiaeast -
brazilsouth - - -
canadacentral - - - - - -
canadaeast - - -
eastus
eastus2
francecentral - - -
germanywestcentral - -
japaneast - - - -
koreacentral - - - -
northcentralus
norwayeast - - - - - -
polandcentral - - -
southafricanorth - - - -
southcentralus -
southindia - -
swedencentral
switzerlandnorth -
switzerlandwest - - - - - - - -
uksouth -
westus -
westus3 -

Observação

A versão provisionada da gpt-4 Versão: turbo-2024-04-09 atualmente está limitada apenas a texto.

Conceitos principais

Tipos de implantação

Ao criar uma implantação provisionada no Estúdio do Serviço OpenAI do Azure, o tipo de implantação na caixa de diálogo "Criar Implantação" é Provisionado-Gerenciado.

Ao criar uma implantação provisionada no OpenAI do Azure por meio da CLI ou da API, você precisa definir o parâmetro sku-name como Provisionado-Gerenciado. O sku-capacity especifica o número de PTUs atribuídas à implantação.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyDeployment \
--model-name gpt-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged 

Quota

Unidades de taxa de transferência provisionada

As PTUs (unidades de produtividade provisionadas) são unidades genéricas de capacidade de processamento de modelo que você pode usar para dimensionar implantações provisionadas e atingir a produtividade necessária para processar solicitações e gerar conclusões. Essas unidades de produtividade são concedidas a uma assinatura como cota em uma base regional, que define o número máximo de PTUs que podem ser atribuídas a implantações nessa assinatura e região.

Cota independente do modelo

Diferentemente da cota de TPM (tokens por minuto) utilizada por outras ofertas do Serviço OpenAI do Azure, as PTUs são independentes do modelo. As PTUs podem ser usadas para implantar qualquer modelo/versão compatível com a região.

Diagrama de cota independente de modelo com um pool de PTUs disponível para vários modelos do OpenAI do Azure.

A nova cota aparece no Estúdio do Serviço OpenAI do Azure como um item de cota chamado Unidade de Produtividade Gerenciada Provisionada. No painel "Cota do Estúdio", ao expandir o item de cota, é possível ver as implantações que contribuem para o uso da cota.

Captura de tela da interface do usuário de cota para o OpenAI do Azure provisionado.

Obter a cota de PTU

A cota de PTU está disponível por padrão em muitas regiões. Se for necessária uma cota adicional, os clientes podem solicitar uma cota extra através do link "Solicitar Cota" à direita do item de cota "Unidade de Produtividade Gerenciada Provisionada" no Estúdio do Serviço OpenAI do Azure. O formulário permite que o cliente solicite um aumento na cota de PTU em uma região especificada. O cliente receberá um email no endereço fornecido assim que a solicitação for aprovada, normalmente dentro de dois dias úteis.

Mínimos de PTU por modelo

A capacidade mínima de implantação, incrementos e processamento de PTU associada a cada unidade varia de acordo com o tipo de modelo e versão.

Transparência de capacidade

O OpenAI do Azure é um serviço altamente requisitado, onde a demanda dos clientes pode exceder a capacidade de GPU do serviço. A Microsoft se esforça para fornecer capacidade para todas as regiões e modelos sob demanda, mas a possibilidade de esgotar as vendas em uma região sempre existe. Isso pode limitar a capacidade de alguns clientes de criar uma implantação do modelo, versão ou número de PTUs desejados em uma região específica, mesmo que tenham cota disponível nessa região. De modo geral:

  • A cota coloca um limite no número máximo de PTUs que podem ser implantadas em uma assinatura e região, mas não garante a disponibilidade de capacidade.
  • A capacidade é alocada no momento da implantação e é mantida enquanto a implantação existir. Se a capacidade do serviço não estiver disponível, a implantação falhará
  • Os clientes usam informações em tempo real sobre disponibilidade de cota/capacidade para escolher uma região apropriada para seu cenário, com a capacidade de modelo necessária
  • Reduzir a escala ou excluir uma implantação libera a capacidade de volta para a região. No entanto, não há garantia de que a capacidade estará disponível caso a implantação seja expandida ou recriada posteriormente.

Diretrizes sobre a capacidade regional

Para ajudar os usuários a encontrar a capacidade necessária para suas implantações, os clientes usarão uma nova API e uma experiência no Estúdio para fornecer informações em tempo real.

No Estúdio do Serviço OpenAI do Azure, a experiência de implantação identificará quando uma região não possui a capacidade para oferecer suporte ao modelo, versão e número de PTUs desejados, direcionando o usuário para uma região alternativa quando necessário.

Encontre mais detalhes sobre a nova experiência de implantação no Guia de introdução do OpenAI do Azure Provisionado.

A nova API de capacidades de modelo também pode ser usada para identificar programaticamente o tamanho máximo da implantação de um modelo específico que pode ser criado em cada região, com base na disponibilidade da cota na assinatura e na capacidade de serviço na região.

Se uma região aceitável não estiver disponível para dar suporte ao modelo, versão e/ou PTUs desejados os clientes também poderão tentar as seguintes etapas:

  • Tentar realizar a implantação com um número menor de PTUs.
  • Tentar realizar a implantação em um momento diferente. A disponibilidade de capacidade muda dinamicamente com base na demanda dos clientes, e mais capacidade pode ficar disponível posteriormente.
  • Verifique se a cota está disponível em todas as regiões aceitáveis. A API de capacidades de modelo e a experiência no Estúdio consideram a disponibilidade de cota ao oferecer regiões alternativas para criar uma implantação.

Determinando o número de PTUs necessários para uma carga de trabalho

As PTUs representam uma quantidade de capacidade de processamento do modelo. De forma semelhante ao seu computador ou banco de dados, diferentes cargas de trabalho ou solicitações ao modelo consumirão diferentes quantidades de capacidade de processamento subjacente. A conversão das características do formato da chamada (tamanho da solicitação, tamanho da geração e taxa de chamada) para PTUs é complexa e não linear. Para simplificar esse processo, você pode usar a Calculadora de capacidade do OpenAI do Azure para dimensionar formas específicas de carga de trabalho.

Algumas considerações de alto nível:

  • As gerações exigem mais capacidade do que os prompts
  • Chamadas maiores são progressivamente mais caras para serem computadas. Por exemplo, 100 chamadas com um tamanho de solicitação de 1000 tokens exigirão menos capacidade do que uma chamada com 100.000 tokens na solicitação. Isso também significa que a distribuição desses formatos de chamada é importante para a taxa de transferência geral. Os padrões de tráfego com uma distribuição ampla que inclui algumas chamadas muito grandes podem ter uma produtividade menor por PTU do que uma distribuição mais restrita com os mesmos tamanhos médios dos tokens de solicitação e conclusão.

Como funciona o desempenho de utilização

As implantações provisionadas fornecem a você uma quantidade alocada de capacidade de computação para executar um determinado modelo.

Em implantações provisionadas-gerenciadas, quando a capacidade for excedida, a API retornará imediatamente um Erro de Status HTTP 429. Isso permite que o usuário tome decisões sobre como gerenciar seu tráfego. Os usuários podem redirecionar solicitações para uma implantação separada, para uma instância padrão paga conforme o uso ou aproveitar uma estratégia de repetição para gerenciar uma determinada solicitação. O serviço continuará retornando o código de status HTTP 429 até que a utilização caia abaixo de 100%.

Como posso monitorar a capacidade?

A métrica Uso Provisionado-Gerenciado V2 no Azure Monitor mede uma determinada utilização de implantação em incrementos de um minuto. As implantações provisionadas-gerenciadas são otimizadas para garantir que as chamadas aceitas sejam processadas com um tempo de processamento de modelo consistente (a latência real de ponta a ponta depende das características de uma chamada).

O que devo fazer quando receber uma resposta 429?

A resposta 429 não é um erro, mas, em vez disso, parte do design para dizer aos usuários que uma determinada implantação é totalmente utilizada em um momento. Ao fornecer uma resposta de falha rápida, você tem controle sobre como lidar com essas situações de maneira que melhor atenda aos seus requisitos de aplicativo.

Os cabeçalhos retry-after-ms e retry-after na resposta informam o tempo de espera antes que a próxima chamada seja aceita. A forma de lidar com essa resposta depende dos requisitos do seu aplicativo. Estas são algumas considerações:

  • Você pode pensar em redirecionar o tráfego para outros modelos, implantações ou experiências. Essa abordagem é a solução de menor latência porque essa ação pode ser tomada assim que você recebe o sinal 429. Para obter ideias sobre como implementar efetivamente esse padrão, consulte esta Postagem da comunidade.
  • Se você não tem problemas com latências mais longas por chamada, implemente a lógica de repetição do lado do cliente. Essa opção oferece a você a maior quantidade de taxa de transferência por PTU. As bibliotecas de clientes do OpenAI do Azure incluem recursos internos para lidar com novas tentativas.

Como o serviço decide quando enviar um 429?

Na oferta Provisionada-Gerenciada, cada solicitação é avaliada individualmente de acordo com o tamanho da solicitação, tamanho de geração esperado e modelo para determinar sua utilização esperada. Isso contrasta com implantações pagas conforme o uso, que têm um comportamento de limitação de taxa personalizada com base na carga de tráfego estimada. Para implantações pagas conforme o uso, isso pode levar à geração de erros HTTP 429s antes de valores de cota definidos serem excedidos se o tráfego não for distribuído uniformemente.

Para Provisionado-Gerenciado, usamos uma variação do algoritmo Leaky Bucket para manter a utilização abaixo de 100%, permitindo alguma intermitência no tráfego. A lógica de alto nível é a seguinte:

  1. Cada cliente tem uma quantidade definida de capacidade que pode utilizar em uma implantação

  2. Quando uma solicitação é feita:

    a. Quando a utilização atual está acima de 100%, o serviço retorna um código 429 com o cabeçalho retry-after-ms definido como o tempo até que a utilização esteja abaixo de 100%

    b. Caso contrário, o serviço estima a alteração incremental para utilização necessária para atender à solicitação combinando tokens de prompt e o max_tokens especificado na chamada. Se o parâmetro max_tokens não for especificado, o serviço estimará um valor. Essa estimativa pode levar a uma simultaneidade menor do que a esperada quando o número de tokens reais gerados é pequeno. Para maior simultaneidade, verifique se o valor max_tokens é o mais próximo possível do tamanho da geração real.

  3. Quando uma solicitação é concluída, passamos a saber o custo real de computação para a chamada. Para garantir uma contabilidade precisa, corrigimos a utilização usando a seguinte lógica:

    a. Se o > real for estimado, a diferença será adicionada à utilização b da implantação. Se o < real for estimado, a diferença será subtraída.

  4. A utilização geral é decrementada a uma taxa contínua com base no número de PTUs implantadas.

Observação

As chamadas são aceitas até que a utilização alcance 100%. As intermitências acima de 100% podem ser permitidas em períodos curtos, mas, ao longo do tempo, seu tráfego é limitado a 100% de utilização.

Diagrama mostrando como as chamadas subsequentes são adicionadas à utilização.

Quantas chamadas simultâneas posso ter na minha implantação?

O número de chamadas simultâneas que você pode alcançar depende da forma de cada chamada (tamanho da solicitação, parâmetro max_token etc.). O serviço continuará aceitando chamadas até que a utilização chegue a 100%. Para determinar o número aproximado de chamadas simultâneas, você pode modelar o máximo de solicitações por minuto para uma forma de chamada específica na calculadora de capacidade. Se o sistema gerar menos do que o número de tokens de amostragem, como max_token, ele aceitará mais solicitações.

Próximas etapas