Pular para o conteúdo principal

As 12 principais imagens de contêineres do Docker para aprendizado de máquina e IA

Impulsione seus projetos de IA e ML com essas imagens de contêineres do Docker - pré-configuradas, otimizadas e prontas para acelerar seu fluxo de trabalho de desenvolvimento.
Actualizado 27 de fev. de 2025  · 13 min de leitura

Se você é um engenheiro de aprendizado de máquina, é provável que já tenha usado o Docker em um de seus projetos, seja para implantar o endpoint de inferência de um modelo ou automatizar o pipeline de aprendizado de máquina para treinamento, avaliação e implantação. O Docker simplifica esses processos, garantindo consistência e escalabilidade em ambientes de produção.

Mas aqui está a pergunta: Você está ciente de todas as imagens do Docker disponíveis no Docker Hub e no GitHub? Essas imagens pré-criadas podem economizar tempo para você, eliminando a necessidade de criar imagens localmente. Em vez disso, você pode extraí-los e usá-los diretamente em seus Dockerfiles ou configurações do Docker Compose, acelerando o desenvolvimento e a implantação.

Neste blog, exploraremos as 12 principais imagens de contêineres do Docker projetadas para fluxos de trabalho de aprendizado de máquina. Isso inclui ferramentas para ambientes de desenvolvimento, estruturas de aprendizagem profunda, gerenciamento do ciclo de vida da aprendizagem automática, orquestração de fluxo de trabalho e modelos de linguagem grandes.

Se você não conhece o Docker, faça este curso de Introdução ao Docker para entender os conceitos básicos. 

Por que usar contêineres do Docker para aprendizado de máquina?

Se você já ouviu a frase "funciona na minha máquina", então você entende a dificuldade de manter um ambiente de desenvolvedor consistente em várias plataformas e estágios. É aí que entram os contêineres do Docker, pois eles encapsulam o código, as dependências e as configurações em uma imagem portátil, garantindo a consistência em diferentes ambientes. Os modelos e a API do endpoint se comportam de forma idêntica durante as implementações de desenvolvimento, teste e produção, independentemente das variações na infraestrutura subjacente. 

Ao isolar as dependências, como versões específicas do Python, PyTorch ou CUDA, o Docker garante a reprodutibilidade dos experimentos e reduz os conflitos entre as bibliotecas.

Diagrama de aplicativos em contêineres.

Fonte: Docker

Você pode compartilhar a imagem do Docker com a sua equipe, e eles podem simplesmente extrair a imagem para criar várias instâncias. Esse processo também simplifica a implantação ao empacotar modelos em contêineres com APIs, permitindo a integração perfeita com ferramentas de orquestração, como o Kubernetes, para a veiculação de produção dimensionável.

Em resumo, como engenheiro de aprendizado de máquina, você precisa saber como lidar com imagens do Docker e implantar contêineres do Docker na nuvem.

Entenda os principais conceitos de conteinerização inscrevendo-se no curso de curta duração Containerization and Virtualization Concepts.

Ambiente de desenvolvimento Contêineres do Docker

Para configurar um fluxo de trabalho de desenvolvimento de aprendizado de máquina perfeito, você precisa de um ambiente confiável com ferramentas e bibliotecas essenciais. Essas imagens de contêiner do Docker fornecem configurações pré-configuradas de ciência de dados, codificação e experimentação.

1. Python

O Python é a espinha dorsal da maioria dos projetos de aprendizado de máquina, já que quase todas as principais estruturas e aplicativos, como TensorFlow, PyTorch e scikit-learn, são desenvolvidos com base nele. Sua popularidade se estende à implantação, em que o Python é comumente usado em imagens do Docker para criar ambientes consistentes para inferência de modelos. Por exemplo:

FROM python:3.8
RUN pip install --no-cache-dir numpy pandas

A simplicidade do Python, o extenso ecossistema de bibliotecas e a compatibilidade com ferramentas como o Docker fazem dele a opção ideal para o desenvolvimento e a implantação do aprendizado de máquina.

2. Pilha de ciência de dados do Jupyter Notebook

O Jupyter Docker Stacks oferece um ambiente abrangente para ciência de dados e aprendizado de máquina, incluindo o Jupyter Notebook e um conjunto de bibliotecas populares de ciência de dados. Você pode facilmente extrair a imagem do Docker Hub e usá-la localmente. Além disso, você pode implementar essa instância na nuvem e compartilhá-la com sua equipe.

Para executar o Jupyter Data Science Notebook, use o seguinte comando:

docker run -it --rm -p 8888:8888 jupyter/datascience-notebook

