From a5f39d4315e91cc74cfb6c7daad7ccec24cc5a72 Mon Sep 17 00:00:00 2001 From: Florian Mathieu Date: Mon, 6 Apr 2026 21:55:22 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20s=C3=A9ance=20culture=20IA=20(LLM,=20en?= =?UTF-8?q?jeux,=20pont=20vers=20KNN)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ia/culture_ia.ipynb | 340 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 ia/culture_ia.ipynb diff --git a/ia/culture_ia.ipynb b/ia/culture_ia.ipynb new file mode 100644 index 0000000..c23561b --- /dev/null +++ b/ia/culture_ia.ipynb @@ -0,0 +1,340 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "cell-0", + "metadata": {}, + "source": [ + "# L'Intelligence Artificielle — Culture générale et enjeux" + ] + }, + { + "cell_type": "markdown", + "id": "cell-1", + "metadata": {}, + "source": [ + "Durée : 1h
\n", + "Objectifs : Comprendre ce qu'est un LLM, ses enjeux éthiques et environnementaux, faire le lien avec les algorithmes vus en cours
\n", + "Niveau : Première NSI
\n", + "Prérequis : Notions de probabilités (maths)" + ] + }, + { + "cell_type": "markdown", + "id": "cell-2", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## Table des matières\n", + "\n", + "1. Qu'est-ce qu'un LLM ?\n", + "2. Comment ça apprend ?\n", + "3. Enjeux et questions à se poser\n", + "4. Et en NSI, ça donne quoi ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-3", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 1. Qu'est-ce qu'un LLM ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-4", + "metadata": {}, + "source": [ + "Tu utilises peut-être ChatGPT, Gemini ou Copilot. Ces outils reposent tous sur un **LLM** — *Large Language Model*, ou grand modèle de langage.\n", + "\n", + "Un LLM, c'est fondamentalement une machine qui **prédit le prochain mot**.\n", + "\n", + "Imagine la phrase : *\"La nuit, tous les chats sont...\"*\n", + "\n", + "Le modèle attribue une probabilité à chaque mot possible :\n", + "\n", + "| Mot | Probabilité |\n", + "|---|---|\n", + "| gris | 0.59 |\n", + "| endormis | 0.19 |\n", + "| fatigués | 0.19 |\n", + "| verts | 0.001 |\n", + "| cuillère | 0.0001 |\n", + "\n", + "Le mot choisi n'est pas forcément le plus probable — ça dépend d'un paramètre appelé **température**.\n", + "\n", + "> **Température basse (ex. 0.0)** → le modèle choisit presque toujours le mot le plus probable. Réponses prévisibles, factuelles.\n", + ">\n", + "> **Température haute (ex. 1.0)** → le modèle peut choisir des mots moins probables. Réponses plus créatives, parfois surprenantes." + ] + }, + { + "cell_type": "markdown", + "id": "cell-5", + "metadata": {}, + "source": [ + "#### Question 1\n", + "Si tu demandes à un LLM d'écrire un poème, quelle température lui donnerais-tu ? Et si tu lui demandes de corriger un code Python, laquelle ?\n", + "\n", + "*(Réponds en colorant ton texte : `ta réponse`)*" + ] + }, + { + "cell_type": "markdown", + "id": "cell-6", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "cell-7", + "metadata": {}, + "source": [ + "### Tokens : ce que le modèle voit vraiment\n", + "\n", + "Un LLM ne travaille pas sur des mots entiers mais sur des **tokens** — des fragments de mots.\n", + "\n", + "Exemple : le verbe *manger* peut apparaître comme *mange*, *mangeons*, *mangerait*... Plutôt que de traiter chaque forme séparément, le modèle travaille sur le fragment commun `mang`.\n", + "\n", + "C'est plus efficace et ça permet de gérer des langues très différentes avec le même mécanisme." + ] + }, + { + "cell_type": "markdown", + "id": "cell-8", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 2. Comment ça apprend ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-9", + "metadata": {}, + "source": [ + "Un LLM a des **milliards de paramètres** — imagine des milliards de boutons à régler. Au départ, tous ces boutons sont positionnés aléatoirement : le modèle ne sait rien.\n", + "\n", + "L'apprentissage se fait en deux phases :" + ] + }, + { + "cell_type": "markdown", + "id": "cell-10", + "metadata": {}, + "source": [ + "### Phase 1 — Pré-entraînement\n", + "\n", + "On nourrit le modèle avec des **milliards de textes** : pages web, livres, forums, articles...\n", + "\n", + "Le principe : on cache un mot dans une phrase, le modèle essaie de le deviner. S'il se trompe, on ajuste légèrement ses paramètres. On répète ça des **milliards de milliards de fois**.\n", + "\n", + "Cette phase peut durer **plusieurs mois** et coûte **plusieurs dizaines de millions de dollars**.\n", + "\n", + "À la fin, le modèle sait prédire des mots — mais il ne sait pas encore \"discuter\"." + ] + }, + { + "cell_type": "markdown", + "id": "cell-11", + "metadata": {}, + "source": [ + "### Phase 2 — Affinage\n", + "\n", + "Des humains évaluent les réponses du modèle et choisissent les meilleures. Le modèle ajuste ses paramètres pour privilégier ces réponses à l'avenir.\n", + "\n", + "C'est ici que se définit la **ligne éditoriale** du modèle : ce qu'il accepte ou refuse de dire, le ton qu'il adopte, ses \"valeurs\".\n", + "\n", + "> Un LLM n'est pas neutre. Ses réponses reflètent les choix faits pendant l'affinage — et donc les choix de l'entreprise qui l'a créé." + ] + }, + { + "cell_type": "markdown", + "id": "cell-12", + "metadata": {}, + "source": [ + "#### Question 2\n", + "Deux entreprises concurrentes entraînent chacune un LLM. L'une est américaine, l'autre chinoise. Penses-tu que leurs modèles répondront de la même façon à des questions politiques ou historiques sensibles ? Pourquoi ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-13", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "cell-14", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 3. Enjeux et questions à se poser" + ] + }, + { + "cell_type": "markdown", + "id": "cell-15", + "metadata": {}, + "source": [ + "### Le coût environnemental\n", + "\n", + "Entraîner un LLM nécessite des fermes de serveurs qui tournent en permanence :\n", + "
  • Consommation électrique massive\n", + "
  • Refroidissement des serveurs → consommation d'eau importante\n", + "
  • Fabrication du matériel → ressources rares (lithium, cobalt...)\n", + "\n", + "Une seule requête à ChatGPT consomme environ **10 fois plus d'énergie** qu'une recherche Google.\n", + "\n", + "Et l'entraînement d'un modèle comme GPT-4 aurait émis autant de CO₂ que **plusieurs centaines de vols Paris–New York**." + ] + }, + { + "cell_type": "markdown", + "id": "cell-16", + "metadata": {}, + "source": [ + "#### Question 3\n", + "Est-ce que ça change ta façon d'utiliser ces outils au quotidien ? Pour quelles tâches penses-tu que l'usage d'un LLM est justifié, et pour lesquelles ça te semble excessif ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-17", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "cell-18", + "metadata": {}, + "source": [ + "### Les biais\n", + "\n", + "Un LLM apprend sur des textes produits par des humains — avec tous leurs biais. Si les données d'entraînement surreprésentent certaines cultures, langues ou points de vue, le modèle les surreprésente aussi.\n", + "\n", + "Exemples documentés :\n", + "
  • Associations stéréotypées entre certains prénoms et des qualités/défauts\n", + "
  • Moins bonnes performances dans des langues peu représentées sur le web\n", + "
  • Tendance à reproduire des stéréotypes de genre dans certaines professions\n", + "\n", + "Ces biais ne sont pas intentionnels — mais ils ont des conséquences réelles quand ces outils sont utilisés pour recruter, noter, ou décider." + ] + }, + { + "cell_type": "markdown", + "id": "cell-19", + "metadata": {}, + "source": [ + "#### Question 4\n", + "Un employeur utilise un LLM pour trier des CV. Quels risques cela comporte-t-il selon toi ? Comment pourrait-on les limiter ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-20", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "cell-21", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## 4. Et en NSI, ça donne quoi ?" + ] + }, + { + "cell_type": "markdown", + "id": "cell-22", + "metadata": {}, + "source": [ + "Les LLMs sont impressionnants — mais ils reposent sur des mécanismes que tu peux comprendre.\n", + "\n", + "Après les vacances, nous allons étudier l'algorithme **K-NN** (*K Nearest Neighbors* — K plus proches voisins). C'est l'un des algorithmes de base du **machine learning** — l'apprentissage automatique.\n", + "\n", + "Le principe : pour classer un objet inconnu, on regarde les *k* objets les plus proches qu'on connaît déjà, et on attribue à l'inconnu la classe majoritaire parmi eux.\n", + "\n", + "**Exemple :** on veut déterminer si une tumeur est bénigne ou maligne à partir de mesures (taille, forme...). On regarde les *k* tumeurs les plus similaires dans notre base de données, et on prédit la classe la plus fréquente.\n", + "\n", + "C'est exactement ce que font, à une tout autre échelle, les algorithmes de recommandation de YouTube ou Spotify : *\"les utilisateurs les plus proches de toi ont aussi aimé...\"*\n", + "\n", + "Les LLMs vont beaucoup plus loin — mais ils partagent avec K-NN l'idée fondamentale : **apprendre à partir d'exemples**." + ] + }, + { + "cell_type": "markdown", + "id": "cell-23", + "metadata": {}, + "source": [ + "#### Question 5\n", + "À ton avis, quelle est la différence entre un programme \"classique\" (comme ceux que tu as écrits en Python cette année) et un programme qui *apprend* ? Essaie d'expliquer avec tes mots." + ] + }, + { + "cell_type": "markdown", + "id": "cell-24", + "metadata": {}, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "cell-25", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Pour aller plus loin (optionnel)\n", + "\n", + "Deux vidéos excellentes de David Louapre (Science Étonnante) si le sujet t'intéresse :\n", + "
  • Ce qui se cache derrière le fonctionnement de ChatGPT\n", + "
  • Les 4 étapes pour entraîner un LLM" + ] + }, + { + "cell_type": "markdown", + "id": "cell-26", + "metadata": {}, + "source": [ + "---\n", + "\n", + "Licence :\n", + "\n", + "Auteur : Florian Mathieu — contenu adapté du cours de D. Roche (pixees.fr/informatiquelycee)\n", + "\n", + "\"Licence
    Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.10.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}