"Non statisme" ou "non déterminisme"
ChattyBot met en cache les couples questions-réponse d’une même session d’un utilisateur, ce qui donne une fausse impression de statisme. Pour obtenir une nouvelle réponse, il faut, par exemple, ajouter un espace quelque part dans la question. On peut alors constater que ChattyBot ne donne pas toujours la même réponse à une même question. C’est une conséquence du fonctionnement heuristique et non déterministe de l’IA générative.
Il y a des raisons techniques à cela :
– S’agissant des LLMs d’OpenAI, le paramètre temperature , dont la valeur est comprise entre 0 et 2, introduit une erreur volontaire. 2, c’est l’aventure. 0 ne s’applique pas. Pour obtenir le plus grand statisme possible, ChattyBot adopte la valeur .0000000000000000000001.
– Un des "trucs" d’un chatbot est de tenir compte des questions/réponses précédentes dans le contexte de la nouvelle question, ce qui entraîne la diversité des réponses. ChattyBot minimise cela.
– Quoi qu’il en soit, les recherches sont fondés sur les distances dans l’espace multidimensionnel des index sémantiques. Le calcul de ces distances ne peut être réalisé sans une légère erreur aléatoire. Il en résulte que ce ne seront pas toujours les mêmes noeuds (nodes) qui contribueront à l’élaboration de la réponse.
Est-ce bon ou mauvais ?
Un peu de non-statisme est créatif. Dans le cas de l’aide en ligne, cela peut faire découvrir des aspects connexes. L’utilisateur disposera de liens vers la documentation (c’est le but) qui lui permettront d’accéder rapidement à un contenu statique.
Ce n’est pas différent de ce qu’il se passe entre humains : si vous posez deux fois la même question à une personne, il est probable que les réponses seront différentes. Cependant, si cette question est reposée dans un court espace de temps, l’interlocuteur comprendra qu’il en faut plus. Il serait donc naturel que le robot en fasse autant.
Exemple : le cas de vLLM :
vLLM ne garantit pas des probabilités de journalisation stables (logprobs) pour les jetons de sortie. Des variations dans les logprobs peuvent se produire en raison de l’instabilité numérique des opérations Torch ou d’un comportement non déterministe dans les opérations Torch par lots lors des changements de lots. Pour plus de détails, consultez la section Précision numérique.
Dans vLLM, les mêmes requêtes peuvent être regroupées différemment en raison de facteurs tels que d’autres requêtes simultanées, des modifications dans la taille du lot ou une expansion du lot lors du décodage spéculatif. Ces variations de lot, combinées à l’instabilité numérique des opérations Torch, peuvent conduire à des valeurs logit/logprob légèrement différentes à chaque étape. De telles différences peuvent s’accumuler, entraînant potentiellement l’échantillonnage de différents jetons. Une fois qu’un jeton différent est échantillonné, une divergence supplémentaire est probable.