ajout séance culture IA (LLM, enjeux, pont vers KNN)
This commit is contained in:
340
ia/culture_ia.ipynb
Normal file
340
ia/culture_ia.ipynb
Normal file
@@ -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<br>\n",
|
||||
"Objectifs : Comprendre ce qu'est un LLM, ses enjeux éthiques et environnementaux, faire le lien avec les algorithmes vus en cours<br>\n",
|
||||
"Niveau : Première NSI<br>\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 : `<span style=\"color:blue\">ta réponse</span>`)*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"<li>Consommation électrique massive\n",
|
||||
"<li>Refroidissement des serveurs → consommation d'eau importante\n",
|
||||
"<li>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",
|
||||
"<li>Associations stéréotypées entre certains prénoms et des qualités/défauts\n",
|
||||
"<li>Moins bonnes performances dans des langues peu représentées sur le web\n",
|
||||
"<li>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",
|
||||
"<li><a href=\"https://www.youtube.com/watch?v=7ell8KEbhJo\">Ce qui se cache derrière le fonctionnement de ChatGPT</a>\n",
|
||||
"<li><a href=\"https://www.youtube.com/watch?v=YcIbZGTRMjI\">Les 4 étapes pour entraîner un LLM</a>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"Licence Creative Commons\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>."
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python",
|
||||
"version": "3.10.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Reference in New Issue
Block a user