Viens comme tu es et apprends à coder ta première IA

A presentation at Devoxx France in April 2024 in Paris, France by Mathieu Busquet

Slide 1

Slide 1

Viens dompter ta première IA en Python

Slide 2

Slide 2

MERCI !!!

Slide 3

Slide 3

🤖 Qu’allons-nous voir aujourd’hui ? 01 Les principes dans l’IA 02 Kit de survie Python 03 CDE Viens dompter ta première IA en Python 04 Les ressources utilisées chez OVHcloud 05 Développer à l’aide d’un notebook, d’un job et d’une app 01

Slide 4

Slide 4

🤖 Qui sommes-nous ? Picture Picture Stéphane Philippart Mathieu BUSQUET OVHcloud OVHcloud Developer Advocate Viens dompter ta première IA en Python Machine Learning Engineer 02

Slide 5

Slide 5

🐻 Stéphane Philippart Picture 🏷️ 🥑 DeveloperAdvocate@OVHCloud 🦄 🏷️ Co-créateur de TADx (meetup à Tours) 🧠 Padawan Intelligence Artificielle 🏕 @wildagsx philippart-s Viens dompter ta première IA en Python 📝 philippart-s.github.io/blog philippartstephane 03

Slide 6

Slide 6

🤖 Mathieu Busquet Machine Learning Engineer @OVHCloud Picture AI Solutions Team @mat_bsqt Viens dompter ta première IA en Python MathieuBsqt Mathieu Busquet 04

Slide 7

Slide 7

🐻 Qui êtes-vous ? Viens dompter ta première IA en Python 05

Slide 8

Slide 8

🐻 Qui êtes-vous ? Dev Viens dompter ta première IA en Python 05

Slide 9

Slide 9

🐻 Qui êtes-vous ? Dev Dev Python Viens dompter ta première IA en Python 05

Slide 10

Slide 10

🐻 Qui êtes-vous ? Dev Dev Python Data Scientist Viens dompter ta première IA en Python 05

Slide 11

Slide 11

🐻 Qui êtes-vous ? Dev Dev Python Data Scientist Machine Learning Engineer Viens dompter ta première IA en Python 05

Slide 12

Slide 12

🐻 Qui êtes-vous ? Dev Dev Python Data Scientist Machine Learning Engineer Autre Viens dompter ta première IA en Python 05

Slide 13

Slide 13

📝 Pense-bête et liens 🔗 🐻 https://bit.ly/101-ai-lab Viens dompter ta première IA en Python 06

Slide 14

Slide 14

🤖 Intelligence Artificielle 🧠 Viens dompter ta première IA en Python 06

Slide 15

Slide 15

🤖 L’IA dans notre quotidien Recommandations personnalisées de contenu Taggage automatique, recherche de contenus Conduite assistée et autonome Assistant vocal Aide aux diagnostics médicaux Architecture, Assurance, Énergie, Industrie, Télécom, Transport, Vente, … Viens dompter ta première IA en Python 07

Slide 16

Slide 16

🤖 Les champs de l’IA Intelligence Artificielle (IA) Viens dompter ta première IA en Python 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain 08

Slide 17

Slide 17

🤖 Les champs de l’IA Intelligence Artificielle (IA) 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain Résolution de problème Apprendre des expériences passées Perception (images, sons) Prise de décision Viens dompter ta première IA en Python 08

Slide 18

Slide 18

🤖 Les champs de l’IA 👉 Intelligence Artificielle (IA) Artificial Narrow Artificial Intelligence Narrow (ANI) Intelligence (ANI)AI Weak Artificial General Artificial Intelligence Narrow (AGI) Intelligence (ANI) AI Strong IA : Techniques pour simuler les capacités “intelligentes” d’un être humain Artificial Super Intelligence (ASI) Viens dompter ta première IA en Python 08

Slide 19

Slide 19

🤖 Les champs de l’IA 👉 Intelligence Artificielle (IA) Artificial Narrow Artificial Intelligence Narrow (ANI) Intelligence (ANI)AI Weak Artificial General Artificial Intelligence Narrow (AGI) Intelligence (ANI) AI Strong IA : Techniques pour simuler les capacités “intelligentes” d’un être humain Artificial Super Intelligence (ASI) Viens dompter ta première IA en Python 08

Slide 20

Slide 20

🤖 Les champs de l’IA Intelligence Artificielle (IA) Machine Learning (ML) 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain 👉 ML : Utilisation d’algorithmes permettant aux machines d’apprendre par l’ingestion de données, sans être explicitement programmées. Viens dompter ta première IA en Python 08

Slide 21

Slide 21

🤖 Les champs de l’IA Intelligence Artificielle (IA) Machine Learning (ML) Réseaux de neurones Deep Learning (DL) 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain 👉 ML : Utilisation d’algorithmes permettant aux machines d’apprendre par l’ingestion de données, sans être explicitement programmées. 👉 DL : Utilisation de réseaux de neurones pour apprendre à partir de données non structurées, et plus complexes Viens dompter ta première IA en Python 08

Slide 22

Slide 22

🤖 Les champs de l’IA Intelligence Artificielle (IA) Machine Learning (ML) Réseaux de neurones Deep Learning (DL) GenAI Viens dompter ta première IA en Python 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain 👉 ML : Utilisation d’algorithmes permettant aux machines d’apprendre par l’ingestion de données, sans être explicitement programmées. 👉 DL : Utilisation de réseaux de neurones pour apprendre à partir de données non structurées, et plus complexes 08

Slide 23

Slide 23

🤖 Les champs de l’IA Intelligence Artificielle (IA) Machine Learning (ML) Réseaux de neurones Deep Learning (DL) GenAI LLMs Viens dompter ta première IA en Python 👉 IA : Techniques pour simuler les capacités “intelligentes” d’un être humain 👉 ML : Utilisation d’algorithmes permettant aux machines d’apprendre par l’ingestion de données, sans être explicitement programmées. 👉 DL : Utilisation de réseaux de neurones pour apprendre à partir de données non structurées, et plus complexes 08

Slide 24

Slide 24

🤖 Les grandes familles d‘algorithmes en ML Apprentissage supervisé Classification et régression La donnée est labellisée Oiseau Chien Chat Viens dompter ta première IA en Python 10

Slide 25

Slide 25

🤖 Les grandes familles d‘algorithmes en ML Apprentissage supervisé Apprentissage non supervisé La donnée est labellisée La donnée n’est pas labellisée C’est au modèle d’identifier les relations entre les données Chercher la proximité entre des documents, des individus Classification et régression Oiseau Chien Chat Clustering Viens dompter ta première IA en Python 10

Slide 26

Slide 26

🤖 Les grandes familles d‘algorithmes en ML Apprentissage supervisé Apprentissage non supervisé La donnée est labellisée La donnée n’est pas labellisée C’est au modèle d’identifier les relations entre les données Chercher la proximité entre des documents, des individus Classification et régression Oiseau Chien Chat Clustering Viens dompter ta première IA en Python 10

Slide 27

Slide 27

🤖 Les grandes familles d‘algorithmes en ML Apprentissage supervisé Apprentissage non supervisé La donnée est labellisée La donnée n’est pas labellisée C’est au modèle d’identifier les relations entre les données Chercher la proximité entre des documents, des individus Classification et régression Oiseau Chien Chat Clustering Viens dompter ta première IA en Python Apprentissage par renforcement Les décisions du modèle sont encadrées par un système de récompenses et de pénalités Robots (Jeux vidéo) 10

Slide 28

Slide 28

🤖 Sans donnée … pas d’intelligence ! 🧹 La plupart du temps les données sont brutes : il faudra les nettoyer, les prétraiter, les transformer, … 📀 Il va falloir les fusionner en un Dataset (en gros une base de données pour IA) 🧪 Un dataset contient les données d’apprentissage, de validation et de test 🧮 Enfin, ce sont des vecteurs et matrices qui seront manipulés par le modèle Viens dompter ta première IA en Python 11

