Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Kubernetes

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.

Arquitetura e conceitos básicos

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.

Por que o Kubernetes é importante para a IA

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.

  • Escalabilidade: o Kubernetes emprega o autoescalonamento para ajustar os recursos automaticamente. Se ocorrer um pico repentino no tráfego, o Horizontal Pod Autoscaler pode aumentar o número de pods de inferência para manter a escalabilidade sem intervenção manual.
  • Otimização de recursos: a alocação eficiente de hardware caro é crucial. O Kubernetes permite GPU fracionário GPU e a afinidade de nós, garantindo que os modelos de deep learning consumam recursos apenas quando trabalhos ativos os exigirem.
  • Implantação resiliente: garantir alta disponibilidade durante a implantação do modelo é essencial. Se um nó falhar, o Kubernetes reinicia automaticamente os pods afetados em nós saudáveis, evitando tempo de inatividade para serviços API críticos.

Aplicações no Mundo Real

O Kubernetes é a espinha dorsal de muitas implementações de IA em grande escala em vários setores:

  1. Gestão de tráfego em cidades inteligentes: um município pode implementar modelos Ultralytics para analisar imagens de vídeo de milhares de cruzamentos. Utilizando Kubernetes, o sistema pode dimensionar dinamicamente os recursos durante a hora de ponta para lidar com o aumento da carga de deteção de objetos e reduzir à noite para economizar custos. Essa abordagem é fundamental para os modernos sistemas de gestão de tráfego.
  2. Personalização do comércio eletrónico: Os retalhistas online utilizam sistemas de recomendação complexos baseados em microsserviços. Um serviço pode lidar com a geração de candidatos, enquanto outro gerencia a reclassificação. O Kubernetes orquestra esses serviços distintos, permitindo que as equipas atualizem a rede neural de classificação de forma independente, sem interromper toda a experiência de compra, facilitando a integração contínua.

Diferenciando Kubernetes e Docker

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.

Exemplo: Script de inferência para contentorizaçã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.")

Ferramentas e Ecossistema

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.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora