1) Analyser les besoins d'un client pour un projet d'intelligence artificielle
Analyse du besoin client en intelligence artificielle (IA)
Analyse de l’existant chez le client et de l’écosystème IT (technologies de l’information)
Évaluation de la qualité et de la richesse des données du client
Analyse de la cartographie des données pour traduire une problématique métier en problème mathématiques/statistiques et réciproquement
Evaluation de la faisabilité d’un projet IA
Identification des attentes et des objectifs du client
Formalisation du besoin client
Anticipation des complexités techniques et technologiques
Découpage des tâches associées
Estimation de la charge de travail à chaque tâche
Veille technique et technologie
Étude détaillée des dernières innovations technologiques pour aider à la compréhension des technologies en évolution
Utilisation d’une documentation technique
Mise au point de solutions originales pour l’intégration de nouvelles technologies dans les produits, applications ou services ou dans la création de nouvelles solutions
Identification des principaux cas d’application de l’IA dans les différents secteurs d’activité et des grandes sources de données qui les alimente
Définition des cas d’usage d’IA
Présentation des cas d’usage de l’IA applicable chez le client
Traduction éléments techniques d’IA au client
2) Concevoir une solution d'intelligence artificielle
Préparation des données nécessaires au projet d’intelligence artificielle (IA)
Collecte des données nécessaires à l’usage IA
Extraction des données
Nettoyage des données
Conception du code source du traitement IA
Écriture du code source permettant de préparer les données en fonction des besoins de l’algorithme d’intelligence artificielle (segmentation, augmentation, nettoyage, filtrage, etc), le cas échéant orientée objet
Écriture fonctionnelle d’un code respectant la trame d’architecture cible dans un environnement data science (application Python)
Documentation du code source
Construction d’un environnement informatique en local ou virtuel
Configuration de serveur
Modélisation des données
Modélisation les données (requêtage) avec l’approche orientée requêtes
Mise place du système de gestion de base de données analytique
Configuration du système de gestion de base de données analytique (PostgreSQL)
Conception du programme d’IA
Identification précise du besoin métier et des objectifs de performance (analyse de sentiment, classification d’images, prédiction temporelle, régression, etc.)
Sélection de la méthode d’apprentissage dans le cas d’un algorithme de Machine Learning ou de Deep Learning en se basant sur les statistiques, algèbre et probabilités, notamment la statistique bayésienne et les méthodes d’échantillonnages (MCMC)
Sélection des algorithmes adaptés à la problématique et aux données (régression linéaire, forêt aléatoire, réseau de neurones, etc.)
Sélection des outils adaptés au besoin de l’algorithme à implémenter (Scikit-Learn, TensorFlow, PyTorch, Gensim, etc.)
Comparaison et évaluation des différents modèles ou méthodes de calcul et anticipation des avantages et inconvénients dans un environnement métier
Intelligibilité du modèle permettant une meilleure appropriation par les équipes métier
Implémentation de la solution d’IA
Implémentation d’une solution conforme aux normes de développement logicielles dans un environnement data science
Développement de l’interaction avec un algorithme ou un service d’IA (par exemple : une API exposant des services cognitifs, un modèle de deep learning préalablement entraîné, etc.) en fonction des traitements visés, par exemple : le langage naturel ou la vision par ordinateur
Développement d’une interface visuelle permettant l’interaction entre la couche applicative et l’utilisateur final
3) Mise en production d'un système d'intelligence artificielle
Définition du modèle mathématique (algorithme) applicable au projet d’intelligence artificielle
Définition du modèle de données
Mise en œuvre des techniques d’extraction et d’analyse d’informations, obtenues à partir de gisements de données (Big Data)
Choix des solutions de stockage non relationnelles (NoSQL)
Sélection du système de gestion de base de données adapté
Mise place et configuration du système de gestion de base de données
Mise en œuvre d’outils big data (tel Hadoop)
Programmation du traitement de données en environnement distribué (Spark, Dask)
Développement de l’application d’IA
Sélection des outils et langages de programmation
Développement de manière collaborative dans un projet agile
Conception de l’architecture de l’application (serverless, micro-service, design pattern, etc.)
Écriture des tests unitaires en Python
Réalisation de tests en utilisant un orchestrateur (gitlab-ci) pour automatiser l’exécution des tests (CI) et le déploiement du code (CD)
Construction et déploiement d’une image (docker)
Programmation d’un traitement de données automatisé
Maintien en condition opérationnelle l’application IA
Identification du cycle de vie de son cas d'usage de l’IA
Monitoring d’un modèle en production
Gestion des évolutions d’un modèle en production
Reproductibilité d'une chaîne de modélisation
Versionnage des modèles prédictifs
Gestion d’un déploiement sur le cloud
Déploiement d’un modèle prédictif sur un serveur
Mesure et détection de la dérive des données
Application de correctifs dans le cadre de la résolution de bogues techniques et/ou fonctionnels
4) Gestion d'un projet d'intelligence artificielle
Gouvernance du projet d’intelligence artificielle (IA)
Définition de la gouvernance des données
Définition des étapes du processus d’industrialisation et des livrables correspondants
Suivi des bonnes pratiques d’industrialisation de projet
Planification des moyens nécessaires à la bonne réalisation du projet d’IA
Définition des solutions informatiques les plus adaptées à la politique informatique générale et aux besoins des utilisateurs ou du client
Planification des tâches du projet IA
Identification et mise en place des étapes d’un projet IA
Identification des tâches à implémenter et ordonnancement de ces tâches grâce à un outil adapté
Estimation de la durée des tâches
Détermination des ressources requises
Formalisation des spécifications fonctionnelles attendues
Production d’un document ressource qui rend compte de l'avancement du projet
Rédaction de comptes-rendus d’avancement
Communication de projet
Tenue d’échanges avec les différents interlocuteurs : collaborateurs et clients
Mise en œuvre des canaux de communication
Elaboration et tenue d’un tableau d’avancement de projet
Reporting sur l’avancement du projet et ces étapes auprès des parties prenantes
Pilotage du projet selon la méthode agile
Mise en place de la vision agile dans le projet IA
Mobilisation des collaborateurs autour du projet
Répartition des rôles de chacun selon les compétences techniques et les conditions comportementales de chacun
Management des équipes du projet
Organisation de l’intelligence collective au sein du projet d’IA
1) Analyser les besoins d'un client pour un projet d'intelligence artificielle
Réaliser un audit de l’écosystème du client, en analysant sa cartographie des données, afin d’identifier ses besoins en développement d’application mettant en œuvre des techniques d’IA
Réaliser une étude de faisabilité en mesurant les utilisations possibles de l’IA dans la structure, les complexités techniques, ainsi que la charge de travail associée, afin d’identifier les cas d’usage de l’IA et de produire les éléments de réponse technique
Réaliser une veille technique et technologie en collectant, classifiant et en analysant l’information, afin de maintenir à jour son expertise IA et aider à la prise de décision technique
Emettre des recommandations d’usage de l’IA au client en utilisant une communication adaptée à un public non expert IA, afin de valider le projet avec lui
2) Concevoir une solution d'intelligence artificielle
Préparer les données disponibles du client ou issues d’une base de données en sources ouvertes, en les nettoyant et structurant, en vue de leur utilisation par les algorithmes d’IA
Concevoir le code source de traitement de données simple à réutiliser et à maintenir, afin de construire une architecture de code en environnement Data Science, tout en établissant
un langage commun entre concepteurs de solutions d’IA
Mettre en place les procédures techniques et technologiques d'exploitation, en configurant les éléments nécessaires, afin de mener à bien tout projet de développement logiciel
Concevoir une base de données relationnelle à l’aide de méthodes standards de modélisation de données, afin de développer la solution IA
Concevoir le programme d’intelligence artificielle adapté aux données disponibles afin de répondre aux objectifs fonctionnels du projet, en utilisant les outils et les méthodes standards, notamment de Machine Learning et de Deep Learning
Développer l’interaction entre les fonctionnalités de l’application et l’intelligence artificielle dans le respect des objectifs visés et des bonnes pratiques du domaine
3) Mise en production d'un système d'intelligence artificielle
Déterminer le modèle mathématique (algorithme) adapté à la problématique de traitement de données IA, afin de développer une solution IA répondant aux attentes du commanditaire
Développer le back-end de l’application d’IA dans le respect des spécifications fonctionnelles et des bonnes pratiques du domaine, afin de construire la solution IA
Maintenir opérationnelle l’application d’IA chez le client, à l’aide des outils de monitorage, afin de détecter et réagir aux éventuels dysfonctionnements en appliquant des correctifs
4) Gestion d'un projet d'intelligence artificielle
Etablir le processus organisationnel d’industrialisation, en définissant les étapes et les moyens nécessaires, afin d’optimiser la prise de décision tout au long du projet d’IA
Planifier les tâches du projet IA en utilisant un outil adapté afin de prévoir la livraison du projet dans les temps impartis
Communiquer avec les parties prenantes au projet en mettant en œuvre les canaux de communication nécessaires afin de rendre compte de l'avancement du projet
Mettre en place une démarche de travail selon la méthode agile en répartissant les rôles au sein d’une équipe agile pour faciliter la collaboration, accélérer le processus itératif et assurer la bonne exécution et livraison du projet