Slide 29

Slide 29

🤖 Exemple d’un dataset Label correspondant : 0 Image labellisée Viens dompter ta première IA en Python 0.650401 0.611884 Classe personne 0.694224 0.75 Coordonnées du carré (centre_x, centre_y , largeur, hauteur) 12

Slide 30

Slide 30

🤖 Les modèles dans l’IA 🧠 C’est le cerveau de votre application 🔢 C’est ici que l’on retrouve les formules mathématiques 👉 Différents en fonction des tâches de machine learning Viens dompter ta première IA en Python 13

Slide 31

Slide 31

🤖 Deep learning & Réseau de neurones 💪 L’étape d’après … Plus puissante, plus complexe 🧠 Analogie avec les neurones humain plutôt fausse ↔️ Essentiellement due au mécanisme d’inter-connexions ⚖️ w* sont les poids et permettent d’ajuster le comportement du réseau 🐛 b est un biais pour rendre le modèle “plus réaliste” et influer sur la fonction d’activation 🔀 F est une fonction d’activation permettant de modéliser des relations plus complexes Viens dompter ta première IA en Python 14

Slide 32

Slide 32

🤖 Deep learning & Réseau de neurones 💪 L’étape d’après … Plus puissante, plus complexe 🧠 Analogie avec les neurones humain plutôt fausse ↔️ Essentiellement due au mécanisme d’inter-connexions ⚖️ w* sont les poids et permettent d’ajuster le comportement du réseau 🐛 b est un biais pour rendre le modèle “plus réaliste” et influer sur la fonction d’activation 🔀 F est une fonction d’activation permettant de modéliser des relations plus complexes Viens dompter ta première IA en Python 14

Slide 33

Slide 33

🤖 Le coût associé au modèle ✨ C’est ce qui va permettre de connaître la qualité d’un modèle 📏 C’est l’écart entre la valeur rendue et la valeur idéale Viens dompter ta première IA en Python 15

Slide 34

Slide 34

🤖 GPU vs CPU 🏠 🚚🍕 🏠 🚚🍖 🚚 🏠 🏠 🚚🍟 🏠 🚚🥐 CPU 🚚🧀 🏠 🚚🍔 Viens dompter ta première IA en Python 🛵 🛵 🛵 🛵 🛵 🛵 🏠 🛵🍕 🏠 🛵🍕 🏠 🏠 🛵🍕 🏠 🛵🍕 GPU 🛵🍕 🏠 🛵🍕 16

Slide 35

Slide 35

🐻 Cloud Development Environment Viens dompter ta première IA en Python 17

Slide 36

Slide 36

🐻 Cloud Development Environment Le code du projet Viens dompter ta première IA en Python Un éditeur de code Un environnement d’exécution 18

Slide 37

Slide 37

🐻 À la demande Pour tester une idée Expérimenter différentes solutions Partager une session de travail entre collègues … sky is the limit (et le coût de votre offre de CDE Viens dompter ta première IA en Python 😇) 19

Slide 38

Slide 38

🐻 Reproductible Environnement décrit précisément Configuration versionnée avec le code Cohérence entre l’environnement et le code lui même Viens dompter ta première IA en Python 20

Slide 39

Slide 39

🐻 Le CDE pour cet atelier : Gitpod Simplement ajouter https://gitpod.io/# devant l’URL de votre repository Deux fichiers de configuration : .gitpod.dockerfile .gitpod.yml Possibilité d’avoir par projets ou globales : Clés SSH variables d’environnement Tunneling possible avec le poste local 📝 Viens dompter ta première IA en Python 21

Slide 40

Slide 40

🤖 Python 🐍 101 pour cet atelier Viens dompter ta première IA en Python 22

Slide 41

Slide 41

🤖 🐍 Python Pourquoi ce choix ? 🛠️ Langage simple d’approche mais qui reste complet 🔋 Langage complet 🔬 Choix des communautés data science et data analysis Viens dompter ta première IA en Python 22

