B4
Connaître les impacts et les apports du Machine Learning et de l’intelligence artificielle sur le système d’information de l’entreprise.
Description : Cela consiste à comprendre comment le Machine Learning (ML) et l'intelligence artificielle (IA) influencent et transforment les systèmes d'information au sein des entreprises. Cela inclut la capacité à identifier les opportunités offertes par ces technologies pour améliorer l'efficacité, l'innovation et la compétitivité des entreprises. Il s'agit également de comprendre les défis et les implications éthiques, techniques et organisationnelles liés à l'intégration de l'IA et du ML dans les processus d'affaires.
Comment ai-je atteint la compétence ?
Projet HES - DevPro
- J'ai travaillé sur l'intégration d'un modèle de langage (LLM) dans un système de chatbot, ce qui m'a permis de comprendre comment le ML peut améliorer l'interaction utilisateur en interprétant les intentions des utilisateurs.
- J'ai travaillé sur différents concepts dans le framework Rasa, comme le NLU, les intentions, les stories et les actions, ce qui m'a permis de comprendre comment le ML et l'IA peuvent être utilisés pour améliorer l'efficacité des systèmes d'information.
- J'ai développé un script pour scraper des données et les structurer pour un chatbot, ce qui m'a aidé à comprendre comment le ML et l'IA peuvent être utilisés pour structurer et analyser des données.
- J'ai intégré Mindsdb dans le POC, ce qui m'a permis de travailler sur un projet utilisant des techniques de machine learning, renforçant ainsi ma compréhension des impacts du ML et de l'IA sur les systèmes d'information.
Voici un aperçu des différents fichiers/concepts sur lesquels j'ai travaillé dans le cadre du projet DevPro :
Voici un exemple d'action que Rasa exécute pour répondre à une intention de l'utilisateur :
On peut aussi voir un script que j'ai produit pour scraper les données du site public de HES - DevPro :
Lectures individuelles
La lecture individuelle sur L’intelligence artificielle expliquée m'a permis de comprendre les impacts et les apports du Machine Learning et de l'intelligence artificielle sur le système d'information de l'entreprise. Voici les points clés :
-
Optimisation des processus opérationnels : L'IA et le Machine Learning permettent l'automatisation des tâches répétitives, améliorant ainsi l'efficacité et réduisant les coûts.
-
Amélioration de la prise de décision : L'analyse prédictive et les systèmes de recommandation permettent aux entreprises de prendre des décisions éclairées basées sur des données.
-
Personnalisation des services : Les systèmes de recommandation analysent les comportements et préférences des utilisateurs, offrant des expériences personnalisées qui augmentent l'engagement client.
-
Détection des anomalies et prévention de la fraude : Grâce à des algorithmes de détection d'anomalies, les entreprises peuvent identifier des comportements suspects et minimiser les risques financiers.
-
Analyse de grandes quantités de données : L'IA facilite l'exploitation massive de données (Big Data), permettant d'extraire des insights importants sur le marché et les clients.
-
Amélioration de la sécurité des données : Les technologies IA peuvent renforcer les mesures de cybersécurité en détectant et réagissant rapidement aux menaces.
-
Collaboration homme-machine : Les outils AI et chatbots améliorent la communication interne et externe, facilitant la collaboration et le service client.
-
Innovation produit : L'IA générative aide à la conception de nouveaux produits et services en permettant de simuler et tester des idées rapidement.
-
Réduction du temps de mise sur le marché : L'automatisation et l'assurance qualité par l'IA accélèrent les cycles de développement et de lancement de produits.
-
Amélioration de la qualité des services : L'utilisation de l'IA dans les systèmes de support client permet des réponses plus rapides et plus précises, améliorant ainsi la satisfaction client.
-
Transformation des modèles d'affaires : Les entreprises peuvent repenser leurs modèles d'affaires traditionnels grâce à l'intégration de l'IA, exploitant de nouveaux marchés et opportunités.
La lecture individuelle sur l'orchestration et automatisation des LLM m'a permis de comprendre comment les modèles de langage peuvent être intégrés dans les systèmes d'information de l'entreprise :
-
Orchestration des modèles de langage : LangChain permet une intégration seamless des LLM dans les systèmes d'information, facilitant l'automatisation et la gestion des interactions complexes.
-
Automatisation des processus : Grâce aux agents autonomes de LangChain, il est possible de détecter des intentions spécifiques et d'exécuter des actions appropriées, augmentant ainsi l'efficacité opérationnelle.
-
Analyse et traitement des données : LangChain utilise des LLM pour analyser des documents (comme les contrats juridiques), extrayant des informations clé et générant des résumés, ce qui améliore la prise de décision dans l'entreprise.
-
Flexibilité et personnalisation : La possibilité de créer des workflows personnalisés avec LangChain permet d’adapter facilement les solutions aux besoins uniques de l’entreprise, optimisant ainsi les systèmes d'information.
-
Intégration avec des API et des bases de données : LangChain facilite la connexion avec des outils externes, augmentant la richesse des données exploitables et améliorant la réactivité des systèmes d'information.
-
Gestion du contexte dans les interactions : Grâce aux mécanismes de mémoire, LangChain maintient le contexte des conversations, ce qui améliore l'expérience utilisateur et la pertinence des réponses dans les applications conversationnelles.
-
Scalabilité et gestion des coûts : LangChain doit être soigneusement architecturé pour gérer les volumes d’interaction croissants, ce qui souligne l’importance de la planification pour les systèmes d'information d'entreprise.
-
Impact sur la productivité : L'utilisation de LangChain pour automatiser des tâches répétitives libère du temps pour les employés, les permettant de se concentrer sur des tâches à plus forte valeur ajoutée.
-
Évolution et adaptation continue : La mise à jour régulière de LangChain en fonction des avancées technologiques met en évidence la nécessité d'une veille technologique dans le cadre de l'implémentation de solutions d'IA.
Article réflexif
Mon projet pratique :
Skilly est une application web que j'ai développée pour accompagner les étudiants de la Team Academy dans la gestion et le suivi de leurs compétences tout au long de leur parcours académique. Conçue pour répondre à des problématiques telles que la centralisation des informations, le suivi de la progression académique et l’analyse des performances, Skilly propose des outils innovants : tableaux de bord interactifs, solutions de business intelligence, et mécaniques de motivation engageantes comme la gamification. La plateforme s’appuie également sur des théories pédagogiques, notamment l’apprentissage autorégulé, afin de promouvoir une démarche autonome et proactive chez les utilisateurs.
Sur le volet intelligence artificielle (IA), Skilly exploite un LLM pour analyser les données des étudiants et fournir des recommandations personnalisées. Par exemple, l'application peut identifier les compétences nécessitant des améliorations et proposer des ressources ou activités adaptées. De plus, Skilly AI automatise des tâches telles que la création de rapports, permettant aux étudiants de se concentrer sur des activités à plus forte valeur ajoutée. L’intégration de l’IA enrichit ainsi l’expérience d’apprentissage tout en optimisant la gestion académique de chaque utilisateur.
Vous pouvez accéder à Skilly via ce lien : Skilly (opens in a new tab)
Voici l'article réflexif que j'ai rédigé sur le sujet :
Session de formation
Lors des sessions de formations sur l'IA et le Machine Learning, j'ai pu retenir ces différents points clés :
Origines et Évolution :
- Le Machine Learning trouve ses racines dans les travaux d'Alan Turing, soulignant son importance historique et l'évolution vers des programmes autonomes capables de prendre des décisions basées sur des données.
Capacité d'Auto-apprentissage :
- Les modèles de ML ajustent leur comportement en fonction des informations reçues, permettant un système d'information plus adaptable et réactif aux besoins des entreprises.
Applications Pratiques :
- Les techniques de ML, telles que les réseaux de neurones et le clustering, sont utilisées pour résoudre divers problèmes complexes, allant de la prévision des ventes à l’identification de comportements clients, améliorant ainsi la prise de décision dans les entreprises.
Amélioration de la Prédiction :
- L'analyse de séries temporelles et d'autres méthodes prédictives renforcent les capacités des systèmes d'information en permettant aux entreprises d'anticiper les tendances et de réagir en conséquence.
Défis de Généralisation :
- L'équilibre entre complexité et généralisabilité est crucial. Les entreprises doivent utiliser des modèles capables de s'adapter sans surajuster, afin d’améliorer la fiabilité des systèmes d’information.
Utilisation de Techniques Avancées :
- L'utilisation de bibliothèques comme Scikit-Learn permet aux entreprises de tester et de déployer rapidement des algorithmes sur des données réelles, rendant les systèmes d'information plus robustes et efficaces.
Explicabilité et Confiance :
- La compréhension des modèles et de leurs décisions est essentielle pour augmenter la confiance des utilisateurs dans les systèmes d'information basés sur ML. Les entreprises doivent adresser l'explicabilité des modèles, notamment des réseaux de neurones profonds.
Impact sur les Processus Métier :
- Le ML permet d'automatiser et d'optimiser divers processus au sein de l’entreprise, augmentant ainsi l'efficacité opérationnelle et réduisant les coûts.
Voici le rapport de formation sur l'IA et le Machine Learning :
Être capable d’intégrer tous les processus de développement logiciel et de gestion du cycle de vie des données dans des projets complexes.
Description : Cette compétence implique la capacité à intégrer de manière fluide et efficace les processus de développement logiciel et de gestion du cycle de vie des données dans des projets complexes. Cela comprend la planification, la conception, le développement, le déploiement et la maintenance des systèmes logiciels, tout en assurant la gouvernance des données, la sécurité et la conformité. L'objectif est de garantir que les solutions logicielles répondent aux besoins des utilisateurs et s'adaptent aux évolutions technologiques et organisationnelles.
Comment ai-je atteint la compétence ?
Projet Koloka
Vous pouvez lire les dernières étapes dans lesquelles j'ai pu intégrer les processus de développement logiciel et étapes CI/CD dans le projet Koloka, attention il s'agit d'une ressource du semestre 4, revenez par la suite à la lecture de ce document pour voir les dernières étapes du projet Koloka.
Voici le lien : Koloka S4
Par la suite ce semestre j'ai finalisé la dernière migration du service de chez AWS à Infomaniak que sont les buckets S3. Pour faire cela j'ai dû :
- Créer de nouveau fichier terraform (provider, s3 yaml files) pour openstack afin de monter deux ressources, une pour l'environnement de staging/preview et une pour l'environnement de production.
- Changer les configurations backend de Strapi pour qu'il puisse accéder aux nouveaux buckets S3 de openstack qui sont des object storage.
Voici les autorisations CORS que j'ai dû ajouter pour que les buckets S3 soient accessibles depuis le front-end :
Enfin quelques configurations dans strapi :
Finalement il a fallu créer un environnement identique que celui du staging/preview mais pour la production. Pour cela j'ai dû :
- Ajouter la configuration kubernetes avec helm, créer un namespace, service, deployment... et enfin lancer tout cela dans le github action pour que cela soit automatique.
- J'ai dû adapter les configurations du repo de github pour avoir des environnement séparés pour le staging/preview et la production et donc avoir des secrets et variables d'environnement différents.
- J'ai aussi séparé le service realtime qui est Pusher pour que les deux environnement soit complètement distincts.
- J'ai intégré un système complet et résilient pour les bases de données, j'utilise un opérateur CNPG pour avoir notamment des backups, la disponibilité et la réplication des bases de données.
Voici un aperçu du chart helm de Koloka :
Un aperçu d'un fichier de deployment.yaml de l'environnement de production :
Voici la configuration de l'opérateur CNPG :
Article réflexif
Dans mon projet Skilly, pour la gestion du cycle de vie des données, j'ai mis en place les bonnes pratiques de gestion des données :
- Création et acquisition des données : Je valide les données côté frontend et backend.
- Stockage des données : Je design/conceptualise la base de données adaptée aux besoins des utilisateurs, j'optimise les requêtes pour garantir des performances optimales et je gère les migrations de données.
- Traitement et transformation des données : Je fais du parsing, du nettoyage, de l'analyse et de la transformation des données pour les afficher de manière pertinente sur des graphiques.
- J'ai une pipeline complète pour vérifier le typage, la qualité et la cohérence des données durant la pipeline de CI/CD.
- Sécurisation des données : J'ai tout un système de sécurité pour les données, notamment pour les données sensibles des utilisateurs. J'ai mis en place des règles de sécurité pour garantir la confidentialité et l'intégrité des données avec des rôles et des permissions.
- Archivage et suppression : J'ai créé pour la première fois un système d'archivage des données pour les étudiants qui ont fini leur parcours académique, cela permet de garder une trace des données, l'utilisateur peut toujours les supprimer s'il le souhaite.
Voici un aperçu de la validation de données frontend & backend :
Voici un aperçu de la conception d'une table de la base de données :
On peut voir ici des scripts de linting et de migration de données :
Un aperçu de la sécurité des données, j'ai un système basé sur les rôles RBAC, j'ai certaines permissions pour les utilisateurs et certaines requêtes sont wrappées dans des middlewares pour vérifier les permissions :
Enfin un aperçu de l'archivage des données :
En travaillant sur ces projets, j'ai acquis une compréhension approfondie des processus de développement logiciel et de gestion du cycle de vie des données dans des projets complexes. J'ai appris à intégrer ces processus de manière fluide et efficace, en veillant à ce que les solutions logicielles répondent aux besoins des utilisateurs et s'adaptent aux évolutions technologiques et organisationnelles.