Je suis un ingénieur IA / Data Scientist ayant suivi une formation diplomante chez OpenClassrooms, l'un des leaders mondiaux de l'apprentissage en ligne. Cette formation m'a permis de développer des compétences solides dans les domaines de la Data Science et de l'Intelligence Artificielle, en travaillant sur des projets inspirés du monde du travail.
Au cours de ma formation, j'ai acquis un ensemble de compétences variées pour pouvoir travailler efficacement sur des projets d'IA et de Data Science. J'ai appris à :
- Collecter et préparer des données pour les rendre exploitables
- Programmer des algorithmes de Machine Learning et de Deep Learning
- Développer des modèles en utilisant des services Cloud tels que Microsoft Azure
- Déployer des modèles en production sur le Cloud
- Superviser la conception d'un produit IA
Pendant ma formation, j'ai travaillé sur onze projets qui m'ont permis de mettre en pratique les compétences acquises. Voici quelques exemples de projets :
P01: Découvrez le métier d'ingénieur IA
- Utilisation de modèles pré-entraînés sur le cloud pour réaliser des prédictions à partir de données textuelles
- Ecrire une requête pour récupérer les prédictions du modèle
- Sécurisation des identifiants et des clés de connexion pour éviter les accès non autorisés
- Rédaction de scripts pour utiliser les modèles pré-entraînés
- Présentation professionnelle des résultats de l'utilisation du modèle pré-entraîné sur le cloud, y compris le code et les résultats de la prédiction.
P02: Participez à un concours sur la Smart City
- Analyse de données exploratoires en utilisant des librairies Python
- Installation et configuration d'environnements de développement Python et Jupyter
- Création et gestion d'environnements virtuels pour assurer l'isolement du projet et la gestion des dépendances
- Importation et utilisation de librairies Python spécialisées pour l'analyse de données
- Description et présentation d'un jeu de données en utilisant un dataframe
- Calcul des indicateurs statistiques basiques (moyenne et écart-type) pour les différentes colonnes
- Comparaison des ordres de grandeur des grandeurs statistiques des différentes colonnes
- Identification des valeurs aberrantes dans une distribution statistique
- Tracé de graphiques pour représenter des distributions statistiques
- Utilisation des fonctionnalités d'édition de cellule Markdown de Jupyter pour commenter et mettre en forme l'analyse de données
- Création d'une présentation générale du jeu de données, d'une démarche méthodologique d'analyse de données, et d'une synthèse de l'analyse de données.
P03: Préparez des données pour un organisme de santé publique
- Nettoyage de données structurées :
- Identification et traitement de valeurs manquantes pour chaque colonne
- Détection et traitement des outliers statistiques pour chaque variable
- Élimination de variables non pertinentes pour la problématique de l'application
- Identification, quantification et traitement de lignes dupliquées
- Écriture, test et utilisation de fonctions pour nettoyer les données
- Analyse statistique multivariée :
- Réalisation d'une analyse univariée préalable
- Présentation et analyse de graphiques d'analyse bi-variée
- Application de méthodes d'analyse descriptive et explicative sur le jeu de données
- Écriture, test et utilisation de fonctions pour effectuer une analyse statistique multivariée
- Communication des résultats à l'aide de représentations graphiques lisibles et pertinentes :
- Utilisation de différents types de graphiques pour représenter les résultats
- Justification des types de graphiques utilisés dans le Jupyter Notebook
- Écriture, test et utilisation de fonctions pour effectuer une représentation graphique
- Utilisation de graphiques interactifs pour illustrer les analyses lors de la présentation.
P04: Construisez un modèle de scoring
- Feature Engineering :
- Analyse exploratoire des variables,
- Identification et transformation des variables catégorielles pour être utilisées par le modèle (ex : one hot encoding),
- Création de nouvelles variables à partir des variables initiales,
- Normalisation des variables si nécessaire,
- Représentation graphique de l'importance des variables et description de la méthode de détermination de l'importance des variables.
- Entraînement de Modèles Supervisés Classiques :
- Identification de la variable cible,
- Séparation du jeu de données en jeu d'entraînement et en jeu de test,
- Prise en compte du déséquilibre des classes (par exemple via un oversampling de type SMOTE ou via l'utilisation de "class_weight"),
- Optimisation du modèle en prenant en compte la différence de coût métier entre un faux négatif et un faux positif,
- Essai de plusieurs modèles (linéaires et non linéaires),
- Mise en place d'une méthode globale et locale de mesure de l'importance des variables.
- Évaluation de la Performance d'un Modèle Supervisé Classique :
- Définition d'une métrique spécifiquement adaptée au cas et qui pénalise la non détection,
- Evaluation de la performance d'un modèle de référence et comparaison avec les modèles plus complexes,
- Utilisation de la validation croisée pour comparer les performances des modèles sur la métrique d'évaluation,
- Rédaction d'une synthèse comparative des différents modèles et explicitation du choix de la métrique d'évaluation.
- Optimisation des Hyperparamètres d'un Modèle Supervisé :
- Identification des hyperparamètres des modèles utilisés,
- Mise en place d'une méthode d'optimisation des hyperparamètres (ex : grid search),
- Utilisation de la validation croisée pour optimiser les hyperparamètres.
P05: Segmentez les clients d'un site e-commerce
- Représenter graphiquement des données à grandes dimensions.
- Mettre en œuvre des techniques d'extraction de features pour des données non structurées.
- Mettre en œuvre des techniques de réduction de dimension.
- Prétraiter des données non structurées pour obtenir un jeu de données exploitable.
- Utiliser des modèles non supervisés.
- Développer un algorithme de segmentation pour aider l'équipe e-commerce à mieux communiquer avec les clients.
- Proposer un contrat de maintenance basé sur une analyse de la stabilité des segments au cours du temps.
P06: Améliorez le produit IA de votre start-up
- Collecte de données via une API en écrivant et testant une requête, en récupérant les champs nécessaires et en stockant les données collectées dans un fichier utilisable.
- Prétraitement de données non structurées pour obtenir un jeu de données utilisable, comprenant le nettoyage des champs de texte, l'application de transformations telles que le stemming, la tokenization ou la lemmatization, la création de bag-of-words pour le texte, et le développement d'algorithmes d'extraction de features pour les images, incluant le filtrage du bruit et l'égalisation des histogrammes des images.
- Utilisation de techniques de réduction de la dimension en appliquant une méthode de réduction de dimension sur les données texte et images, en justifiant le choix de la méthode et des paramètres retenus.
- Visualisation de données de grandes dimensions en créant des graphiques représentant des informations contenant plus de deux dimensions, en justifiant le choix de la méthode de représentation graphique et en facilitant la lecture du graphique pour un public non expert.
P07: Détectez les Bad Buzz grâce au Deep Learning
- Définition de stratégie pour élaborer un modèle répondant à des besoins métiers.
- Identification de la ou les cibles du modèle.
- Réalisation de la séparation du jeu de données en jeu d’entraînement, jeu de validation et jeu de test.
- Vérification de l'absence de fuite d'informations entre les jeux de données.
- Test de plusieurs modèles d'apprentissage profond, en partant du plus simple vers les plus complexes.
- Mise en oeuvre de modèles à partir de modèles pré-entraînés (technique de Transfer Learning).
- Choix de la méthode de plongement de mots pertinente pour un modèle de Deep Learning.
- Utilisation d'au moins deux méthodes d’embedding (parmi Word2Vec, GloVe, fastText) pour les modèles avancés Tensorflow/Keras.
- Mise en oeuvre de la préparation des données (input ids, attention mask) pour le modèle BERT.
- Évaluation de la performance d'un modèle de Deep Learning, en choisissant une métrique adaptée à la problématique métier et en expliquant le choix de la métrique d'évaluation.
- Évaluation de la performance d'un modèle de référence, qui sert de comparaison pour évaluer la performance des modèles plus complexes.
- Calcul d'indicateurs pour comparer les modèles, comme le temps nécessaire pour l'entraînement du modèle.
- Optimisation des hyperparamètres du modèle choisi, comme le choix de la fonction Loss, le Batch Size, le nombre d'Epochs.
- Présentation d'une synthèse comparative des différents modèles.
- Mise en oeuvre d'un pipeline d'entraînement des modèles reproductible.
- Sérialisation et stockage des modèles créés dans un registre centralisé afin de pouvoir facilement les réutiliser.
- Formalisation des mesures et résultats de chaque expérimentation, afin de les analyser et de les comparer.
- Utilisation d'un logiciel de version de code (Git) pour partager les scripts du projet.
- Tenue à jour et mise à disposition de la liste des packages utilisés ainsi que leur numéro de version.
- Commentaire des scripts et des fonctions facilitant une réutilisation du travail par d'autres personnes et la collaboration.
- Définition et préparation d'un pipeline de déploiement continu pour assurer le déploiement d'un moteur d’inférence (modèle de prédiction encapsulé dans une API) sur une plateforme Cloud, afin de permettre à des applications de réaliser des prédictions via une requête à l’API.
P08: Participez à la conception d'une voiture autonome
- Entraînement de modèles de Deep Learning sur des images en respectant les critères d'évaluation pertinents et présentables.
- Évaluation des performances de modèles de Deep Learning sur des images, en choisissant une métrique adaptée à la problématique métier, en évaluant les performances d'un modèle de référence pour une comparaison, et en optimisant les hyperparamètres du modèle.
- Utilisation de techniques d'augmentation de données pour améliorer la performance des modèles de Deep Learning.
- Manipulation de jeux de données volumineux en développant un générateur de données permettant le traitement des images sur plusieurs cœurs de calcul, en écrivant le générateur de données sous forme de classe python et en automatisant le script du générateur de données.
- Mise en production du meilleur modèle optimisé sous la forme d'une API REST
- Développement d'une page web permettant d'interroger l'API développée
P09: Réalisez une application de recommandation de contenu
- Sélection de l'architecture logicielle pour répondre aux besoins métier
- Identification des différentes briques d'architecture nécessaires à la réalisation de la solution
- Description fonctionnelle de chaque brique d'architecture
- Prise en compte des besoins de mise à jour des bases de données utilisateurs et articles dans la description fonctionnelle
- Élaboration d'un schéma expliquant les différentes briques de l'architecture logicielle
- Conception de scripts pour exécuter une chaîne de traitements IA bout-en-bout
- Développement et test des scripts permettant d'entraîner et de tester le modèle de recommandation
- Développer au moins un algorithme de chaque approche de système de recommandation (CF et content-based)
- Utilisation de la fonction serverless renvoyant la prédiction du modèle intégrée à l'application mobile
- Découpage des scripts en fonctions et/ou classes pour une meilleure lisibilité et maintenabilité du code
- Stockage des scripts dans un dossier GitHub
P10: Développez un chatbot pour réserver des vacances
- Intégration de la sortie du modèle dans un produit informatique fini :
- Connaissance des techniques d'intégration de modèles dans des applications informatiques
- Développer et déployer un chatbot capable de comprendre le langage naturel
- Création d'une interface utilisateur pour l'interaction avec les modèles
- Connaissance des outils de développement et de test de chatbots
- Intégration d'une chaîne de traitement IA dans un outil informatique via Git :
- Connaissance des processus de développement de logiciels avec Git
- Concevoir des architectures logicielles pour des applications d'IA
- Mise en place de chaînes de traitement d'IA en utilisant des outils de développement logiciel
- Ecrire des scripts Python pour la gestion des données et la formation de modèles
- Pilotage de la performance du modèle en production :
- Connaissance des techniques de mesure de la performance des modèles d'IA
- Conception de critères d'évaluation de la performance des modèles
- Suivre les performances des modèles en production
- Connaissance des outils de suivi de la performance des modèles, tels que Azure Application Insight
P11: Réalisez le cadrage d’un projet IA
- Identification des ressources humaines, techniques et financières nécessaires pour un projet IA
- Planification et mitigation des risques projets significatifs
- Connaissance des enjeux éthiques et légaux relatifs à la collecte des données personnelles
- Identifier et estimer la complexité des user stories
- Synthèse et présentation claire des informations techniques, financières et éthiques dans un support de présentation
- Maîtrise de la méthodologie de gestion de projet agile
- Capacité à travailler en équipe multidisciplinaire et à communiquer efficacement avec des parties prenantes techniques et non techniques
Diffusion models : Tout ce qu'il faut savoir Une série de Notebooks où j'explique en détail tout ce qu'il faut savoir sur les modèles de diffusion (Stable Diffusion, DALL-E, Google's Imagen), des maths à l'application en Python
- Denoising Diffusion Probabilistic Models (DDPM ou Modèles de débruitage probabilistique)
- PyTorch
- PIL ...
Grâce à ma formation et aux projets que j'ai réalisés, je suis en mesure de travailler sur des projets d'IA et de Data Science dans un large éventail de domaines, allant de la santé et de la finance à l'e-commerce et à l'automobile. Je suis passionné par ce domaine en constante évolution et je suis prêt à relever les défis et à trouver des solutions innovantes pour répondre aux besoins de mes futurs employeurs.