Slide 42

Slide 42

🤖 🐍 Python Concepts pour aujourd’hui 📁 Les fichiers requirements.txt 📝 L’instruction import 📚 Notebooks Viens dompter ta première IA en Python 22

Slide 43

Slide 43

🤖 Faire de l’Intelligence Artificielle chez OVHcloud AI Notebooks AI Training AI Deploy JupyterLab et VSCode, images pré-construites GPU as a Service CaaS pour l’IA Viens dompter ta première IA en Python Public Cloud 23

Slide 44

Slide 44

🐻 💻 Workshop Time ! Viens dompter ta première IA en Python 24

Slide 45

Slide 45

🐻 🔀 Fork du repository GitHub Projet à forker : https://github.com/devrel-workshop/101-AI-and-py https://ovh.to/ofPmni6 Viens dompter ta première IA en Python 25

Slide 46

Slide 46

🐻 Démarrage de Gitpod Viens dompter ta première IA en Python 26

Slide 47

Slide 47

🐻 ⚡️ Initialisation de l’environnement Gitpod Créer un compte Gitpod (se connecter avec son compte GitHub) Prendre le modèle large Plus d’informations : section getting started du README Viens dompter ta première IA en Python 27

Slide 48

Slide 48

🤖 🗺 Architecture de l’application Viens dompter ta première IA en Python 28

Slide 49

Slide 49

🤖 Modèle avec AI Notebooks AI Notebooks Viens dompter ta première IA en Python 29

Slide 50

Slide 50

🤖 📄 Instructions https://github.com/devrel-workshop/101-AI-andpy/blob/main/docs/00-notebook.md https://ovh.to/Zz5AnB Viens dompter ta première IA en Python 30

Slide 51

Slide 51

🤖 YOLOv8 (You only look once) Classification Détection Suivi Segmentation Personne Estimation de pose Voiture 98% Voiture 96% Plot Voiture 97% Personne Tripod Veste 🔗 https://docs.ultralytics.com/ - https://github.com/ultralytics/ultralytics 🏞 Classification / Détection / Segmentation / Détection / Pose 🏞 Entraîné sur le dataset COCO (>200K images labellisées) 🐍 Lib python prête à l’emploi 🧠 Utilisation du plus petit modèle avec “seulement” 3.2 millions de paramètres Viens dompter ta première IA en Python 32

Slide 52

Slide 52

🤖 Un mot sur le Transfert Learning 🔄 Réutiliser un modèle déjà entraîné 🔎 Le spécialiser dans un domaine bien précis Exemple : détection d’objets divers qui devient une détection de signes Viens dompter ta première IA en Python 33

Slide 53

Slide 53

🤖 🗃️ Le dataset utilisé Dataset Rock Paper Scissors SXSW récupéré de Roboflow Directement au bon format YOLOV8 Pas de traitement sur les images / labels à faire +11 000 images 10 953 pour l’entraînement (92%) (21% Papier, 29% Pierre, 20% Ciseaux) 604 pour la validation (5.5%) (24% Papier, 25% Pierre, 20% Ciseaux) 329 pour les tests (2.5%) (22% Papier, 22% Pierre, 21% Ciseaux) Viens dompter ta première IA en Python 34

Slide 54

Slide 54

🤖 🚀 Exécution du Notebook 1/2 ▶️ “Jouer” les cellules du Notebook (bouton ▶️) ⤵️ Récupération du dataset ⤵️ Récupération des dépendances ✅ Vérification de la configuration matérielle (1 GPU) et logicielle (Ultralytics) ⤵️ Récupération du modèle yolov8n pré-entraîné sur COCO 🧪 Tester le modèle non entraîné avec une image de joueur Viens dompter ta première IA en Python 35

Slide 55

Slide 55

🤖 🚀 Exécution du Notebook 2/2 🧠 Entraîner le modèle avec les données du dataset “pierre / feuille / ciseaux” 🔬 Etude de la qualité du modèle 🧪 Tester le nouveau modèle, l’importance des “epochs” 💾 Sauvegarder le modèle Viens dompter ta première IA en Python 36

