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)

Com o Azure Machine Learning CLI/Python SDK v2, o Azure Machine Learning introduziu um novo destino de computação - Kubernetes compute target. Você pode habilitar facilmente um cluster existente do Serviço Kubernetes do Azure (AKS) ou um cluster do Kubernetes habilitado para o Azure Arc (Arc Kubernetes) para se tornar um destino de computação do Kubernetes no Aprendizado de Máquina do Azure e usá-lo para treinar ou implantar modelos.

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

Neste artigo, você aprende sobre:

  • Como funciona
  • Cenários de utilização
  • Práticas recomendadas
  • KubernetesCompute e AksCompute legado

Como funciona

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

  • Cluster 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 ML das equipes.
  • Cluster do Arc Kubernetes fora do Azure. Com o cluster Arc Kubernetes, você pode treinar ou implantar modelos em qualquer infraestrutura local, em multicloud ou na borda.

Com uma implantação de extensão de cluster simples no cluster AKS ou Arc Kubernetes, o cluster Kubernetes tem suporte direto no Aprendizado de Máquina do Azure para executar treinamento ou carga de trabalho de inferência. É fácil habilitar e usar um cluster Kubernetes existente para a carga de trabalho do Azure Machine Learning com as seguintes etapas simples:

  1. Prepare um cluster do Serviço Kubernetes do Azure ou um cluster do Arc Kubernetes.
  2. Implante a extensão do Azure Machine Learning.
  3. Anexe o cluster Kubernetes ao seu espaço de trabalho do Azure Machine Learning.
  4. Use o destino de computação do Kubernetes da CLI v2, SDK v2 e da interface do usuário do Studio.

Equipe de operação de TI. A equipe de operação de TI é responsável pelas três primeiras etapas: preparar um cluster AKS ou Arc Kubernetes, implantar a extensão de cluster do Azure Machine Learning e anexar o cluster do Kubernetes ao espaço de trabalho do Azure 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 CLI do Azure ou kubectl, para cuidar das seguintes tarefas para a equipe de ciência de dados:

  • Configurações de rede e segurança, como conexão de servidor proxy de saída ou configuração de 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 ML e obtenha uma utilização eficiente dos recursos de computação.
  • Resolução de problemas de carga de trabalho relacionados ao cluster Kubernetes.

Equipa de ciência de dados. Quando a equipe de operações de TI concluir a configuração de computação e a criação do(s) destino(s) de computação, a equipe de ciência de dados poderá descobrir uma lista de destinos de computação e tipos de instância disponíveis no espaço de trabalho do Azure Machine Learning. Esses recursos de computação podem ser usados para treinamento ou carga de trabalho de inferência. A 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. Por exemplo, esses nomes podem ser CLI do Azure Machine Learning v2, Python SDK v2 ou Studio UI.

Cenários de uso do Kubernetes

Com o cluster do Arc Kubernetes, você pode criar, treinar e implantar modelos em qualquer infraestrutura local e em várias nuvens usando o Kubernetes. Isso abre alguns novos padrões de uso que antes não eram possíveis no ambiente de configuração de nuvem. A tabela a seguir fornece um resumo dos novos padrões de uso habilitados pela computação do Kubernetes do Azure Machine Learning:

Padrão de utilização Localização dos dados Motivação Configuração de infra & Implementação do Azure Machine Learning
Treinar modelo na nuvem, implantar modelo local Cloud Faça uso da computação em nuvem. Seja devido a necessidades de computação elástica ou hardware especial, como uma GPU.
O modelo deve ser implantado no local devido a requisitos de segurança, conformidade ou latência
1. Computação gerenciada do Azure na nuvem.
2. Kubernetes gerenciado pelo cliente no local.
3. MLOps totalmente automatizados no modo híbrido, incluindo etapas de treinamento e implantação de modelo em transição perfeita da nuvem para o local e vice-versa.
4. Repetível, com todos os ativos rastreados corretamente. O modelo é retreinado quando necessário e a implantação do modelo é atualizada automaticamente após o retreinamento.
Treine o modelo local e na nuvem, implante na nuvem e no local Cloud Organizações que desejam combinar investimentos locais com escalabilidade na nuvem. Coloque a computação na nuvem e no local sob um único painel de vidro. Uma única fonte de verdade para os dados está localizada na nuvem, pode ser replicada para o local (ou seja, preguiçosamente no uso ou proativamente). O uso principal da computação em nuvem ocorre quando os recursos locais não estão disponíveis (em uso, manutenção) ou não têm requisitos de hardware específicos (GPU). 1. Computação gerenciada do Azure na nuvem.
2. Kubernetes gerenciado pelo cliente no local.
3. MLOps totalmente automatizados no modo híbrido, incluindo etapas de treinamento e implantação de modelo em transição perfeita da nuvem para o local e vice-versa.
4. Repetível, com todos os ativos rastreados corretamente. O modelo é retreinado quando necessário e a implantação do modelo é atualizada automaticamente após o retreinamento.
Treinar modelo no local, implantar modelo na nuvem No local Os dados devem permanecer no local devido aos requisitos de residência de dados.
Implante o modelo na nuvem para acesso a serviços globais ou para elasticidade de computação para escala e taxa de transferência.
1. Computação gerenciada do Azure na nuvem.
2. Kubernetes gerenciado pelo cliente no local.
3. MLOps totalmente automatizados no modo híbrido, incluindo etapas de treinamento e implantação de modelo em transição perfeita da nuvem para o local e vice-versa.
4. Repetível, com todos os ativos rastreados corretamente. O modelo é retreinado quando necessário e a implantação do modelo é atualizada automaticamente após o retreinamento.
Traga seu próprio AKS no Azure Cloud Mais segurança e controlos.
Todo o aprendizado de máquina IP privado para evitar a exfiltração de dados.
1. Cluster AKS atrás de uma rede virtual do Azure.
2. Crie pontos de extremidade privados na mesma rede virtual para o espaço de trabalho do Azure Machine Learning e seus recursos associados.
3. MLOps totalmente automatizado.
Ciclo de vida completo do ML no local No local Proteja dados confidenciais ou IP proprietário, como modelos de ML e código/scripts. 1. Conexão do servidor proxy de saída no local.
2. Azure ExpressRoute e Azure Arc link privado para recursos do Azure.
3. Kubernetes gerenciado pelo cliente no local.
4. MLOps totalmente automatizados.

Limitações

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.
    • Limitação identificada: 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.

Separação de responsabilidades entre a equipe de operações de TI e a equipe de ciência de dados. Como mencionamos na seção anterior, gerenciar sua própria computação e infraestrutura para carga de trabalho de ML é uma tarefa complexa. É melhor ser feito pela equipe de operações de TI para que a equipe de ciência de dados possa se concentrar em modelos de ML para eficiência organizacional.

Crie e gerencie tipos de instância para diferentes cenários de carga de trabalho de ML. Cada carga de trabalho de ML 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 definição de recurso personalizada (CRD) do Kubernetes com propriedades de nodeSelector e solicitação/limite de recursos. Com uma lista cuidadosamente selecionada de tipos de instância, as operações de TI podem direcionar a carga de trabalho de ML 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 o cluster Kubernetes várias vezes ao mesmo espaço de trabalho do Azure Machine Learning ou a diferentes espaços de trabalho do Azure Machine Learning, criando vários destinos de computação em um ou vários espaços de trabalho. Como muitos clientes organizam projetos de ciência de dados em torno do espaço de trabalho do Azure Machine Learning, vários projetos de ciência de dados agora podem compartilhar o mesmo cluster do Kubernetes. Isso reduz significativamente as despesas gerais de gerenciamento de infraestrutura de ML e a economia de custos de TI.

Isolamento da carga de trabalho da equipe/projeto usando o namespace Kubernetes. Ao anexar o cluster Kubernetes ao espaço de trabalho do Azure Machine Learning, 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.

KubernetesCompute e AksCompute legado

Com o Azure Machine Learning CLI/Python SDK v1, você pode implantar modelos no AKS usando o destino AksCompute. Tanto o destino KubernetesCompute quanto o destino AksCompute suportam a integração AKS, no entanto, eles suportam de forma diferente. A tabela a seguir mostra suas principais diferenças:

Capacidades Integração do AKS com AksCompute (legado) Integração do AKS com KubernetesCompute
CLI/SDK v1 Yes No
CLI/SDK v2 No Yes
Formação No Yes
Inferência em tempo real Yes Yes
Inferência de lote No Yes
Novas funcionalidades da inferência em tempo real Sem desenvolvimento de novas funcionalidades Mapa de objetivos ativo

Com essas diferenças principais e a evolução geral do Azure Machine Learning para usar SDK/CLI v2, o Azure Machine Learning recomenda que você use o destino de computação do Kubernetes para implantar modelos se decidir usar o AKS para implantação de modelo.

Outros recursos

Exemplos

Todos os exemplos do Azure Machine Learning podem ser encontrados em https://github.com/Azure/azureml-examples.git.

Para qualquer exemplo do Azure Machine Learning, você só precisa atualizar o nome do destino de computação para o seu destino de computação do Kubernetes, então você está pronto.

Próximos passos