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.
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:
Etapa 1: Preparar um cluster do Serviço Kubernetes do Azure ou um cluster do Arc Kubernetes.
Etapa 2: Implantar a extensão de cluster do Azure Machine Learning.
Etapa 3: Anexe o cluster Kubernetes ao seu espaço de trabalho do Azure Machine Learning.
Etapa 4: Use o destino de computação do Kubernetes da CLI v2, SDK v2 ou da interface do usuário do estúdio Azure Machine Learning.
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.
Práticas recomendadas
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:
- Revise as versões e regiões do Kubernetes suportadas
- Conecte trabalhos de Machine Learning com armazenamento de dados personalizado
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:
- Exemplos de trabalho de treinamento com a CLI v2
- Exemplos de trabalho de treinamento com o SDK v2
- Implantação de modelo com exemplos de endpoint online e a CLI v2
- Implantação de modelo com exemplos de endpoint online e o SDK v2
- Amostras de ponto final em lote com a CLI v2