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

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Com o SDK v2 do Python/a CLI do Azure Machine Learning, o Azure Machine Learning introduziu um novo destino de computação: destino de computação do Kubernetes. Você pode habilitar com facilidade um cluster do AKS (Serviço de Kubernetes do Azure) existente ou um cluster do Kubernetes para Azure Arc (Kubernetes habilitado para Arc) como um destino de computação do Kubernetes no Azure Machine Learning e usá-lo para treinar ou implantar modelos.

Diagrama que ilustra como o Azure Machine Learning se conecta ao Kubernetes.

Neste artigo, você aprenderá sobre:

  • Como funciona
  • Cenários de uso
  • Práticas recomendadas
  • KubernetesCompute e AksCompute herdado

Como funciona

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

  • Clusters do AKS no Azure. Com o cluster do AKS autogerenciado no Azure, você pode obter segurança e controles para atender aos requisitos de conformidade, bem como flexibilidade para gerenciar a carga de trabalho de ML das equipes.
  • Cluster do Kubernetes do Arc fora do Azure. Com o cluster do Kubernetes do Arc, você pode treinar ou implantar modelos em qualquer infraestrutura local, em várias nuvens ou na borda.

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

  1. Preparar um cluster do Serviço de Kubernetes do Azure ou um cluster do Kubernetes do Arc.
  2. Implantar a extensão do Azure Machine Learning.
  3. Anexar o cluster do Kubernetes a um workspace do Azure Machine Learning.
  4. Use o destino de computação Kubernetes da CLI v2, do SDK v2 e da interface do usuário do Estúdio.

Equipe de operação de TI. A equipe de operação de TI é responsável pelas três primeiras etapas: preparar um cluster do AKS ou Arc Kubernetes, implantar a extensão de cluster do Azure Machine Learning e anexar o cluster do Kubernetes ao workspace 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 a CLI do Azure ou o 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 de recursos de computação.
  • Solução de problemas de carga de trabalho relacionados ao cluster do Kubernetes.

Equipe de ciência de dados. Depois que a equipe de operações de TI concluir a configuração da computação e a criação de destinos de computação, a equipe de ciência de dados poderá descobrir uma lista de destinos de computação e tipos de instâncias disponíveis no workspace do Azure Machine Learning. Esses recursos de computação podem ser usados para carga de trabalho de treinamento ou inferência. A ciência de dados especifica o nome de destino de computação e o nome do tipo de instância usando suas APIs ou ferramentas preferenciais. Por exemplo, esses nomes podem ser a CLI do Azure Machine Learning v2, o SDK do Python v2 ou a interface do usuário do estúdio.

Cenários de uso do Kubernetes

Com o cluster do Kubernetes do Arc, 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 seguinte tabela fornece um resumo dos novos padrões de uso habilitados pela computação do Kubernetes do Azure Machine Learning:

Padrão de uso Localização dos dados Motivação Configuração da infraestrutura e implementação do Azure Machine Learning
Treinar modelo na nuvem, implantar modelo local Nuvem Usar a computação em nuvem. Por causa de necessidades de computação elástica ou hardware especial, como uma GPU.
O modelo precisa ser implantado localmente devido aos requisitos de segurança, conformidade ou latência
1. Computação gerenciada do Azure na nuvem.
2. Kubernetes gerenciado pelo cliente localmente.
3. MLOps totalmente automatizados no modo híbrido, incluindo etapas de treinamento e implantação de modelo que fazem a transição direta da nuvem para o local e vice-versa.
4. Repetível, com todos os ativos controlados corretamente. O modelo é treinado novamente quando necessário e a implantação de modelo é atualizada automaticamente após o novo treinamento.
Treine o modelo no local e na nuvem, implante na nuvem e no local Nuvem Organizações que desejam combinar investimentos locais com escalabilidade na nuvem. Coloque a computação na nuvem e no local em um único painel de controle. Uma única fonte de verdade para dados está localizada na nuvem, pode ser replicada para o local (ou seja, preguiçosamente em uso ou proativamente). O uso primário da computação em nuvem é 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 localmente.
3. MLOps totalmente automatizados no modo híbrido, incluindo etapas de treinamento e implantação de modelo que fazem a transição direta da nuvem para o local e vice-versa.
4. Repetível, com todos os ativos controlados corretamente. O modelo é treinado novamente quando necessário e a implantação de modelo é atualizada automaticamente após o novo treinamento.
Treinar o modelo localmente, implantar o modelo na nuvem Local Os dados precisam permanecer locais devido aos requisitos de residência de dados.
Implante o modelo na nuvem para acesso ao serviço global ou para elasticidade de computação visando escala e taxa de transferência.
1. Computação gerenciada do Azure na nuvem.
2. Kubernetes gerenciado pelo cliente localmente.
3. MLOps totalmente automatizados no modo híbrido, incluindo etapas de treinamento e implantação de modelo que fazem a transição direta da nuvem para o local e vice-versa.
4. Repetível, com todos os ativos controlados corretamente. O modelo é treinado novamente quando necessário e a implantação de modelo é atualizada automaticamente após o retreinamento.
Traga seu próprio AKS no Azure Nuvem Mais segurança e controles.
Todo o aprendizado de máquina de IP privado para evitar a exfiltração dos dados.
1. Cluster do AKS por trás de uma rede virtual do Azure.
2. Crie pontos de extremidade privados na mesma rede virtual para o workspace do Azure Machine Learning e seus recursos associados.
3. MLOps totalmente automatizada.
Ciclo de vida de ML completo local Local Proteja dados confidenciais ou IP proprietário, como modelos de ML e código/scripts. 1. Conexão de servidor proxy de saída local.
2. Azure ExpressRoute e link privado do Azure Arc para recursos do Azure.
3. Kubernetes gerenciado pelo cliente localmente.
4. MLOps totalmente automatizada.

Limitações

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

  • A disponibilidade de versões prévias de recursos 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 em ponto 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 que isso seja 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 diferentes quantidades de recursos de computação, como CPU/GPU e memória. O Azure Machine Learning implementa o tipo de instância como CRD (definição de recurso personalizado) do Kubernetes com as 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 carga de trabalho de ML em nós específicos e gerenciar a utilização de recursos de computação com eficiência.

Workspaces múltiplos do Azure Machine Learning compartilham um cluster do Kubernetes. Você pode anexar o cluster do Kubernetes várias vezes ao mesmo workspace do Azure Machine Learning ou a diferentes workspaces do Azure Machine Learning, criando vários destinos de computação em um workspace ou em vários workspaces. Como muitos clientes organizam projetos de ciência de dados em torno do workspace do Azure Machine Learning, projetos múltiplos de ciência de dados já podem compartilhar o mesmo cluster do Kubernetes. Isso reduz significativamente sobrecargas de gerenciamento de infraestrutura de ML e permite a economia de custos de TI.

Isolamento da carga de trabalho de equipe/projeto usando o namespace do Kubernetes. Ao anexar o cluster do Kubernetes ao workspace do Azure Machine Learning, você pode especificar um namespace do Kubernetes para o destino de computação. Todas as cargas de trabalho executadas pelo destino de computação são colocadas no namespace especificado.

KubernetesCompute e AksCompute herdado

Com a CLI do Azure Machine Learning/o SDK v1 do Python, você pode implantar modelos no AKS usando o destino AksCompute. O destino KubernetesCompute e o destino AksCompute dão suporte à integração do AKS, mas de um modo diferente. A tabela a seguir mostra as principais diferenças:

Funcionalidades Integração do AKS ao AksCompute (herdado) Integração do AKS ao KubernetesCompute
CLI e SDK v1 Sim No
CLI e SDK v2 Não Sim
Treinamento Não Sim
Inferência em tempo real Sim Sim
Inferência de lote No Yes
Novos recursos de inferência em tempo real Nenhum desenvolvimento de novos recursos Roteiro ativo

Com essas principais diferenças e a evolução geral do Azure Machine Learning para usar o SDK/a CLI v2, o Azure Machine Learning recomenda que você use o destino de computação do Kubernetes para implantar modelos caso você decida usar o AKS para a 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, basta atualizar o nome do destino de computação para o destino de computação do Kubernetes e pronto.

Próximas etapas