Blank white background with no objects or features visible.

NOVA PESQUISA: 80% dos custos de IA são invisíveis na fatura. Mais de 200 líderes revelam para onde o dinheiro vai. Leia→

Kubernetes para cientistas de dados

By TrueFoundry

Updated: September 7, 2022

Introdução

Com a gama de casos de uso para aprendizado de máquina se expandindo muito nos últimos anos, a necessidade de escalar as operações em torno do treinamento, implantação e monitoramento desses modelos também se tornou bastante importante. Muitas dessas preocupações são semelhantes às que foram "resolvidas" para casos de uso de software em geral. O Kubernetes é um desses softwares de código aberto que consolidou o ecossistema nativo da nuvem ao seu redor, servindo como plataforma subjacente.

Portanto, torna-se imperativo explorar se é útil que o Kubernetes seja aproveitado para um caso de uso de aprendizado de máquina. Vamos começar primeiro com o próprio Kubernetes e o que há de tão interessante nele.

O que é Kubernetes?

Crédito: Kubernetes

💡 Kubernetes é um motor de orquestração de contêineres de código aberto para automatizar a implantação, escalonamento e gerenciamento de aplicações conteinerizadas.

Em termos mais simples, o Kubernetes oferece uma maneira simples e padronizada de executar e operar cargas de trabalho que precisam ser escaladas dinamicamente em várias máquinas.

Vamos analisar algumas das funcionalidades mais populares -

  • Implantações automatizadas - O Kubernetes oferece uma maneira simples de implantar uma imagem Docker usando apenas algumas linhas de YAML. Isso nos proporciona uma forma declarativa de gerenciar o que implantamos e como o servimos. Também facilita muito a criação de um pipeline de CI robusto sobre essa abstração.
  • Descoberta de serviço - Os serviços podem se chamar nativamente usando nomes de domínio estáticos. Isso permite não se preocupar com a localização do outro serviço e possibilita o autoescalonamento.
  • Balanceamento de Carga - O balanceamento de carga de requisições destinadas a um serviço específico para todas as suas instâncias distribuídas em múltiplos nós também é gerenciado. Você também pode anexar um balanceador de carga externo do provedor de nuvem para serviços voltados para a internet. Isso permite autoescalonamento dinâmico, failover gracioso e implantações sem tempo de inatividade.
  • Auto-recuperação - O mecanismo de verificação de saúde integrado monitora um serviço em execução e tenta se recuperar em caso de falha reiniciando a carga de trabalho. Isso, combinado com o suporte nativo a balanceamento de carga, é uma grande vantagem para o aspecto de confiabilidade de qualquer serviço.
  • Autoescalonamento - Autoescalonamento do tamanho da carga de trabalho para cima ou para baixo com base no consumo real de recursos. Isso se traduz em economias de custo críticas para cargas de trabalho que enfrentam uma carga variável.
  • Plataforma para Desenvolvedores - O Kubernetes foi construído com o objetivo de servir como plataforma para colaboração entre múltiplas equipes. Isso é possibilitado pelo suporte nativo para gestão de usuários e funções e multi-locação. Esses recursos tornam-se absolutamente críticos a partir de uma certa escala.
  • Extensível - Com um sistema de recursos personalizados e controladores, o Kubernetes atua como uma plataforma para outras ferramentas que aprimoram massivamente o conjunto de recursos. Isso efetivamente desbloqueia uma vasta gama de casos de uso que são abordados por outras ferramentas. Exemplos: ArgoCD para GitOps, Istio para Service Mesh, Kubeflow para orquestração de pipelines de ML, etc.
  • Código Aberto - O fato de o Kubernetes ser de código aberto significa que você tem uma vasta gama de opções, desde a execução em servidores bare metal até o uso de uma das opções gerenciadas de qualquer grande provedor de nuvem. Alinhar-se ao Kubernetes significa que você obtém uma interface que oferece portabilidade suficiente para que a carga de trabalho possa ser movida de acordo com as necessidades do negócio.

Estas são apenas algumas das funcionalidades disponíveis por padrão. Um grande número de casos de uso são, na verdade, resolvidos pelas ferramentas construídas usando o Kubernetes como camada subjacente. Abordaremos ferramentas específicas em uma edição posterior.

Visão geral do fluxo de trabalho do cientista de dados

Com o entendimento do que é o Kubernetes e quais são os principais recursos que ele oferece em um cenário de desenvolvimento de software, vamos aprofundar nos problemas específicos que ele pode resolver no fluxo de trabalho de um cientista de dados.

Untitled

A figura acima oferece um panorama geral de como um pipeline típico de ciência de dados funciona. Muitas empresas optaram por usar uma vasta variedade de soluções personalizadas com recursos sobrepostos para conectar tudo.

Vamos analisar cada uma dessas etapas para tentar entender onde o Kubernetes se encaixa:

Feature store

Antes que qualquer dado bruto possa ser útil, ele deve primeiro ser transformado em entradas higienizadas para o pipeline de treinamento de modelos. É aqui que os feature stores entram em cena, realizando a transformação, armazenamento e disponibilização dos dados de features.

