O que são os pontos finais do Azure Machine Learning?

APLICA-SE A:Extensão Azure CLI ml v2 (corrente)Python SDK azure-ai-ml v2 (pré-visualização)

Utilize pontos finais de aprendizagem automática Azure para simplificar as implementações de modelos tanto para implementações de inferências em tempo real como para inferências de lote. Os pontos finais fornecem uma interface unificada para invocar e gerir implementações de modelos em todos os tipos de cálculo.

Neste artigo, aprende-se:

  • Pontos Finais
  • Implementações
  • Pontos finais online geridos
  • Pontos finais online do Kubernetes
  • Pontos finais de inferência de lote

O que são pontos finais e implantações?

Depois de treinar um modelo de machine learning, precisa de implementar o modelo para que outros possam usá-lo para fazer inferenculação. No Azure Machine Learning, pode utilizar pontos finais e implementações para o fazer.

Um ponto final é um ponto final HTTPS que os clientes podem chamar para receber a produção inferencing (pontuação) de um modelo treinado. Fornece:

  • Autenticação utilizando auth baseado em "símbolo & chave"
  • Terminação de SSL
  • Um URI de pontuação estável (endpoint-name.region.inference.ml.azure.com)

Uma implantação é um conjunto de recursos necessários para hospedar o modelo que faz a inferencing real.

Um único ponto final pode conter múltiplas implementações. Os pontos finais e as implementações são recursos independentes Resource Manager Azure que aparecem no portal do Azure.

A Azure Machine Learning utiliza o conceito de pontos finais e implementações para implementar diferentes tipos de pontos finais: pontos finais online e pontos finais de lote.

Múltiplas interfaces de desenvolvedores

Criar e gerir pontos finais em lote e online com múltiplas ferramentas de desenvolvimento:

  • A CLI do Azure
  • AZure Resource Manager/REST API
  • portal web estúdio do Azure Machine Learning
  • portal do Azure (TI/Administração)
  • Suporte para gasodutos CI/CD MLOps utilizando as interfaces Azure CLI & REST/ARM

O que são pontos finais online?

Os pontos finais online são pontos finais que são usados para inferencing on-line (em tempo real). Em comparação com os pontos finais do lote, os pontos finais online contêm implementações que estão prontas para receber dados dos clientes e podem enviar respostas em tempo real.

O diagrama seguinte mostra um ponto final online que tem duas implementações, 'azul' e 'verde'. A implantação azul utiliza VMs com um CPU SKU, e executa v1 de um modelo. A implantação verde utiliza VMs com um GPU SKU, e utiliza v2 do modelo. O ponto final está configurado para encaminhar 90% do tráfego de entrada para a implantação azul, enquanto o verde recebe os restantes 10%.

Diagrama mostrando um ponto final dividindo o tráfego em duas missões.

Requisitos de implementações on-line

Para criar um ponto final online, tem de especificar os seguintes elementos:

  • Ficheiros de modelos (ou especificar um modelo registado na área de trabalho)
  • Script de classificação – código necessário para realizar a classificação/inferência
  • Ambiente – uma imagem do Docker com dependências do Conda ou um dockerfile
  • Definições de escala de instância & de cálculo

Saiba como implementar pontos finais online a partir do CLI e do portal web do estúdio.

Teste e implemente localmente para uma depuragem mais rápida

Implemente localmente para testar os seus pontos finais sem implantar na nuvem. Azure Machine Learning cria uma imagem local do Docker que imita a imagem Azure ML. O Azure Machine Learning irá construir e executar implementações para si localmente, e cache a imagem para iterações rápidas.

Implantação nativa azul/verde

Lembre-se, que um único ponto final pode ter múltiplas implementações. O ponto final on-line pode fazer o equilíbrio de carga para dar qualquer percentagem de tráfego a cada implantação.

A atribuição de tráfego pode ser utilizada para fazer implantações seguras de lançamento azul/verde, equilibrando pedidos entre diferentes instâncias.

Dica

Um pedido pode contornar o equilíbrio configurado da carga de tráfego, incluindo um cabeçalho HTTP de azureml-model-deployment. Desa estada o valor do cabeçalho para o nome da implantação que pretende que o pedido de encaminhamento para.

Screenshot mostrando interface de slider para definir alocação de tráfego entre implementações.

Diagrama mostrando um ponto final dividindo o tráfego em duas missões.

O tráfego para uma implantação também pode ser espelhado (copiado) para outra implantação. O espelhamento é útil quando se pretende testar coisas como latência de resposta ou condições de erro sem afetar clientes vivos. Por exemplo, uma implantação azul/verde onde 100% do tráfego é encaminhado para azul e 10% é espelhado para a implantação verde. Com o espelhamento, os resultados do tráfego para a implantação verde não são devolvidos aos clientes, mas métricas e registos são recolhidos. A funcionalidade de tráfego de espelhos é uma funcionalidade de pré-visualização .

Diagrama mostrando um ponto final espelhando o tráfego para uma implantação.

Aprenda a lançar com segurança para pontos finais online.

