Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard
Neste artigo, você aprenderá sobre o MLOps (operações de aprendizado de máquina), incluindo os tipos de práticas e as ferramentas envolvidas e como isso pode simplificar e acelerar seus fluxos de trabalho de IA e aprendizado de máquina no AKS (Serviço de Kubernetes do Azure).
Modos de cluster do AKS para MLOps
O AKS dá suporte a dois modos de cluster: AKS Automatic e AKS Standard. Escolha o AKS Automatic quando quiser uma configuração básica pronta para produção, com menos gerenciamento contínuo da plataforma. Escolha o AKS Standard quando precisar de um controle mais profundo sobre a infraestrutura de cluster e a configuração da plataforma.
Os conceitos de ciclo de vida do MLOps neste artigo se aplicam a ambos os modos. No entanto, a responsabilidade de implementação difere por modo: o AKS Automatic fornece padrões mais pré-configurados, enquanto o AKS Standard normalmente requer configuração de plataforma mais explícita e propriedade do ciclo de vida.
| Area | AKS Automático | AKS Standard |
|---|---|---|
| Configuração básica do cluster | Mais padrões pré-configurados | Opções de configuração mais explícitas |
| Operações do conjunto de nós do sistema | Mais comportamentos gerenciados pelo serviço | Mais comportamento gerenciado pelo operador |
| Controles de segurança de linha de base | Vários controles são pré-configurados em cenários comuns | Os controles são normalmente habilitados e mantidos por operadores |
| Linha de base de rede | Configurações padrão predefinidas para padrões comuns | Flexibilidade de configuração de rede mais ampla |
| Operações e atualizações | Comportamento operacional mais gerenciado | Comportamento mais direcionado pelo operador |
| Foco de implementação do MLOps | Validar, gerenciar e ajustar configurações padrão | Projetar e configurar controles de plataforma |
O que é MLOps?
O MLOps (operações de aprendizado de máquina) abrangem práticas que facilitam a colaboração entre cientistas de dados, operações de TI e stakeholders de negócios, garantindo que os modelos de aprendizado de máquina sejam desenvolvidos, implantados e mantidos com eficiência. O MLOps aplica 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 treinamento, empacotamento, validação, implantação, monitoramento e retreinamento de modelos.
O MLOps exige várias funções e ferramentas para trabalhar em conjunto com eficiência. Os cientistas de dados se concentram em tarefas relacionadas ao treinamento do modelo, que é chamado de loop interno. Os engenheiros de machine learning e as equipes de operações de TI lidam com o loop externo, em que aplicam práticas de DevOps para empacotar, validar, implantar e monitorar modelos. Quando o modelo precisa de ajuste fino ou novo treinamento, o processo volta para o loop interno.
Essas etapas de ciclo de vida são consistentes entre os modos de cluster do AKS. A principal diferença é a quantidade de configuração de plataforma e configuração operacional que suas equipes gerenciam diretamente.
Pipeline de MLOps
O pipeline do MLOps pode aproveitar várias ferramentas e microsserviços que são implantados sequencialmente ou em paralelo. Confira abaixo exemplos de componentes-chave no seu pipeline que se beneficiam da implementação das seguintes melhores práticas para reduzir a sobrecarga e permitir uma iteração mais rápida:
- Armazenamento de dados não estruturados para novos dados que chegam ao seu aplicativo
- Banco de dados de vetores para armazenar e consultar dados estruturados e pré-processados
- Estrutura de indexação e ingestão de dados
- Ingestão de vetores e/ou fluxos de trabalho de retreinamento de modelos
- Ferramentas de coleta e alertas de métricas (acompanhamento do desempenho do modelo, volume de dados ingeridos etc.)
- Ferramentas do gerenciamento do ciclo de vida
Esses componentes de pipeline são relevantes para o AKS Automatic e o AKS Standard. A escolha do modo afeta principalmente os limites de propriedade da plataforma, e não a finalidade do pipeline.
DevOps e MLOps
O DevOps é uma combinação de ferramentas e práticas que permitem criar aplicativos robustos e reproduzíveis. A meta de usar o DevOps é entregar rapidamente o valor aos usuários finais. Criar, implantar e monitorar modelos robustos e reproduzíveis para entregar valor aos usuários finais é a meta principal do MLOps.
Há três processos essenciais no MLOps:
- Cargas de trabalho de aprendizado de máquina, pelas quais um cientista de dados é responsável, incluindo EDA (análise exploratória de dados), engenharia de recursos e treinamento e ajuste de modelo.
- Práticas de desenvolvimento de software, incluindo planejamento, desenvolvimento, teste e empacotamento do modelo para implantação.
- Aspectos operacionais da implantação e manutenção do modelo em produção, incluindo lançamento, configuração de recursos e monitoramento do modelo.
No AKS Automatic, as equipes geralmente podem gastar menos esforço na configuração comum da plataforma e mais na orquestração de política, qualidade e ciclo de vida do modelo. No AKS Standard, as equipes normalmente executam o design e a configuração de plataforma mais explícitos.
Princípios do DevOps que se aplicam ao MLOps
O MLOps aproveita vários princípios do DevOps para aprimorar o ciclo de vida do aprendizado de máquina, como automação, CI/CD (integração e entrega contínua), controle do código-fonte, planejamento Agile e IaC (infraestrutura como código).
Automação
Ao automatizar tarefas, você pode reduzir erros manuais, aumentar a eficiência e garantir a consistência em todo o ciclo de vida de ML. A automação pode ser aplicada a vários estágios, incluindo coleta de dados, treinamento de modelo, 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, seu pipeline pode automatizar:
- Ajuste/novo treinamento do modelo em intervalos de tempo regulares ou quando determinado volume de dados novos é coletado no seu aplicativo.
- Detecção de degradação do desempenho para iniciar o ajuste fino ou novo treinamento em um subconjunto diferente de dados.
- Verificação de CVEs (Vulnerabilidades e Exposições Comuns) em imagens de contêiner base extraídas de registros de contêiner externos para garantir práticas de segurança seguras.
Em ambos os modos de cluster no AKS, inclua automação para validação de políticas, detecção de desvios de configuração e governança de releases, além de gatilhos de qualidade do modelo.
CI (Integração contínua)
A integração contínua abrange os aspectos de criação e verificação do processo de desenvolvimento do modelo. A meta da 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 exemplo para garantir que o modelo seja executado conforme o esperado e atenda aos padrões de qualidade.
Em MLOps, a integração contínua (CI) pode envolver:
- Refatoração de código exploratório em notebooks Jupyter para scripts em Python ou R.
- Validação de novos dados de entrada em busca de valores ausentes ou de erro.
- Teste de unidade e teste de integração no pipeline de ponta a ponta.
Para executar o lint e o teste de unidade, você poderá usar ferramentas de automação como o Azure Pipelines no Azure DevOps ou o GitHub Actions.
No AKS Automatic, a CI normalmente valida artefatos em relação aos padrões de plataforma esperados. No AKS Standard, a CI geralmente valida suposições em relação às configurações de plataforma explicitamente definidas.
Entrega contínua (CD)
A entrega contínua envolve as etapas necessárias para implantar com segurança um modelo em 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, dos hiperparâmetros e de outros artefatos de modelo é um aspecto importante a ser mantido à medida que você promove o código por meio desses ambientes. Essa portabilidade é especialmente importante quando se trata de LLMs (grandes modelos de linguagem) e modelos de difusão estáveis. Depois que o modelo passar nos testes de qualidade e testes de QA (garantia de qualidade), 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 geralmente incluem uma validação mais específica da infraestrutura antes do lançamento.
Controle do código-fonte
O controle do código-fonte, ou controle de versão, é essencial para gerenciar as alterações no código e nos modelos. Em um sistema de ML, isso se refere ao controle de versão de dados, ao controle de versão de código e ao controle de versão de modelo, que permitem que as equipes multifuncionais colaborem com eficiência e acompanhem as alterações ao longo do tempo. O uso de um sistema de controle do código-fonte baseado em Git, como o Azure Repos no Azure DevOps ou um repositório GitHub, permite que você mantenha por meio de programação um histórico de alterações, faça reversões para versões anteriores e gerencie branches para diferentes experimentos.
Planejamento ágil
O planejamento Agile envolve isolar o trabalho em sprints, que são curtos períodos para concluir tarefas específicas. Essa abordagem permite que as equipes se adaptem às alterações rapidamente e forneçam aprimoramentos incrementais ao modelo. O treinamento de modelo pode ser um processo contínuo e o planejamento Agile pode ajudar a definir o escopo do projeto e permitir um melhor alinhamento da equipe.
Você pode usar ferramentas como o Azure Boards no Azure DevOps ou os problemas do GitHub para gerenciar seu planejamento Agile.
IaC (infraestrutura como código)
Você usa a infraestrutura como código para repetir e automatizar a infraestrutura necessária para treinar, implantar e fornecer seus modelos. Em um sistema de ML, a 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 sua infraestrutura e faça alterações para otimização de recursos, relação custo-benefício etc., conforme necessário.
No AKS Automatic, a IaC geralmente enfatiza definições de carga de trabalho, controles de governança e consistência do ambiente. No AKS Standard, a IaC geralmente inclui uma configuração de plataforma e cluster explícita mais ampla.
Conteúdo relacionado
Confira os seguintes artigos para saber mais sobre as melhores práticas de MLOps em seus aplicativos inteligentes no AKS:
- Melhores práticas de operações de aprendizado de máquina no AKS
- Comparação de recursos entre o AKS Automatic e o AKS Standard
- Implantar um modelo de IA com o operador da cadeia de ferramentas de IA
- Melhores práticas de gerenciamento de recursos no AKS
- Impor a segurança do pod em seu cluster do AKS como um desenvolvedor de aplicativos