Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Docker

Simplifique os fluxos de trabalho de IA/ML com Docker! Aprenda a implantar modelos, garantir a reprodutibilidade e escalar com eficiência em diferentes ambientes.

O Docker é uma plataforma de código aberto que automatiza a implantação, o dimensionamento e o gerenciamento de aplicativos por meio da contentorização. No domínio em rápida evolução da inteligência artificial (IA), o Docker resolve um desafio crítico conhecido como o problema "funciona na minha máquina". Ao empacotar um modelo de modelo de aprendizagem automática (ML) juntamente com o seu código, tempo de execução, ferramentas de sistema e bibliotecas numa unidade padronizada chamada contentor, o Docker garante que o software será executado rigorosamente da mesma forma, independentemente do ambiente de computação. Essa consistência é vital para os pipelines modernos de pipelines de MLOps modernos, facilitando transições suaves do desenvolvimento local para infraestrutura de computação em nuvem ou dispositivos de borda.

Conceitos básicos do Docker

Compreender o Docker requer familiaridade com três componentes fundamentais que definem o seu fluxo de trabalho.

  • Dockerfile: Este é um documento de texto que contém todos os comandos que um utilizador pode chamar na linha de comando linha de comando para montar uma imagem. Para um projeto de IA, um Dockerfile actua como uma receita, especificando o sistema operativo sistema operacional, instalando linguagens como Pythone configurando as frameworks como o PyTorch ou TensorFlow.
  • Imagem do Docker: Uma imagem é um modelo somente leitura com instruções para criar um contêiner Docker. Ela captura o estado do aplicativo em um momento específico. Os desenvolvedores costumam usar imagens de base otimizadas de registros como o NVIDIA NGC para aproveitar os drivers pré-instalados para GPU para aceleração de GPU.
  • Contentor Docker: Um contentor é uma instância executável de uma imagem. Ele isola a aplicação do sistema do sistema anfitrião enquanto partilha o kernel do sistema operativo do anfitrião. Esse isolamento garante que os conflitos de software sejam minimizados, um requisito fundamental para uma implantação estável do modelo.

Docker em aplicações de IA do mundo real

O Docker é indispensável para a implantação de soluções robustas de soluções robustas de visão computacional (CV).

  1. Implantação de IA de borda: Ao implantar modelos em dispositivos com recursos limitados, como o NVIDIA Jetson, os contêineres Docker fornecem um ambiente leve que inclui dependências específicas, como OpenCV e bibliotecas específicas de hardware. Por exemplo, um Ultralytics YOLO11 empacotado num contentor Docker pode ser facilmente enviado para milhares de câmaras remotas para deteção de objectos sem se preocupar com a configuração individual do dispositivo.
  2. Investigação e formação reprodutíveis: Na investigação académica e industrial, a reprodução dos resultados é é fundamental. Ao utilizar o Docker, os investigadores podem congelar a versão exacta de cada biblioteca utilizada durante o treinamento de modelos. Isso elimina discrepâncias causadas por actualizações de software e permite que outros verifiquem os resultados ou desenvolvam o trabalho, promovendo uma melhor colaboração na ciência dos dados.

Integração do Docker com o YOLO

Executar a inferência em um contêiner do Docker ajuda a garantir que seu ambiente permaneça limpo e suas dependências não não entrem em conflito com outros pacotes de nível de sistema. Abaixo está um script Python simples que normalmente seria executado dentro de um contêiner Docker para executar segmentação de imagem ou tarefas de tarefas de deteção.

from ultralytics import YOLO

# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")

# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")

# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")

Docker vs. Máquinas virtuais

Embora ambas as tecnologias isolem as aplicações, funcionam de forma diferente.

  • Máquinas virtuais (VMs): Uma VM emula um sistema de computador inteiro, incluindo um sistema operativo convidado completo convidado. Isso torna as VMs pesadas e mais lentas para iniciar. A Red Hat fornece uma comparação detalhada que ilustra as diferenças de arquitetura.
  • Contentores Docker: Os contentores virtualizam o sistema operativo em vez do hardware. Eles compartilham o kernel do host, tornando-os significativamente mais leves e eficientes. Esta eficiência é crucial quando implantação de modelos de alto desempenho como o próximo YOLO26, que tem como objetivo maximizar a velocidade e a precisão com com o mínimo de sobrecarga.

Relação com Kubernetes

Docker e Kubernetes são ferramentas distintas, mas complementares complementares. O Docker é utilizado para criar e executar contentores individuais. No entanto, ao gerenciar centenas de contêineres em um cluster de servidores para servir modelos, é necessária uma ferramenta de orquestração é necessária. O Kubernetes coordena o agendamento e a execução de contêineres Docker, garantindo alta disponibilidade e escalabilidade para agentes de agentes de IA de nível empresarial. Você pode ler mais sobre essa sinergia na documentação do documentação do Kubernetes.

Desenvolvimentos futuros no ecossistema Ultralytics , como a futura Plataforma Ultralytics , aproveitarão esses princípios de contentorização para simplificar os fluxos de trabalho de fornecimento, formação e implementação de dados, abstraindo ainda mais as complexidades do gerenciamento de infraestrutura.

Junte-se à comunidade Ultralytics

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

Junte-se agora