Como implantar e realizar a inferência de uma implantação de computação gerenciada com código
O catálogo de modelos do portal IA do Azure Foundry 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 às vezes também é chamada de implantação online gerenciada.
Implantação de um modelo de linguagem grande (LLM) disponibiliza-o para uso em um site, aplicativo ou outro ambiente de produção. Normalmente, a implantação envolve hospedar o modelo em um servidor ou na nuvem e criar uma API ou outra interface para que os usuários interajam com o modelo. Você pode invocar a implantação para inferência em tempo real em aplicativos de IA generativa, como chat e copiloto.
Neste artigo, você aprenderá a implantar modelos usando o SDK do Azure Machine Learning. O artigo também explicar como realizar a inferência no modelo implantado.
Obter a ID do modelo
Você pode implantar modelos de computação sem servidor usando o SDK do Azure Machine Learning, mas primeiro, vamos navegar pelo catálogo de modelos e obter a ID do modelo necessário para implantação.
Entre no IA do Azure Foundry e vá para a página inicial.
Selecione Catálogo de modelos na barra lateral esquerda.
No filtro de Opções de implantação, selecione Computação gerenciada.
Selecione um modelo.
Copie a ID do modelo na página de detalhes do modelo selecionado. É algo parecido com isso:
azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16
Implantar 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 esse código para autenticar-se com o Azure Machine Learning e criar um objeto cliente. Substitua os espaços reservados pela ID da sua assinatura, pelo nome do grupo de recursos e pelo nome do projeto do IA do Azure Foundry.
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 implantar o modelo. Pense que um ponto de extremidade é 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. Por isso, 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 a 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()
Realizar a inferência da implantação
Você precisa de uma amostra de dados JSON para testar a inferência. Crie sample_score.json
com o seguinte exemplo.
{
"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 realizar a inferência com sample_score.json
. Altere o local conforme onde você salvou sua amostra de arquivo JSON.
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 portal do IA do Azure Foundry, selecione o botão Excluir no painel superior da página de detalhes da implantação.
Considerações sobre cotas
Para implantar e realizar a inferência com pontos de extremidade em tempo real, você consome a cota de núcleos 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 VM disponíveis na região. Você pode continuar a criar implantações até atingir o limite de cota. Depois que isso acontecer, você poderá solicitar um aumento de cota.
Próximas etapas
- Saiba mais sobre o que você pode fazer no Azure AI Foundry.
- Obtenha respostas às perguntas frequentes no artigo Perguntas Frequentes sobre a IA do Azure