Partie 2 · exercices 3 à 8

Comment une IA « écrit » : le mot suivant

Un mini-générateur de texte en Python, pour comprendre ce que font les grands modèles de langage

Quand tu écris un message, le clavier te propose le mot suivant. Les grands modèles de langage fonctionnent sur la même idée, à une échelle gigantesque : prédire la suite d'un texte. Tu vas écrire la version minuscule.

CoursL'idée

Le programme utilise une liste (les mots), un dictionnaire (mot → liste des mots suivants) et une boucle for vus dans le cours Python. Le fichier est aussi disponible en téléchargement : gen.py.

gen.py
import random

texte = ("le chat dort sur le canapé . le chien dort sur le tapis . "
         "le chat mange le poisson . le chien mange le chat . le poisson nage dans le bocal .")
mots = texte.split()

# Pour chaque mot, on garde la liste des mots qui l'ont suivi dans le texte
suivants = {}
for i in range(len(mots) - 1):
    mot = mots[i]
    if mot not in suivants:
        suivants[mot] = []
    suivants[mot].append(mots[i + 1])

# On fabrique une phrase en choisissant, au hasard, un mot qui a déjà suivi le mot courant
mot = "le"
phrase = mot
for _ in range(12):
    mot = random.choice(suivants[mot])
    phrase = phrase + " " + mot
print(phrase)

ExercicesJe lis et j'exécute

EX 03Je comprends 🌶️prise en main

Exercice 3 — Que contient le dictionnaire ?

Dans le texte d'entraînement, repère tous les mots qui suivent directement le mot le.

  1. Écris la liste des mots qui suivent le, dans l'ordre du texte.
  2. Combien de fois apparaît chat dans cette liste ? En déduis la probabilité de tirer chat après le.
  3. Écris la liste des mots qui suivent dort.
Indice

Lis le texte phrase par phrase et note, à chaque le, le mot qui vient juste après. Ne saute pas le le de la fin de la phrase « le chien mange le chat ».

📝 réponses dans ton compte rendu, exercice 3

EX 04Je comprends 🌶️prise en main

Exercice 4 — J'exécute le programme

Copie le programme dans EduPython et exécute-le cinq fois.

  1. Recopie les cinq phrases obtenues.
  2. Certaines de ces phrases existent-elles dans le texte d'entraînement ? Sont-elles toutes correctes en français ?
  3. Le programme « comprend »-t-il ce qu'il écrit ? Justifie.
Indice

Compare avec les phrases d'origine. Une phrase peut être bien formée sans avoir jamais été écrite, ou fausse (« le poisson mange le canapé »).

📝 réponses dans ton compte rendu, exercice 4

ExercicesJe modifie

EX 05J'explore 🌶️🌶️application

Exercice 5 — Mon propre texte

Enregistre le programme sous NOM_Prenom_ex05.py, puis modifie-le.

  1. Remplace le texte d'entraînement par cinq phrases de ton choix, avec des mots séparés par des espaces et un point entouré d'espaces à la fin de chaque phrase.
  2. Change le mot de départ, puis le nombre de mots produits.
  3. Exécute plusieurs fois et note une phrase qui t'a fait rire et une phrase correcte.
Indice 1

Garde la forme « mot mot mot . mot mot . » avec des espaces avant chaque point. Le mot de départ doit apparaître dans ton texte : sinon Python signalera une erreur de clé (KeyError).

Indice 2

Pour produire 20 mots, remplace range(12) par range(20).

💾 NOM_Prenom_ex05.py

EX 06J'explore 🌶️🌶️application

Exercice 6 — Plus un mot est fréquent…

Dans ton programme de l'exercice 5, choisis un mot qui apparaît plusieurs fois.

  1. Affiche sa liste suivants[mot] avec print.
  2. Quel mot suivant est le plus probable ? Comment le programme « sait »-il qu'il est plus probable ?
  3. Que se passerait-il si on doublait la taille du texte d'entraînement avec des phrases du même genre ?
Indice

Un mot qui apparaît deux fois dans la liste a deux fois plus de chances d'être tiré : random.choice choisit chaque case de la liste avec la même probabilité.

💾 NOM_Prenom_ex06.py

EX 07Je dépasse 🌶️🌶️🌶️plusieurs étapes

Exercice 7 — Quand le programme plante

Dans le programme d'origine, que se passe-t-il si le texte se termine par un mot qui n'apparaît qu'une seule fois dans tout le texte, et que le programme arrive sur ce mot ?

  1. Explique pourquoi une erreur apparaît.
  2. Propose une modification simple pour éviter l'erreur (en français, puis en Python si tu y arrives).
Indice

Le dictionnaire n'a pas de clé pour ce mot, puisqu'il n'a jamais été suivi de rien. Une solution : tester if mot in suivants avant de tirer, sinon s'arrêter ou repartir de le.

💾 NOM_Prenom_ex07.py

CoursDes cinq phrases aux milliards de textes

Notre programmeUn grand modèle de langage
Texte d'entraînement5 phrasesdes milliards de pages
Ce qu'il regarde pour choisirle dernier mot seulementbeaucoup de mots avant (le contexte)
Comment il choisitliste de mots suivants, tirage au hasardcalcul de probabilités par un très grand réseau de neurones
Idée de départdeviner la suitedeviner la suite

Une IA peut « halluciner »

Un modèle cherche à produire un texte plausible, pas un texte vrai. Quand il ne connaît pas la réponse, il peut inventer, avec le même ton assuré.

C'est pourquoi on vérifie toujours une information importante avec une source fiable.

EX 08Je synthétise 🌶️🌶️application

Exercice 8 — Plausible n'est pas vrai

  1. Explique, avec tes mots et à l'aide de l'exercice 4, pourquoi une IA peut écrire une phrase fausse sans « mentir ».
  2. Donne une situation de ta vie scolaire où il serait risqué de faire confiance à une IA sans vérifier.
  3. Quelle vérification simple proposes-tu dans cette situation ?
Indice

Dans l'exercice 4, le programme a écrit des phrases bien formées mais fausses : a-t-il voulu tromper ?

📝 réponses dans ton compte rendu, exercice 8