Qu’est-ce que ChatGPT?

ChatGPT est en premier lieu un chatbot ; c’est-à-dire un programme informatique conçu pour simuler une conversation humaine en traitant les interactions écrites ou parlées entre un être humain et des terminaux. L’objectif est de simuler une conversation entre deux humains.

On ne peut pas échapper ici à un petit rappel sur le test de Alan Turing (1912-1954). Ce test propose de quantifier la capacité qu’aurait une machine à imiter la conversation humaine. Pour ce faire, une confrontation verbale entre un humain, une machine et un autre humain est initiée. On considérera que le test est réussi si la personne qui a engagé les conversations se trouve dans l’incapacité à identifier l’homme de la machine. Si ce sujet vous intéresse plus particulièrement, vous verrez qu’il existe toute une littérature passionnante autour ce test initial, notamment la non prise en considération d’éléments externes comme la conscience ou d’autres facteurs purement humains.

Illustration – Test de Turing

Son nom provient de la concaténation de Chat qui signifie une conversation et GPT qui identifie un modèle de transduction de langage prédictif. Précisons que la transduction est la capacité à transposer un élément d’une source générale ou particulière à un autre élément, sans l’intermédiaire d’une loi générale.

D’où vient ChatGPT ?

ChatGPT est un produit conçu par une société américaine dénommée OpenAI (https://openai.com/) qui est située à San Francisco et qui a vu le jour en 2015. Cette société s’est donnée pour mission de s’assurer que l’intelligence artificielle, en général, puisse profiter à toute l’humanité.Ses sources de financements reposent sur des donateurs parmi lesquels on notera la présence de la compagnie Microsoft.

L’utilisation de ChatGPT est actuellement gratuite (ouverture au public en juillet 2020) et nous comprendrons bien l’intérêt de cette situation : plus il y aura d’utilisateurs qui interfèrent avec ce produit, plus il sera possible de peaufiner les logiques sous-jacentes. Il est alors très plausible, qu’à terme, ce service devienne facturable (comme c’est déjà le cas d’un autre service de manipulation d’images fourni par OpenAI: DALL-E).

Quelle est la technologie utilisée?

La technologie utilisée est une modélisation de langage développée par OpenAI dénommée Generative Pre-trained Transformer. L’IA s’est abreuvée de milliards d’unités textuelles issues de documents, de livres, de conversations… (données colligées jusqu’en 2021. L’IA ne pourra pas répondre sur des sujets faisant l’actualité d’aujourd’hui). Le volume ainsi référencé d’informations lui permet de produire des réponses capables de duper un humain. Cependant, ce volume lui-même (plus de 175 gigaoctets de mémoire vive)  interdit son exécution sur votre propre laptop. De plus, ChatGPT n’a pas de vision globale et n’est pas capable de raisonnement, contrairement à certains de ses concurrents. Enfin, pour utiliser la technologie, vous passez par une API et vous n’avez plus accès au code source.

Que peut faire ChatGPT pour vous?

Il existe plusieurs démonstrations sur les capacités actuelles de ChatGPT, mais sa principale destination consiste à répondre à une question sous la forme d’un texte qui peut sembler avoir été rédigé par un être humain. Lorsque vous initiez un dialogue au travers d’une première question, il faut savoir que le contexte des réponses et questions subséquentes sera conservé. Ceci peut induire un résultat différent pour une même question qui serait posée dans un nouveau contexte transactionnel.

Outre l’analyse sémantique, le résultat du texte produit en tant que réponse peut être influencé. Par exemple, vous pouvez demander d’expliquer un sujet rédigé à la manière d’un article de journal ou bien de présenter le même sujet sous la forme d’un document scientifique..À partir d’éléments de base, ChatGPT est capable de vous produire une histoire.

Je ne pense pas être en mesure de lister toutes les utilisations possibles de ce générateur de textes car cette liste va dépendre de l’inventivité humaine à en trouver une application concrète. Cependant, les principaux usages qui sont déjà pointés sont :

  • la recherche d’information ou de documents en langage naturel,
  • avoir une discussion cohérente en langage naturel
  • transcrire d’une langue à une autre un texte,
  • offrir une assistance en ligne,
  • évaluer ou quantifier des domaines de valeurs, 
  • reformuler un texte dans un style déterminé (par exemple sous la forme journalistique ou juridique),
  • produire du code informatique,

Comme cette palette de services offerts par ChatGPT n’aura de limite que l’imagination humaine, le pas peut être facilement franchi, non pas pour servir l’humanité (qui est le but fondamental de l’OpenAI) mais bien au contraire, de l’abuser. ChatGPT n’a pas de notion de moralité, de bien ou de mal, de choses à faire ou ne pas faire, de véracité ou de mensonge, d’abus ou de respect. La porte est alors ouverte à la malveillance, aux dérapages.

Voici la réponse donnée par ChatGPT lorsqu’on lui pose la question suivante: ‘ChatGPT a-t-il une conscience?’

Reponse proposée par ChatGPT

Les concepteurs de cette solution ont tout de même intégré des limites qui permettent de qualifier, ou plus tôt disqualifier des réponses qui seraient contraires à l’usage commun. Par exemple, une réponse qui suggérerait la mise en danger d’un individu. A celà, ChatGPT est en mesure d’identifier une connotation positive ou négative dans les propos échangés. Ce qui pourrait être un complément à une sorte d’auto-censure.

Comment accéder à l’interface ?

Pour accéder aux services de l’OpenAI vous devez vous ouvrir un compte. Lors de ce processus simple, vous devez fournir une adresse courriel, un mot de passe, éventuellement le nom de votre entreprise et enfin, votre numéro de téléphone pour une double validation.

Il vous sera demandé pourquoi vous souhaitez obtenir un accès et dans le cas où vous indiquez que c’est pour une raison éditoriale… et bien il vous faudra passer par un service dédié de l’OpenAI…

Une fois votre compte créé (et crédité gracieusement de 18$ à fin de tests) , vous devez générer votre clé unique et récupérer votre identifiant d’organisation.

L’Interface vous permet de suivre vos consommations ou de tester directement ChatGPT.

Comment l’utiliser sous Mendix ?

C’est vraiment simple. Voici un exemple d’intégration basique que vous pouvez facilement améliorer en fonction de vos besoins. Je vous suggère de créer un nouveau projet pour mener à bien votre expérimentation.

Dans mon exemple, j’ai décidé de stocker sans autre considération les deux clés qui me seront nécessaires pour exécuter mes appels HTTP vers l’interface de l’OpenAI: l’organisation et ma clé personnelle.Ces deux paramètres vont me permettre de tester si j’ai les droits nécessaires pour interroger les services (ceci n’est pas une étape nécessaire et vous pouvez directement tenter votre chance en appelant directement l’API. De plus, j’ai opté pour une instance unique de cette entité, mais il est possible d’avoir plusieurs configurations).

Il existe plusieurs entrées proposées dans l’API et nous allons utiliser la méthode complétion dont voici la définition:

POST https://api.openai.com/v1/completions

Je vais offrir une interface pour que l’utilisateur puisse saisir sa question et la soumettre à ChatGPT. Pour cela, nous n’avons pas besoin de stocker l’information et de ce fait, une entité transitive (transient or non persistable object) est suffisante : UserRequest.

Il existe plusieurs paramètres qui peuvent être définis lors de la soumission d’une question. Je ne vais en traiter que trois ici, mais vous pouvez vous reporter à la documentation de l’API pour explorer les autres.

Entité non persistée.
  • RequestContent: contiendra la question à soumettre
  • Temperature: contrôle la variabilité et la créativité des réponses générées.
  • MaxToken: limite le nombre de mots que peut générer le modèle dans sa réponse.
  • Model: le modèle actuellement utilisé est text-davinci-003. Vous pouvez obtenir la liste des modèles disponibles en utilisant la méthode GET https://api.openai.com/v1/models

L’interface d’interrogation va ressembler à ceci:

Exemple d’interface d’interrogation

Sous le bouton d’action [Submit] nous allons utiliser le verbe POST sur l’entrée completions. Ne vous formalisez pas sur la langue utilisée pour soumettre votre question. L’API vous répondra dans le même langage, si tant est que la notion de langue est aussi un concept abstrait pour l’IA. Le microflow utilisé peut se présenter sous cette forme:

L’objet transitoire est disponible en tant qu’argument. Voici les étapes:


1 – récupération de la configuration de l’OpenAI.

2 – soumission de l’appel

3 – test si la réponse HTTP est bien 200, indiquant un succès. 

En cas d’échec de l’appel HTTP, nous devons attraper l’erreur (event handler), de la même manière que si nous obtenions une erreur dans la réponse. L’ajout de la pile d’événements (Stack Trace) dans la journalisation de l’erreur aidera à en identifier l’origine (mauvais paramètres, délai d’attente dépassé…).

Si nous regardons de plus prêt l’appel REST nous avons ceci:

Dans l’entête de votre appel vous devez indiquer le type de contenu (Content-Type:application/json) ainsi que votre clé d’authentification (Authorization: Bearer suivi de votre clé) (cf onglet HTTP Headers).

Vous remarquerez que pour simplifier l’appel, j’ai utilisé un mapping basé sur l’entité UserRequest (cf. onglet Request). La manière la plus rapide consiste à créer une ressource JSON contenant la définition des entrées, puis d’utiliser celle-ci comme base pour créer un mapping d’export.

Mapping du contenu de la requête.

Si nous passons maintenant à la suite du traitement de la réponse – celle-ci avait pour valeur 200 – nous devons mapper la structure JSON que nous avons obtenue. Encore une fois, le plus simple est de partir d’une définition JSON et de créer un mapping d’import. Les éléments composant la réponse sont rassemblés sous une collection de choix (choices), attribut Text. Voici la structure de la réponse:

Structure JSON contenu dans le corps de la réponse

La suite et fin du précédent microflow peut être structuré comme suit:

4 – Cartographie (mapping) de la réponse. Si celle-ci échoue, nous devons gérer l’erreur.

5 – requête par relation de la liste des Choix (Choices). S’il n’existe pas de résultat, la liste obtenue est vide et nous pouvons arrêter le processus. (remarque: nous pouvons simplifier la cartographie en éliminant les nœuds présentant des collections. Dans ce cas, les étapes 5 et 6 seraient confondues).

6 – seconde requête pour obtenir les instances de choix.

7 – création d’une variable (en jaune) textContent qui va contenir la concatenation des textes formant la réponse de ChatGPT.

8 – affichage dans une popup de la réponse obtenue.

J’ai posé la question suivante: Mendix est-il un bon outil low-code?
Voici la réponse de ChatGPT

Bluffant non?

Existe-t-il des alternatives?

La réponse est facile: OUI. 

Si nous nous concentrons sur la technologie nous avons deux autres projets comparables:

  • Bloom (BigScience Large Open-science Open-access Multilingual Language Model): c’est une solution française cofinancée par le gouvernement français. Elle se diffère de ChatGTP notamment par le panel de données utilisé qui comporte moins d’anglais.
  • Wu Dao (qui signifie ‘Chemin de la conscience’): développé par la République Populaire de Chine. 

A ces deux premiers projets, nous devons ajouter – mais la liste n’est certainement exhaustive – les IA suivantes:

  • Whisper,
  • LaMDA  (Language Model for Dialogue Applications) de Google,
  • Meta Galactica de Meta: je la site ici, bien qu’elle n’ait été disponible qu’un très court laps de temps., 
  • Chatsonic: destiné à créer du contenu.
  • Simplified AI Writer: générateur de texte.
  • Thundercontent: générateur de texte.

Pas encore de commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.