Ele também pode ser usado com um Dockerfile, para que você não precise instalar pacotes Python usando o pip. Você só precisa executar o aplicativo ou executar um script Python. Aqui está um exemplo de Dockerfile:

FROM jupyter/datascience-notebook:latest

Essa imagem inclui bibliotecas populares, como NumPy, pandas, matplotlib e scikit-learn, juntamente com o Jupyter Notebook para computação interativa. Ele é ideal para exploração de dados, visualização e experimentos de aprendizado de máquina, o que o torna um elemento básico na comunidade de ciência de dados.

Para obter mais informações, confira o blog Docker for Data Science: An Introduction, onde você pode aprender sobre comandos do Docker, aplicativos de aprendizado de máquina de dockerização e práticas recomendadas em todo o setor.

3. Cadernos de anotações do Kubeflow

As imagens do Kubeflow Notebook foram projetadas para funcionar nos pods do Kubernetes, que são criados para fluxos de trabalho de aprendizado de máquina no Kubernetes. Você pode escolher entre três tipos de notebooks: JupyterLab, RStudio e Visual Studio Code (servidor de código).

Teste-o localmente executando o seguinte comando:

docker run -it --rm -p 8888:8888 kubeflownotebookswg/jupyter-pytorch

As imagens do Kubeflow Notebooks são particularmente úteis em ambientes em que o Kubernetes é a infraestrutura subjacente. Eles facilitam projetos de aprendizado de máquina colaborativos e dimensionáveis e se integram perfeitamente ao Kubernetes para fluxos de trabalho de aprendizado de máquina dimensionáveis e reproduzíveis.

Saiba mais sobre o Docker e o Kubernetesfazendo o curso de habilidades Containerization and Virtualization with Docker and Kubernetes. Este curso interativo permitirá que você crie e implemente aplicativos em ambientes modernos.

Estrutura de aprendizagem profunda Contêineres do Docker

As estruturas de aprendizagem profunda exigem ambientes otimizados para treinamento e inferência. Essas imagens de contêineres vêm pré-embaladas com as dependências necessárias, economizando tempo de instalação e configuração.

4. PyTorch

O PyTorch é uma das principais estruturas de aprendizagem profunda, conhecidan por sua abordagem modular para a criação de redes neurais profundas. Você pode criar um Dockerfile e executar sua inferência de modelo facilmente sem instalar o pacote PyTorch usando o comando pip.

FROM pytorch/pytorch:latest
RUN python main.py

A imagem do PyTorch Docker é amplamente usada para treinamento e implantação de modelos em configurações de pesquisa e produção. Ele oferece um ambiente otimizado para o desenvolvimento e a implantação de modelos de aprendizagem profunda, especialmente em tarefas de processamento de linguagem natural e visão computacional.

5. TensorFlow

O TensorFlow é outra estrutura líder de aprendizagem profunda amplamente adotada naademia e no setor. Ele funciona bem com o ecossistema do Google e com todos os pacotes compatíveis com o TensorFlow para rastreamento experimental e fornecimento de modelos. 

FROM tensorflow/tensorflow:latest
RUN python main.py

A imagem do Docker do TensorFlow inclui o pacote Python do TensorFlow e suas dependências, geralmente otimizadas para aceleração de GPU. Isso o torna ideal para a criação e implementação de modelos de aprendizado de máquina, especialmente em ambientes de produção em larga escala.

6. Tempo de execução de aprendizagem profunda NVIDIA CUDA

O tempo de execução de aprendizagem profunda NVIDIA CUDA é essencial para acelerar a computação de aprendizagem profunda em GPUs. Você pode adicionar isso facilmente ao seu Dockerfile, eliminando a necessidade de configurar manualmente o CUDA para executar tarefas de aprendizado de máquina aceleradas por GPU. 

FROM nvidia/cuda
RUN python main.py

As imagens NVIDIA CUDA Docker oferecem um ambiente de tempo de execução otimizado para aplicativos de aprendizagem profunda usando GPUs NVIDIA, melhorando significativamente o desempenho dos modelos de aprendizagem profunda. 

Você pode saber mais sobre como as GPUs aceleramos fluxos de trabalho de ciência de dadosna postagem do blog sobre aceleração de GPU da Polars.

Aprendizado de máquina Gerenciamento do ciclo de vida Docker Containers

Para gerenciar o ciclo de vida do aprendizado de máquina, da experimentação à implementação, você precisa de ferramentas especializadas. Essas imagens do Docker simplificam o controle de versão, o rastreamento e a implementação.

7. MLflow

