Documentation
Retour
  • IA générative
    • Introduction
    • 1. IA générative et LLM
    • 2. Tokens
    • 3. Générer une réponse
    • 4. Dans le modèle
    • 5. Entraîner un assistant
    • 6. Contexte et mémoire
    • 7. Variation des réponses
      • La même question n’est pas toujours la même entrée
      • Une distribution n’impose pas une seule continuation
      • Un premier choix différent peut modifier toute la suite
      • La température modifie la répartition des probabilités
      • Les filtres peuvent restreindre les candidats
      • Peut-on obtenir exactement la même réponse ?
      • Une réponse répétée n’est pas une preuve indépendante
      • Comparer des réponses sans confondre les causes
      • Vérifier votre compréhension
      • La prochaine question : que signifie « raisonner » ?
    • 8. Raisonnement
    • 9. Erreurs et hallucinations
    • 10. Documents et outils
    • 11. Formuler et évaluer

7. Pourquoi la même question peut-elle produire des réponses différentes ?

Distinguer les effets du contexte, de l’échantillonnage et des conditions d’exécution, sans confondre une réponse stable avec une réponse vraie.

Vous fournissez la même note sur Passerelle et demandez deux fois un résumé en deux phrases. Voici deux réponses fictives, rédigées pour cet exemple.

Réponse A :

Passerelle organise des ateliers gratuits pour favoriser l’entraide entre étudiants. L’association compte 41 bénévoles cette année, contre 27 l’an dernier, et a organisé six ateliers cette année.

Réponse B :

Cette année, Passerelle a organisé six ateliers gratuits consacrés à l’entraide entre étudiants. Son équipe est passée de 27 bénévoles l’an dernier à 41 cette année.

Les mots, l’ordre et le point de départ changent. Les informations restent les mêmes. Cette variation n’indique donc pas, à elle seule, une erreur ou un nouvel apprentissage.

Mais si une troisième réponse mentionne huit ateliers, la différence devient factuelle : elle contredit les six ateliers de la note. Il faut alors vérifier et corriger le résultat, pas expliquer l’écart comme une préférence de style.

Pour comprendre ces situations, nous allons distinguer trois choses : ce que le modèle reçoit, la manière de sélectionner les tokens et les conditions dans lesquelles le calcul est exécuté. Cette distinction permet d’expliquer une variation sans attribuer au modèle un changement d’avis ou supposer une cause que l’on n’a pas observée.

La même question n’est pas toujours la même entrée

« Résume cette note en deux phrases » peut être identique à l’écran lors de deux essais. Pourtant, le modèle peut recevoir des entrées différentes.

Si vous répétez la demande dans le même fil, la première réponse peut maintenant faire partie du contexte. Si vous demandez « recommence », vous ajoutez aussi une nouvelle instruction. Vous ne repartez donc pas nécessairement du même point.

Le chapitre sur le contexte a montré d’autres sources de différence : les instructions de l’application, les préférences enregistrées, les documents récupérés ou le résumé d’un long historique. Un outil de recherche peut également retourner des informations mises à jour entre deux essais.

Dans le cas de Passerelle, remplacer la note qui annonce six ateliers par une version qui en annonce huit justifierait une nouvelle réponse. Ce serait un changement des données fournies, pas un effet de la température.

Pour isoler les choix de génération, faisons maintenant une hypothèse plus stricte : même version du modèle, mêmes paramètres appris et même entrée complète. Les informations disponibles ne changent pas. Est-il encore possible d’obtenir plusieurs réponses ? Oui, selon la méthode de sélection utilisée.

Une distribution n’impose pas une seule continuation

Au chapitre 3, nous avons séparé deux opérations. Le modèle calcule des scores pour les tokens possibles, puis une règle de sélection choisit le prochain token. Après conversion des scores en probabilités, plusieurs candidats peuvent avoir une probabilité non nulle.

Avec la sélection gloutonne, ou greedy decoding, le système retient le token le plus probable à chaque étape. Avec l’échantillonnage, ou sampling, il effectue un tirage pondéré : un token plus probable a davantage de chances d’être choisi, sans être forcément sélectionné.

Les stratégies de génération décrites par Hugging Face distinguent ces deux mécanismes. « Générer » ne signifie donc pas toujours « tirer au sort », et « tirer au sort » ne signifie pas choisir tous les tokens avec la même probabilité.

Un exemple miniature

Reprenons le début de réponse Passerelle propose des ateliers. Pour examiner les réglages, imaginons cette fois un vocabulaire réduit à trois tokens possibles :

