Wiki Le BIK'LAB

Le Bik'Lab avec le réseau des FabLabs de la région académique Guadeloupe

Outils pour utilisateurs

Outils du site


ateliers:bootcamp_ia:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ateliers:bootcamp_ia:start [05/05/2023 15:12 ] – ↷ Page déplacée de ateliers:forma_ia:start à ateliers:bootcamp_ia:start Oliver Wattéateliers:bootcamp_ia:start [04/04/2024 15:35 ] (Version actuelle) – modification externe 127.0.0.1
Ligne 36: Ligne 36:
  
 <note tip>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.</note> <note tip>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.</note>
 +
 +
 +==== 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.
 +
 +<note tip>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.</note>
 +
 +On trouvera trois principales méthodes pour les systèmes apprenants : 
 +  * L'apprentissage supervisé;
 +  * l'apprentissage non supervisé;
 +  * l'apprentissage par renforcement.
 +
 +== Apprentissage supervisé ==
 +<note tip>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.</note>
 +== Apprentissage non supervisé ==
 +<note tip>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.</note>
 +== Apprentissage par renforcement ==
 +<note tip>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.</note>
 +
  
 ===== Historique rapide de l'intelligence artificielle ===== ===== Historique rapide de l'intelligence artificielle =====
 +==== Les premiers pas ====
 +Franck Ronsenblatt publie en 1958 [[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.335.3398&rep=rep1&type=pdf|The perceptron: a probabilistic model for information storage and organization in the brain]], un article fondateur qui pose les bases des réseaux de neurones artificiels.
 +
 +==== 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 principaux types d'IA =====
 +
 +==== Les systèmes experts ====
 +très populaires pendant les années 80.
 +Résultats prévisibles, explicables. 
 +<note tip>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.</note>
 +  * une base de faits ;
 +  * une base de règles ;
 +  * un moteur d'inférence.
 +
 +==== Les systèmes évolutionnaires - algorithmes génétiques ====
 +
 +<note tip>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.</note>
 +
 +==== 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 ===== ===== Principe général des réseaux de neurones artificiels =====
 +{{:ateliers:bootcamp_ia:640px-artificial_neuron.svg.png?200 |}}
 +Commençons par le neurone artificiel. Proposé dès les années 50, avec le perceptron, ce modèle permet de créer ....
  
-==== Forces et faiblesses de ces modèle ====+ 
 + 
 +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 ==== 
 + 
 +<note tip>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.</note> 
 + 
 +{{:ateliers:bootcamp_ia:artificial_neural_network.png?200 |}}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 ==== 
 + 
 +<note tip>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.</note> 
 + 
 +Pour en savoir plus, un article très didactique :  
 +[[https://datascientest.com/deep-learning-definition|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 ===== ===== 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)
 +  * ...
  
  
Ligne 61: Ligne 164:
   - Demander de résumer un sujet, par exemple //Résume moi en 100 mots ce qu'est l'informatique.//   - 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//   - 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 [[https://www.wolframalpha.com/|Wolfam Alpha]] 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 [[https://www.wolframalpha.com/|Wolfam Alpha]]
  
 +Pour celles et ceux qui souhaitent approfondir le sujet des LLM, voici quelques ressources :
 +  * [[https://github.com/Hannibal046/Awesome-LLM#milestone-papers|Awesome-LLM/milestone-papers]], une collection des articles scientifiques fondateurs du domaine, depuis 2017;
 +  * [[https://github.com/Hannibal046/Awesome-LLM#llm-leaderboard|Awesome-LLM/llm-leaderboard]], un classement des LLM par taille d'hyper-paramètres
 +  * [[https://github.com/Hannibal046/Awesome-LLM#open-llm|Awesome-LLM/open-llm]], **Une liste des LLM Open sources, avec les liens vers les projets**
 +
 +IA de ce types auto hébergées : 
 +  * [[https://github.com/antimatter15/alpaca.cpp|alpaca.cpp]], tourne en local, avec un modèle de 4go (7B) 
 +  * x-turing
  
 ===== IA génératrices d'images ===== ===== IA génératrices d'images =====
-  * Midjourney (payant) +  * [[https://www.midjourney.com|Midjourney]] (payant) 
-  * Dall-E 2 (payant)+  * [[https://openai.com/product/dall-e-2|Dall-E 2]] (payant)
   * Easy Diffusion (libre, gratuit, auto hébergé sur votre ordinateur) [[https://github.com/cmdr2/stable-diffusion-ui|Page GitHUB pour télécharger l'installeur]]   * Easy Diffusion (libre, gratuit, auto hébergé sur votre ordinateur) [[https://github.com/cmdr2/stable-diffusion-ui|Page GitHUB pour télécharger l'installeur]]
 +  * [[https://www.craiyon.com/|craiyon]] (gratuit, basé sur un logiciel libre)
 +  * [[https://www.bing.com/images/create?|Bing image create]] Utilise Dall-E, gratuit avec limitations, tokens journaliers
 +  * [[https://creator.nightcafe.studio/studio|nightcafe]] Stable diffusion(multi-version), essai gratuit
 +  * Leonardo.Ai
 +  * Adobe Firefly
 +  * [[https://www.bluewillow.ai/|Blue Willow]] (gratuit)
 +  * [[https://instantart.io/|InstantArt]] (multimodèle, partiellement gratuit)
 +  * [[https://lexica.art/|Lexica]] basé sur Lexica Aperture, génération gratuite
 +  * [[https://playgroundai.com/|Lexica Aperture]] multi-modèle, le compte gratuit permet d'essayer pas mal de choses
  
  
  
 +Liens divers : 
 +  * [[https://github.com/gradio-app/gradio|Gradio: Build Machine Learning Web Apps — in Python]]
 +  * [[https://www.cs.waikato.ac.nz/ml/weka/|Weka]]
 +  * [[https://teachablemachine.withgoogle.com/|Teachable Machine]]
 +  * [[https://jupyter.org|Jupyter notebooks]]
  
  
  
ateliers/bootcamp_ia/start.1683299564.txt.gz · Dernière modification : 04/04/2024 15:35 (modification externe)