Explore como o Kubernetes automatiza a implementação e o dimensionamento de modelos de IA. Aprenda a orquestrar Ultralytics no K8s para obter visão computacional de alto desempenho.
O Kubernetes, frequentemente referido como K8s, é uma plataforma de código aberto concebida para automatizar a implementação, o dimensionamento e a gestão de aplicações em contentores. Originalmente desenvolvido pela Google agora mantido pela Cloud Native Computing Foundation (CNCF), o Kubernetes tornou-se o padrão para a orquestração de software na nuvem. No contexto da Inteligência Artificial (IA) e Aprendizagem Automática (ML), ele atua como a camada de infraestrutura crítica que permite às equipas de engenharia gerir fluxos de trabalho complexos, desde treinamento distribuído até inferência de produção de alta disponibilidade . Ao abstrair o hardware subjacente, o Kubernetes garante que as aplicações sejam executadas de forma confiável e eficiente, independentemente de serem hospedadas no local ou por meio de provedores de nuvem pública.
Na sua essência, o Kubernetes opera numa arquitetura de cluster, que consiste num conjunto de máquinas de trabalho chamadas nós. Esses nós executam cargas de trabalho de contentorização, enquanto um plano de controlo gerencia o estado geral do cluster. A menor unidade implantável no Kubernetes é um "Pod", que encapsula um ou mais contentores que compartilham recursos de armazenamento e rede. Essa abstração é vital para aplicações de visão computacional, pois permite que os programadores empacotem dependências — como CUDA específicas para Unidades de Processamento Gráfico (GPUs)—em um ambiente consistente. Os principais serviços em nuvem, como Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS) e Google Engine (GKE), fornecem versões gerenciadas dessa arquitetura, simplificando a carga de manutenção para as equipas de ciência de dados.
O principal valor do Kubernetes nas Operações de Aprendizagem Automática (MLOps) reside na sua capacidade de lidar com cargas de trabalho dinâmicas. Os modelos de IA requerem frequentemente um enorme poder computacional durante o treino e uma baixa latência de inferência durante a implementação.
O Kubernetes é a espinha dorsal de muitas implementações de IA em grande escala em vários setores:
Um ponto comum de confusão é a relação entre o Kubernetes e o Docker. Eles não são concorrentes, mas sim tecnologias complementares . O Docker é uma ferramenta para criar e executar contentores individuais (empacotando a aplicação), enquanto o o Kubernetes é uma ferramenta para gerir uma frota desses contentores em várias máquinas. Você usa o Docker para construir os pesos do seu modelo e o código numa imagem e, em seguida, usa o Kubernetes para determinar onde, quando e quantas cópias dessa imagem são executadas em produção.
Para implementar um modelo no Kubernetes, os programadores normalmente começam com um Python que funciona como ponto de entrada para o contentor. O código a seguir demonstra uma tarefa de inferência simples usando o modelo Ultralytics . Esse script seria executado dentro de um pod, processando as solicitações recebidas.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")
O ecossistema Kubernetes inclui uma vasta gama de ferramentas adaptadas para a ciência de dados. O Kubeflow é um kit de ferramentas popular dedicado a tornar as implementações de fluxos de trabalho de ML no Kubernetes simples, portáteis e escaláveis. Para monitorizar a integridade do cluster e as métricas da aplicação, os engenheiros costumam contar com o Prometheus. Para simplificar ainda mais a complexidade do treinamento e da implementação de modelos nesses ambientes, a Ultralytics oferece uma interface unificada que automatiza o gerenciamento de conjuntos de dados e o treinamento de modelos, permitindo que os utilizadores exportem modelos prontos para clusters de computação em nuvem. Além disso, gerenciadores de pacotes como o Helm ajudam a gerenciar aplicações complexas do Kubernetes por meio de gráficos reutilizáveis.