Skip to Content

Qu’est-ce qu’un pipeline d’apprentissage machine ?

L’apprentissage machine (ML ) est un sous-ensemble de l’intelligence artificielle (AI) qui permet aux systèmes d’apprendre des données sans être explicitement programmés. Au lieu de s’appuyer sur une programmation basée sur des règles, les algorithmes d’ML détectent les schémas dans les données et prennent des prédictions ou des décisions basées sur les données. L’ML est de plus en plus crucial dans divers secteurs, car il permet d’analyser de grands ensembles de données, d’identifier des schémas et de faire des prédictions ou de prendre des décisions avec une précision accrue.

Les pipelines d’apprentissage machine sont devenus une partie importante du MLOps . En suivant un pipeline d’apprentissage machine bien défini, les organisations peuvent réduire les délais de mise sur le marché et garantir la fiabilité et l’évolutivité de leurs solutions d’AI.

Cet article explore ce que sont les pipelines ML, leurs composants clés, la manière de créer un pipeline ML, les défis et les bonnes pratiques du pipeline ML. 

Qu’est-ce qu’un pipeline ML ?

Un pipeline ML est une séquence d’étapes interconnectées qui transforment les données brutes en modèles ML entraînés et déployables. Chaque étape du pipeline exécute une tâche spécifique, comme le prétraitement des données, l’ingénierie des fonctionnalités, l’entraînement des modèles, l’évaluation, le déploiement et la maintenance. Le résultat d’une étape sert d’entrée à la suivante, créant un flux de travail rationalisé pour le développement et le déploiement de modèles d’apprentissage machine.

L’objectif d’un pipeline d’apprentissage machine est d’automatiser et de normaliser le flux de travail ML afin d’améliorer l’efficacité, la reproductibilité et l’évolutivité. 

Composants d’un pipeline d’apprentissage machine

Les composants clés d’un pipeline d’apprentissage machine englobent différentes étapes, chacune jouant un rôle essentiel dans la transformation des données brutes en un modèle d’apprentissage machine entraîné et déployable.

Ces composants sont les suivants :

1. Ingestion de données

L’ingestion de données implique de collecter des données brutes provenant de diverses sources telles que des bases de données, des fichiers, des API ou des plateformes de streaming. Des données pertinentes et de haute qualité sont essentielles pour entraîner des modèles d’ML précis. L’ingestion de données garantit que le pipeline a accès aux données nécessaires pour l’analyse et le développement de modèles.

2. Prétraitement des données

Le prétraitement des données comprend des tâches telles que le nettoyage, la transformation et la normalisation des données brutes pour les rendre adaptées à l’analyse et à la modélisation. Le prétraitement permet de résoudre des problèmes tels que les valeurs manquantes, les valeurs aberrantes et les incohérences dans les données, qui pourraient nuire aux performances du modèle si elles ne sont pas gérées. Elle garantit que les données sont dans un format cohérent et utilisable pour les étapes suivantes.

3. Ingénierie des fonctionnalités

L’ingénierie des fonctionnalités consiste à sélectionner, extraire ou créer des fonctionnalités pertinentes à partir des données prétraitées qui sont informatives pour l’entraînement du modèle ML. Les fonctionnalités bien conçues capturent des schémas et des relations importants dans les données, ce qui permet d’obtenir des modèles plus précis et plus robustes. L’ingénierie des fonctionnalités est essentielle pour optimiser la puissance prédictive et la capacité de généralisation du modèle.

4. Formation au modèle

L’apprentissage du modèle consiste à sélectionner un algorithme d’ML approprié, à l’adapter à l’ensemble de données préparé et à optimiser ses paramètres pour minimiser les erreurs de prédiction. L’entraînement du modèle sur des données étiquetées lui permet d’apprendre des schémas et des relations, ce qui lui permet de faire des prédictions ou de prendre des décisions sur des données invisibles. Le choix de l’algorithme et du processus d’entraînement influence considérablement les performances et l’adéquation du modèle à la tâche à accomplir.

5. Évaluation du modèle

L’évaluation du modèle évalue les performances du modèle entraîné à l’aide de mesures telles que l’exactitude, la précision, le rappel, le score F1 ou l’aire sous la courbe (ASC). Cette évaluation permet d’évaluer la généralisation du modèle aux données invisibles et d’identifier les problèmes potentiels, tels qu’un surajustement ou un sous-ajustement. Il fournit des informations sur les points forts et les points faibles du modèle, guidant ainsi les itérations et améliorations.

Chacun de ces composants joue un rôle crucial dans le pipeline d’apprentissage machine, contribuant collectivement au développement de modèles d’ML précis et fiables. En relevant systématiquement les défis liés aux données, en optimisant la représentation des fonctionnalités et en sélectionnant les algorithmes appropriés, le pipeline permet aux organisations d’extraire des informations précieuses et de prendre des décisions éclairées à partir de leurs données.

Comment créer un pipeline d’apprentissage machine

La création d’un pipeline d’apprentissage machine se fait en plusieurs étapes :

1. Collecter les données 

Tout d’abord, vous devez identifier les sources de données pertinentes en fonction du domaine problématique et des objectifs, puis collecter des données à partir de bases de données, d’API, de fichiers ou d’autres sources. Enfin, vous devez garantir la qualité des données en vérifiant leur exhaustivité, leur cohérence et leur exactitude.

2. Nettoyer les données

La première étape du nettoyage de vos données consiste à imputer les valeurs manquantes à l’aide de techniques telles que la moyenne, la médiane ou l’imputation en mode, ou à supprimer des lignes ou des colonnes avec des valeurs manquantes, le cas échéant. Ensuite, détectez et gérez les valeurs aberrantes à l’aide de méthodes telles que l’élagage, la winsorisation ou le remplacement des valeurs aberrantes, et standardisez les fonctionnalités numériques pour obtenir une moyenne de 0 et un écart type de 1, ou faites-les évoluer à une plage spécifique. Ensuite, convertissez les variables catégorielles en représentations numériques à l’aide de techniques telles que l’encodage à chaud ou l’encodage d’étiquettes et appliquez des transformations telles que la transformation des journaux, la transformation Box-Cox ou l’évolution des fonctionnalités pour améliorer la distribution des données et les performances du modèle.

3. Ingénierie des fonctionnalités

Tout d’abord, vous devez identifier les fonctionnalités susceptibles d’être utiles pour prédire la variable cible en fonction des connaissances du domaine ou de l’analyse de l’importance des fonctionnalités. Ensuite, générez de nouvelles fonctionnalités en combinant des fonctionnalités existantes, en effectuant des opérations mathématiques ou en extrayant des informations à partir de texte ou d’autres données non structurées. Et enfin, faites évoluer les fonctionnalités numériques à une échelle commune pour empêcher certaines fonctionnalités de dominer le processus d’entraînement du modèle.

4. Sélectionner et entraîner le modèle

Sélectionnez des algorithmes d’apprentissage machine (régression linéaire, arbres décisionnels, forêts aléatoires, machines vectorielles de support) en fonction de la nature du problème (classification, régression, clustering), puis divisez l’ensemble de données en ensembles d’entraînement et de validation (par exemple, en utilisant un échantillonnage stratifié pour les tâches de classification) afin d’évaluer les performances du modèle. Enfin, adaptez les algorithmes sélectionnés aux données d’entraînement à l’aide de techniques d’entraînement appropriées (par exemple, descente en dégradé pour les réseaux neuronaux, algorithmes basés sur des arbres pour les arbres de décision).

5. Régler les hyperparamètres

Identifier les hyperparamètres des algorithmes choisis qui contrôlent le comportement du modèle (par exemple, taux d’apprentissage, force de régularisation, profondeur de l’arbre). Utilisez des techniques telles que la recherche de grille, la recherche aléatoire ou l’optimisation bayésienne pour trouver les valeurs d’hyperparamètre optimales qui optimisent les performances du modèle sur l’ensemble de validation. Ensuite, affinez les hyperparamètres du modèle de manière itérative en fonction des performances de validation jusqu’à obtenir des résultats satisfaisants.

6. Évaluer les modèles

Évaluez les performances des modèles entraînés sur l’ensemble de validation à l’aide de mesures d’évaluation appropriées (par exemple, exactitude, précision, rappel, F1-score ROC-ASC), puis comparez les performances des différents modèles pour sélectionner celui qui est le plus performant pour le déploiement.

7. Déployer le modèle

Tout d’abord, veillez à enregistrer le modèle entraîné sur disque dans un format qui peut être facilement chargé et utilisé pour les prédictions. Ensuite, déployez le modèle dans un environnement de production, sur site ou dans le cloud, à l’aide de plateformes telles qu’AWS, Azure ou Google Cloud Platform. Créez un point de terminaison API pour accepter les données d’entrée et renvoyer les prédictions du modèle déployé. Enfin, mettez en œuvre des mécanismes de surveillance et de journalisation pour suivre les performances du modèle et détecter toute dérive ou dégradation au fil du temps.

Bonnes pratiques pour concevoir un pipeline d’apprentissage automatique efficace

Pour concevoir un pipeline d’apprentissage machine efficace, il faut tenir compte de différents facteurs afin de garantir l’efficacité, l’évolutivité et la fiabilité.

Voici quelques bonnes pratiques et directives à suivre :

1. Modularisation

Décomposez le pipeline en composants modulaires, chacun responsable d’une tâche spécifique (par exemple, prétraitement des données, ingénierie des fonctionnalités, formation aux modèles). Utilisez des schémas de conception modulaires (par exemple, programmation orientée objet, composition des fonctions) pour encapsuler la logique et promouvoir la réutilisation du code. Maintenir des interfaces claires entre les composants du pipeline pour faciliter l’intégration, les tests et la maintenance.

2. L’automatisation

Automatisez les tâches et les flux métier répétitifs à l’aide d’outils et de structures (par exemple, Apache Airflow, Kubeflow, MLflow). Mettre en œuvre intégration continue et de déploiement continus (CI/CD) pour automatiser les processus d’entraînement, d’évaluation et de déploiement des modèles. Utilisez l’automatisation pour rationaliser l’ingestion des données, le prétraitement et l’entraînement des modèles dans différents environnements (par exemple, développement, tests, production).

3. Contrôle de version 

Utilisez des systèmes de contrôle de version (Git, SVN, par exemple) pour suivre les modifications apportées au code, aux données et aux fichiers de configuration dans l’ensemble du pipeline. Gérez des succursales distinctes pour différentes versions ou expériences de pipeline, ce qui facilite la comparaison, la collaboration et la restauration.

4. Reproductibilité

Documenter tous les composants du pipeline, y compris les sources de données, les étapes de prétraitement, les techniques d’ingénierie des fonctionnalités et les configurations de modèle. Enregistrez les résultats de l’expérience, y compris les mesures, les hyperparamètres et les artefacts de modèle, dans un référentiel centralisé. Mettre en œuvre des pipelines de données versionnés pour garantir la cohérence et la reproductibilité des résultats sur différents cycles et environnements. Utilisez des outils de conteneurisation (par exemple, Docker) pour regrouper l’ensemble du pipeline, y compris le code, les dépendances et l’environnement d’exécution, afin de faciliter le déploiement et la reproductibilité.

5. Évolutivité

Concevoir le pipeline pour gérer efficacement de gros volumes de données, en exploitant des structures informatiques distribuées (par exemple, Apache Spark, Dask) et des services cloud (par exemple, AWS EMR, Google Cloud Dataproc). Mettre en œuvre des techniques de traitement parallèle et d’entraînement distribué pour accélérer l’entraînement des modèles sur les clusters informatiques distribués. Surveillez les performances du pipeline et l’utilisation des ressources pour identifier les goulets d’étranglement évolutifs et optimiser l’allocation des ressources en conséquence.

6. Surveillance et maintenance continues

Configurer des systèmes de surveillance et d’alerte pour suivre les performances du pipeline, la qualité des données et la dérive des modèles en temps réel. Établissez des calendriers de maintenance réguliers pour mettre à jour les dépendances, réentraîner les modèles et incorporer de nouvelles données ou fonctionnalités. Surveillez régulièrement les indicateurs de performance des modèles en production et réentraînez-les pour vous assurer qu’ils restent exacts et à jour.

Enjeux et considérations liés aux pipelines d’apprentissage machine

Le développement et le déploiement de pipelines d’apprentissage machine peuvent présenter plusieurs défis, du prétraitement des données au déploiement de modèles.

Voici les défis courants et les solutions potentielles :

1. Qualité des données 

Des données inexactes, incomplètes ou incohérentes peuvent nuire aux performances et à la fiabilité du modèle. Assurez-vous de mettre en œuvre des procédures de validation et de nettoyage des données robustes pendant le prétraitement. Utilisez des techniques telles que la détection des valeurs aberrantes, l’imputation des valeurs manquantes et la normalisation des données pour améliorer la qualité des données. De plus, établissez des mécanismes de surveillance de la qualité des données pour détecter et résoudre les problèmes de manière proactive.

2. Complexité de l’ingénierie des fonctionnalités

La sélection et l’ingénierie de fonctionnalités pertinentes à partir de données brutes peuvent s’avérer difficiles, en particulier dans les ensembles de données complexes. Pour ce faire, tirez parti des connaissances du domaine et de l’analyse exploratoire des données pour identifier les fonctionnalités informatives. Expérimentez différentes techniques de transformation des fonctionnalités, telles que la réduction de dimensionnalité, les fonctionnalités polynomiales ou l’intégration de représentations. En outre, envisagez des méthodes de sélection automatisées et une analyse de l’importance des fonctionnalités pour rationaliser le processus d’ingénierie des fonctionnalités.

3. Sélection et réglage du modèle

Le choix de l’algorithme d’ML le plus adapté et l’optimisation de ses hyperparamètres pour une tâche donnée peuvent être chronophages et gourmands en ressources. Réalisez des expérimentations approfondies avec plusieurs algorithmes et configurations d’hyperparamètres pour identifier le modèle le plus performant. Utilisez des techniques telles que la validation croisée, la recherche de grille et l’optimisation bayésienne pour rechercher efficacement l’espace hyperparamétrique. En outre, envisagez d’utiliser des plateformes d’apprentissage automatique automatisé (AutoML) pour accélérer le processus de sélection et de réglage du modèle.

4. Confidentialité et sécurité des données

Garantir la confidentialité et la sécurité des données tout au long du pipeline ML, en particulier lorsqu’il s’agit de traiter des informations sensibles ou personnellement identifiables (PII), peut être très difficile. Mettre en œuvre des techniques d’anonymisation des données telles que le masquage des données, la tokenisation ou la confidentialité différentielle pour protéger les informations sensibles. Respecter les normes de gouvernance et de conformité des données (par exemple, RGPD, HIPAA) lors du traitement des données personnelles. Utilisez des protocoles de transmission de données et des méthodes de chiffrement sécurisés pour protéger les données pendant le stockage et le transit.

5. Interprétation et explication du modèle

Il est toujours difficile de comprendre et d’interpréter les décisions prises par les modèles d’ML automatique, en particulier dans les domaines à enjeux élevés ou réglementés. Utilisez des techniques d’ML automatique interprétables, telles que des arbres de décision, des modèles linéaires ou des modèles basés sur des règles, qui fournissent des explications transparentes des prédictions de modèles. Utilisez des méthodes d’interprétabilité post-hoc telles que l’analyse de l’importance des fonctionnalités, les valeurs SHAP ou les LIME (Local Interpretable Model-agnostic Explanations) pour interpréter les modèles complexes. De plus, documentez les hypothèses, les limites et les incertitudes du modèle pour faciliter la compréhension et la confiance des parties prenantes.

6. Déploiement et évolutivité du modèle

Il peut être très difficile de déployer des modèles ML dans des environnements de production et de garantir l’évolutivité, la fiabilité et la maintenabilité. Conteneurisez des modèles ML à l’aide d’outils tels que Docker et Kubernetes pour faciliter le déploiement dans différents environnements et capacités d’évolution. Mettre en œuvre une architecture de microservices pour découpler les composants et faire évoluer les services individuels indépendamment. Utilisez une infrastructure basée sur le cloud et des plateformes de calcul sans serveur pour une évolutivité élastique et une optimisation des ressources. Établir des mécanismes de surveillance et de journalisation robustes pour suivre les performances du modèle, l’utilisation des ressources et les problèmes potentiels en production.

Conclusion

Les pipelines ML rationalisent et accélèrent le processus de développement ML, de l’ingestion de données au déploiement de modèles. Ils automatisent les tâches répétitives et appliquent des flux de travail standardisés, ce qui réduit le temps de développement et favorise la cohérence entre les projets.

Les défis courants des pipelines ML, tels que les problèmes de qualité des données, les difficultés d’ingénierie des fonctionnalités et l’évolutivité des modèles, peuvent être résolus grâce à un prétraitement robuste des données, à des techniques de sélection des fonctionnalités et à des stratégies de déploiement évolutives.

En tirant parti des avantages des pipelines ML, les organisations peuvent accélérer l’innovation, tirer des informations exploitables des données et rester compétitives.

Pour les responsables informatiques et du stockage qui ont besoin d’une infrastructure de stockage efficace pour leurs initiatives d’ AI et de ML , Pure Storage offre une efficacité opérationnelle, des performances de pointe et des économies grâce à des produits innovants tels qu’ AIRI® et FlashStack®.

11/2020
VMware Hybrid Cloud Solution Brief | Solution Brief
Hybrid cloud and container adoption are growing rapidly. Advance to an effortless, optimized VMware environment.
Présentation
3 pages
CONTACTEZ-NOUS
Des questions, des commentaires ?

Vous avez des questions ou des commentaires concernant des produits ou certifications Pure ?  Nous sommes là pour vous aider.

Planifier une démo

Planifiez une démo en direct et découvrez comment Pure peut vous aider à transformer vos données. 

Tél. : +33 1 89 96 04 00

Services Médias : pr@purestorage.com

 

Pure Storage France

32 rue Guersant

75017 Paris

info@purestorage.com

 

FERMER
Votre navigateur n’est plus pris en charge !

Les anciens navigateurs présentent souvent des risques de sécurité. Pour profiter de la meilleure expérience possible sur notre site, passez à la dernière version de l’un des navigateurs suivants.