De l’impossibilité de ChatGPT à calculer le nombre de lettres ‘i’ dans une expression simple.

Je reprends en article ici un exercice que j’ai effectué et que je voulais mettre en remarque d’un post sur Linkedin mais l’impossibilité d’écrire la totalité de ma remarque à cause d’une limitation m’a amené à écrire cet article.

Voici ma réponse :

Je me permets de participer à cette conversation car peut-être ChatGPT a-t-il appris de vos différents essais ? ou peut-être pas et c’est là que le bât blesse car un modèle comme ChatGPT devrait apprendre de ses propres expériences et de nos réponses à ses réponses si bien sûr on lui donne des renseignements sur la pertinence de ce qu’il nous a envoyé comme réponse et qu’il soit capable de l’intégrer à son propre modèle, un peu comme un humain qui apprend avec quelqu’un et qui en rediscute avec quelqu’un d’autre ou l’utilise dans une tâche donnée.

J’ai donc fait une expérience et j’ai demandé à ChatGPT :

“Donne moi le code javascript pour compter le nombre de ‘i’ en minuscules et majuscule dans l’expression ‘intelligence artificielle’.”

Et là, il m’a écrit du code fonctionnel que j’ai testé dans un fichier html :

def count_i_in_string(s):
# Convertir la chaîne en minuscules pour rendre la recherche insensible à la casse
s = s.lower()
# Utiliser la méthode count() pour compter le nombre de 'i'
count = s.count('i')
return count
expression = 'intelligence artificielle'
number_of_i = count_i_in_string(expression)
print("Le nombre de 'i' (minuscules et majuscules) dans l'expression est : ", number_of_i)

Puis je lui ai demandé : “exécute la même chose en python”. Pareil le code en retour est fonctionnel et donne la bonne réponse :

def count_i_in_string(s):
# Convertir la chaîne en minuscules pour rendre la recherche insensible à la casse
s = s.lower()
# Utiliser la méthode count() pour compter le nombre de 'i'
count = s.count('i')
return count
expression = 'intelligence artificielle'
number_of_i = count_i_in_string(expression)
print("Le nombre de 'i' (minuscules et majuscules) dans l'expression est : ", number_of_i)

Puis en troisième prompt, je lui ai demandé :

“indique moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

Ici pas de spécification de majuscule et de minuscule…

Et sa réponse a été correcte mais avec une astuce, je l’indique ici :

“Le nombre de ‘i’ (minuscules et majuscules) dans l’expression ‘Intelligence artificielle’ est : 5.[>_]”.

Vous voyez ces crochets en fin de ligne ? Si vous vous placez dessus il indique ‘Afficher l’analyse’ et si on clique dessus on a le code python qu’il a définit juste avant.

Capture d’écran 2024-07-18 à 12.13.50

Coïncidence ou pas ?

Essai 1

J’ai donc repris une nouvelle fenêtre dans mon navigateur et j’ai dupliqué ma demande en changeant un caractère; j’ai remplacé l’espace entre ‘indique’ et ‘moi’ par un tiret comme ceci :

“indique-moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

Et sa réponse a été : “La phrase “Intelligence artificielle” contient 4 lettres ‘i’.”.

Mince alors, il donne la mauvaise réponse, celle que vous avez tous eu et certainement à cause de ce I majuscule de début de phrase puisque de fait un ‘I’ n’est pas un ‘i’ en informatique, en ASCII plus précisément.

Essai 2

Étonné, j’ai donc repris à l’identique ma dernière demande de la première page :

“indique moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

Et là réponse est :

“La phrase “Intelligence artificielle” contient 5 lettres ‘i’.”

Mince de chez mince ! Qu’est-ce que c’est que cette affaire. Un tiret pourrait-il changer quoi que ce soit à une réponse de ChatGPT ? J’ai donc ressaisi la première demande de cette deuxième page et la réponse est la même que sur ma deuxième demande de cette deuxième page.

prompt : “indique-moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

réponse : “La phrase “Intelligence artificielle” contient 5 lettres ‘i’.”

Là on a bien la même réponse que précédemment soit ‘5’. Et de plus la réponse correcte. Aurait-il appris-compris (à sa façon) ? Par contre dans cette deuxième page pas de possibilité de savoir s’il se base ou pas sur un code python !

Capture d’écran 2024-07-18 à 12.12.33

3e essai

J’ouvre une nouvelle page et j’indique en prompt :

“indique moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

réponse : “Le nombre de ‘i’ dans “Intelligence artificielle” est de 5.”

Il a encore une fois bon et pas de trace de code python pour l’aider.

Capture d’écran 2024-07-18 à 12.12.49

4e essai

J’ouvre une nouvelle page et j’indique le prompt avec le tiret à la place de l’espace :

“indique-moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

réponse : “La phrase “Intelligence artificielle” contient 4 lettres ‘i’.”

Bon. Là, je me demande s’il prend toujours en compte mes prompts de départ et compare ma demande à celles faites avant même si on est sur un nouveau chat dans les 3 derniers essais.

Capture d’écran 2024-07-18 à 12.13.00

Je prend donc le problème en me disant je change de navigateur et je retente le coup. Oui, mais s’il retient ma réponse et que celle-ci est associée à mon compte alors cela ne pourra pas être une bonne expérience. Je crée donc un autre compte pour tester ces différences.

Je suis sur Apple donc je passe de Safari à Chrome et de mon compte à un nouveau créé pour l’occasion et je relance mes deux prompts tests dont les réponses vont encore plus vous étonner :

Essai 5 :

Prompt : “indique moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

Réponse : “Le nombre de ‘i’ dans “Intelligence artificielle” est de 6.”

Qu’est-ce que c’est que ce bazar ? Je passe pour cette réponse de 5 à 6 alors que depuis tout à l’heure, je suis à 5 sans que je sache si ma demande d’un code Python en est vraiment responsable.

Essai 6 :

Je fais donc mon dernier essai (avec le tiret) :

Prompt : “indique-moi le nombre de ‘i’ qu’il y a dans ‘Intelligence artificielle’.”

Réponse : “Le nombre de ‘i’ dans “Intelligence artificielle” est de 5.”

Capture d’écran 2024-07-18 à 12.13.14

Voilà une bonne réponse mais impossible de savoir pourquoi il a bon d’un côté et qu’il répond mal de l’autre côté, et ce sur les deux formulations : avec et sans le tiret. La seule chose sûre c’est qu’il ajoute 1 à la version sans tiret sur Chrome et qu’il enlève 1 à la version avec tiret sur Safari.

Et qu’il réponde différemment sur Safari et Chrome est encore plus troublant :

Peut-être faudrait-il tester sur Brave, Edge, internet Explorer (ça existe encore ça ?), Firefox et tous les systèmes et navigateurs utilisant en sous-marin ChatGPT pour créer un tableau pertinent des réponses et des erreurs générées ? Vu l’opacité des modèles utilisés, on ne risque pas de trouver de réponse scientifique à cela.

J’essaie d’utiliser ChatGPT (en version libre s’entend, ayant du mal à payer pour quelque chose qui ne comprend généralement rien à ce qu’on lui dit) et ces erreurs m’encouragent à dire qu’il faut faire très attention à l’utilisation de l’IA dans les domaines scientifiques au risque de voir des avions pleuvoir ( il y a déjà des portes et autres parties d’avions qui tombent régulièrement), des bateaux couler en donnant naissance à de nouveaux triangles des Bermudes et autres sorcelleries artificielles.

De plus cela génère une perte de temps importante à devoir essayer de corriger des erreurs qui comme nous venons de le voir peuvent être sinon aléatoires du moins très difficiles à cerner et s’insinuer dans tout travail et finissent par être invérifiables sur des centaines de lignes de code. Il faut donc conserver une méthode de test adaptée à ces nouveaux outils.