Files
1ereNSI/ia/culture_ia.ipynb

341 lines
11 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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 ParisNew 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
}