Definição
O Kubeflow é um framework open source do Kubernetes usado no desenvolvimento, gerenciamento e execução de cargas de trabalho de Machine Learning (ML). O Kubeflow é uma plataforma de Inteligência Artificial e Machine Learning (IA/ML) que reúne diversas ferramentas que abordam os principais casos de uso de IA/ML: exploração e pipelines de dados, treinamento e disponibilização de modelos.
Ele permite que os cientistas de dados acessem esses recursos por meio de um portal com abstrações de alto nível para interagir com as ferramentas. Isso significa que cientistas de dados não precisam se preocupar em ter que aprender detalhes mínimos sobre como o Kubernetes conecta cada uma dessas ferramentas. O Kubeflow foi especificamente projetado para execução no Kubernetes e adota completamente muitos dos conceitos principais, incluindo o modelo de operador.
Qual a finalidade do Kubeflow?
Com o Kubeflow, você supera muitos dos desafios relacionados à orquestração de pipelines de machine learning porque ele oferece um conjunto de ferramentas e APIs que simplificam o processo de treinamento e implantação de modelos de ML em escala. Um “pipeline” indica um fluxo de trabalho de ML, incluindo os componentes do fluxo de trabalho e como esses componentes interagem. O Kubeflow consegue acomodar as necessidades de várias equipes em um único projeto, permitindo que elas trabalhem em qualquer infraestrutura. Assim, os cientistas de dados podem treinar e disponibilizar modelos de ML usando a nuvem que quiserem, como IBM Cloud, Google Cloud, AWS da Amazon ou Azure.
Em geral, o Kubeflow ajuda a padronizar as operações de machine learning (MLOps) ao organizar projetos e aproveitar o poder da cloud computing. Alguns dos principais casos de uso do Kubeflow incluem preparar dados, treinamento de modelos, avaliação, otimização e implantação.
Por que executar cargas de trabalho de machine learning no Kubernetes?
O Kubernetes é essencial para acelerar o ciclo de vida de ML. Essas tecnologias oferecem aos cientistas de dados a agilidade, flexibilidade, portabilidade e escalabilidade necessárias para treinar, testar e implantar modelos de ML.
Escalabilidade: com o Kubernetes, os usuários podem expandir ou reduzir as cargas de trabalho de ML, dependendo da demanda. Assim, os pipelines de machine learning conseguem acomodar treinamentos e processamento em larga escala, sem interferir em outros elementos do projeto.
Eficiência: o Kubernetes otimiza a alocação de recursos, programando as cargas de trabalho nos nós com base na disponibilidade e capacidade deles. A tecnologia assegura que os recursos de computação sejam utilizados com uma finalidade, o que oferece aos usuários reduções de custo e melhorias no desempenho.
Portabilidade: o Kubernetes oferece um ambiente padronizado e não dependente de plataformas para que os cientistas de dados possam desenvolver um pipeline de ML e implantá-lo em vários ambientes e nuvens. Assim, não é preciso se preocupar com problemas de compatibilidade e dependência de fornecedor.
Tolerância a falhas: com recursos integrados de autorrecuperação e tolerância a falhas, os usuários podem confiar no Kubernetes para manter os pipelines de ML funcionando, mesmo em caso de falha de hardware ou software.
Quais são os componentes do Kubeflow?
- O dashboard central do Kubeflow oferece uma interface web autenticada para acessar o Kubeflow e os componentes de seu ecossistema. Atuando como um hub centralizado, ele agrega as interfaces de usuário de várias ferramentas e serviços no cluster, proporcionando um ponto de acesso unificado para gerenciar sua plataforma de machine learning (aprendizado de máquina).
- O Kubeflow se integra aos Jupyter Notebooks, gerando um ambiente interativo para exploração de dados, experimentação e desenvolvimento de modelos. Os Notebooks são compatíveis com várias linguagens de programação, incluindo Python, R e Scala, e permite que os usuários criem e executem fluxos de trabalho de ML de maneira colaborativa e reproduzível.
- Os Pipelines do Kubeflow permitem que os usuários definam e executem fluxos de trabalho de ML complexos como gráficos acíclicos direcionados (DAGs). Os Pipelines do Kubeflow oferecem uma maneira de orquestrar e automatizar o processo de ponta a ponta de pré-processamento de dados, treinamento, avaliação e implantação de modelos, promovendo a reprodutibilidade, escalabilidade e colaboração em projetos de ML. O SDK dos Pipelines do Kubeflow é uma coleção de pacotes de Python, permitindo que os usuários definam e executem seus fluxos de trabalho de machine learning com precisão e eficiência.
- O Kubeflow Training Operator disponibiliza ferramentas para treinar modelos de machine learning em escala. Isso inclui suporte para treinamento distribuído, usando frameworks como TensorFlow, PyTorch e XGBoost. Os usuários podem aproveitar as capacidades de gerenciamento de recursos e escalabilidade do Kubernetes para treinar modelos com eficiência nos clusters de máquinas.
- Com o Kubeflow Serving, os usuários podem implantar modelos de ML treinados como serviços escaláveis e prontos para produção. Ele oferece uma interface consistente para disponibilizar modelos usando frameworks populares, como TensorFlow Serving, Seldon Core ou servidores de inferência personalizados. Os modelos podem ser implantados em cenários de processamento em lote ou em tempo real, apresentando previsões sobre endpoints HTTP.
- O Kubeflow Metadata é um repositório centralizado para rastrear e gerenciar metadados associados a experimentos de ML, execuções e artefatos. Ele oferece uma visão consistente de metadados de ML em todo o fluxo de trabalho, possibilitando a reprodutibilidade, colaboração e governança em projetos de ML.
Além disso, o Kubeflow conta com interfaces de usuário (IUs) baseadas na web para monitorar e gerenciar experimentos de ML, tarefas de treinamento de modelos e serviços de inferência. Essas IUs oferecem visualizações, métricas e logs para auxiliar os usuários a acompanhar o progresso de seus fluxos de trabalho de ML, solucionar problemas e tomar decisões bem-informadas.
Como ele adota o modelo de operador do Kubernetes, o Kubeflow é extensível e pode ser personalizado de acordo com casos de uso e ambientes específicos. Os usuários podem integrar componentes adicionais, como ferramentas de pré-processamento de dados, armazenamento de funcionalidades e fontes de dados externas, para otimizar os recursos de seus fluxos de trabalho de ML.
Como a Red Hat pode ajudar
O Red Hat® OpenShift® é uma plataforma consistente, de confiança e abrangente para desenvolver, implantar e gerenciar aplicações em todos os ambientes. A solução inclui recursos de DevOps (por exemplo, OpenShift Pipelines, OpenShift GitOps e Red Hat Quay) e pode ser integrada a aceleradores de hardware. Por isso, ela aprimora a colaboração e acelera a entrega de aplicações baseadas em IA.
O Red Hat OpenShift AI oferece um editor visual baseado nos pipelines do Kubeflow para criar e automatizar pipelines de ciência de dados e experimentação. O OpenShift AI é uma plataforma de MLOps integrada para criar, treinar, implantar e monitorar aplicações habilitadas por IA e modelos básicos e preditivos em escala em todos os ambientes de nuvem híbrida. Automatize e simplifique o trabalho iterativo de integrar modelos de ML aos processos de desenvolvimento de software, lançamento em produção, monitoramento, retreinamento e reimplantação para continuar produzindo previsões precisas.
O Red Hat OpenShift está disponível de maneira nativa no IBM Cloud, Google Cloud, AWS e Azure, permitindo que os usuários automatizem o gerenciamento de clusters do Kubernetes para criar, implantar e escalar aplicações rapidamente com uma plataforma de aplicações pronta para produção.