Slide 56

Slide 56

⚡️ Accès au Notebook 💻 🛠️ via le json attendee-conf.json dans le workspace de projet Gitpod OVHcloud Instance ubuntu@my-instance:~$ ovhai notebook list —token $AI_TOKEN ID NAME STATE AGE xx-xx-xx-xx-xx blabla_0 RUNNING 4h FRAMEWORK VERSION EDITOR conda conda-py311-cudaDevel11.8 jupyterlab URL https://xx-xx-xx-xx-xx.notebook.bhs.ai.cloud.ovh.net Viens dompter ta première IA en Python 37

Slide 57

Slide 57

📊 Analyse des résultats Vrai Positif (TP): Détection correcte par le modèle (Objet x présent dans l’image détecté comme x, avec sa détection dans la même boîte englobante que la groundtruth) Scissors Vérité Scissors Prédiction Faux Positif (FP): Détection incorrecte par le modèle (Objet x présent dans l’image détecté comme y). Scissors Scissors Vérité Faux Négatif (FN): Une Ground-truth de loupée par le modèle (pas détectée) (Objet x non détecté alors qu’il est présent dans l’image). Scissors Scissors Vérité Prédiction Vrai Négatif (TN): Images restantes, où aucune détection n’a eu lieu parce qu’il n’y avait pas le signe en question dans l’image. Rock Rock Prédiction Viens dompter ta première IA en Python Vérité Prédiction 38

Slide 58

Slide 58

📊 Analyse des résultats Vue résumée des classifications (Nombre de TP, TN, FP, FN) La diagonale représente les bonnes prédictions, tandis que les autres sont des erreurs. Classe Background Matrice de confusion Viens dompter ta première IA en Python 39

Slide 59

Slide 59

📊 Précision Faux Positif (FP): Vrai Positif (TP) Scissors Vérité Scissors Prédiction Précision = Scissors Vérité Rock Prédiction TP TP+FP Plus le seuil de confiance sera bas, plus on aura de prédictions, avec de nombreuses erreurs (FP) -> la précision sera basse Seuil de confiance : Détermine le score de confiance minimum requis pour qu’une prédiction soit considérée comme valide Mais attention à ne pas en fixer un trop haut non plus (très peu de TP détectés) Elle est utile lorsque le coût d’un FP est élevé Viens dompter ta première IA en Python 40

Slide 60

Slide 60

📊 Rappel (Recall) Vrai Positif (TP) Scissors Vérité Faux Négatif (FN) Scissors Prédiction Rappel = Scissors Vérité Prédiction TP TP+FN Nombre de fois où le modèle a correctement prédit un exemple positif sur le nombre total d’exemples positifs. Seuil de confiance : Détermine le score de confiance minimum requis pour qu’une prédiction soit considérée comme valide Il est utile lorsque le coût d’un FN est élevé Compromis entre la précision et le rappel Viens dompter ta première IA en Python 41

Slide 61

Slide 61

📊 Score F1 Une combinaison de la précision et du rappel en une seul et même métrique Seuil de confiance : Détermine le score de confiance minimum requis pour qu’une prédiction soit considérée comme valide Viens dompter ta première IA en Python 42

Slide 62

Slide 62

📊 Score F1 Une combinaison de la précision et du rappel en une seul et même métrique Seuil de confiance : Détermine le score de confiance minimum requis pour qu’une prédiction soit considérée comme valide Viens dompter ta première IA en Python 42

Slide 63

Slide 63

📊 Analyse des résultats Viens dompter ta première IA en Python 43

Slide 64

Slide 64

🎉Félicitations👏 Vous avez créé votre premier modèle d’intelligence artificielle ! Viens dompter ta première IA en Python 44

Slide 65

Slide 65

🐻 AI Training Viens dompter ta première IA en Python Entraînement avec AI Training 45

Slide 66

Slide 66

