Glossário

Contentorização

Descubra o poder da contentorização para projectos de IA/ML. Simplifique os fluxos de trabalho, garanta a consistência e dimensione de forma eficiente com ferramentas de ponta.

A contentorização é uma forma leve de virtualização do sistema operativo que lhe permite empacotar uma aplicação e as suas dependências - tais como bibliotecas, estruturas e ficheiros de configuração - numa única unidade isolada denominada contentor. Isto resolve o problema comum de o software não funcionar corretamente quando é transferido de um ambiente de computação para outro. No contexto do Machine Learning (ML), a contentorização garante que os modelos complexos de IA e as suas intrincadas pilhas de software são portáteis, reproduzíveis e escaláveis, constituindo uma componente crítica das práticas modernas de MLOps.

A tecnologia de contentorização mais utilizada é o Docker, que fornece uma forma padronizada de construir, enviar e executar contentores. Cada contentor partilha o kernel do SO do sistema anfitrião, mas é executado como um processo isolado no espaço do utilizador. Esta abordagem, padronizada por organizações como a Open Container Initiative (OCI), torna os contentores muito mais eficientes em termos de recursos e mais rápidos de lançar do que as máquinas virtuais tradicionais. Pode saber mais sobre os fundamentos da contentorização a partir de recursos como a explicação da Red Hat sobre contentores.

Containerização vs. Conceitos relacionados

Compreender as distinções entre contentorização e tecnologias semelhantes é fundamental para apreciar o seu papel nos fluxos de trabalho de IA/ML.

  • Máquinas virtuais (VMs): Embora tanto os contêineres quanto as VMs forneçam ambientes isolados, eles operam em níveis diferentes. Uma VM emula uma pilha de hardware inteira, incluindo um sistema operativo convidado completo, o que a torna pesada e lenta a iniciar. Em contrapartida, um contentor virtualiza o SO, partilhando o kernel do anfitrião. Isto torna os contentores muito mais leves e rápidos, embora as VMs possam oferecer um maior grau de isolamento ao nível do hardware.
  • Docker: A contentorização é o conceito subjacente. O Docker é a plataforma mais popular que implementa este conceito, fornecendo as ferramentas para criar e gerir contentores individuais. Para um início prático, o Ultralytics fornece um guia de início rápido do Docker para executar modelos YOLO. Também pode explorar os recursos oficiais do Docker para obter mais informações.
  • Kubernetes: Enquanto o Docker gere contentores individuais num anfitrião, o Kubernetes é uma plataforma de orquestração de contentores. Ele automatiza a implantação, o dimensionamento e o gerenciamento de milhares de contêineres em clusters de máquinas. Um fluxo de trabalho comum é criar um contêiner com o Docker e, em seguida, gerenciá-lo em escala usando o Kubernetes. Para um mergulho mais profundo, consulte a documentação oficial do Kubernetes.
  • Computação sem servidor: Serverless é um modelo de execução em que os provedores de nuvem gerenciam automaticamente a infraestrutura necessária para executar o código. Isso abstrai servidores e contêineres completamente. Enquanto a contentorização fornece controlo sobre o ambiente da aplicação, as plataformas sem servidor, como o AWS Lambda, dão prioridade à facilidade de utilização, ocultando toda a gestão da infraestrutura.

Aplicações do mundo real em IA/ML

A contentorização é amplamente utilizada em todo o ciclo de vida da IA/ML, desde a experimentação até à implementação do modelo de produção.

  1. Implantação de modelos de deteção de objetos: Um modelo YOLO do Ultralytics treinado para deteção de objetos pode ser empacotado em um contêiner Docker. Esse contêiner inclui os pesos do modelo, o script de inferência e todas as dependências necessárias, como as bibliotecas PyTorch e NVIDIA CUDA. Esta unidade autónoma pode então ser implementada de forma consistente em várias plataformas, desde poderosas GPUs na nuvem até dispositivos Edge AI com recursos limitados, garantindo que o modelo funciona como esperado, independentemente do ambiente.
  2. Servindo modelos de PNL como microsserviços: Uma equipa que desenvolva uma aplicação de Processamento de Linguagem Natural (PLN) utilizando modelos de plataformas como a Hugging Face pode colocar em contentores diferentes componentes (por exemplo, pré-processamento de texto, inferência de modelos, ponto final da API) como microsserviços separados. Estes contentores podem ser geridos utilizando Kubernetes, permitindo o escalonamento e a atualização independentes de cada componente. Isto segue os princípios de uma arquitetura de microsserviços e conduz a um sistema mais resiliente. Plataformas como o Ultralytics HUB aproveitam os princípios de contentorização para simplificar a gestão e a implementação de modelos.

Ao fornecer um ambiente consistente e isolado, a contentorização tornou-se uma pedra angular do desenvolvimento de software moderno, especialmente nos campos em rápida evolução da IA e da Visão por Computador (CV). Permite que os programadores e os engenheiros de MLOps criem, testem e implementem aplicações de IA fiáveis com maior velocidade e eficiência em plataformas como o Google Cloud e o Amazon Elastic Container Service.

Junte-se à comunidade Ultralytics

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

Aderir agora
Ligação copiada para a área de transferência