Partilhar via


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

O catálogo de modelos do AI Studio oferece mais de 1.600 modelos, e a maneira mais 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.

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.

  1. Inicie sessão no AI Studio e aceda à 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

Vamos implantar o modelo.

Primeiro, você precisa instalar o SDK do Azure Machine Learning.

pip install azure-ai-ml
pip install azure-identity

Use este código para autenticar com o Azure Machine Learning e criar um objeto cliente. Substitua os espaços reservados pela ID da assinatura, nome do grupo de recursos e nome do projeto do AI Studio.

from azure.ai.ml import MLClient
from azure.identity import InteractiveBrowserCredential

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",
)

Para a opção de implantação de computação gerenciada, você precisa criar um ponto de extremidade antes de uma implantação de modelo. Pense em um ponto de extremidade como um contêiner que pode abrigar várias implantações de modelo. Os nomes de ponto de extremidade precisam ser exclusivos em uma região, portanto, neste exemplo, estamos usando 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.begin_create_or_update(endpoint).wait()

Crie uma implantação. Você pode encontrar o ID do modelo no catálogo de modelos.

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.begin_create_or_update(endpoint).result()

Inferência da implantação

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."
    ]
  }
}

Vamos inferir com sample_score.json. Altere o local 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))

Excluir o ponto de extremidade de implantação

Para excluir implantações no AI Studio, 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 AI Studio, 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 o seu limite de quota. Quando isso acontecer, você pode solicitar um aumento de cota.

Próximos passos

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