Partilhar via


Introdução ao destino de computação do Kubernetes no Azure Machine Learning

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

A CLI do Azure Machine Learning e o SDK do Python v2 fornecem suporte para um destino de computação do Kubernetes. Você pode habilitar um cluster existente do Serviço Kubernetes do Azure (AKS) ou um cluster do Kubernetes habilitado para Azure Arc (Arc Kubernetes) como um destino de computação do Kubernetes. Use a computação no Machine Learning para treinar ou implantar modelos.

Diagrama ilustrando como o Azure Machine Learning se conecta ao Kubernetes.

Este artigo descreve como você pode usar o destino de computação do Kubernetes no Machine Learning, incluindo cenários de uso, práticas recomendadas recomendadas e uma comparação dos KubernetesCompute destinos herdados AksCompute .

Como funciona o destino de computação do Kubernetes

A computação do Kubernetes do Azure Machine Learning dá suporte a dois tipos de cluster Kubernetes.

Computação Location Description
Cluster do AKS No Azure Com seu cluster AKS autogerenciado no Azure, você pode obter segurança e controles para atender aos requisitos de conformidade e flexibilidade para gerenciar a carga de trabalho de aprendizado de máquina da sua equipe.
Cluster Arc Kubernetes Fora do Azure Com o cluster do Arc Kubernetes, você pode treinar ou implantar modelos em qualquer infraestrutura local ou multicloud, ou na borda.

Com uma implantação simples de extensão de cluster no cluster AKS ou Arc Kubernetes, o cluster Kubernetes é perfeitamente suportado no Machine Learning para executar treinamento ou carga de trabalho de inferência. É fácil habilitar e usar um cluster Kubernetes existente para carga de trabalho de Machine Learning com o seguinte processo:

Aqui estão as principais responsabilidades neste processo:

  • A equipe de operação de TI é responsável pelas etapas 1, 2 e 3. Essa equipe prepara um cluster AKS ou Arc Kubernetes, implanta a extensão de cluster do Machine Learning e anexa o cluster do Kubernetes ao espaço de trabalho do Machine Learning. Além dessas etapas essenciais de configuração de computação, a equipe de operação de TI também usa ferramentas familiares, como a CLI do Azure ou kubectl, para concluir as seguintes tarefas para a equipe de ciência de dados:

    • Configure opções de rede e segurança, como conexão de servidor proxy de saída ou firewall do Azure, configuração do roteador de inferência (azureml-fe), terminação SSL/TLS e configuração de rede virtual.

    • Crie e gerencie tipos de instância para diferentes cenários de carga de trabalho de aprendizado de máquina e obtenha uma utilização eficiente dos recursos de computação.

    • Solucione problemas de carga de trabalho relacionados ao cluster Kubernetes.

  • A equipe de ciência de dados começa suas tarefas depois que a equipe de operações de TI conclui a configuração de computação e a criação dos destinos de computação. Essa equipe descobre uma lista de destinos de computação e tipos de instância disponíveis no espaço de trabalho do Aprendizado de Máquina. Os recursos de computação podem ser usados para treinamento ou carga de trabalho de inferência. A equipe de ciência de dados especifica o nome do destino de computação e o nome do tipo de instância usando suas ferramentas ou APIs preferidas. Eles podem usar a CLI do Azure Machine Learning v2, o Python SDK v2 ou a interface do usuário do estúdio de Machine Learning.

Cenários de uso do Kubernetes

Com o cluster Arc Kubernetes, você pode criar, treinar e implantar modelos em qualquer infraestrutura local e multicloud usando o Kubernetes. Essa estratégia abre alguns novos padrões de uso que antes não eram possíveis em um ambiente de configuração de nuvem. A tabela a seguir fornece um resumo dos novos padrões de uso habilitados quando você trabalha com a computação do Kubernetes do Azure Machine Learning:

Padrão de utilização Localização dos dados Objetivos e requisitos Configuração do cenário
Treinar modelo na nuvem, implantar modelo local Cloud Use a computação em nuvem para dar suporte às necessidades de computação elástica ou hardware especial, como uma GPU.

A implantação do modelo deve ser local para requisitos de segurança, conformidade ou latência.
- Computação gerenciada pelo Azure na nuvem
- Kubernetes on-premises gerenciado pelo cliente
- Operações de aprendizado de máquina totalmente automatizadas no modo híbrido, incluindo etapas de treinamento e implantação de modelo que fazem a transição perfeita entre a nuvem e o local
- Repetível, todos os ativos devidamente rastreados, modelo retreinado conforme necessário, implantação atualizada automaticamente após o retreinamento
Treine o modelo local e na nuvem, implante na nuvem e no local Cloud Combine investimentos locais com escalabilidade na nuvem.

Coloque a computação na nuvem e no local sob um único painel de vidro.

Acesse uma única fonte de verdade para dados na nuvem e replique no local (preguiçosamente no uso ou proativamente).

Habilite o uso primário da computação na nuvem quando os recursos locais não estiverem disponíveis (em uso ou em manutenção) ou não atenderem aos requisitos de hardware (GPU) específicos.
- Computação gerenciada pelo Azure na nuvem.
Kubernetes local gerenciado pelo cliente
- Operações de aprendizado de máquina totalmente automatizadas no modo híbrido, incluindo etapas de treinamento e implantação de modelo que fazem a transição perfeita entre a nuvem e o local
- Repetível, todos os ativos devidamente rastreados, modelo retreinado conforme necessário, implantação atualizada automaticamente após o retreinamento
Treinar modelo no local, implantar modelo na nuvem No local Armazene dados no local para atender aos requisitos de residência de dados.