Integração de Insights de Aplicação

Todos os pontos finais online integram-se com a Application Insights para monitorizar SLAs e diagnosticar problemas.

No entanto , os pontos finais online geridos também incluem integração fora da caixa com Logs Azure e Azure Metrics.

Segurança

  • Autenticação: Tokens ML chave e azul
  • Identidade gerida: Utilizador designado e sistema atribuído
  • SSL por padrão para invocação de ponto final

Dimensionamento automático

A autoescala executa automaticamente a quantidade certa de recursos para lidar com a carga na sua aplicação. Os pontos finais geridos suportam a autoescalagem através da integração com a função de autoescala do monitor Azure . Pode configurar o escalonamento baseado em métricas (por exemplo, utilização >de CPU 70%), escalamento baseado em horários (por exemplo, regras de escala para horas de trabalho de pico), ou uma combinação.

Screenshot mostrando que a autoescala flexível fornece entre instâncias min e max, dependendo das regras.

Visual Studio Code debugging (Depuração do Visual Studio Code)

O Código do Estúdio Visual permite-lhe depurar interativamente pontos finais.

Screenshot do ponto final depuração em VSCode.

Suporte privado de ponto final (pré-visualização)

Opcionalmente, pode garantir a comunicação com um ponto final gerido online utilizando pontos finais privados. Atualmente, esta funcionalidade está em pré-visualização.

Importante

Esta funcionalidade encontra-se atualmente em visualização pública. Esta versão de pré-visualização é fornecida sem um acordo de nível de serviço, e não é recomendado para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Pode configurar a segurança para pedidos de pontuação de entrada e comunicações de saída com o espaço de trabalho e outros serviços separadamente. As comunicações de entrada utilizam o ponto final privado do espaço de trabalho Azure Machine Learning. As comunicações de saída utilizam pontos finais privados criados por implantação.

Para mais informações, consulte os pontos finais online Secure.

Endpoints online geridos vs Kubernetes pontos finais on-line

Existem dois tipos de pontos finais online: pontos finais online geridos e pontos finais online kubernetes.

Os pontos finais online geridos ajudam a implementar os seus modelos ML de forma chave na mão. Os pontos finais online geridos funcionam com poderosas máquinas de CPU e GPU em Azure de uma forma escalável e totalmente gerida. Os pontos finais online geridos cuidam de servir, escalar, proteger e monitorizar os seus modelos, libertando-o da sobrecarga de configuração e gestão da infraestrutura subjacente. O principal exemplo neste doc utiliza pontos finais geridos online para implantação.

O ponto final online da Kubernetes permite-lhe implementar modelos e servir pontos finais online no seu cluster Kubernetes totalmente configurado e gerido em qualquer lugar, com CPUs ou GPUs.

A tabela seguinte destaca as principais diferenças entre os pontos finais online geridos e os pontos finais online da Kubernetes.

Pontos finais online geridos Pontos finais online do Kubernetes
Utilizadores recomendados Utilizadores que desejam uma implementação do modelo gerido e uma experiência melhorada do MLOps Utilizadores que preferem o Kubernetes e podem autogerir requisitos de infraestrutura
Gestão da infraestrutura Aprovisionamento de computação gerida, dimensionamento, atualizações de imagem do SO do anfitrião e reforço da segurança Responsabilidade do utilizador
Tipo de computação Gerido (AmlCompute) Cluster do Kubernetes (Kubernetes)
Monitorização inicial Monitorização do Azure
(inclui métricas-chave como a latência e o débito)
Suportado
Registo inicial Registos do Azure e Log Analytics ao nível do ponto final Não suportado
Application Insights Suportado Suportado
Identidade gerida Suportado Suportado
Rede Virtual (VNET) Suportado (pré-visualização) Suportado
Ver custos Nível do ponto final e de implementação Nível do cluster
Tráfego espelhado Suportado Não suportado

Pontos finais online geridos

Os pontos finais online geridos podem ajudar a agilizar o seu processo de implementação. Os pontos finais online geridos proporcionam os seguintes benefícios sobre os pontos finais online da Kubernetes:

  • Infraestrutura gerida

    • Fornece automaticamente o cálculo e hospeda o modelo (basta especificar as definições de tipo VM e escala)
    • Atualiza e corrige automaticamente a imagem de HOSPEDEIRO subjacente
    • Recuperação automática do nó se houver uma falha no sistema
  • Monitorização e registos

    • Monitorar a disponibilidade, desempenho e SLA do modelo utilizando a integração nativa com o Azure Monitor.
    • Implementações de depuração usando os registos e integração nativa com a Azure Log Analytics.

    Screenshot mostrando gráfico do Monitor Azure da latência do ponto final.

  • Ver custos

    Gráfico de custos de screenshot de um ponto final e implantação.

    Nota

    Os pontos finais online geridos são baseados no cálculo Azure Machine Learning. Ao utilizar um ponto final gerido online, paga-se os custos de computação e networking. Não há sobretaxa adicional.

    Se utilizar uma rede virtual e proteger o tráfego de saída (saída) a partir do ponto final online gerido, há um custo adicional. Para a saída, três pontos finais privados são criados por implementação para o ponto final online gerido. Estes são usados para comunicar com a conta de armazenamento padrão, Azure Container Registry e espaço de trabalho. Podem ser aplicadas taxas adicionais de ligação em rede. Para obter mais informações sobre os preços, consulte a calculadora de preços da Azure.

