Partilhar via


Como implantar e inferir uma implantação de computação gerenciada com código

O catálogo de modelos do portal do Azure AI Foundry oferece mais de 1.600 modelos, e uma maneira comum de implantar esses modelos é usar a opção de implantação de computação gerenciada, que também é às vezes chamada de implantação online gerenciada.

A implantação de um modelo de linguagem grande (LLM) o torna disponível para uso em um site, aplicativo ou outro ambiente de produção. A implantação normalmente envolve hospedar o modelo em um servidor ou na nuvem e criar uma API ou outra interface para os usuários interagirem com o modelo. Você pode invocar a implantação para inferência em tempo real de aplicativos de IA generativos, como chat e copilot.

Neste artigo, você aprenderá a implantar modelos usando o SDK do Azure Machine Learning. O artigo também aborda como executar inferência no modelo implantado.

Pré-requisitos

  • Uma subscrição do Azure com um método de pagamento válido. As subscrições gratuitas ou de avaliação do Azure não funcionarão. Se você não tiver uma assinatura do Azure, crie uma conta paga do Azure para começar.

  • Se você não tiver um, crie um projeto baseado em hub.

  • Compras do Marketplace habilitadas para sua assinatura do Azure. Saiba mais aqui.

Obter o ID do modelo

Você pode implantar modelos de computação gerenciados usando o SDK do Azure Machine Learning, mas primeiro, vamos navegar no catálogo de modelos e obter a ID do modelo necessária para a implantação.

Sugestão

Como você pode personalizar o painel esquerdo no portal do Azure AI Foundry, poderá ver itens diferentes dos mostrados nestas etapas. Se não encontrar o que procura, selecione ... Mais informações na parte inferior do painel esquerdo.

  1. Entre no Azure AI Foundry e vá para a página inicial .

  2. Selecione Catálogo de modelos na barra lateral esquerda.

  3. No filtro Opções de implantação , selecione Computação gerenciada.

    Uma captura de tela mostrando como filtrar por modelos de computação gerenciados no catálogo.

  4. Selecionar um modelo.

  5. Copie o ID do modelo da página de detalhes do modelo selecionado. Tem a seguinte aparência: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16

Implementar o modelo

  1. Instale o SDK do Azure Machine Learning.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Autentique-se com o Azure Machine Learning e crie um objeto cliente. Substitua os marcadores de posição pela ID da sua assinatura, o nome do grupo de recursos e o nome do projeto do Azure AI Foundry.

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    
    workspace_ml_client = MLClient(
        credential=InteractiveBrowserCredential,
        subscription_id="your subscription name goes here",
        resource_group_name="your resource group name goes here",
        workspace_name="your project name goes here",
    )
    
  3. Crie um ponto de extremidade. Para a opção de implantação de computação gerida, é necessário criar um endpoint antes da implantação de um modelo. Pense numa extremidade como um contêiner que pode abrigar várias implementações de modelo. Os nomes de ponto de extremidade precisam ser exclusivos em uma região, portanto, neste exemplo, use o carimbo de data/hora para criar um nome de ponto de extremidade exclusivo.

    import time, sys
    from azure.ai.ml.entities import (
        ManagedOnlineEndpoint,
        ManagedOnlineDeployment,
        ProbeSettings,
    )
    
    # Make the endpoint name unique
    timestamp = int(time.time())
    online_endpoint_name = "customize your endpoint name here" + str(timestamp)
    
    # Create an online endpoint
    endpoint = ManagedOnlineEndpoint(
        name=online_endpoint_name,
        auth_mode="key",
    )
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).wait()
    
  4. Crie uma implantação. Substitua a ID do modelo no próximo código pela ID do modelo que você copiou da página de detalhes do modelo selecionado na seção Obter a ID do modelo .

    model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16" 
    
    demo_deployment = ManagedOnlineDeployment(
        name="demo",
        endpoint_name=online_endpoint_name,
        model=model_name,
        instance_type="Standard_DS3_v2",
        instance_count=2,
        liveness_probe=ProbeSettings(
            failure_threshold=30,
            success_threshold=1,
            timeout=2,
            period=10,
            initial_delay=1000,
        ),
        readiness_probe=ProbeSettings(
            failure_threshold=10,
            success_threshold=1,
            timeout=10,
            period=10,
            initial_delay=1000,
        ),
    )
    workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
    endpoint.traffic = {"demo": 100}
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).result()
    

Inferência da implantação

  1. Você precisa de um exemplo de dados json para testar a inferência. Crie sample_score.json com o exemplo a seguir.

    {
      "inputs": {
        "question": [
          "Where do I live?",
          "Where do I live?",
          "What's my name?",
          "Which name is also used to describe the Amazon rainforest in English?"
        ],
        "context": [
          "My name is Wolfgang and I live in Berlin",
          "My name is Sarah and I live in London",
          "My name is Clara and I live in Berkeley.",
          "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species."
        ]
      }
    }
    
  2. Inferência com sample_score.json. Altere o local do arquivo de pontuação no próximo código, com base em onde você salvou seu arquivo json de exemplo.

    scoring_file = "./sample_score.json" 
    response = workspace_ml_client.online_endpoints.invoke(
        endpoint_name=online_endpoint_name,
        deployment_name="demo",
        request_file=scoring_file,
    )
    response_json = json.loads(response)
    print(json.dumps(response_json, indent=2))
    

Configurar o dimensionamento automático

Para configurar o dimensionamento automático para implantações, você pode ir para o portal do Azure, localizar o recurso do Azure digitado Machine learning online deployment no grupo de recursos do projeto de IA e usar o menu Dimensionamento em Configuração. Para obter mais informações sobre dimensionamento automático, consulte Pontos de extremidade online de dimensionamento automático na documentação do Azure Machine Learning.

Excluir o endpoint de deployment

Para excluir implantações no portal do Azure AI Foundry, selecione o botão Excluir no painel superior da página de detalhes da implantação.

Considerações sobre as quotas

Para implantar e executar inferências com pontos de extremidade em tempo real, você consome a cota principal da máquina virtual (VM) atribuída à sua assinatura por região. Ao se inscrever no Azure AI Foundry, você recebe uma cota de VM padrão para várias famílias de VMs disponíveis na região. Pode continuar a criar implementações até atingir a sua limite de quota. Quando isso acontecer, você pode solicitar um aumento de cota.

  • Saiba mais sobre o que pode fazer no Azure AI Foundry
  • Obtenha respostas às perguntas frequentes no artigo de perguntas frequentes sobre a IA do Azure