🐻 📄 Instructions https://github.com/devrel-workshop/101-AI-andpy/blob/main/docs/01-training.md https://ovh.to/tFHguV Viens dompter ta première IA en Python 46

Slide 67

Slide 67

🐻 ℹ️Rappels C’est le même token que celui du Notebook C’est le même object storage que celui du Notebook Viens dompter ta première IA en Python 47

Slide 68

Slide 68

🐻 Création de l’image 📂 Répertoire de travail : src/training Dockerfile: le dockerfile pour construire l’image Requirements.txt : fichier de gestion des dépendances Python Train.py : script Python pour l’entraînement du modèle Fabrication de l’image (Optionnel) Run / debug locallement Push de l’image dans la registry : <user>/ <pass> 🐳 🐛 ⬆️ Viens dompter ta première IA en Python 48

Slide 69

Slide 69

🐻 📝 🐳 Build Docker File Docker Image Viens dompter ta première IA en Python Push Pull Image Registry Docker Container 49

Slide 70

Slide 70

🐻 ⚡️ Création du Job avec la CLI 💻 OVHcloud Instance ubuntu@my-instance:~$ ovhai job run \ > —token $AI_TOKEN \ > —name $STUDENT_ID-yolov8-rock-paper-scissors-training-job \ > —gpu 1 \ > —env NB_OF_EPOCHS=10 \ > —volume $STUDENT_ID@S3GRA:/workspace/attendee:RW:cache \ > —unsecure-http \ > $REGISTRY_NAME/$STUDENT_ID/yolov8-rock-paper-scissors-training-job:1.0.0 Viens dompter ta première IA en Python 50

Slide 71

Slide 71

🐻 🚑 Plan B OVHcloud Instance ubuntu@my-instance:~$ ovhai job run \ > —token $AI_TOKEN \ > —name $STUDENT_ID-yolov8-rock-paper-scissors-training-job \ > —gpu 1 \ > —env NB_OF_EPOCHS=10 \ > —volume backup-0@S3GRA:/workspace/attendee:RW:cache \ > —unsecure-http \ > $REGISTRY_NAME/backup-0/yolov8-rock-paper-scissors-training-job:1.0.0 Viens dompter ta première IA en Python 51

Slide 72

Slide 72

🐻 🪵 Suivi des logs OVHcloud Instance ubuntu@my-instance:~$ ovhai job logs -f <job id> —token $AI_TOKEN Viens dompter ta première IA en Python 52

Slide 73

Slide 73

🎉Félicitations👏 Vous avez entraîné votre premier modèle d’intelligence artificielle ! Viens dompter ta première IA en Python 54

Slide 74

Slide 74

🤖 Application avec AI Deploy Viens dompter ta première IA en Python 55

Slide 75

Slide 75

🤖 ℹ️Rappels C’est le même token que celui du Notebook C’est le même object storage que celui du Notebook Viens dompter ta première IA en Python 56

Slide 76

Slide 76

🤖 📄 Instructions https://github.com/devrel-workshop/101-AI-andpy/blob/main/docs/02-application.md https://ovh.to/DGoWaJ Viens dompter ta première IA en Python 57

Slide 77

Slide 77

🤖 Création de l’image 📂 Répertoire de travail : src/app Dockerfile : le dockerfile pour construire l’image Requirements.txt : fichier de gestion des dépendances Python App.py : script Python pour la création de l’application Si nécessaire supprimer les images d’entraînement Fabrication de l’image (Optionnel) Run / debug locallement Push de l’image dans la registry 🗑 🐳 🐛 ⬆️ Viens dompter ta première IA en Python 58

Slide 78

Slide 78

🤖 ⚡️ Création de l’application avec la CLI 💻 OVHcloud Instance ubuntu@my-instance:~$ ovhai app run \ > —token $AI_TOKEN \ > —name $STUDENT_ID-yolov8-rock-paper-scissors-app \ > —cpu 1 \ > —default-http-port 8501 \ > —volume $STUDENT_ID@S3GRA:/workspace/attendee:RW:cache \ > —unsecure-http \ > $REGISTRY_NAME/$STUDENT_ID/yolov8-rock-paper-scissors-app:1.0.0 Viens dompter ta première IA en Python 59