Para um tutorial passo a passo, consulte Como implementar pontos finais online.

O que são pontos finais do lote?

Os pontos finais do lote são pontos finais que são usados para fazer inferenculação de lotes em grandes volumes de dados durante um período de tempo. Os pontos finais do lote recebem ponteiros para dados e gerem empregos assíncronos para processar os dados em paralelo em clusters de computação. Os pontos finais em lote armazenam as saídas num arquivo de dados para posterior análise.

Diagrama que mostra que um único ponto final do lote pode encaminhar pedidos para várias implementações, uma das quais é o padrão.

Requisitos de implantação de lotes

Para criar uma implementação em lote, tem de especificar os seguintes elementos:

  • Ficheiros de modelo (ou especificar um modelo registado na área de trabalho)
  • Computação
  • Script de classificação – código necessário para realizar a classificação/inferência
  • Ambiente – uma imagem do Docker com dependências do Conda

Se estiver a implementar modelos MLFlow, não há necessidade de fornecer um script de pontuação e um ambiente de execução, uma vez que ambos são autogeridos.

Saiba como implementar e utilizar pontos finais de lote com o Azure CLI e o portal web do estúdio

Custo gerido com cálculo auto-caling

Invocar um ponto final de lote desencadeia um trabalho de inferência de lote assíncronos. Os recursos de cálculo são automaticamente a provisionados quando o trabalho começa, e automaticamente desatribuidos à medida que o trabalho termina. Então, só se paga pelo cálculo quando se usa.

Pode sobrepor as definições de recursos computacional (como a contagem de exemplos) e as definições avançadas (como o tamanho do mini lote, o limiar de erro, e assim por diante) para cada trabalho de inferência de lote individual para acelerar a execução e reduzir o custo.

Fontes de dados flexíveis e armazenamento

Pode utilizar as seguintes opções para introduzir dados ao invocar um ponto final do lote:

  • Dados em nuvem - Ou um caminho na Azure Machine Learning registou datastore, uma referência a Azure Machine Learning registou um ativo de dados V2 registado, ou um URI público. Para obter mais informações, consulte Ligar os dados com o estúdio do Azure Machine Learning
  • Dados armazenados localmente - será automaticamente enviado para a loja de dados registada Azure ML e passado para o ponto final do lote.

Nota

  • Se estiver a utilizar o V1 FileDataset existente para o ponto final do lote, recomendamos que os emigre para os ativos de dados V2 e consulte-os diretamente ao invocar pontos finais do lote. Atualmente apenas os ativos de dados do tipo uri_folder ou uri_file são suportados. Os pontos finais de lote criados com GA CLIv2 (2.4.0 e mais recente) ou GA REST API (2022-05-01 e mais recente) não suportam o Conjunto de Dados V1.
  • Também pode extrair o URI ou o caminho na datastore extraído do V1 FileDataset utilizando az ml dataset show o comando com --query parâmetro e utilizar essa informação para invocar.
  • Embora os pontos finais do Batch criados com APIs anteriores continuem a suportar o V1 FileDataset, estaremos adicionando mais suporte aos ativos de dados V2 com as versões API mais recentes para ainda mais usabilidade e flexibilidade. Para obter mais informações sobre os ativos de dados V2, consulte Trabalhar com dados utilizando SDK v2 (pré-visualização). Para mais informações sobre a nova experiência V2, consulte O que é v2.

Para obter mais informações sobre as opções de entrada suportadas, consulte a pontuação do Lote com o ponto final do lote.

Especifique o local de saída de armazenamento para qualquer datastore e caminho. Por predefinição, os pontos finais do lote armazenam a sua saída na loja blob padrão do espaço de trabalho, organizada pelo Nome de Trabalho (um GUID gerado pelo sistema).

Segurança

  • Autenticação: Tokens do Diretório Ativo Azure
  • SSL: ativado por padrão para invocação de ponto final
  • Suporte VNET: Os pontos finais do lote suportam a proteção contra a entrada. Um ponto final de lote com proteção de entrada aceitará pedidos de pontuação apenas de anfitriões dentro de uma rede virtual, mas não da internet pública. Um ponto final de lote que é criado num espaço de trabalho ativado por ligações privadas terá proteção de entrada. Para criar um espaço de trabalho com ligação privada, consulte Criar um espaço de trabalho seguro.

Nota

A criação de pontos finais de lote num espaço de trabalho ativado por ligações privadas só é suportada nas seguintes versões.

  • CLI - versão 2.15.1 ou superior.
  • REST API - versão 2022-05-01 ou superior.
  • SDK V2 - versão 0.1.0b3 ou superior.

Passos seguintes