O que é o Kubeflow?

O Kubeflow é uma plataforma de machine learning (ML) de código aberto projetada para simplificar a implantação e o gerenciamento de fluxos de trabalho de ML no Kubernetes. Ao combinar o poder do Kubernetes com ferramentas e bibliotecas específicas de ML, o Kubeflow ajuda a facilitar a implementação de práticas robustas de operações de machine learning (MLOps). O Kubeflow também permite que os usuários do Google Kubernetes Engine (GKE) criem fluxos de trabalho de ML com mais facilidade como parte de uma implantação de Hypercomputer de IA.

O Kubeflow ajuda engenheiros de machine learning e cientistas de dados a aproveitar a escalonabilidade e a portabilidade do Kubernetes. Os usuários podem abstrair as complexidades da conteinerização e se concentrar na criação, no treinamento e na implantação dos modelos de machine learning.

Para que serve o Kubeflow?

O Kubeflow pode ser usado para várias tarefas de machine learning, como:

  • Como criar fluxos de trabalho de ML portáteis e escalonáveis: os usuários podem definir os fluxos de trabalho de ML como pipelines que podem ser facilmente compartilhados e implantados em diferentes ambientes, promovendo a consistência e a reprodutibilidade nos processos de machine learning.
  • Treinar modelos de ML em grande escala: o Kubeflow ajuda a distribuir cargas de trabalho de treinamento em um cluster do Kubernetes, permitindo que os usuários treinem modelos em conjuntos de dados maiores com mais eficiência. Essa escalonabilidade pode ser benéfica para lidar com o volume crescente de dados em aplicativos modernos de machine learning.
  • Implantar modelos de ML para produção: o Kubeflow facilita a implantação de modelos de machine learning treinados como serviços escalonáveis e confiáveis, além de eliminar a lacuna entre o desenvolvimento e a implantação do modelo. Isso pode simplificar a transição de modelos de ML de experimentação prontos para produção.
  • Gerenciar o ciclo de vida do ML: o Kubeflow geralmente inclui recursos para rastrear experimentos, gerenciar versões de modelos e monitorar o desempenho deles, o que simplifica todo o ciclo de vida do machine learning. Esse gerenciamento abrangente está alinhado com os princípios de MLOps de monitoramento e melhoria contínuos.

Componentes do Kubeflow

O Kubeflow é composto por vários componentes que podem trabalhar juntos para fornecer uma plataforma abrangente. Estes são alguns componentes importantes:

Pipelines

Usando contêineres do Docker, o Kubeflow Pipelines oferece uma plataforma para criar e implantar fluxos de trabalho de machine learning que são portáteis e escalonáveis. Cada pipeline funciona como um modelo, detalhando as etapas de um fluxo de trabalho de ML e as interconexões entre elas. A interface do usuário fácil de usar do Kubeflow Pipelines permite o gerenciamento e o acompanhamento eficientes de experimentos, a visualização de execuções de pipeline e a análise detalhada de registros e métricas de desempenho.

Katib

O Katib é um sistema de ajuste de hiperparâmetros para modelos de machine learning. Encontrar o melhor conjunto de hiperparâmetros para um modelo pode ser um processo demorado, mas o Katib automatiza esse processo. O Katib oferece suporte a vários algoritmos de pesquisa, como pesquisa de grade, pesquisa aleatória e otimização bayesiana, permitindo que os usuários otimizem o desempenho do modelo com mais eficiência.

KFServing

O KFServing oferece uma plataforma de inferência sem servidor para implantar modelos de machine learning treinados. Ele simplifica a implantação e o escalonamento de modelos treinados. O KFServing oferece suporte a vários frameworks de machine learning, como TensorFlow, PyTorch e scikit-learn, tornando-o independente de framework e adaptável a diferentes ecossistemas de ML.

Metadados