Slide 79

Slide 79

🤖 🚑 Plan B OVHcloud Instance ubuntu@my-instance:~$ ovhai app run \ > —token $AI_TOKEN \ > —name $STUDENT_ID-yolov8-rock-paper-scissors-app \ > —cpu 1 \ > —default-http-port 8501 \ > —volume backup-0@S3GRA:/workspace/attendee:RW:cache \ > —unsecure-http \ > $REGISTRY_NAME/backup-0/yolov8-rock-paper-scissors-app:1.0.0 Viens dompter ta première IA en Python 60

Slide 80

Slide 80

🤖 🪵 Suivi des logs OVHcloud Instance ubuntu@my-instance:~$ ovhai app logs -f <app id> —token $AI_TOKEN Viens dompter ta première IA en Python 61

Slide 81

Slide 81

🤖 🔗 Accéder à l’application OVHcloud Instance ubuntu@my-instance:~$ ovhai app get <AppId> —token $AI_TOKEN Status: State: Internal Service Ip: Available Replicas: Url: Grpc Address: Info Url: Monitoring Url: SCALING ~ 0 https://<AppId>.app.gra.ai.cloud.ovh.net <AppId>.app-grpc.gra.ai.cloud.ovh.net:443 https://ui.gra.ai.cloud.ovh.net/app/<AppId> https://monitoring.gra.ai.cloud.ovh.net/d/app?var-app=<AppId>&from=1704720216889 Viens dompter ta première IA en Python 62

Slide 82

Slide 82

🎉Félicitations👏 Vous avez créé et déployé votre première application basée sur l’intelligence artificielle ! Viens dompter ta première IA en Python 64

Slide 83

Slide 83

Take away / Next ? Viens dompter ta première IA en Python 🧳 65

Slide 84

Slide 84

🤖 Un Workflow typique en IA STOCKER SA DATA 📀 Il faut une très grande quantité de données 🎛️ Il existe des datasets pré-créés (gratuits ou payants) 📀 La plupart du temps la donnée est brute ⚠️ Attention aux coûts (stockage, lecture / écriture) Viens dompter ta première IA en Python 66

Slide 85

Slide 85

🤖 Un Workflow typique en IA STOCKER SA DATA EXPLORATION & PRÉ-TRAÎTEMENT 🎛️ Créer des datasets nettoyés (Valeurs manquantes, Normalisation, …) 🎯 Le but est de traduire les données brutes dans un langage compréhensible par le modèle Viens dompter ta première IA en Python 67

Slide 86

Slide 86

🤖 Un Workflow typique en IA STOCKER SA DATA EXPLORATION & PRÉ-TRAÎTEMENT ENTRAÎNEMENT DU MODÈLE 🧠 Le “cerveau” de l’application 🧮 Basé sur des opérations mathématiques complexes ✨ Permet d’optimiser le modèle 📀 Il faut une grande quantité de données 🔋 Nécessite de la puissance de calcul 💰 Il existe des modèles pré-entrainés (payants ou gratuits) Viens dompter ta première IA en Python 68

Slide 87

Slide 87

🤖 Un Workflow typique en IA STOCKER SA DATA EXPLORATION & PRÉ-TRAÎTEMENT ENTRAÎNEMENT DU MODÈLE DÉPLOIEMENT DU MODÈLE 📝 Utilise le modèle pour faire l’inférence 🎨 Peut exposer une API ou une interface utilisateur 🔋 Haute disponibilité Viens dompter ta première IA en Python 69

Slide 88

Slide 88

🐻 Quels sont les métiers? Data Scientist ML Engineer Dev Viens dompter ta première IA en Python 70

Slide 89

Slide 89

🐻 LA OU LE DATA SCIENTIST 🔎 Analyse et manipulation des données 🧑‍💻 Développement 🧠 Machine Learning 🧮 Mathématiques % Statistiques Viens dompter ta première IA en Python 71