O MLflow é uma plataforma de código aberto para gerenciar o ciclo de vida do aprendizado de máquina, incluindo experimentação, reprodutibilidade e implantação. Você pode executar o servidor do MLflow usando o seguinte comando, que fornecerá o servidor do MLflow para armazenamento e controle de versão de experimentos, modelos e artefatos. Ele também oferece um painel interativo para que os gerentes visualizem os experimentos e modelos. 

docker run -it --rm -p 9000:9000 ghcr.io/mlflow/mlflow

8. Transformadores de rostos abraçados

O Hugging Face Transformers é amplamente usado para várias aplicações, desde encontrar grandes modelos de linguagem até criar modelos de geração de imagens. Ele foi desenvolvido com base no PyTorch, no TensorFlow e em outras estruturas importantes de aprendizagem profunda. Isso significa que você pode usá-lo para carregar qualquer modelo de aprendizado de máquina, ajustá-lo, acompanhar o desempenho e salvar seu trabalho no Hugging Face.

FROM huggingface/transformers-pytorch-gpu
RUN python main.py

Hugging Face Transformers As imagens do Docker são populares para o ajuste fino e a implementação de grandes modelos de linguagem de forma rápida e eficiente. De modo geral, o ecossistema moderno de IA depende muito desse pacote, e você pode incorporá-lo ao seu Dockerfile para aproveitar todos os seus recursos sem se preocupar com dependências.

Orquestração de fluxo de trabalho Contêineres do Docker

Os projetos de aprendizado de máquina geralmente envolvem fluxos de trabalho complexos que exigem automação e agendamento. Essas ferramentas de orquestração de fluxo de trabalho ajudam a otimizar os pipelines de aprendizado de máquina.

9. Fluxo de ar

O Apache Airflow é umaplataforma de código abertopara criar, agendar e monitorar fluxos de trabalho de forma programática.

docker run -it --rm -p 8080:8080 apache/airflow

O Airflow é amplamente usado para orquestrar pipelines complexos de aprendizado de máquina. Ele fornece uma plataforma para criar, programar e monitorar fluxos de trabalho como gráficos acíclicos direcionados (DAGs), o que o torna indispensável na engenharia de aprendizado de máquina para automatizar e gerenciar fluxos de trabalho de dados.

10. n8n

O n8n é um fluxo de trabalho de código aberto ferramenta de automação que está ganhando popularidade devido à sua flexibilidade e facilidade de uso, especialmente na automação de fluxos de trabalho de aprendizado de máquina. Você pode executá-lo localmente e criar seu próprio aplicativo RAG usando a interface de arrastar e soltar.

docker run -it --rm -p 5678:5678 n8nio/n8n

A n8n oferece uma interface amigável para a criação de fluxos de trabalho que integram vários serviços e APIs. Ele é especialmente útil para automatizar tarefas repetitivas e conectar diferentes sistemas e serviços em projetos de aprendizado de máquina.

Para saber mais sobre como criar fluxos de trabalho de aprendizado de máquina em Python, considere fazer o curso Designing Machine Learning Workflows in Python.

Modelos de idiomas grandes Contêineres do Docker

À medida que os LLMs se tornam mais comuns, os contêineres especializados do Docker ajudam a implementar e dimensionar esses modelos de forma eficiente.

11. Ollama

O Ollama foi projetado para implantar e executar grandes modelos de linguagem localmente. Usando o Ollama Docker, você pode fazer download e servir os LLMs, o que permite integrá-los aos seus aplicativos. É a maneira mais fácil de executar modelos de linguagem grandes quantizados e completos na produção.

docker run -it --rm ollama/ollama

12. Qdrant

O Qdrant é um mecanismo de pesquisa vetorial usado para implantar aplicativos de pesquisa de similaridade vetorial. Ele vem com um painel e um servidor para você se conectar para enviar e recuperar dados vetoriais rapidamente.

docker run -it --rm -p 6333:6333 qdrant/qdrant

O Qdrant fornece ferramentas para pesquisa eficiente de similaridade e agrupamento de dados de alta dimensão. Ele é particularmente útil em aplicativos como sistemas de recomendação, recuperação de imagens e textos e pesquisa semântica, que são cada vez mais importantes em projetos de aprendizado de máquina que envolvem grandes modelos de linguagem.

Conclusão

Neste blog, exploramos 12 imagens essenciais de contêineres do Docker adaptadas para projetos de aprendizado de máquina. Essas imagens oferecem um kit de ferramentas abrangente, desde ambientes de desenvolvimento até ferramentas para modelos de linguagem grandes. Ao aproveitar esses contêineres, os cientistas e engenheiros de dados podem criar ambientes de projeto consistentes, reproduzíveis e dimensionáveis, simplificando os fluxos de trabalho e aumentando a produtividade.

