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)
A CLI do Azure Machine Learning e o Python SDK v2 fornecem suporte para um destino de computação do Kubernetes. Você pode habilitar um cluster do Serviço de Kubernetes do Azure (AKS) existente 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, melhores práticas recomendadas e uma comparação entre os destinos KubernetesCompute
e 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 do Kubernetes.
Computação | Localidade | Descrição |
---|---|---|
Cluster do AKS | No Azure | Com seu cluster AKS auto-gerenciado 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 do Kubernetes do Arc | Fora do Azure | Com o cluster Arc Kubernetes, você pode treinar ou implantar modelos em qualquer infraestrutura local ou multinuvem, ou na borda. |
Com uma simples implantação de extensão de cluster no AKS ou no cluster do Arc Kubernetes, o cluster do Kubernetes é perfeitamente compatível com o Machine Learning para executar cargas de trabalho de treinamento ou 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 de Kubernetes do Azure ou um cluster do Arc Kubernetes.
Etapa 2: Implantar a extensão de cluster do Azure Machine Learning.
Etapa 3: Anexar o cluster do Kubernetes ao seu Workspace do Azure Machine Learning.
Etapa 4: Usar o destino de computação do Kubernetes na CLI v2, no SDK v2 ou na interface do usuário do Estúdio do Azure Machine Learning.
Aqui estão as principais responsabilidades nesse 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 Kubernetes ao Workspace do Machine Learning. Além dessas etapas essenciais de configuração da computação, a equipe de operação de TI também usa ferramentas conhecidas, como a CLI do Azure ou o kubectl, para concluir as seguintes tarefas para a equipe de ciência de dados:
Configurar as opções de rede e segurança, como a conexão do servidor proxy de saída ou o firewall do Azure, configurar o roteador de inferência (azureml-fe), a terminação SSL/TLS e configurar a rede virtual.
Criar e gerenciar tipos de instância para diferentes cenários de carga de trabalho de aprendizado de máquina e obter uma utilização eficiente dos recursos de computação.
Solucionar problemas de carga de trabalho relacionados ao cluster do Kubernetes.
A Equipe de ciência de dados começa suas tarefas depois que a equipe de operações de TI termina a configuração da 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 Workspace do Machine Learning. Os recursos de computação podem ser usados para carga de trabalho de treinamento ou 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 v2 do Azure Machine Learning, o Python SDK v2 ou a interface do usuário do Estúdio do Machine Learning.
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 multinuvem 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 seguinte tabela 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 uso | Localização dos dados | Metas e requisitos | Configuração do cenário |
---|---|---|---|
Treinar modelo na nuvem, implantar modelo local | Nuvem | Use a computação em nuvem para dar suporte a necessidade de computação elástica ou hardware especial, como uma GPU. A implantação de modelo deve ser no local para requisitos de segurança, conformidade ou latência. |
- Computação gerenciada do Azure na nuvem - Kubernetes gerenciado pelo cliente no local - Operações de aprendizado de máquina totalmente automatizadas no modo híbrido, incluindo etapas de treinamento e implantação de modelos que fazem uma 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 no local e na nuvem, implante na nuvem e no local | Nuvem | Combinar investimentos no local com escalabilidade na nuvem. Coloque a computação na nuvem e no local em um único painel de controle. Acesse uma única fonte de verdade para dados na nuvem e replique no local (ociosamente no uso ou proativamente). Permitir o uso primário da computação em nuvem quando os recursos locais não estiverem disponíveis (em uso ou em manutenção) ou não atenderem a requisitos específicos de hardware (GPU). |
- Computação gerenciada do Azure na nuvem. Kubernetes gerenciado pelo cliente no local - Operações de aprendizado de máquina totalmente automatizadas no modo híbrido, incluindo etapas de treinamento e implantação de modelos que fazem uma 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 o modelo localmente, implantar o modelo na nuvem | No local | Armazenar dados no local para atender aos requisitos de residência de dados. Implante o modelo na nuvem para acesso ao serviço global ou para permitir a elasticidade da computação para dimensionamento e taxa de transferência. |
- Computação gerenciada do Azure na nuvem - Kubernetes gerenciado pelo cliente no local - Operações de aprendizado de máquina totalmente automatizadas no modo híbrido, incluindo etapas de treinamento e implantação de modelos que fazem uma 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 | Nuvem | Obtenha mais segurança e controles. Estabeleça todo o aprendizado de máquina de IP privado para evitar a exfiltração de dados. |
- Cluster AKS por trás de uma rede virtual do Azure - Pontos de extremidade privados na mesma rede virtual para o Workspace 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 no local | No local | Proteja dados confidenciais ou IP proprietário, como modelos, código e scripts de aprendizado de máquina. | - Conexão de servidor proxy de saída no local - Link privado do Azure ExpressRoute e do Azure Arc para recursos do Azure - Kubernetes gerenciado pelo cliente no local - Operações de aprendizado de máquina totalmente automatizadas |
Limitações para o destino de computação do Kubernetes
Um destino KubernetesCompute
em 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.
- Os modelos (incluindo o modelo básico) do Catálogo de Modelos e do Registro não são compatíveis com os 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.
Práticas recomendadas
Esta seção resume as melhores práticas recomendadas para trabalhar com uma computação no 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 cuide da tarefa, para que a equipe de ciência de dados possa se concentrar nos modelos de aprendizado de máquina para obter 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 personalizado (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.
Workspaces múltiplos do Azure Machine Learning compartilham um cluster do Kubernetes. Você pode anexar um cluster do Kubernetes várias vezes ao mesmo Workspace do Machine Learning ou a diferentes workspaces. Esse processo cria vários destinos de computação em um único workspace ou em vários workspaces. Como muitos clientes organizam projetos de ciência de dados em torno do Workspace do Machine Learning, 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 aumenta a economia de custos de TI.
Isolamento da carga de trabalho de equipe/projeto usando o namespace do Kubernetes. Ao anexar um cluster do Kubernetes ao um Workspace do 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.
Comparação entre os destinos KubernetesCompute e AksCompute herdado
Com a CLI do Azure Machine Learning/Python SDK v1, você pode implantar modelos no AKS usando o destino AksCompute
herdado. Ambos os destinos KubernetesCompute
e AksCompute
dão suporte à integração do AKS, mas a abordagem de suporte é diferente. A tabela a seguir resume as principais diferenças:
Funcionalidade | AksCompute (herdado) | KubernetesCompute |
---|---|---|
Usa a CLI/SDK v1 | Sim | No |
Usa a CLI/SDK v2 | Não | Sim |
Configura o treinamento | Não | Sim |
Aplica inferência em tempo real | Sim | Sim |
Aplica inferência em lote. | Não | Sim |
Acessa novos recursos para inferência em tempo real | Nenhum desenvolvimento de novos recursos | Roteiro ativo disponível |
Levando em consideração 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 do AKS.
Para obter mais informações, explore os seguintes artigos:
- Revisar as versões e regiões compatíveis com o Kubernetes
- Conectar trabalhos de Machine Learning com armazenamento de dados personalizado
Exemplos de machine learning
Os exemplos de aprendizado de máquina estão disponíveis no repositório deAzure Machine Learning (azureml-examples) no GitHub. Em qualquer exemplo, substitua o nome do destino de computação para seu destino de computação do Kubernetes e execute o exemplo.
Aqui estão várias opções:
- Amostras de trabalho de treinamento com a CLI v2
- Amostras de trabalho de treinamento com o SDK v2
- Implantação de modelo com amostras de ponto de extremidade online e a CLI v2
- Implantação de modelo com amostras de ponto de extremidade online e o SDK v2
- Amostras de ponto de extremidade em lote com a CLI v2