O componente de metadados do Kubeflow fornece rastreamento de linhagem e artefato. Esse componente ajuda os cientistas de dados a acompanhar experimentos, conjuntos de dados e modelos, facilitando o gerenciamento e a reprodução do trabalho. O rastreamento de metadados facilita a colaboração entre os membros da equipe e garante a reprodutibilidade dos resultados.

Benefícios do Kubeflow

As organizações que buscam simplificar e aprimorar os processos de machine learning podem encontrar várias vantagens no Kubeflow:

Escalonabilidade e portabilidade

O Kubeflow ajuda os usuários a escalonar os fluxos de trabalho de machine learning para mais ou para menos conforme necessário e pode ser implantado em várias infraestruturas, incluindo ambientes no local, em nuvem e híbridos. Essa flexibilidade permite que as organizações adaptem a infraestrutura de ML aos requisitos específicos e evitem o bloqueio do fornecedor.

Reprodutibilidade e monitoramento de experimentos

Um dos principais benefícios do uso do Kubeflow é que a arquitetura baseada em componentes permite a reprodução mais fácil de experimentos e modelos. Ele oferece ferramentas para controle de versões e rastreamento de conjuntos de dados, códigos e parâmetros de modelos. Essa reprodutibilidade garante a consistência nos experimentos de ML e facilita a colaboração entre cientistas de dados.

Extensibilidade e integração

O Kubeflow foi projetado para ser extensível e pode ser integrado a várias outras ferramentas e serviços, incluindo plataformas de machine learning baseadas na nuvem. Ele também pode ser personalizado com componentes adicionais. Isso permite que as organizações usem as ferramentas e os fluxos de trabalho atuais e incorporem o Kubeflow ao ecossistema de ML sem problemas.

Menor complexidade operacional

Ao automatizar muitas das tarefas associadas à implantação e ao gerenciamento de fluxos de trabalho de machine learning, o Kubeflow ajuda a liberar o tempo de cientistas de dados e engenheiros para eles se concentrarem em tarefas de maior valor, como desenvolvimento e otimização de modelos. Essa redução da carga operacional pode levar a ganhos significativos em produtividade e eficiência.

Melhor utilização de recursos

Com a integração estreita com o Kubernetes, o Kubeflow pode permitir uma utilização de recursos mais eficiente. As organizações podem otimizar a alocação de recursos de hardware e reduzir os custos associados à execução de cargas de trabalho de machine learning.

Começar a usar o Kubeflow

Os usuários têm maneiras diferentes de começar a usar o Kubeflow, dependendo das necessidades individuais e do nível de experiência:

  • Implantar o Kubeflow no Google Kubernetes Engine (GKE): essa opção oferece muita flexibilidade e controle sobre as implantações do Kubeflow. Os usuários podem personalizar a instalação para atender a requisitos específicos e ter acesso total ao cluster do Kubernetes. No entanto, essa abordagem pode exigir mais experiência com o Kubernetes e ser mais trabalhosa.
  • Utilizar o Vertex AI Pipelines: essa opção é um serviço totalmente gerenciado que pode facilitar a implantação e a execução de pipelines do Kubeflow no Google Cloud. O Vertex AI Pipelines cuida de todo o gerenciamento de infraestrutura para que os usuários possam se concentrar na criação e execução de fluxos de trabalho de ML. Essa abordagem pode ser uma boa opção para quem procura uma solução gerenciada que seja rápida e fácil de configurar.
  • Conhecer o Kubeflow em outras plataformas: o Kubeflow também pode ser implantado em outros ambientes do Kubernetes. As instruções de instalação e a documentação dessas plataformas estão disponíveis no site do Kubeflow.
Para determinar a melhor abordagem, os usuários precisam considerar o nível de conhecimento do Kubernetes, o nível de controle desejado sobre a infraestrutura e o orçamento. Para usuários novos no Kubernetes ou que querem uma solução mais gerenciada, o Vertex AI Pipelines pode ser um bom ponto de partida. Se um usuário precisar de mais flexibilidade ou quiser executar o Kubeflow no local, a implantação no GKE ou em outra plataforma do Kubernetes pode ser mais adequada.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud