Bootcamp Intelligence Artificielle (IA)
Présentations
Audrey Robinel, enseignant, hacker, maker, titulaire d'un doctorat en IA appliquée.
Quelques uns de mes papiers
Mes activités actuelles
Introduction
L'IA devient omniprésente dans le monde des années 2020. Les performances croissent très vite, ce qui soulève des interrogations sociétales, et plus particulièrement dans notre domaine : l'enseignement.
Avant de s'interroger sur ces problématiques, définissons notre sujet.
L'intelligence
Qu'est-ce que l'intelligence?
Selon le dictionnaire le ROBERT c'est :
Faculté de connaître, de comprendre ; qualité de l'esprit qui comprend et s'adapte facilement.
En psychologie, on considère que l'intelligence mesure la capacité à s'adapter et résoudre des problèmes nouveaux.
En voici une autre définition plus étoffée :
L'intelligence est une capacité mentale qui permet à un individu de comprendre, d'apprendre, de raisonner, de résoudre des problèmes, de s'adapter à de nouvelles situations et de s'adapter à l'environnement qui l'entoure. Elle peut prendre différentes formes, comme l'intelligence verbale-linguistique, l'intelligence logique-mathématique, l'intelligence spatiale, l'intelligence kinesthésique, l'intelligence musicale, l'intelligence interpersonnelle et l'intelligence intrapersonnelle.
On applique traditionnellement ces définitions aux êtres vivants.
L'intelligence artificielle
L'intelligence artificielle (IA) est une discipline scientifique qui vise à développer des algorithmes et des systèmes informatiques capables de simuler, voire de dépasser, les capacités cognitives humaines, telles que la perception, le raisonnement, l'apprentissage, la communication et la prise de décision. L'IA peut être utilisée dans de nombreux domaines, tels que l'industrie, la santé, les transports, les services financiers et les jeux, pour automatiser des tâches, améliorer l'efficacité et la qualité des processus, et créer de nouvelles opportunités d'innovation et de création de valeur.
Quelques principes fondamentaux de l'IA moderne
Nous allons présenter ici quelques concepts fondamentaux que vous rencontrerez dans le monde de l'IA. Tous les fondements ne sont pas présentés ici, seulement une sélection qui permettra de mieux comprendre la suite
machine learning ou systèmes apprenants
Un système apprenant, c'est de l'IA. Mais toutes les IA ne sont pas des systèmes apprenants. Nous nous intéressons particulièrement à l'apprentissage supervisé du fait de sa prévalence dans les outils modernes.
Les systèmes apprenants sont des systèmes informatiques qui ont la capacité de s'adapter et d'évoluer à partir de données, sans être explicitement programmés. Ils utilisent des techniques d'apprentissage automatique pour apprendre à partir de l'expérience et améliorer leur performance dans une tâche donnée au fil du temps.
On trouvera trois principales méthodes pour les systèmes apprenants :
L'apprentissage supervisé;
l'apprentissage non supervisé;
l'apprentissage par renforcement.
Apprentissage supervisé
L'apprentissage supervisé est une technique d'apprentissage automatique où un modèle est entraîné à partir de données étiquetées, c'est-à-dire des données qui sont associées à une sortie connue. Le modèle apprend à prédire une sortie pour de nouvelles entrées en se basant sur les exemples étiquetés qu'il a appris.
Apprentissage non supervisé
L'apprentissage non supervisé est une technique d'apprentissage automatique où un modèle est entraîné à partir de données non étiquetées, sans connaître la sortie attendue. Le modèle apprend à découvrir des motifs ou des structures cachées dans les données et peut être utilisé pour regrouper les données en clusters ou pour réduire la dimensionnalité des données.
Apprentissage par renforcement
L'apprentissage par renforcement est une technique d'apprentissage automatique où un agent apprend à prendre des décisions dans un environnement en interagissant avec celui-ci et en recevant des récompenses ou des pénalités pour chaque action. L'agent utilise une stratégie d'exploration/exploitation pour apprendre à maximiser sa récompense au fil du temps.
Historique rapide de l'intelligence artificielle
Les premiers pas
L'hiver de l'IA
Renaissance de l'IA
L'explosion de la décennie 2010
Si on constate un emballement généralisé de la présence de l'IA dans la société, ce mouvement a commencé dans les années 2010, avec des travaux sur le deep learning, les réseaux neuronaux récurents, mais également l'utilisation du GPU computing, qui a permis d’accroitre considérablement la puissance de calcul exploitable pour des tâches IA.
Les principaux types d'IA
Les systèmes experts
très populaires pendant les années 80.
Résultats prévisibles, explicables.
Les systèmes experts sont des programmes informatiques conçus pour simuler le raisonnement d'un expert humain dans un domaine spécifique. Ils utilisent des règles et des connaissances spécifiques pour résoudre des problèmes complexes, fournissant ainsi des solutions rapides et précises aux problèmes rencontrés dans ce domaine.
une base de faits ;
une base de règles ;
un moteur d'inférence.
Les systèmes évolutionnaires - algorithmes génétiques
Les algorithmes génétiques sont des techniques d'optimisation utilisées en intelligence artificielle pour résoudre des problèmes complexes. Ils fonctionnent en imitant le processus de sélection naturelle de l'évolution pour trouver la meilleure solution possible en utilisant des concepts tels que la mutation et la reproduction des individus.
Les réseaux de neurones artificiels
Enfin, le type d'IA le plus prépondérant de nos jours : les réseaux de neurones artificiels.
Ils sont au cœur des plus gros projets, jusqu'au célèbre chatGTP. Les travaux sur les neurones artificiels remontent au début de l'IA, et cette branche reçoit la majorité des efforts de recherche et de financements.
Principe général des réseaux de neurones artificiels
Commençons par le neurone artificiel. Proposé dès les années 50, avec le perceptron, ce modèle permet de créer ….
Le perceptron simple n'est cependant pas capable de résoudre des problèmes plus complexes. Pour ceux ci, la solution est de connecter entre eux plusieurs neurones artificiels, pour ainsi former un réseau de neurones artificiels.
Le perceptron multi-couches : les neurones en réseau
Les réseaux de neurones artificiels sont des modèles informatiques inspirés du cerveau humain, utilisés en intelligence artificielle pour la reconnaissance de formes, la classification et la prédiction. Ils sont constitués de couches de neurones interconnectés et s'entraînent à partir de données pour améliorer leur performance dans une tâche donnée.
Dans son expression la plus simple, on a ainsi une couche d'entrée, une ou plusieurs couches intermédiaires, appelées couches cachées, et une couche de sortie.
Chaque neurone de la couche d'entrée sert à “voir” une variable du problème.
Les neurones de la couche de sortie servent à “dire” la réponse du réseau de neurones artificiels.
Toutes les couches intermédiaires sont celles qui contiennent en quelques sorte la puissance cognitive du réseau. Le nombre de couches et leur taille est un problème complexe pour obtenir le réseau idéal pour répondre à un problème.
Rétro propagation du gradient de l'erreur
Cette méthode réhabilita complètement les réseaux de neurones artificiels en fournissant une solution permettant d'ajuster automatiquement les poids synaptiques entre les neurones en fonction de l'erreur mesurée.
Réseaux de neurones récurrents
Cette fois ci on ajoute la possibilité pour le signal de repasser par des neurones qui l'ont déjà propagé. Cela permet potentiellement des effets de mémoire avancés, mais la complexité du modèle explose.
Deep learning
Le deep learning est une technique d'apprentissage automatique basée sur les réseaux de neurones artificiels avec de nombreuses couches cachées. Il est utilisé pour résoudre des problèmes complexes tels que la reconnaissance de la parole, l'analyse d'images ou la traduction automatique, en apprenant des représentations hiérarchiques des données.
Pour en savoir plus, un article très didactique :
Deep Learning ou Apprentissage Profond : qu’est-ce que c’est ?
Plus les réseaux deviennent complexes, plus il devient coûteux et complexe de les entraîner. Des stratégies très astucieuses ont été mises en place, tel que le “Optimal Brain Damage”, que l'on peut traduire par dégats cérébraux optimum, qui consiste à partir d'un réseau très complexe (et donc lourd) et de faire des “trous” dedans. Si les performances baissent, on ne conserve pas la modification. Mais si elles ne changent pas, ou s'améliore, on conserve. Ainsi, on peut tailler considérablement dans la surface de notre réseau pour le rendre plus facile à gérer
La course à la puissance, et le GPU computing
Face à la lourdeur des algorithme d'entraînement, là ou certains cherchent l'optimisation pour les alléger, d'autres s'appuient plutôt sur l'accroissement de la puissance de calcul accessible, et plus particulièrement sur la puissance des cartes accélératrices 3D. Au départ, celles ci servaient principalement au rendu 3D, pour les jeux, etc. En moins d'une décennie, le “GPU compute”, ou les calculs par carte 3D à des fins autres que l'affichage vidéo ont pris une place prépondérante sur ce marché, au point que les joueurs ne sont plus la priorité des grands fabricants comme Nvidia ou AMD, mais bien au contraire, les datacentres et les laboratoires. La puissance de calcul d'un GPU moderne est sans commune mesure avec celle d'un processeur général, et les tâches d'IA sont particulièrement adaptées.
Ainsi l'explosion quasi exponentielle des capacités des IA de ces dernières années s'appuie en partie sur ces nouvelles possibilités.
Forces et faiblesses de ces modèle ? ou intégrer plus haut?
Applications de l'IA
NLP : Natural Language Processing
Génération d'images (voir, entre autre, GAN)
deepfakes
reconstruction vocale
vision numérique (analyse d'images pour en déterminer le contenu)
reconstruction d'images dégradées ou d'informations manquantes
AI upscale
correction vidéo live (regard caméra)
suppression du bruit (audio ou image/vidéo)
construction d'objets 3D depuis des images 2D
génération de vidéo
analyse de texte et génération de résumés
conduite autonome de véhicules
diagnostic médical automatique (plus précis que les meilleurs spécialistes)
…
Seconde partie - Mise en pratique
IA conversationnelle type LLM
Commençons par le plus populaire, ChatGPT.
L'utilisation est pour le moment gratuite, mais demande la création d'un compte.
Cliquez ici pour converser avec ChatGPT
Ce chatbot comprend de nombreuses langues, dont le français. Les résultats me semblent aussi pertinents en français qu'en anglais.
A essayer :
Poser une question sur un sujet que vous maîtrisez. Par exemple qu'est-ce que la programmation?
Poser une question plus technique sur ce sujet, par exemple quelle sont les différences entre le C et le python?
Demander de résumer un sujet, par exemple Résume moi en 100 mots ce qu'est l'informatique.
Demander un résumé encore plus court, par exemple : Résume moi en 10 mots ce qu'est l'informatique
créer le plan d'un exposé sur un sujet
créer des paragraphes du plan
créer du code dans un langage de programmation de votre choix (par exemple python)
Prendre un texte quelconque, et demander un résumé
Poser des questions sur vous-même
poser des questions sur les événements de cette année
demander ce qui est mieux entre le seigneur des anneaux et la guerre des étoiles
Il y a quelques semaines, chatGPT était connu pour être très mauvais en mathématiques. Depuis, il y a des ponts entre chatGPT et Wolfam Alpha
Pour celles et ceux qui souhaitent approfondir le sujet des LLM, voici quelques ressources :
IA de ce types auto hébergées :
alpaca.cpp, tourne en local, avec un modèle de 4go (7B)
x-turing
IA génératrices d'images
-
-
-
craiyon (gratuit, basé sur un logiciel libre)
-
nightcafe Stable diffusion(multi-version), essai gratuit
Leonardo.Ai
Adobe Firefly
-
-
Lexica basé sur Lexica Aperture, génération gratuite
Lexica Aperture multi-modèle, le compte gratuit permet d'essayer pas mal de choses
Liens divers :