O Kubernetes suporta a implantação de cargas de trabalho com estado e integra-se muito bem com provedores de nuvem para fornecer persistência de forma contínua.

Desenvolvimento de Modelos

A maioria do desenvolvimento de modelos começa com um Engenheiro de ML escrevendo código em um notebook Jupyter e, para muitos, isso é quase tudo o que é necessário. Ele fornece uma interface REPL para executar código Python. Isso começa sendo hospedado em laptops pessoais, mas é melhor executar um pool centralizado de notebooks Jupyter hospedados que pode ser usado por vários indivíduos.

O modelo declarativo do Kubernetes, juntamente com o suporte para sistemas de armazenamento persistente, torna trivial hospedar um pool de notebooks e permitir o controle de acesso sobre notebooks individuais para garantir uma colaboração eficaz.

Treinamento de modelos

Qualquer algoritmo escrito em um notebook precisa ser alimentado com dados de treinamento para obter um artefato de modelo como saída. Isso pode ser feito no próprio notebook em casos de uso menores, mas requer um pipeline muito mais poderoso para conjuntos de dados maiores. Geralmente, a validação contra o conjunto de dados de teste também é realizada aqui antes que o artefato seja usado para realizar inferências em produção.

Existem várias soluções para orquestrar um pipeline DAG no Kubernetes. O Airflow tem suporte nativo para Kubernetes, enquanto o Kubeflow foi construído completamente sobre o Kubernetes. Todas as principais soluções de monitoramento oferecem integração de primeira classe com o Kubernetes, o que é essencial para executar pipelines de nível de produção.

Gerenciamento de modelos

Esta etapa cuida do armazenamento e versionamento do conjunto de dados e do modelo. Isso garante que qualquer artefato de modelo permaneça reproduzível pelo tempo que for necessário. Um paralelo pode ser traçado com a forma como o gerenciamento de código é realizado usando o Git.

Embora o armazenamento de dados subjacente para esses sistemas de gerenciamento possa ser hospedado no próprio Kubernetes, em muitos casos é melhor usar uma solução gerenciada de um provedor de nuvem. Nesses casos, a maioria dos provedores de nuvem integra perfeitamente seus próprios sistemas IAM com os do Kubernetes, tornando seguro o acesso a dados de fora do cluster sem a necessidade de armazenar as credenciais de acesso.

Serviço de Modelos

Finalmente, o artefato do modelo é preparado para que um sistema de produção possa fazer inferências sobre ele. Isso geralmente envolve encapsular um modelo em uma estrutura de API e permitir que outros serviços chamem o modelo para fazer inferências. Preocupações semelhantes às da engenharia de software, como authn/authz, escalabilidade, confiabilidade, etc., entram em cena aqui.

É aqui que o Kubernetes se destaca. A maioria dos recursos que abordamos na seção anterior tornam-se críticos nesta etapa.

Monitoramento de modelos

Como qualquer sistema de produção, o monitoramento contínuo do modelo atualmente implantado é essencial para garantir que seu sistema esteja se comportando como esperado. As métricas a serem observadas podem incluir desde a precisão real das previsões até a latência e o throughput que o sistema é capaz de suportar.

Muitas soluções de monitoramento se integram de perto com o Kubernetes. Descobrir um alvo para realmente coletar métricas, realizar cálculos sobre elas e armazená-las para uso posterior pode ser feito sem qualquer dependência externa.

Conclusão

Todo o cenário em torno do Kubernetes tem explodido e muitas ferramentas já estão disponíveis. Existem, no entanto, algumas armadilhas que qualquer organização deve ter em mente antes de adotá-lo por completo. Abordaremos essas questões e como elas podem ser mitigadas na próxima edição.

The fastest way to build, govern and scale your AI

Sign Up
Table of Contents

Govern, Deploy and Trace AI in Your Own Infrastructure

Book a 30-min with our AI expert

Book a Demo

The fastest way to build, govern and scale your AI

Book Demo

Discover More

October 5, 2023
|
5 min read

<Webinar> Vitrine de GenAI para Empresas

Best Fine Tuning Tools for Model Training
May 3, 2024
|
5 min read

As 6 Melhores Ferramentas de Fine Tuning Para Treinamento de Modelos em 2026

May 25, 2023
|
5 min read

LLMs de Código Aberto: Abrace ou Pereça

August 24, 2023
|
5 min read

Implantações de Machine Learning em 2023

May 21, 2026
|
5 min read

Adicionando OAuth2 a Jupyter Notebooks no Kubernetes

Engenharia e Produto
May 21, 2026
|
5 min read

Uma equipe de 2 pessoas atendendo um modelo para 1,5 milhão de pessoas com TrueFoundry

Engenharia e Produto
May 21, 2026
|
5 min read

Acelere o Processamento de Dados em 30–40x com NVIDIA RAPIDS no TrueFoundry

GPU
Engenharia e Produto
May 21, 2026
|
5 min read

Uma Parceria para IA Responsável: Truefoundry e Enkrypt AI

No items found.
No items found.

Recent Blogs

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.
Take a quick product tour
Start Product Tour
Product Tour