Un chatbot prédit le mot suivant
Un chatbot est un programme d'IA avec qui tu parles en tapant. Il écrit chaque réponse en prédisant le mot suivant, encore et encore.
C'est important, car cela explique son habitude la plus étrange. Un chatbot peut avoir l'air tout à fait sûr de lui et se tromper quand même.
À la fin de cette leçon
Remarque
Je peux expliquer comment un chatbot écrit une réponse.
Mots clés
| Mot | Ce que ça veut dire |
|---|---|
| Chatbot | un programme d'IA avec qui on parle en tapant |
| Prompt | les mots que tu envoies au chatbot |
| Prédire | deviner ce qui vient ensuite |
| Probable | vu souvent dans les exemples |
| Sûr de soi | qui a l'air certain |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un chatbot écrit un mot à la fois
Un chatbot a appris d'une énorme quantité de textes. Quand tu envoies un prompt, il prédit le mot suivant et l'ajoute. Puis il prédit le mot d'après.
Il continue jusqu'à ce que la réponse soit finie. Il ne prépare pas toute la réponse à l'avance.
Exemple : quel mot vient ensuite ?
| Les mots déjà là | Mot suivant | Vu sur 10 |
|---|---|---|
| Après les cours, je vais jouer au | foot | 5 |
| Après les cours, je vais jouer au | basket | 3 |
| Après les cours, je vais jouer au | tennis | 2 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Compte toi-même les mots suivants
Le Python ci-dessous apprend de quatre phrases courtes. Il compte les mots venus juste après un mot que tu choisis.
Appuie sur Run. Puis remplace « au » par « vais » dans la dernière ligne et relance.
Quels mots venaient ensuite ?
# Quatre phrases dont le programme apprend.
phrases = [
"après les cours je vais jouer au foot",
"après les cours je vais jouer au basket",
"le samedi je vais jouer au foot",
"après les cours je vais manger des frites",
]
def mots_suivants(mot):
comptes = {}
for phrase in phrases:
mots = phrase.split()
for i in range(len(mots) - 1):
if mots[i] == mot:
apres = mots[i + 1]
if apres not in comptes:
comptes[apres] = 0
comptes[apres] = comptes[apres] + 1
return comptes
print(mots_suivants("au"))
Pose la question au chatbot du lab
Remarque
Appuie sur Start the lab, puis sur les deux Runs suivants. Chacun demande au chatbot du lab de finir une phrase. Si ton établissement n'a pas activé l'IA, le Run affiche à la place un exemple enregistré, bien étiqueté.
Demande le mot suivant
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const post=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());post('Termine la phrase par un seul mot, sans rien ajouter : Après les cours, je vais jouer au',12,0.7).then(j=>console.log('Chatbot : '+j.choices[0].message.content)).catch(e=>console.log('Exemple enregistré, aucun chatbot ne répond : foot'))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Pose deux fois la même question
docker exec -w /home/node/project agent node -e "const u=(process.env.AI_URL||'http://ai:4000')+'/v1/chat/completions';const post=(m,t,x)=>fetch(u,{method:'POST',headers:{'content-type':'application/json',authorization:'Bearer lab'},body:JSON.stringify({model:'lab',messages:[{role:'user',content:m}],max_tokens:t,temperature:x})}).then(r=>r.json());const s=['foot','basket'];(async()=>{for(let i=0;i<2;i++){let t;try{const j=await post('Termine la phrase par un seul mot, sans rien ajouter : Après les cours, je vais jouer au',12,1);t='Chatbot : '+j.choices[0].message.content}catch(e){t='Exemple enregistré, aucun chatbot ne répond : '+s[i]}console.log('Essai '+(i+1)+' : '+t)}})()"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Avoir l'air sûr, ce n'est pas avoir raison
Un chatbot choisit des mots probables. Il ne vérifie pas qu'ils sont vrais. Une phrase fausse peut très bien être probable.
Un chatbot peut donc écrire une chose fausse d'une voix calme et sûre de soi. Avoir l'air sûr, ce n'est pas avoir raison.
Une erreur fréquente
Attention
Beaucoup croient qu'un chatbot cherche la réponse, comme un moteur de recherche. Ce n'est pas le cas. Il écrit des mots probables à partir de motifs, alors vérifie tout ce qui compte avant de t'en servir.
Pour aller plus loin : l'intérieur d'un chatbot
Un vrai chatbot utilise la même idée que tes comptes, en beaucoup plus grand. Il regarde de nombreux mots avant le suivant, pas seulement le dernier.
Si tu es curieux, le module universitaire « Comment marchent les modèles de langage : les transformeurs de zéro » montre comment cela marche.