Slide 90

Slide 90

🐻 LA OU LE MACHINE LEARNING ENGINEER 🧑‍🔬 Data Science 🧮 Mathématiques % Statistiques 🧑‍💻 Développement 🧰 Frameworks & outillages IA ☁️ Cloud et conteneurisation 🧑‍🔧 Ops Viens dompter ta première IA en Python 72

Slide 91

Slide 91

🐻 LA DÉVELOPPEUSE OU LE DÉVELOPPEUR 🐍 Python 🧑‍🔬 Concepts IA 🧑‍💻 Développement 🧰 Frameworks et outillages IA ☁️ Cloud et conteneurisation Viens dompter ta première IA en Python 73

Slide 92

Slide 92

Goh Rhy Yan Viens dompter ta première IA en Python 74

Slide 93

Slide 93

🤖 ⚠️ LES BIAIS 🤷 LES IA SONT CRÉÉES PAR DES HUMAINS 📀 LES DONNÉES SONT DE PLUS OU MOINS BONNE QUALITÉ 🏷️ LA LABELLISATION DES DONNÉES EST SOUVENT FAITE PAR DES HUMAINS Viens dompter ta première IA en Python “Génère moi une image de médecins” 75

Slide 94

Slide 94

🤖 ⚠️ L’IA N’EST PAS SOURCE DE VÉRITÉ % CELA NE RESTE QUE DES PROBABILITÉS 🤔 C’EST UNE ESTIMATION 🤖 CELA N’EST QU’UNE AIDE À LA DÉCISION ET NE REMPLACE PAS UN·E HUMAIN.E IRM du patient Viens dompter ta première IA en Python Segmentation par un expert Segmentation de tumeurs cérébrales Segmentation par l’IA 76

Slide 95

Slide 95

🤖 ⚠️ LA COURSE À LA PUISSANCE 📀 TOUJOURS PLUS DE DONNÉES 🧮 DE MODÈLES TOUJOURS PLUS GROS AVEC PLUS DE COUCHES 🔋 PLUS DE PUISSANCE DE CALCUL 📈 DES CONSOMMATIONS QUI AUGMENTENT 🧠 UTILISER L’IA DE MANIÈRE “INTELLIGENTE” 📉 AVOIR DE LA PERFORMANCE AVEC MOINS DE CONSOMMATION Viens dompter ta première IA en Python 77

Slide 96

Slide 96

🐻 La diversité des CDE Un éditeur Le code du projet Un conteneur d’execution GitHub Codespaces Gitpod CDE Viens dompter ta première IA en Python Jetbrains Space Amazon Dev environments 78

Slide 97

Slide 97

🐻 Python 🐍 Facile à apprendre Complet pour votre futur Langage de prédilection du monde de l’IA aujourd’hui … LangChain pour Java Viens dompter ta première IA en Python Tensorflow js Python Golearn 79

Slide 98

Slide 98

🐻 AI Endpoints Viens dompter ta première IA en Python 80

Slide 99

Slide 99

🐻 AI Endpoints https://endpoints.ai.cloud.ovh.net Viens dompter ta première IA en Python 80

Slide 100

Slide 100

Merci !!!! Slides https://ovh.to/ECDeE3h Feedbacks https://ovh.to/G6fxRg Code source https://ovh.to/ofPmni6 Viens dompter ta première IA en Python 81

Slide 101

Slide 101

Ressources 🔗 Documentations OVHcloud univers IA 🔗 Repository GitHub du workshop 🔗 Repository d’exemples IA 🔗 https://unsplash.com/ 🔗 https://deepai.org/machine-learning-glossary-and-terms/weight-artificial-neural-network 🔗 https://medium.com/mlearning-ai/introduction-to-neural-networks-weights-biases-and-activation-270ebf2545aa 📽 https://www.youtube.com/@MachineLearnia 🔗 https://gitpod.io Viens dompter ta première IA en Python 82