Implante o modelo na nuvem para acesso a serviços globais ou para habilitar a elasticidade computacional para escala e taxa de transferência.
- Computação gerenciada pelo Azure na nuvem
- Kubernetes on-premises gerenciado pelo cliente
- Operações de aprendizado de máquina totalmente automatizadas no modo híbrido, incluindo etapas de treinamento e implantação de modelo que fazem a transição perfeita entre a nuvem e o local
- Repetível, todos os ativos devidamente rastreados, modelo retreinado conforme necessário, implantação atualizada automaticamente após o retreinamento
Traga seu próprio AKS no Azure Cloud Ganhe mais segurança e controles.

Estabeleça todo o aprendizado de máquina IP privado para evitar a exfiltração de dados.
- Cluster AKS atrás de uma rede virtual do Azure
- Pontos de extremidade privados na mesma rede virtual para o espaço de trabalho do Azure Machine Learning e recursos associados
Operações de aprendizado de máquina totalmente automatizadas
Ciclo de vida completo do aprendizado de máquina local No local Proteja dados confidenciais ou IP proprietário, como modelos de aprendizado de máquina, código e scripts. - Conexão de servidor proxy de saída no local
- Azure ExpressRoute e Azure Arc link privado para recursos do Azure
- Kubernetes on-premises gerenciado pelo cliente
- Operações de machine learning totalmente automatizadas

Limitações para o destino de computação do Kubernetes

Um KubernetesCompute destino nas cargas de trabalho do Azure Machine Learning (treinamento e inferência de modelo) tem as seguintes limitações:

  • A disponibilidade dos recursos de visualização no Azure Machine Learning não é garantida.
  • Os modelos (incluindo o modelo fundamental) do Catálogo de Modelos e do Registro não são suportados nos pontos de extremidade online do Kubernetes.
  • O processo de criação de uma implantação de inferência de modelo dentro do cluster tem um limite de tempo limite de 20 minutos. Isso inclui baixar a imagem, baixar o modelo e inicializar os scripts do usuário.

Esta seção resume as práticas recomendadas para trabalhar com uma computação do Kubernetes.

Separação de responsabilidades entre a equipe de operações de TI e a equipe de ciência de dados. Conforme descrito anteriormente, gerenciar sua própria computação e infraestrutura para carga de trabalho de aprendizado de máquina é uma tarefa complexa. A melhor abordagem é fazer com que a equipe de operações de TI lide com a tarefa, para que a equipe de ciência de dados possa se concentrar em modelos de aprendizado de máquina para eficiência organizacional.

Crie e gerencie tipos de instância para diferentes cenários de carga de trabalho de aprendizado de máquina. Cada carga de trabalho de aprendizado de máquina usa quantidades diferentes de recursos de computação, como CPU/GPU e memória. O Azure Machine Learning implementa o tipo de instância como uma definição de recurso personalizada (CRD) do Kubernetes com propriedades de nodeSelector e resource request/limit. Com uma lista cuidadosamente selecionada de tipos de instância, as operações de TI podem direcionar a carga de trabalho de aprendizado de máquina em nós específicos e gerenciar a utilização de recursos de computação de forma eficiente.

Vários espaços de trabalho do Azure Machine Learning compartilham o mesmo cluster do Kubernetes. Você pode anexar um cluster Kubernetes várias vezes ao mesmo espaço de trabalho do Machine Learning ou a espaços de trabalho diferentes. Esse processo cria vários destinos de computação em um único espaço de trabalho ou em vários espaços de trabalho. Como muitos clientes organizam projetos de ciência de dados em torno do espaço de trabalho de Aprendizado de Máquina, vários projetos de ciência de dados agora podem compartilhar o mesmo cluster do Kubernetes. Essa abordagem reduz significativamente as despesas gerais de gerenciamento de infraestrutura de aprendizado de máquina e melhora a economia de custos de TI.

Isolamento da carga de trabalho da equipe/projeto usando o namespace Kubernetes. Ao anexar um cluster Kubernetes a um espaço de trabalho de Aprendizado de Máquina, você pode especificar um namespace Kubernetes para o destino de computação. Todas as cargas de trabalho executadas pelo destino de computação são colocadas sob o namespace especificado.

Comparação entre KubernetesCompute e destinos AksCompute herdados

Com a CLI do Azure Machine Learning / Python SDK v1, você pode implantar modelos no AKS usando o destino herdado AksCompute . Tanto o como AksCompute os alvos apoiam a KubernetesCompute integração do AKS, mas a abordagem de apoio é diferente. A tabela a seguir resume as principais diferenças:

Funcionalidade AksCompute (legado) KubernetesCompute
Usar a CLI/SDK v1 Sim No
Usar a CLI/SDK v2 Não Sim
Configurar formação Não Sim
Aplicar inferência em tempo real Sim Sim
Aplicar inferência em lote Não Sim
Aceda a novas funcionalidades para inferência em tempo real Sem desenvolvimento de novas funcionalidades Roteiro ativo disponível

Em consideração a essas diferenças e a evolução geral do Machine Learning para usar a CLI/SDK v2, a abordagem recomendada é usar o destino de computação do Kubernetes (KubernetesCompute) para a implantação do modelo AKS.

Para obter mais informações, explore os seguintes artigos:

Exemplos de aprendizagem automática

Exemplos de aprendizado de máquina estão disponíveis no repositório do Azure Machine Learning (azureml-examples) no GitHub. Em qualquer exemplo, substitua o nome do destino de computação pelo destino de computação do Kubernetes e execute o exemplo.

Aqui estão várias opções: