Conceitos - Operações de Machine Learning (MLOps) para fluxos de trabalho de IA e machine learning

Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard

Neste artigo, você aprenderá sobre operações de aprendizado de máquina (MLOps), incluindo quais tipos de práticas e ferramentas estão envolvidas e como isso pode simplificar e acelerar seus fluxos de trabalho de IA e aprendizado de máquina no Serviço Kubernetes do Azure (AKS).

Modos de cluster AKS para MLOps

O AKS suporta dois modos de cluster: AKS Automático e AKS Standard. Escolha o AKS Automático quando quiser uma base pronta para produção com menos gestão de plataforma no segundo dia. Escolha o AKS Standard quando precisar de um controlo mais profundo sobre a infraestrutura do cluster e a configuração da plataforma.

Os conceitos do ciclo de vida do MLOps neste artigo aplicam-se a ambos os modos. No entanto, a responsabilidade pela implementação difere consoante o modo: o AKS Automatic fornece mais predefinições, enquanto o AKS Standard normalmente exige uma configuração mais explícita da plataforma e uma maior responsabilidade pela gestão do ciclo de vida.

Area AKS Automático Padrão AKS
Configuração base do cluster Mais predefinições pré-configuradas Escolhas de configuração mais explícitas
Operações do pool de nós do sistema Mais comportamento de gestão de serviços Mais comportamento gerido pelo operador
Controlos de base de segurança Vários controlos estão pré-configurados em cenários comuns Os controlos são normalmente ativados e mantidos pelos operadores
Linha de base de rede Predefinições assumidas para padrões comuns Flexibilidade mais ampla da configuração da rede
Operações e melhorias Comportamento operacional mais gerido Comportamento mais dirigido pelo operador
Foco na implementação do MLOps Validar, gerir e ajustar as predefinições Projetar e configurar os controlos da plataforma

O que é o MLOps?

As operações de aprendizado de máquina (MLOps) englobam práticas que facilitam a colaboração entre cientistas de dados, operações de TI e partes interessadas de negócios, garantindo que os modelos de aprendizado de máquina sejam desenvolvidos, implantados e mantidos de forma eficiente. O MLOps aplica os princípios de DevOps a projetos de aprendizado de máquina, com o objetivo de automatizar e simplificar o ciclo de vida de aprendizado de máquina de ponta a ponta. Esse ciclo de vida inclui modelos de treinamento, empacotamento, validação, implantação, monitoramento e retreinamento.

O MLOps requer várias funções e ferramentas para trabalhar em conjunto de forma eficaz. Os cientistas de dados concentram-se em tarefas relacionadas com o treino do modelo, conhecido como o ciclo interno. Engenheiros de aprendizagem automática e equipas de operações de TI gerem o ciclo externo, onde aplicam práticas DevOps para empacotamento, validação, implementação e monitorização de modelos. Quando o modelo precisa de ajuste fino ou retreinamento, o processo volta para o loop interno.

Estes passos do ciclo de vida são consistentes entre os modos do cluster AKS. A principal diferença está em até que ponto as suas equipas gerem diretamente a configuração da plataforma e a configuração operacional.

Pipeline de MLOps

Seu pipeline de MLOps pode aproveitar várias ferramentas e microsserviços que são implantados sequencialmente ou em paralelo. Abaixo estão exemplos de componentes-chave em seu pipeline que se beneficiam da implementação das seguintes práticas recomendadas para reduzir a sobrecarga e permitir uma iteração mais rápida:

  • Armazenamento de dados não estruturado para novos dados que fluem para seu aplicativo
  • Banco de dados vetorial para armazenar e consultar dados estruturados e pré-processados
  • Estrutura de ingestão e indexação de dados
  • Fluxos de trabalho de ingestão de vetores e/ou retreinamento de modelos
  • Ferramentas de recolha e alerta de métricas (acompanhamento do desempenho do modelo, volume de dados ingeridos, etc.)
  • Ferramentas de gestão do ciclo de vida

Estes componentes de pipeline são relevantes tanto para o AKS Automatic como para o AKS Standard. A escolha do modo afeta principalmente os limites de propriedade da plataforma, e não o objetivo do pipeline.

DevOps e MLOps

O DevOps é uma combinação de ferramentas e práticas que permitem criar aplicativos robustos e reproduzíveis. O objetivo de usar o DevOps é entregar valor rapidamente aos seus usuários finais. Criar, implantar e monitorar modelos robustos e reproduzíveis para entregar valor aos usuários finais é o principal objetivo do MLOps.

Existem três processos que são essenciais para o MLOps:

  • Cargas de trabalho de aprendizado de máquina pelas quais um cientista de dados é responsável, incluindo análise exploratória de dados (EDA), engenharia de recursos e treinamento e ajuste de modelos.
  • Práticas de desenvolvimento de software, incluindo planejamento, desenvolvimento, teste e empacotamento do modelo para implantação.
  • Aspetos operacionais da implantação e manutenção do modelo em produção, incluindo liberação, configuração de recursos e monitoramento do modelo.

No AKS Automatic, as equipas muitas vezes despendem menos esforço na configuração de plataformas comuns e mais na orquestração do ciclo de vida de políticas, qualidade e modelos. No AKS Standard, as equipas normalmente realizam um design e configuração de plataformas mais explícitos.

Princípios de DevOps que se aplicam a MLOps

O MLOps aproveita vários princípios do DevOps para aprimorar o ciclo de vida do aprendizado de máquina, como automação, integração e entrega contínua (CI/CD), controle de origem, planejamento ágil e infraestrutura como código (IaC).

Automatização

Ao automatizar tarefas, você pode reduzir erros manuais, aumentar a eficiência e garantir a consistência em todo o ciclo de vida do ML. A automação pode ser aplicada a vários estágios, incluindo coleta de dados, treinamento de modelos, implantação e monitoramento. Por meio da automação, você também pode aplicar medidas proativas no pipeline de IA para garantir a conformidade dos dados com as políticas da sua organização.

Por exemplo, o seu pipeline pode automatizar:

  • Ajuste/retreinamento do modelo em intervalos de tempo regulares ou quando uma certa quantidade de novos dados é coletada em seu aplicativo.
  • Deteção de degradação de desempenho para iniciar o ajuste fino ou o retreinamento em um subconjunto diferente de dados.
  • Varredura de Vulnerabilidades e Exposições Comuns (CVEs) em imagens de base de contentores obtidas de registos externos de contentores para garantir práticas de segurança adequadas.

Em ambos os modos do cluster AKS, inclua automação para validação de políticas, deteção de desvios de configuração e governação de versões, além dos acionadores de qualidade do modelo.

Integração contínua (CI)

A integração contínua abrange os aspetos de criação e verificação do processo de desenvolvimento do modelo. O objetivo do CI é criar o código e verificar a qualidade do código e do modelo antes da implantação. Isso inclui testes em uma variedade de conjuntos de dados de amostra para garantir que o modelo tenha o desempenho esperado e atenda aos padrões de qualidade.

Em MLOps, o IC pode envolver:

  • Refatoração de código exploratório em notebooks Jupyter em scripts Python ou R.
  • Validação de novos dados de entrada para valores ausentes ou de erro.
  • Testes unitários e testes de integração no processo de ponta a ponta.

Para executar linting e testes de unidade, você pode usar ferramentas de automação como o Azure Pipelines no Azure DevOps ou GitHub Actions.

No modo AKS Automatic, a CI valida normalmente os artefactos em relação às predefinições esperadas da plataforma. No AKS Standard, a CI frequentemente valida pressupostos contra definições de plataforma explicitamente configuradas.

Entrega contínua (CD)

A entrega contínua envolve as etapas necessárias para implantar com segurança um modelo na produção. A primeira etapa é empacotar e implantar o modelo em ambientes de pré-produção, como ambientes de desenvolvimento e teste. A portabilidade dos parâmetros, hiperparâmetros e outros artefatos de modelo é um aspeto importante a ser mantido à medida que você promove o código por meio desses ambientes. Esta portabilidade é especialmente importante quando se trata de modelos de linguagem grande (LLMs) e modelos de difusão estáveis. Depois que o modelo passar nos testes de unidade e nos testes de garantia de qualidade (QA), você poderá aprová-lo para implantação no ambiente de produção.

As práticas de promoção são semelhantes em ambos os modos de cluster do AKS, mas os pipelines do AKS Standard frequentemente incluem mais validação específica da infraestrutura antes do lançamento.

Controlo de origem

O controle do código-fonte, ou controle de versão, é essencial para gerenciar alterações no código e nos modelos. Em um sistema de ML, isso se refere ao controle de versão de dados, controle de versão de código e controle de versão de modelo, que permitem que equipes multifuncionais colaborem de forma eficaz e acompanhem as alterações ao longo do tempo. Usar um sistema de controle de origem baseado em Git, como o Repositórios do Azure no Azure DevOps ou um repositório GitHub, permite que você mantenha programaticamente um histórico de alterações, reverta para versões anteriores e gerencie ramificações para diferentes experimentos.

Planeamento ágil

O planejamento ágil envolve isolar o trabalho em sprints, que são prazos curtos para concluir tarefas específicas. Essa abordagem permite que as equipes se adaptem às mudanças rapidamente e forneçam melhorias incrementais ao modelo. O treinamento do modelo pode ser um processo contínuo, e o planejamento ágil pode ajudar a definir o escopo do projeto e permitir um melhor alinhamento da equipe.

Você pode usar ferramentas como Azure Boards no Azure DevOps ou problemas do GitHub para gerenciar seu planejamento Agile.

Infraestrutura como código (IaC)

Você usa a infraestrutura como código para repetir e automatizar a infraestrutura necessária para treinar, implantar e atender seus modelos. Em um sistema de ML, o IaC ajuda a simplificar e definir os recursos apropriados do Azure necessários para o tipo de trabalho específico no código, e o código é mantido em um repositório. Isso permite que você controle a versão de sua infraestrutura e faça alterações para otimização de recursos, custo-benefício, etc., conforme necessário.

No AKS Automatic, o IaC enfatiza frequentemente definições de cargas de trabalho, controlos de governação e consistência ambiental. No AKS Standard, o IaC inclui frequentemente uma configuração explícita mais ampla de clusters e plataformas.

Confira os seguintes artigos para saber mais sobre as melhores práticas para MLOps em seus aplicativos inteligentes no AKS: