Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Température et limite de jetons

Après cette leçon: Je peux dire ce que changent la température, la limite de jetons et le texte d’arrêt dans un appel à un modèle.

Leçon de 60 min3 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Trois réglages qui changent une réponse

La température, la limite de jetons et le texte d’arrêt sont les trois réglages d’un appel qui changent le plus la réponse. Chacun se place dans le corps de la requête, à côté des messages.

Ils comptent, car un appel aux réglages par défaut peut être trop aléatoire pour un travail sur des données, ou trop long pour un écran. Les connaître permet de choisir exprès.

À la fin de cette leçon

Remarque

Je peux dire ce que changent la température, la limite de jetons et le texte d’arrêt dans un appel à un modèle.

Mots clés

MotCe que ça veut direExemple
Températureun réglage de la variété des réponses0
Jetonun petit morceau de texte que le modèle lit et écrit
Limite de jetonsle plus grand nombre de jetons d’une réponsemax_tokens
Texte d’arrêtun texte qui termine la réponse quand le modèle l’atteint
Motif de finla raison pour laquelle la réponse s’est arrêtéelength

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

La température règle la variété des réponses

Un modèle choisit chaque jeton suivant dans une liste de jetons probables. Une température basse prend presque toujours le plus probable. Une température haute laisse entrer des jetons moins probables.

Choisissez donc une valeur basse, proche de 0, pour un travail à réponse unique, comme extraire une date d’un texte. Choisissez une valeur plus haute pour des idées ou des noms.

Exemple travaillé : la température de trois tâches

TâcheTempératurePourquoi
Extraire un numéro de commande d’un courriel0Il n’y a qu’une bonne réponse
Répondre à une question de client0.7Naturel, sans excès
Proposer dix noms de boutique1.2On veut de la variété

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Demander trois fois à deux températures

Commande
docker exec -w /home/node/project agent node -e 'const labo = require("./labo.js"); const question = [{ role: "user", content: "Proposez un nom pour un poisson rouge. Répondez par un seul mot." }]; const exemples = { 0: ["Bulle", "Bulle", "Bulle"], 1.2: ["Nemo", "Capitaine Splash", "Bulle"] }; (async () => { for (const temperature of [0, 1.2]) { const trouves = []; let etiquette = ""; for (let i = 0; i < 3; i++) { const obtenu = await labo.demander({ max_tokens: 8, temperature: temperature, messages: question }, exemples[temperature][i]); trouves.push(obtenu.texte.trim()); etiquette = obtenu.etiquette; } console.log("température " + temperature + " (" + etiquette + ") : " + trouves.join(" | ")); } })();'

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.

La limite de jetons est un plafond strict

Un jeton est un petit morceau de texte, souvent un mot court ou un bout de mot long. max_tokens est le plus grand nombre de jetons que le modèle peut écrire. Quand il est atteint, la réponse s’arrête, même au milieu d’une phrase.

La réponse porte un motif de fin. Le mot stop veut dire que le modèle a fini. Le mot length veut dire que le plafond l’a coupé.

Couper une réponse exprès

Commande
docker exec -w /home/node/project agent node -e 'const labo = require("./labo.js"); const question = [{ role: "user", content: "Expliquez ce qu’est une API en deux phrases." }]; const exemple = { court: "Une API est un moyen pour un programme de demander", long: "Une API est un ensemble de règles qui permet à un programme d’en solliciter un autre. L’appelant envoie une requête et reçoit une réponse." }; (async () => { for (const limite of [12, 80]) { const obtenu = await labo.demander({ max_tokens: limite, messages: question }, limite === 12 ? exemple.court : exemple.long); const motif = obtenu.donnees ? obtenu.donnees.choices[0].finish_reason : (limite === 12 ? "length" : "stop"); console.log("max_tokens " + limite + " (" + obtenu.etiquette + "), finish_reason " + motif + " :"); console.log("  " + obtenu.texte.trim()); } })();'

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.

Une erreur fréquente

Attention

Beaucoup pensent qu’un petit max_tokens pousse le modèle à écrire plus court. Non : il coupe la réponse, souvent en pleine phrase. Pour une réponse plus courte, demandez-la dans la consigne. Gardez le plafond comme garde-fou, au-dessus de ce que vous attendez.

Le texte d’arrêt termine une réponse plus tôt

Un texte d’arrêt est un texte que vous choisissez. Quand le modèle s’apprête à l’écrire, la réponse se termine à la place, et le texte d’arrêt lui-même n’y figure pas.

Servez-vous-en pour garder une réponse à une ligne ou à un élément de liste. La plupart des API de modèles acceptent plusieurs textes d’arrêt à la fois.

Arrêter une liste avant le point trois

Commande
docker exec -w /home/node/project agent node -e 'const labo = require("./labo.js"); const question = [{ role: "user", content: "Écrivez les nombres de un à cinq en lettres, un par ligne, chaque ligne commençant par 1. 2. 3. et ainsi de suite." }]; (async () => { const obtenu = await labo.demander({ max_tokens: 60, stop: ["3."], messages: question }, "1. un\n2. deux\n"); console.log("Réponse (" + obtenu.etiquette + ") : " + JSON.stringify(obtenu.texte)); console.log("Contient-elle 3. ? " + obtenu.texte.includes("3.")); })();'

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.

Pour aller plus loin : essayez vos réglages

Dans le Run de la longueur, remplacez la question par une des vôtres et essayez un max_tokens de 5, de 30 et de 200. Notez chaque fois le motif de fin.

Dites ensuite quelle valeur vous mettriez dans un vrai programme. Dites aussi pourquoi un plafond trop petit coûte plus cher qu’un plafond trop grand.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.