Token suivantProbabilité fictive avant réglage
␠gratuits60 %
␠ouverts30 %
␠pratiques10 %

Ce nouveau tableau est entièrement fictif. Il remplace, pour cet exercice, celui du chapitre 3. Les trois lignes forment ici toute la distribution ; aucune ligne ne regroupe d’autres tokens. Nous supposons aussi que chaque fragment correspond à un token, avec ␠ pour représenter un espace. Ce n’est ni un découpage réel ni une mesure sur un LLM.

Un tirage direct choisit ␠gratuits avec une probabilité de 60 %. Deux tirages peuvent choisir des tokens différents, mais ils peuvent aussi choisir le même. Sur dix essais, rien ne garantit exactement six occurrences de ␠gratuits : une probabilité décrit des chances, pas un quota à respecter dans une petite série.

Cette variation ne nécessite pas de changer les paramètres appris du réseau. Karpathy montre la distribution et le tirage à partir de 26 min 26 s, puis illustre des continuations différentes à partir du même préfixe vers 48 min 31 s.

Un premier choix différent peut modifier toute la suite

Si le système sélectionne ␠gratuits, la séquence devient Passerelle propose des ateliers gratuits. S’il sélectionne ␠ouverts, elle devient Passerelle propose des ateliers ouverts.

À l’étape suivante, le modèle ne repart pas de la même séquence. Il calcule des probabilités adaptées au début de réponse effectivement produit. Après « ouverts », une continuation comme « aux étudiants » peut devenir pertinente ; après « gratuits », une autre construction peut suivre.

Les choix ne sont donc pas indépendants du texte déjà généré. Une petite différence initiale peut modifier une phrase, puis l’ordre des informations et la longueur du résumé. Karpathy explique ce branchement progressif vers 28 min 15 s.

Cela n’implique pas que deux réponses doivent diverger fortement. Les contraintes de la demande et les données disponibles peuvent conduire à des formulations proches. À l’inverse, une demande très ouverte laisse davantage de façons acceptables de répondre.

Le mécanisme explique aussi pourquoi une erreur peut se prolonger. Si une réponse introduit à tort « huit ateliers », cette expression entre dans la séquence utilisée pour la suite. Le modèle peut ensuite développer un paragraphe cohérent avec ce nombre faux. La cohérence du texte n’en fait pas une vérification de la source.

La température modifie la répartition des probabilités

La température est un réglage de génération qui modifie la concentration des probabilités utilisées pour l’échantillonnage. Ce n’est ni la température du matériel ni un changement des paramètres appris.

Avec une température positive inférieure à 1, la distribution se concentre : l’avantage relatif des candidats les mieux classés s’accentue. Cela ne signifie pas que la probabilité de chacun de ces candidats augmente. Avec une température supérieure à 1, la distribution s’aplatit et les écarts relatifs se réduisent. À 1, ce réglage laisse les scores inchangés ; cela ne rend pas les tokens équiprobables.

Voici l’effet de la température, notée T dans le tableau, sur notre distribution à trois tokens, sans autre filtre :

Token fictifT = 0,5T = 1T = 2
␠gratuits78,26 %60 %47,27 %
␠ouverts19,57 %30 %33,43 %
␠pratiques2,17 %10 %19,30 %

Ces valeurs sont calculées à partir de notre exemple, pas observées dans un service d’IA. Elles sont arrondies à deux décimales. À 0,5, le premier token est plus souvent sélectionné, mais les deux autres restent possibles. À 2, il reste le premier du classement, même si son avantage diminue.

Que change le calcul ?

Le réseau produit des scores appelés logits, présentés au chapitre sur l’intérieur du modèle. Dans le mécanisme usuel, chaque score est divisé par la température positive, puis la fonction softmax transforme les scores en probabilités dont la somme vaut 1.

Diviser par un petit nombre positif accentue les écarts entre les scores. Diviser par un nombre plus grand les réduit. À elle seule, cette opération conserve leur classement ; elle change le poids relatif des possibilités. Vous n’avez pas besoin de refaire le calcul pour retenir son effet.

La documentation des réglages de génération de Hugging Face décrit la température et les filtres appliqués aux scores ou aux probabilités. Leur disponibilité et leurs valeurs autorisées dépendent du modèle et de l’outil utilisé.

Ce n’est pas un réglage de vérité

Une température basse peut réduire la diversité des formulations. Elle ne compare pas le nombre d’ateliers avec la note de Passerelle. Si une continuation incorrecte reçoit le score le plus élevé, concentrer les probabilités peut rendre cette erreur plus répétitive.

Inversement, une température élevée ne rend pas le modèle plus compétent ou plus créatif au sens humain. Elle peut favoriser des formulations variées, mais aussi des continuations moins pertinentes. Il n’existe pas de valeur universelle qui garantisse une bonne réponse pour toutes les tâches.

Le terme « créativité », souvent associé à ce réglage, est donc un raccourci. Le mécanisme porte sur la sélection des tokens, pas sur une mesure de l’originalité ou de la qualité du résultat.

Les filtres peuvent restreindre les candidats

La température n’est pas le seul réglage. Un système peut aussi retirer certains candidats avant le tirage.

Le filtre top-p, appelé aussi nucleus sampling, conserve les tokens les plus probables jusqu’à atteindre ou dépasser une masse de probabilité choisie. Il ajuste donc le nombre de candidats à la distribution du moment.

Dans notre exemple à température 1, prenons top-p = 0,8, soit 80 %. Le premier token représente 60 % : ce n’est pas suffisant. Avec le deuxième, le cumul atteint 90 %. Le filtre conserve donc ␠gratuits et ␠ouverts, et écarte ␠pratiques.

Avant le tirage, les probabilités des candidats conservés sont renormalisées : on les ajuste pour que leur somme redevienne 100 %. Les poids 60 et 30 deviennent ainsi environ 66,7 % et 33,3 %.

top-p = 0,8 ne signifie donc ni « garder 80 % des mots du vocabulaire » ni « produire une réponse correcte à 80 % ». Le seuil porte sur une somme de probabilités de tokens. Le nombre de candidats conservés peut varier à chaque étape.

Un autre filtre, top-k, garde un nombre fixé de candidats parmi les plus probables. Avec top-k = 2, notre exemple conserverait aussi les deux premiers, mais pour une autre raison : leur nombre, pas leur probabilité cumulée. Les deux méthodes ne donnent pas nécessairement le même ensemble dans une autre distribution.

Hugging Face définit ces filtres dans la même référence des réglages de génération. Lorsqu’un service combine plusieurs réglages, il faut consulter sa documentation : les effets dépendent aussi de leur ordre d’application. Les calculs séparés de ce chapitre ne décrivent pas toutes les combinaisons possibles.

Peut-on obtenir exactement la même réponse ?

Un système est déterministe si, dans des conditions identiques, il produit le même résultat. L’échantillonnage introduit une source de variation, mais il faut distinguer ce tirage des autres conditions d’exécution.

La sélection gloutonne et la température zéro

Dans un calcul parfaitement reproductible, avec la même entrée, les mêmes scores et une même règle pour départager les éventuelles égalités, la sélection gloutonne suit la même séquence. Elle n’effectue pas de tirage aléatoire.

Certaines interfaces proposent une température de 0 pour demander ce type de sélection. C’est une convention du service, pas une division des scores par zéro : le calcul décrit plus haut suppose une température strictement positive. D’autres outils disposent d’une option distincte pour désactiver l’échantillonnage.

Cependant, un réglage affiché à 0 ne garantit pas à lui seul des sorties identiques dans toutes les conditions. Microsoft le précise dans Temperature and determinism.

Les ordinateurs représentent les nombres avec une précision limitée. Selon le matériel, les opérations utilisées ou le regroupement des demandes en lots, de petits écarts d’arrondi peuvent apparaître. Si deux scores sont très proches, un écart peut changer le token classé premier, puis influencer la suite.

La documentation de PyTorch explique ces limites dans Numerical accuracy. Cela décrit une possibilité, pas une cause automatique : deux réponses différentes ne prouvent pas que le matériel est responsable. De nombreux appels peuvent aussi produire un résultat identique.

La graine aléatoire : utile, mais pas suffisante

Les tirages informatiques reposent généralement sur un générateur pseudo-aléatoire : un algorithme produit une suite de nombres à partir d’un état initial. Une graine, ou seed, permet d’initialiser cet état.

Repartir de la même graine peut reproduire les tirages si le générateur, leur ordre et les autres conditions pertinentes restent identiques. Cela permet de comparer des expériences plus proprement. Un échantillonnage n’est donc pas forcément impossible à reproduire.

Mais une graine ne fixe ni les paramètres du modèle ni le contexte. Si la distribution change, un même nombre pseudo-aléatoire peut conduire à un autre token. Et si le service change son système d’exécution, la graine seule ne garantit pas de retrouver le résultat précédent.

PyTorch distingue ainsi le contrôle des sources de hasard et celui des opérations non déterministes. Tous les assistants n’exposent pas une graine ou une température à l’utilisateur. Une réponse où le modèle affirme « j’ai utilisé telle température » n’est pas une mesure de sa configuration : il faut une information fournie par l’application ou l’interface de programmation.

Une réponse répétée n’est pas une preuve indépendante

Revenons à nos deux résumés. A et B diffèrent, mais reprennent les mêmes faits. La fidélité ne se mesure donc pas par l’identité exacte des mots.

À l’inverse, un système peut répéter dix fois « huit ateliers » alors que la note en indique six. Sa stabilité ne corrige pas cette erreur. Les réponses peuvent partager la même donnée incorrecte, la même préférence apprise ou les mêmes instructions ambiguës.

Obtenir plusieurs fois une affirmation du même système ne remplace donc pas une vérification indépendante. Comparer des réponses peut révéler une incertitude ou une contradiction ; compter leurs votes ne suffit pas à établir la vérité.

Pour Passerelle, les critères utiles restent concrets : la réponse conserve-t-elle les nombres 27 et 41, leur association aux bonnes années, les six ateliers et leur gratuité ? Respecte-t-elle les deux phrases demandées ? Ajoute-t-elle une explication causale absente de la note ? La formulation est-elle claire et sans ambiguïté ?

Ces questions séparent trois dimensions : l’exactitude des faits, le respect de la consigne et la qualité de la formulation. Une réponse peut réussir sur une dimension et échouer sur une autre.

Comparer des réponses sans confondre les causes

Si vous souhaitez observer la variation dans un outil, utilisez une note fictive, sans données personnelles. L’objectif n’est pas d’obtenir une réponse précise, mais de comparer ce qui change.

  1. Conservez exactement la note et la consigne utilisées. Précisez les critères de comparaison avant de lire les réponses.
  2. Repartez, autant que l’outil le permet, du même contexte. Répéter la question après une première réponse ne suffit pas ; ouvrir un nouveau chat ne garantit pas non plus l’absence de préférences partagées.
  3. Notez le modèle affiché, la date et les réglages réellement accessibles. Si sa version exacte ou son contexte complet ne sont pas connus, indiquez cette limite.
  4. Comparez quelques générations sans changer volontairement ces éléments. Si vous examinez ensuite la température, gardez les autres réglages accessibles constants.
  5. Relevez séparément les variations de formulation, les oublis et les contradictions avec la note. Ne déduisez pas une probabilité fiable d’une poignée d’essais.

Cette observation peut montrer qu’une réponse varie. Elle ne permet pas toujours d’isoler pourquoi, surtout dans un service dont une partie de la configuration est cachée. Une comparaison contrôlée dans une interface de programmation peut donner accès à davantage de réglages, sans supprimer toutes les limites de reproductibilité.

Vous pouvez aussi travailler sans outil : les deux résumés et les tableaux de ce chapitre suffisent pour comparer les mécanismes. Il n’est pas nécessaire de multiplier les générations pour comprendre la distinction.

Vérifier votre compréhension

  1. Vous renvoyez la même question dans un fil qui contient déjà une réponse. Pourquoi cela ne prouve-t-il pas que l’entrée complète est restée identique ?
  2. Dans notre distribution à trois tokens, quelle différence y a-t-il entre sélectionner le maximum et effectuer un tirage ? Deux tirages doivent-ils forcément donner des résultats différents ?
  3. À température 1 et avec top-p = 0,8, pourquoi notre exemple conserve-t-il deux tokens représentant initialement 90 % de probabilité, et non exactement 80 % ?
  4. Une réponse fausse devient identique à chaque essai après un changement de réglage. Qu’a-t-on amélioré, et qu’a-t-on laissé sans solution ?
  5. Pourquoi la même graine ne suffit-elle pas si la version du modèle ou le contexte change ?

Justifiez vos réponses à partir des exemples. Le point essentiel est de distinguer les données fournies, les choix de génération et la vérification du résultat.

La prochaine question : que signifie « raisonner » ?

Nous savons maintenant pourquoi plusieurs continuations sont possibles et pourquoi leur stabilité ne garantit pas leur exactitude. Mais certaines réponses ne se limitent pas à une reformulation : elles décomposent un problème, effectuent des calculs ou comparent plusieurs possibilités.

Le prochain chapitre examinera ce que signifie « raisonner » pour un modèle, le rôle des étapes intermédiaires et les limites de ce que l’on peut observer. Une explication détaillée n’est pas, à elle seule, une preuve que la démarche est correcte.

Chapitre précédent : Qu’est-ce que le contexte, et de quoi le modèle se souvient-il ?

Chapitre suivant : Que signifie « raisonner » pour un modèle ?

Revenir au sommaire de la formation