Cours
Les 12 meilleures images de conteneurs Docker pour l'apprentissage automatique et l'IA
Si vous êtes un ingénieur en apprentissage automatique, il y a de fortes chances que vous ayez utilisé Docker dans l'un de vos projets, que ce soit pour déployer le point final d'inférence d'un modèle ou pour automatiser le pipeline d'apprentissage automatique pour la formation, l'évaluation et le déploiement. Docker simplifie ces processus et garantit la cohérence et l'évolutivité des environnements de production.
Mais voici la question : Connaissez-vous toutes les images Docker disponibles sur Docker Hub et GitHub ? Ces images préconstruites peuvent vous faire gagner du temps en vous évitant d'avoir à les construire localement. Au lieu de cela, vous pouvez les extraire et les utiliser directement dans vos Dockerfiles ou vos configurations Docker Compose, ce qui accélère le développement et le déploiement.
Dans ce blog, nous allons explorer les 12 meilleures images de conteneurs Docker conçues pour les flux de travail d'apprentissage automatique. Il s'agit notamment d'outils pour les environnements de développement, les cadres d'apprentissage profond, la gestion du cycle de vie de l'apprentissage automatique, l'orchestration des flux de travail et les grands modèles de langage.
Si vous ne connaissez pas Docker, suivez ce cours d'introduction à Docker pour en comprendre les bases.
Pourquoi utiliser les conteneurs Docker pour l'apprentissage automatique ?
Si vous avez déjà entendu l'expression "ça marche sur ma machine", vous comprenez la difficulté de maintenir un environnement de développement cohérent sur plusieurs plates-formes et à différents stades. C'est là qu'interviennent les conteneurs Docker, qui encapsulent le code, les dépendances et les configurations dans une image portable, garantissant ainsi la cohérence entre les différents environnements. Les modèles et l'API d'extrémité se comportent de manière identique pendant le développement, les tests et les déploiements de production, quelles que soient les variations de l'infrastructure sous-jacente.
En isolant les dépendances - telles que des versions spécifiques de Python, PyTorch ou CUDA - Docker assure la reproductibilité des expériences et réduit les conflits entre les bibliothèques.
Source : Docker
Vous pouvez partager l'image Docker avec votre équipe, et ils peuvent simplement tirer l'image pour créer plusieurs instances. Ce processus rationalise également le déploiement en conditionnant les modèles dans des conteneurs avec des API, ce qui permet une intégration transparente avec des outils d'orchestration tels que Kubernetes pour un service de production évolutif.
En bref, en tant qu'ingénieur en apprentissage automatique, vous devez savoir comment manipuler les images Docker et déployer des conteneurs Docker dans le cloud.
Comprenez les concepts de base de la conteneurisation en vous inscrivant à la courte formation Concepts de conteneurisation et de virtualisation.
Environnement de développement Conteneurs Docker
Pour mettre en place un flux de développement d'apprentissage automatique transparent, vous avez besoin d'un environnement fiable avec des outils et des bibliothèques essentiels. Ces images de conteneurs Docker fournissent des configurations préconfigurées pour la science des données, le codage et l'expérimentation.
1. Python
Python est l'épine dorsale de la plupart des projets d'apprentissage automatique, car presque tous les principaux cadres et applications, tels que TensorFlow, PyTorch et scikit-learn, sont construits autour de lui. Sa popularité s'étend au déploiement, où Python est couramment utilisé dans les images Docker pour créer des environnements cohérents pour l'inférence de modèles. Par exemple :
FROM python:3.8
RUN pip install --no-cache-dir numpy pandas
La simplicité de Python, son vaste écosystème de bibliothèques et sa compatibilité avec des outils comme Docker en font un choix de premier ordre pour le développement et le déploiement de l'apprentissage automatique.
2. Pile Jupyter Notebook pour la science des données
Les piles Jupyter Docker fournissent un environnement complet pour la science des données et l'apprentissage automatique, y compris Jupyter Notebook et une suite de bibliothèques populaires pour la science des données. Vous pouvez facilement extraire l'image de Docker Hub et l'utiliser localement. En outre, vous pouvez déployer cette instance sur le cloud et la partager avec votre équipe.
Pour lancer le Jupyter Data Science Notebook, utilisez la commande suivante :
docker run -it --rm -p 8888:8888 jupyter/datascience-notebook
Il peut également être utilisé avec un fichier Dockerfile, ce qui vous évite d'installer des paquets Python à l'aide de pip. Il vous suffit de lancer l'application ou d'exécuter un script Python. Voici un exemple de fichier Docker :
FROM jupyter/datascience-notebook:latest
Cette image comprend des bibliothèques populaires telles que NumPy, pandas, matplotlib et scikit-learn, ainsi que Jupyter Notebook pour l'informatique interactive. Il est idéal pour l'exploration des données, la visualisation et les expériences d'apprentissage automatique, ce qui en fait un élément essentiel de la communauté de la science des données.
Pour plus d'informations, consultez le blog Docker for Data Science : Une introduction, où vous pourrez découvrir les commandes Docker, la dockérisation des applications d'apprentissage automatique et les meilleures pratiques de l'industrie.
3. Carnets Kubeflow
Les images Kubeflow Notebook sont conçues pour fonctionner dans les pods Kubernetes, qui sont construits pour les flux de travail d'apprentissage automatique sur Kubernetes. Vous avez le choix entre trois types de carnets : JupyterLab, RStudio et Visual Studio Code (serveur de code).
Testez-le localement en exécutant la commande suivante :
docker run -it --rm -p 8888:8888 kubeflownotebookswg/jupyter-pytorch
Les images Kubeflow Notebooks sont particulièrement utiles dans les environnements où Kubernetes est l'infrastructure sous-jacente. Ils facilitent les projets d'apprentissage automatique collaboratifs et évolutifs et s'intègrent parfaitement à Kubernetes pour des flux de travail d'apprentissage automatique évolutifs et reproductibles.
Découvrez Docker et Kubernetesen suivant le cursus de compétences Conteneurisation et virtualisation avec Docker et Kubernetes. Ce cursus interactif vous permettra de construire et de déployer des applications dans des environnements modernes.
Cadre d'apprentissage profond Conteneurs Docker
Les cadres d'apprentissage profond nécessitent des environnements optimisés pour la formation et l'inférence. Ces images de conteneurs sont préemballées avec les dépendances nécessaires, ce qui permet de gagner du temps lors de l'installation et de la configuration.
4. PyTorch
PyTorch est l'un des principaux cadres d'apprentissage profond connusn pour son approche modulaire de la construction de réseaux neuronaux profonds. Vous pouvez créer un fichier Docker et exécuter votre modèle d'inférence facilement sans installer le paquet PyTorch à l'aide de la commande pip
.
FROM pytorch/pytorch:latest
RUN python main.py
L'image Docker PyTorch est largement utilisée pour l'entraînement et le déploiement de modèles dans des contextes de recherche et de production. Il fournit un environnement optimisé pour développer et déployer des modèles d'apprentissage profond, en particulier dans les tâches de traitement du langage naturel et de vision par ordinateur.
5. TensorFlow
TensorFlow est un autre cadre d'apprentissage profond de premier plan largement adopté dans l'academia et l'industrie. Il fonctionne bien avec l'écosystème Google et tous les paquets supportant TensorFlow pour le suivi expérimental et le service de modèles.
FROM tensorflow/tensorflow:latest
RUN python main.py
L'image Docker TensorFlow inclut le package Python TensorFlow et ses dépendances, souvent optimisés pour l'accélération GPU. Il est donc idéal pour élaborer et déployer des modèles d'apprentissage automatique, en particulier dans les environnements de production à grande échelle.
6. Runtime d'apprentissage profond NVIDIA CUDA
Le runtime d'apprentissage profond NVIDIA CUDA est essentiel pour accélérer les calculs d'apprentissage profond sur les GPU. Vous pouvez facilement l'ajouter à votre fichier Docker, éliminant ainsi la nécessité de configurer manuellement CUDA pour exécuter des tâches d'apprentissage automatique accélérées par le GPU.
FROM nvidia/cuda
RUN python main.py
Les images Docker NVIDIA CUDA offrent un environnement d'exécution optimisé pour les applications de deep learning utilisant les GPU NVIDIA, améliorant ainsi de manière significative les performances des modèles de deep learning.
Vous pouvez en savoir plus sur la façon dont les GPU accélèrent lesflux de travail en science des donnéesdans l'article du blog Polars sur l'accélération GPU.
Machine Learning Gestion du cycle de vie Conteneurs Docker
La gestion du cycle de vie de l'apprentissage automatique - de l'expérimentation au déploiement - nécessite des outils spécialisés. Ces images Docker rationalisent la gestion des versions, le suivi et le déploiement.
7. MLflow
MLflow est une plateforme open-source permettant de gérer le cycle de vie de l'apprentissage automatique, y compris l'expérimentation, la reproductibilité et le déploiement. Vous pouvez lancer le serveur MLflow à l'aide de la commande suivante, qui fournira le serveur MLflow pour le stockage et la gestion des versions des expériences, des modèles et des artefacts. Il fournit également un tableau de bord interactif permettant aux gestionnaires de visualiser les expériences et les modèles.
docker run -it --rm -p 9000:9000 ghcr.io/mlflow/mlflow
8. Transformateurs Hugging Face
Hugging Face Transformers est largement utilisé pour varieuses applications, de la recherche de grands modèles de langage à la construction de modèles de génération d'images. Il est construit au-dessus de PyTorch, TensorFlow, et d'autres frameworks majeurs d'apprentissage profond. Cela signifie que vous pouvez l'utiliser pour charger n'importe quel modèle d'apprentissage automatique, l'affiner, suivre les performances et enregistrer votre travail sur Hugging Face.
FROM huggingface/transformers-pytorch-gpu
RUN python main.py
Hugging Face Transformers Les images Docker sont très appréciées pour affiner et déployer rapidement et efficacement de grands modèles de langage. Dans l'ensemble, l'écosystème moderne de l'IA dépend fortement de ce paquet, et vous pouvez l'incorporer dans votre fichier Docker pour profiter de toutes ses fonctionnalités sans vous soucier des dépendances.
Orchestration de flux de travail Conteneurs Docker
Les projets d'apprentissage automatique impliquent souvent des flux de travail complexes qui nécessitent une automatisation et une planification. Ces outils d'orchestration de flux de travail permettent de rationaliser les pipelines d'apprentissage automatique.
9. Airflow
Apache Airflow est uneplateforme open-sourcepermettant de créer, planifier et contrôler des flux de travail de manière programmatique.
docker run -it --rm -p 8080:8080 apache/airflow
Airflow est largement utilisé pour orchestrer des pipelines complexes d'apprentissage automatique. Il fournit une plate-forme pour la création, l'ordonnancement et le suivi des flux de travail sous la forme de graphes acycliques dirigés (DAG), ce qui le rend indispensable dans l'ingénierie de l'apprentissage automatique pour automatiser et gérer les flux de données.
10. n8n
n8n est un outil d'automatisation de flux de travail open-source qui gagne en popularité en raison de sa flexibilité et de sa facilité d'utilisation, en particulier pour l'automatisation des flux de travail d'apprentissage automatique. Vous pouvez l'exécuter localement et créer votre propre application RAG à l'aide de l'interface "glisser-déposer".
docker run -it --rm -p 5678:5678 n8nio/n8n
n8n fournit une interface conviviale pour créer des flux de travail intégrant divers services et API. Il est particulièrement utile pour automatiser les tâches répétitives et connecter différents systèmes et services dans les projets d'apprentissage automatique.
Pour en savoir plus sur la création de workflows d'apprentissage automatique en Python, pensez à suivre la formation Conception de workflows d'apprentissage automatique en Python.
Grands modèles linguistiques Conteneurs Docker
À mesure que les LLM se généralisent, les conteneurs Docker spécialisés permettent de déployer et de mettre à l'échelle ces modèles de manière efficace.
11. Ollama
Ollama est conçu pour déployer et exécuter localement de grands modèles de langage. En utilisant le Docker Ollama, vous pouvez télécharger et servir les LLM, ce qui vous permet de les intégrer dans vos applications. C'est le moyen le plus simple d'utiliser des modèles linguistiques quantifiés et complets en production.
docker run -it --rm ollama/ollama
12. Qdrant
Qdrant est un moteur de recherche vectoriel utilisé pour déployer des applications de recherche par similarité vectorielle. Il est livré avec un tableau de bord et un serveur auquel vous pouvez vous connecter pour envoyer et récupérer rapidement des données vectorielles.
docker run -it --rm -p 6333:6333 qdrant/qdrant
Qdrant fournit des outils pour la recherche efficace de similarités et le regroupement de données à haute dimension. Elle est particulièrement utile dans des applications telles que les systèmes de recommandation, la recherche d'images et de textes, et la recherche sémantique, qui sont de plus en plus importantes dans les projets d'apprentissage automatique impliquant de grands modèles de langage.
Conclusion
Dans ce blog, nous avons exploré 12 images de conteneurs Docker essentielles adaptées aux projets d'apprentissage automatique. Ces images fournissent une boîte à outils complète, depuis les environnements de développement jusqu'aux outils pour les grands modèles de langage. En tirant parti de ces conteneurs, les scientifiques et les ingénieurs peuvent créer des environnements de projet cohérents, reproductibles et évolutifs, rationalisant ainsi les flux de travail et améliorant la productivité.
La prochaine étape du processus d'apprentissage consiste à construire votre propre projet à l'aide de ces images de conteneurs Docker !
Si vous souhaitez apprendre à créer vos propres applications d'IA avec les derniers outils de développement d'IA, consultez le cursus Développer des applications d'IA.
Développer des applications d'IA
FAQ
Docker est-il adapté à l'apprentissage automatique ?
Oui, Docker est très utile pour les projets d'apprentissage automatique. Il offre un moyen souple de gérer les environnements et les dépendances, garantissant ainsi la cohérence et la reproductibilité. En conteneurisant vos modèles d'apprentissage automatique, vous pouvez rationaliser le déploiement et éviter les problèmes causés par les différences de configuration des systèmes.
Qu'est-ce que le Docker Hub ?
Docker Hub est un référentiel basé sur le cloud où vous pouvez trouver et partager des images de conteneurs. Il offre une vaste bibliothèque d'images préconstruites, ce qui permet d'accélérer considérablement les processus de développement et de réduire le temps d'installation. En outre, vous pouvez créer vos propres images Docker et les envoyer sur votre compte Docker Hub, ce qui les rend accessibles à votre équipe à des fins de collaboration.
Où puis-je trouver des conteneurs Docker ?
Les conteneurs et les images Docker sont stockés dans des emplacements spécifiques en fonction de votre système d'exploitation :
- Ubuntu, Fedora, Debian : /var/lib/docker/
- Fenêtres : C:\ProgramData\DockerDesktop
- MacOS : ~/Bibliothèque/Conteneurs/com.docker.docker/Data/vms/0/
Quelle est l'utilisation la plus courante de Docker ?
Docker est largement utilisé pour développer, tester et déployer des applications web. Il simplifie la gestion des intégrations et des dépendances complexes, ce qui en fait un outil de choix pour le développement de logiciels modernes.
Docker est-il plus rapide que VM ?
Oui, Docker est généralement plus rapide que les machines virtuelles traditionnelles. Docker utilise la virtualisation au niveau du système d'exploitation, ce qui permet aux conteneurs de partager le noyau du système d'exploitation hôte.
Qu'est-ce qu'alpine dans Docker ?
Alpine est une distribution Linux légère souvent utilisée dans les conteneurs Docker. Il est connu pour sa petite taille, sa sécurité et son efficacité, ce qui le rend idéal pour créer des images Docker minimales qui réduisent l'utilisation des ressources et améliorent les performances.

En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.
Apprenez-en plus sur l'apprentissage automatique et l'IA grâce à ces cours !
Cours
Développer des systèmes d'IA avec l'API OpenAI
Cours