Partilhar via


Introdução ao uso de implantações provisionadas no Serviço OpenAI do Azure

O guia a seguir orienta você pelas principais etapas na criação de uma implantação provisionada com seu recurso do Serviço OpenAI do Azure. Para mais detalhes sobre os conceitos discutidos aqui, consulte:

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • Função de Colaborador do Azure ou Colaborador dos Serviços Cognitivos
  • Acesso ao Azure OpenAI Studio

Obter/verificar a disponibilidade da cota PTU.

As implantações de taxa de transferência provisionada são dimensionadas em unidades chamadas Unidades de Taxa de Transferência Provisionadas (PTUs). A cota de PTU para cada tipo de implantação provisionada é concedida a uma assinatura regionalmente e limita o número total de PTUs que podem ser implantadas nessa região em todos os modelos e versões.

A criação de uma nova implantação requer uma cota disponível (não utilizada) para cobrir o tamanho desejado da implantação. Por exemplo: Se uma assinatura tiver o seguinte no Centro-Sul dos EUA:

  • Quota total de PTU = 500 PTU
  • Implantações:
    • 100 PTUs: GPT-4o, 2024-05-13
    • 100 PTUs: GPT-4, 0613

Em seguida, 200 PTUs de cota são consideradas usadas, e há 300 PTUs disponíveis para uso para criar novas implantações.

Uma quantidade padrão de cota provisionada global, de zona de dados e regional é atribuída a assinaturas qualificadas em várias regiões. Você pode exibir a cota disponível para você em uma região visitando o painel Cotas no Azure AI Foundry e selecionando a assinatura e a região desejadas. Por exemplo, a captura de tela abaixo mostra um limite de cota de 500 PTUs no oeste dos EUA para a assinatura selecionada. Observe que você pode ver valores mais baixos de cotas padrão disponíveis.

Uma captura de tela da cota disponível no estúdio do Azure OpenAI.

A cota adicional pode ser solicitada clicando no link Solicitar cota à direita da coluna "Uso/Limite". (Isso está fora da tela na imagem acima).

Criar um recurso do Azure OpenAI

As implantações provisionadas são criadas por meio de objetos de recurso do Azure OpenAI no Azure. Você deve ter um recurso do Azure OpenAI em cada região onde pretende criar uma implantação. Use o portal do Azure para criar um recurso em uma região com cota disponível, se necessário.

Nota

Os recursos do Azure OpenAI podem dar suporte a vários tipos de implantações do Azure OpenAI ao mesmo tempo. Não é necessário dedicar novos recursos para suas implantações provisionadas.

Crie sua implantação provisionada - a capacidade está disponível

Depois de verificar sua cota, você pode criar uma implantação. Para criar uma implantação provisionada, você pode seguir estas etapas; As opções descritas refletem as entradas mostradas na captura de tela.

Captura de tela da página de implantação do Azure OpenAI Studio para uma implantação provisionada.

  1. Entrar no Azure AI Foundry

  2. Escolha a assinatura que foi habilitada para implantações provisionadas & selecione o recurso desejado em uma região onde você tem a cota.

  3. Em Gerenciamento no painel de navegação esquerdo, selecione Implantações.

  4. Selecione Criar nova implantação e configure os campos a seguir. Expanda o menu suspenso de opções avançadas.

  5. Preencha os valores em cada campo. Eis um exemplo:

Campo Description Exemplo
Selecionar um modelo Escolha o modelo específico que deseja implantar. GPT-4
Versão do modelo Escolha a versão do modelo a ser implantado. 0613
Nome da implantação O nome da implantação é usado em seu código para chamar o modelo usando as bibliotecas de cliente e as APIs REST. GPT-4
Filtro de conteúdo Especifique a política de filtragem a ser aplicada à implantação. Saiba mais sobre o nosso tutorial de filtragem de conteúdo. Predefinido
Tipo de Implementação Isso afeta a taxa de transferência e o desempenho. Escolha Global Provisioned-Managed, DataZone Provisioned-Managed ou Provisioned-Managed na lista suspensa da caixa de diálogo de implantação para sua implantação Provisionado-gerenciado
Unidades de taxa de transferência provisionadas Escolha a quantidade de taxa de transferência que deseja incluir na implantação. 100

Aspetos importantes a ter em conta:

  • A caixa de diálogo de implantação contém um lembrete de que você pode comprar uma Reserva do Azure para o Azure OpenAI Provisionado para obter um desconto significativo para um compromisso de prazo.

Depois de inserir as configurações de implantação, clique em Confirmar preço para continuar. Será exibida uma caixa de diálogo de confirmação de preço que exibirá o preço de tabela para a implantação, se você optar por pagar por ela por hora, sem Reserva do Azure para fornecer um desconto de prazo.

Se você não tiver certeza dos custos, cancele a implantação e prossiga assim que entender o modelo de pagamento e os custos subjacentes para a implantação provisionada. Esta etapa pode evitar cobranças altas e inesperadas na sua fatura de pagamento. Os recursos para se educar incluem:

A imagem abaixo mostra a confirmação de preço que você verá. O preço apresentado é apenas um exemplo.

Captura de ecrã a mostrar o ecrã de confirmação de preços.

Se desejar criar sua implantação programaticamente, você pode fazê-lo com o seguinte comando da CLI do Azure. Para especificar o tipo de implantação, modifique o sku-name para GlobalProvisionedManaged, DataZoneProvisionedManagedou ProvisionedManaged com base no tipo de implantação pretendido. Atualize o sku-capacity com o número desejado de unidades de taxa de transferência provisionadas.

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

REST, modelo ARM, Bíceps e Terraform também podem ser usados para criar implantações. Consulte a seção sobre como automatizar implantações no guia de instruções de gerenciamento de cotas e substitua o sku.name por GlobalProvisionedManaged, DataZoneProvisionedManagedou ProvisionedManaged em vez de Standard.

Crie sua implantação provisionada – a capacidade não está disponível

Devido à natureza dinâmica da disponibilidade de capacidade, é possível que a região do recurso selecionado não tenha a capacidade de serviço para criar a implantação do modelo, da versão e do número de PTUs especificados.

Nesse caso, o Azure AI Foundry direcionará você para outras regiões com cota e capacidade disponíveis para criar uma implantação do modelo desejado. Se isso acontecer, a caixa de diálogo de implantação terá esta aparência:

Captura de tela da página de implantação do Azure OpenAI Studio para uma implantação provisionada sem capacidade disponível.

Coisas a notar:

  • Uma mensagem é exibida mostrando muitas PTUs que você tem na cota disponível e quantas podem ser implantadas atualmente no momento.
  • Se você selecionar um número de PTUs maior que a capacidade de serviço, aparecerá uma mensagem fornecendo opções para obter mais capacidade e um botão para permitir que você selecione uma região alternativa. Clicar no botão "Ver outras regiões" exibirá uma caixa de diálogo que mostra uma lista de recursos do Azure OpenAI onde você pode criar uma implantação, juntamente com a implantação de tamanho máximo que pode ser criada com base na cota disponível e na capacidade de serviço em cada região.

Captura de ecrã da página de implementação do Azure OpenAI Studio para escolher um recurso e uma região diferentes.

Selecionar um recurso e clicar em Alternar recurso fará com que a caixa de diálogo de implantação seja reexibida usando o recurso selecionado. Em seguida, você pode continuar a criar sua implantação na nova região.

Opcionalmente, compre uma reserva

Após a criação de sua implantação, talvez você queira comprar um desconto de prazo por meio de uma Reserva do Azure. Uma Reserva do Azure pode fornecer um desconto substancial na taxa horária para usuários que pretendem usar a implantação além de alguns dias.

Para mais informações sobre o modelo de compra e reservas, consulte:

Importante

A disponibilidade de capacidade para implantações de modelos é dinâmica e muda frequentemente entre regiões e modelos. Para evitar que você compre uma reserva para mais PTUs do que você pode usar, crie implantações primeiro e, em seguida, compre a Reserva do Azure para cobrir as PTUs que você implantou. Esta prática recomendada garantirá que você possa aproveitar ao máximo o desconto da reserva e evitar que você adquira um compromisso de prazo que você não pode usar.

Faça suas primeiras chamadas de inferência

O código de inferência para implantações provisionadas é o mesmo que um tipo de implantação padrão. O trecho de código a seguir mostra uma chamada de conclusão de chat para um modelo GPT-4. Pela primeira vez usando esses modelos programaticamente, recomendamos começar com nosso guia de início rápido. Nossa recomendação é usar a biblioteca OpenAI com a versão 1.0 ou superior, pois isso inclui lógica de repetição dentro da biblioteca.

    #Note: The openai-python library support for Azure OpenAI is in preview. 
    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-02-01"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
            {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
            {"role": "user", "content": "Do other Azure AI services support this too?"}
        ]
    )

    print(response.choices[0].message.content)

Importante

Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, consulte o artigo de segurança dos serviços de IA do Azure.

Entendendo a taxa de transferência esperada

A quantidade de taxa de transferência que você pode alcançar no ponto de extremidade é um fator do número de PTUs implantadas, tamanho de entrada, tamanho de saída e taxa de chamada. O número de chamadas simultâneas e o total de tokens processados podem variar com base nesses valores. Nossa maneira recomendada de determinar a taxa de transferência para sua implantação é a seguinte:

  1. Use a calculadora de capacidade para uma estimativa de dimensionamento. Você pode encontrar a calculadora de capacidade no Azure AI Foundry na página de cotas e na guia Provisionado.

  2. Avalie a carga usando a carga de trabalho de tráfego real. Para obter mais informações sobre benchmarking, consulte a seção benchmarking .

Medindo a utilização da implantação