A próxima etapa do processo de aprendizado é criar seu próprio projeto usando essas imagens de contêiner do Docker! 

Se você quiser aprender a criar seus próprios aplicativos de IA com as mais recentes ferramentas de desenvolvimento de IA, confira o curso Desenvolvendo aplicativos de IA.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

Perguntas frequentes

O Docker é bom para o aprendizado de máquina?

Sim, o Docker é altamente benéfico para projetos de aprendizado de máquina. Ele oferece uma maneira flexível de gerenciar ambientes e dependências, garantindo consistência e reprodutibilidade. Ao colocar seus modelos de aprendizado de máquina em contêineres, você pode simplificar a implantação e evitar problemas causados por diferenças nas configurações do sistema.

O que é o Docker Hub?

O Docker Hub é um repositório baseado em nuvem onde você pode encontrar e compartilhar imagens de contêineres. Ele oferece uma vasta biblioteca de imagens pré-construídas, que podem acelerar significativamente os fluxos de trabalho de desenvolvimento e reduzir o tempo de configuração. Além disso, você pode criar suas próprias imagens do Docker e enviá-las para sua conta do Docker Hub, tornando-as acessíveis à sua equipe para colaboração.

Onde posso encontrar contêineres do Docker?

Os contêineres e as imagens do Docker são armazenados em locais específicos, dependendo do seu sistema operacional:

  • Ubuntu, Fedora, Debian: /var/lib/docker/
  • Windows: C:\ProgramData\DockerDesktop
  • MacOS: ~/Biblioteca/Contêineres/com.docker.docker/Data/vms/0/

Qual é o uso mais popular do Docker?

O Docker é amplamente usado para desenvolver, testar e implantar aplicativos da Web. Ele simplifica o manuseio de integrações e dependências complexas, tornando-o uma ferramenta essencial para o desenvolvimento de software moderno.

O Docker é mais rápido do que a VM?

Sim, o Docker é geralmente mais rápido do que as máquinas virtuais tradicionais. O Docker usa virtualização no nível do sistema operacional, o que permite que os contêineres compartilhem o kernel do sistema operacional host.

O que é o alpine no Docker?

O Alpine é uma distribuição Linux leve, frequentemente usada em contêineres do Docker. Ele é conhecido por seu tamanho pequeno, segurança e eficiência, o que o torna ideal para criar imagens mínimas do Docker que reduzem o uso de recursos e melhoram o desempenho.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.

Temas

Saiba mais sobre aprendizado de máquina e IA com estes cursos!

curso

End-to-End Machine Learning

4 hr
10.7K
Dive into the world of machine learning and discover how to design, train, and deploy end-to-end models.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O guia completo da certificação Docker (DCA) para 2024

Libere seu potencial no Docker e na ciência de dados com nosso guia abrangente. Explore as certificações do Docker, os caminhos de aprendizado e as dicas práticas.
Matt Crabtree's photo

Matt Crabtree

8 min

Machine Learning

blog

25 projetos de aprendizado de máquina para todos os níveis

Projetos de aprendizado de máquina para iniciantes, estudantes do último ano e profissionais. A lista consiste em projetos guiados, tutoriais e exemplos de código-fonte.
Abid Ali Awan's photo

Abid Ali Awan

15 min

AI shaking hands with a human

blog

As 5 melhores ferramentas de IA para ciência de dados em 2024: Aumente seu fluxo de trabalho hoje mesmo

Os recentes avanços em IA têm o potencial de mudar drasticamente a ciência de dados. Leia este artigo para descobrir as cinco melhores ferramentas de IA que todo cientista de dados deve conhecer
Javier Canales Luna's photo

Javier Canales Luna

9 min

blog

As 16 principais estruturas e bibliotecas de IA: Um guia para iniciantes

Explore as melhores estruturas e bibliotecas de IA e seus conceitos básicos neste guia definitivo para profissionais de dados juniores que estão iniciando suas carreiras profissionais.
Yuliya Melnik's photo

Yuliya Melnik

15 min

blog

Os 11 melhores assistentes de codificação de IA em 2024

Explore os melhores assistentes de codificação, incluindo ferramentas de código aberto, gratuitas e comerciais que podem aprimorar sua experiência de desenvolvimento.
Abid Ali Awan's photo

Abid Ali Awan

8 min

blog

Os 7 principais geradores de vídeo com IA para 2024 com vídeos de exemplo

Descubra os principais geradores de vídeo com IA disponíveis atualmente, incluindo RunwayML, Synthesia, Colossyan, Pictory, DeepBrain AI, Invideo e os altamente esperados Sora e Veo da DeepMind.
Ver maisVer mais