Quando você implanta um número especificado de unidades de taxa de transferência provisionadas (PTUs), uma quantidade definida de taxa de transferência de inferência é disponibilizada para esse ponto de extremidade. A utilização dessa taxa de transferência é uma fórmula complexa baseada no modelo, na taxa de chamada da versão do modelo, no tamanho do prompt e no tamanho da geração. Para simplificar esse cálculo, fornecemos uma métrica de utilização no Azure Monitor. Sua implantação retorna um 429 em qualquer nova chamada depois que a utilização aumenta acima de 100%. A utilização provisionada é definida da seguinte forma:

Utilização da implantação da PTU = (PTUs consumidas no período de tempo) / (PTUs implantadas no período de tempo)

Você pode encontrar a medida de utilização na seção Azure-Monitor para seu recurso. Para acessar os painéis de monitoramento de entrada no https://portal.azure.com, vá para seu recurso do Azure OpenAI e selecione a página Métricas no painel de navegação esquerdo. Na página de métricas, selecione a métrica 'Utilização gerenciada provisionada V2'. Se você tiver mais de uma implantação no recurso, também deverá dividir os valores por cada implantação clicando no botão 'Aplicar divisão'.

Captura de tela da utilização gerenciada provisionada na folha de métricas do recurso no portal do Azure.

Para obter mais informações sobre como monitorar suas implantações, consulte a página Monitorando o Serviço OpenAI do Azure.

Lidando com alta utilização

As implantações provisionadas fornecem uma quantidade alocada de capacidade de computação para executar um determinado modelo. A métrica 'Utilização Gerenciada Provisionada V2' no Azure Monitor mede a utilização da implantação em incrementos de um minuto. As implantações gerenciadas provisionadas também são otimizadas para que as chamadas aceitas sejam processadas com uma latência máxima consistente por chamada. Quando a carga de trabalho excede sua capacidade alocada, o serviço retorna um código de status HTTP 429 até que a utilização caia abaixo de 100%. O tempo antes de tentar novamente é fornecido nos retry-after cabeçalhos e retry-after-ms resposta que fornecem o tempo em segundos e milissegundos, respectivamente. Essa abordagem mantém os alvos de latência por chamada e, ao mesmo tempo, dá ao desenvolvedor controle sobre como lidar com situações de alta carga – por exemplo, repetir ou desviar para outra experiência/ponto de extremidade.

O que devo fazer quando receber uma resposta 429?

Uma resposta 429 indica que as PTUs alocadas estão totalmente consumidas no momento da chamada. A resposta inclui os retry-after-ms cabeçalhos e retry-after que informam o tempo de espera antes que a próxima chamada seja aceita. A forma como você escolhe lidar com uma resposta 429 depende dos requisitos do seu aplicativo. Aqui estão algumas considerações:

  • Se você estiver de acordo com latências por chamada mais longas, implemente a lógica de repetição do lado do cliente para aguardar o retry-after-ms tempo e tentar novamente. Essa abordagem permite maximizar a taxa de transferência na implantação. Os SDKs de cliente fornecidos pela Microsoft já lidam com padrões razoáveis. Você ainda pode precisar de mais ajustes com base em seus casos de uso.
  • Considere 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ê receber o sinal 429. O sinal 429 não é uma resposta de erro inesperada ao enviar para alta utilização, mas sim parte do design para gerenciar filas e alta carga para implantações provisionadas.

Modificando a lógica de repetição nas bibliotecas de cliente

Os SDKs do Azure OpenAI repetem 429 respostas por padrão e nos bastidores do cliente (até o máximo de tentativas). As bibliotecas respeitam o retry-after tempo. Você também pode modificar o comportamento de repetição para melhor se adequar à sua experiência. Aqui está um exemplo com a biblioteca python.

Você pode usar a opção para definir ou desativar as max_retries configurações de nova tentativa:

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-01",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

Executar um benchmark

O desempenho exato e os recursos de taxa de transferência de sua instância dependem do tipo de solicitações feitas e da carga de trabalho exata. A melhor maneira de determinar a taxa de transferência para sua carga de trabalho é executar uma referência em seus próprios dados.

Para ajudá-lo nesse trabalho, a ferramenta de benchmarking fornece uma maneira de executar facilmente benchmarks em sua implantação. A ferramenta vem com várias formas de carga de trabalho pré-configuradas possíveis e produz métricas-chave de desempenho. Saiba mais sobre a ferramenta e as definições de configuração em nosso repositório GitHub: https://github.com/Azure/azure-openai-benchmark.

Recomendamos o seguinte fluxo de trabalho:

  1. Estime suas PTUs de taxa de transferência usando a calculadora de capacidade.
  2. Execute um benchmark com esta forma de tráfego por um longo período de tempo (10+ min) para observar os resultados em um estado estacionário.
  3. Observe a utilização, os tokens processados e os valores da taxa de chamada da ferramenta de referência e do Azure Monitor.
  4. Execute um benchmark com sua própria forma de tráfego e cargas de trabalho usando sua implementação de cliente. Certifique-se de implementar a lógica de repetição usando uma biblioteca de cliente do Azure OpenAI ou lógica personalizada.

Passos Seguintes