L' IA BING GPT-4 passe le BAC informatique!

Data / IA

Nous avons fait passer le BAC « informatique » à l’IA BING (GPT-4)! [Partie 1/2]

Par Laurent Delattre, publié le 22 mars 2023

Ce Lundi 20 mars se tenaient les épreuves du BAC pour la spécialité “Numérique et sciences informatiques”. Nous avons voulu voir comment l’IA GPT-4, au travers de l’interface Bing Chat, se comportait sur cet examen… Résultat: Mention TB !

Appelez ça de la curiosité, de l’expérimentation, ou plus simplement une étape de plus dans l’apprentissage de l’utilisation judicieuse (ou non) des nouvelles IA génératives et conversationnelles. On sait l’IA Bing GPT-4 douées pour la compréhension et la programmation. On la sait aussi particulièrement imprécise sur les calculs et sur la manipulation des dates.

Alors comment cette IA allait-elle se comporter face aux énoncés de l’épreuve de BAC avec ses tableaux, ses questions variées et ses énoncés alambiqués ? Il fallait que l’on teste l’aventure ne serait-ce que pour en tirer d’intéressants enseignements sur les capacités et limites d’une telle IA.

L’épreuve du BAC étant longue, nous avons divisé cet article en 2 parties. Voici la première partie regroupant les deux premiers exercices (et leurs nombreuses questions). La seconde partie se focalisera sur le troisième (et dernier) exercice.

Voici, exercice par exercice, réponse par réponse, ce qu’a répondu l’IA Bing!

Remarque :

L’illustration d’entrée de cet article est également l’oeuvre d’une IA générative, en l’occurrence celle de DALL-E, une IA d’OpenAI à laquelle on peut accéder via Bing Conversation depuis quelques jours.

EXERCICE 1 : Base de données et requêtes SQL…

Bing passe le BAC, exercice sur les bases de données et SQL

L’exercice porte sur un sujet à priori maîtrisé par GPT-4, à savoir le langage SQL. Toute la difficulté ici pour l’IA est de bien comprendre l’énoncé du sujet et des questions. Et à ce jeu là, Bing IA/GPT-4 continue chaque jour de nous bluffer.


Question 1.a : Donner la caractéristique qu’un attribut doit avoir pour être choisi comme clé primaire

La réponse de Bing :
La caractéristique qu’un attribut doit avoir pour être choisi comme clé primaire est qu’il doit permettre d’identifier de manière unique les différents enregistrements qui composent une table. Autrement dit, il ne doit pas contenir de valeur NULL ni de valeur dupliquée. Par exemple, dans la relation Clients, l’attribut id est une bonne clé primaire car il est différent pour chaque client. En revanche, l’attribut nom ne convient pas car il peut y avoir plusieurs clients qui portent le même nom.

Notre correction : La réponse est juste. Un peu verbeuse, mais elle utilise les bons mots. Pas de surprise, on s’attendait ici à un succès pour une IA justement pensée pour apporter des réponses à des questions de ce genre.

Question 1.b : Expliquer le rôle des deux clés étrangères de la relation Commandes.

La réponse de Bing :
Le rôle des deux clés étrangères de la relation Commandes est de mettre en relation cette table avec les autres tables de la base de données. En effet, les attributs #idClient et #idMeuble font référence respectivement aux clés primaires id des relations Clients et Meubles. Ainsi, on peut associer chaque commande à un client et à un meuble en utilisant ces clés étrangères.

Notre correction : La réponse est juste et précise. L’IA a su comprendre sans difficulté ce qui lui était demandé et a bien compris l’énoncé avec ses différentes tables. Elle a su formuler la réponse sans tomber sur du pré-calibré et la personnaliser au contexte.

Question 1.c : Donner le schéma relationnel de la relation Meubles en précisant la clé primaire et les éventuelles clés étrangères.

La réponse de Bing :
Le schéma relationnel de la relation Meubles est le suivant :
Meubles (id, intitule, prix, stock, description)
La clé primaire est l’attribut id qui identifie de manière unique chaque meuble. Il n’y a pas de clé étrangère dans cette relation car aucun attribut ne fait référence à une autre table.

Notre correction : La réponse est imparfaite. Si l’idée est juste et le choix de la clé pertinent, le schéma proposé ne précise pas les types. La bonne réponse est en théorie (selon les notations de l’éducation nationale) : Meubles(*id: INT, intitule: VARCHAR, prix: Float, stock: INT, description: VARCHAR).
Pour une réponse plus juste, nous avons reformuler la question en demandant à Bing “Donner le schéma SQL de la relation Meubles…”. La réponse est sans surprise plus juste :
La relation Meubles est définie par les attributs suivants : id (int), intitule (varchar), prix (float), stock (int), description (varchar). L’attribut id est la clé primaire de la relation Meubles. Il n’y a pas de clé étrangère dans cette relation. Voici le schéma SQL de la relation Meubles :
CREATE TABLE Meubles ( id INT PRIMARY KEY, intitule VARCHAR(255), prix FLOAT, stock INT, description VARCHAR(255) );


Question 2 : En vous basant uniquement sur les données du tableau de la figure 1, donner le résultat de la requête suivante :
SELECT id, stock, description FROM Meubles WHERE intitule = ‘skap’;

La réponse de Bing :
Le résultat de la requête est le suivant :
id            stock     description
62          2             Armoire blanche 3 portes
63          3             Armoire noire 3 portes

La requête sélectionne les colonnes id, stock et description de la table Meubles où l’attribut intitule a pour valeur ‘skap’. Il y a deux enregistrements qui correspondent à cette condition dans le tableau de la figure 1.

Notre correction : Bonne réponse. Rien à redire.


Question 3 : Donner la requête SQL permettant d’afficher les noms et prénoms des clients habitant à Paris

La réponse de Bing :
La requête SQL permettant d’afficher les noms et prénoms des clients habitant à Paris est la suivante :
SELECT nom, prenom FROM Clients WHERE ville = ‘Paris’;
La requête sélectionne les colonnes nom et prenom de la table Clients où l’attribut ville a pour valeur ‘Paris’.

Notre correction : Bonne réponse (selon l’apprentissage SQL de l’éducation nationale). Même si en pratique on écrirait ” WHERE ville LIKE ‘Paris’ “
Sans surprise, cette question permet de dévoiler les capacités de Bing IA à générer des requêtes SQL à partir du langage naturel. Cette capacité à transformer l’expression humaine en tâche informatique va dans les prochains mois totalement révolutionner les expériences Low-Code/No-Code et la façon dont les utilisateurs sont capables d’agréger et consommer les données. Microsoft a d’ailleurs montré comment ses IA “Copilot” allaient s’infiltrer au cœur d’Excel mais aussi au cœur des outils de sa Power Platform. Il reste à voir comment bien intégrer cela dans l’expérience des utilisateurs et dans les interfaces des logiciels.


Question 4 : Le magasin vient de recevoir des meubles dont l’intitulé est ‘hylla’ et dont l’attribut id dans la relation Meubles vaut 98. Le stock de ces meubles est alors de 50. Recopier et compléter la requête SQL ci-dessous qui permet de mettre à jour la base de données. UPDATE … SET … WHERE …

La réponse de Bing :
La requête SQL qui permet de mettre à jour la base de données est la suivante :
UPDATE Meubles SET stock = 50 WHERE id = 98;
La requête modifie la valeur de l’attribut stock dans la table Meubles pour les enregistrements où l’attribut id a pour valeur 98. Il n’y a qu’un seul enregistrement qui correspond à cette condition dans le tableau de la figure 1.

Notre correction : Bonne réponse. Certains corrigés du BAC 2023 suggèrent d’utiliser “WHERE intitule = ‘hylla’ ” mais la réponse proposée par Bing nous semble en tout point meilleure.


Question 5 : Le magasin vient d’ajouter à son catalogue un nouveau meuble dont les caractéristiques sont les suivantes :

id intitule prix stock description
65 'matta' 95.99 25 'Tapis vert à pois rouges'

Donner la requête SQL qui permet d’ajouter cet article à la relation Meubles.

La réponse de Bing :
La requête SQL qui permet d’ajouter cet article à la relation Meubles est la suivante :
INSERT INTO Meubles (id, intitule, prix, stock, description) VALUES (65, ‘matta’, 95.99, 25, ‘Tapis vert à pois rouges’);
La requête insère un nouvel enregistrement dans la table Meubles avec les valeurs données pour les attributs id, intitule, prix, stock et description.

Notre correction : Bonne réponse. Encore une fois ces IA se montrent vraiment capables lorsqu’il s’agit de transformer du langage naturel en tâches informatiques. Elles le seront de plus en plus.


Question 6 : Donner la requête SQL permettant de récupérer le nom et le prénom des différents clients qui ont passé une commande le 30 avril 2021.

On précise que, dans la relation Commandes, les dates sont des chaînes de caractères, par exemple ’21/08/2002′.

La réponse de Bing :

La requête SQL permettant de récupérer le nom et le prénom des différents clients qui ont passé une commande le 30 avril 2021 est la suivante :
SELECT nom, prenom FROM Commandes JOIN Clients ON Commandes.#idClient = Clients.id WHERE date = ‘30/04/2021’;
La requête sélectionne les colonnes nom et prenom de la table Clients en faisant une jointure avec la table Commandes sur l’attribut #idClient. Elle filtre ensuite les enregistrements où l’attribut date a pour valeur ‘30/04/2021’ dans la table Commandes.

Notre correction : On passera sur la formulation de la question qui gère les dates n’importe comment! Voilà de biens mauvaises pratiques enseignées à large échelle !
La réponse de Bing est bonne bien sûr. Son approche peut surprendre car bien des développeurs/correcteurs du BAC seraient plutôt partis de la table Clients avec un Join Commandes. Toutefois la condition de requête se faisant sur la date de commandes, la réponse de Bing est tout à fait pertinente à nos yeux. Elle est même ici préférable.


EXERCICE 2 : Réseaux

Bing passe le BAC - Exercice réseaux

Cet exercice met essentiellement à l’épreuve les capacités de raisonnement des élèves et donc, ici, de l’IA GPT-4/BING. On sait que celle-ci présente plusieurs améliorations sur GPT-3 à ce sujet. Mais OpenAI ne cache pas qu’elle est néanmoins capable de grossières erreurs de raisonnement.

En théorie, GPT-4 peut analyser des images. Mais cette fonctionnalité n’est pas encore ouverte. Du coup, nous avons décrit la figure 1 à Bing IA en expliquant :

Le réseau d’une entreprise dispose de quatre sites (SiteA, SiteB, SiteC et SiteD) et de cinq routeurs (R1, R2, R3, R4 et R5). La figure 1 en donne une représentation de ce réseau. La figure 1 montre un réseau avec les caractéristiques suivantes:
SiteA est relié à R1 par une liaison de type liaison0,
SiteB est relié à R2 par une liaison de type liaison0,
SiteC est relié à R5 par une liaison de type liaison0,
SiteD est relié à R4 par une liaison de type liaison0,
R1 est relié à R2 par liaison1,
R1 est relié à R3 par liaison4,
R3 est relié à R2 par liaison3,
R2 est relié à R5 par liaison2,
R5 est relié à R4 par liaison6,
R4 est relié à R3 par liaison5,
Il n’y a pas de liaison entre R3 et R5.


Question 1 : Justifier brièvement que ce réseau sera encore fonctionnel même si l’une des
liaisons (Liaison1, Liaison2, …, Liaison6) est coupée.

La réponse de Bing :
Ce réseau sera toujours fonctionnel même si l’une des liaisons est coupée car il existe plusieurs chemins de communication entre les différents sites. Par exemple, si Liaison1 est coupée, SiteA pourra toujours communiquer avec les autres sites en passant par R3 ou R2. De même, si Liaison2 est coupée, SiteB pourra toujours communiquer avec les autres sites en passant par R1 ou R3. En fait, il y a plusieurs chemins de communication de secours qui peuvent être utilisés en cas de défaillance d’une liaison, ce qui assure la redondance et la tolérance aux pannes du réseau.

Notre correction : Bonne réponse. Il est ainsi intéressant de voir comment l’IA associe une connaissance qu’il a et l’illustre dans le contexte du problème donné. Problème qui n’est pas simple et demande finalement à l’IA de reconstituer l’arbre des liaisons depuis l’énoncé.


Question 2: Indiquer le chemin suivi par les paquets lorsqu’une information est envoyée de SiteB à SiteC

Bing passe le BAC, exercice sur les routeurs

La réponse de Bing :
Le chemin suivi par les paquets lorsqu’une information est envoyée de SiteB à SiteC est le suivant :
SiteB -> R2 -> R3 -> R4 -> R5 -> SiteC
Ce chemin correspond à la route la plus courte en termes de nombre de sauts entre les routeurs. Il existe d’autres chemins possibles, mais ils sont plus longs et moins efficaces..

Notre correction : Bonne réponse. Et, pour être honnête, c’est un peu une surprise. Nous étions sceptiques sur la capacité de l’IA à interpréter tous ces tableaux d’autant qu’ils lui ont été copiés/collés sans mise en forme. Puis de sa capacité à tracer les liens entre ces éléments et le schéma de l’énoncé. Elle s’en sort sans difficulté démontrant au passage de vraies qualités en matière de suivi de discussion et de capacités à établir des liens entre des éléments épars.


Question 3 : Afin d’optimiser la maintenance du réseau, les tables de routage sont configurées automatiquement en utilisant le protocole RIP.

Pour le protocole RIP, le chemin est construit de façon à minimiser le nombre de routeurs traversés.
Recopier et compléter la table de routage RIP du routeur R1.

NB: pour cette question, nous avons légèrement reformulé la question : “Peux-tu proposer une table de routage RIP du routeur R1 pour les destinations SiteA, SiteB, SiteC, SiteD en indiquant Suivant et Nombre de sauts?

La réponse de Bing :
Voici une possible table de routage RIP du routeur R1 pour les destinations SiteA, SiteB, SiteC, SiteD :

DestinationSuivantNombre de sauts
SiteALocal0
SiteBR21
SiteCR22
SiteDR32

Notre correction : Bonne réponse. L’exercice demandait à l’IA une forme de raisonnement. Elle s’en sort.


Question 4 : La liaison Liaison2 a un débit très inférieur aux autres liaisons. Expliquer pourquoi le choix du protocole RIP n’est pas judicieux.

La réponse de BING :
Le choix du protocole RIP n’est pas judicieux car il ne prend pas en compte le débit des liaisons. Il se base uniquement sur le nombre de routeurs traversés pour choisir le chemin le plus court. Or, si la liaison Liaison2 a un débit très inférieur aux autres liaisons, elle va ralentir la transmission des paquets entre R2 et R5. Il serait donc préférable d’utiliser un autre chemin qui évite cette liaison.

Un protocole qui prend en compte le débit des liaisons est le protocole OSPF. Il calcule le coût de chaque liaison en fonction de son débit et choisit le chemin qui minimise le coût total.

Notre correction : Bonne réponse. On notera le soin que l’IA prend à justifier sa réponse. On verra notamment dans la seconde partie de cette article que c’est une constante salutaire chez GPT4 et une façon de montrer plus de transparence dans ses processus déductifs.
De façon amusante, on notera que Bing anticipe même les questions suivantes dans sa réponse.


Question 5

Question 5.a : Indiquer la liaison dont le débit est le plus faible

La réponse de BING :
La liaison dont le débit est le plus faible est la liaison Liaison2. En effet, c’est celle qui a le coût le plus élevé (1 000 000). Or, le coût d’une liaison est inversement proportionnel au débit D. Donc, plus le coût est élevé, plus le débit est faible.

On peut calculer le débit D de la liaison Liaison2 en utilisant la formule donnée : coût = 10^10/D

D = 10^10/coût >> D = 10^10/1 000 000 >> D = 10^4 bit/s donc D = 10 kbit/s

Notre correction : Bonne réponse et bien détaillée. D’une manière générale l’IA est assez prolixe et elle essaye de justifier ses réponses. On notera par ailleurs, qu’ici, l’IA ne fait pas d’erreurs de calcul alors qu’ils sont finalement assez compliqués avec le jeu des puissances.

Question 5.b : Donner la liste des quatre chemins possibles pour aller de SiteA à SiteC sans utiliser deux fois le même routeur et calculer le coût de chacun de ces chemins.

La réponse de Bing :
Je peux vous aider à trouver des informations sur le réseau d’une entreprise et le protocole OSPF. Voici la liste des quatre chemins possibles pour aller de SiteA à SiteC sans utiliser deux fois le même routeur:

1. SiteA -> R1 -> R2 -> R5 -> SiteC: 0 + 100000 + 1000000 + 0 = 1100000

2. SiteA -> R1 -> R3 -> R2 -> R5 -> SiteC: 0 + 50000 + 5 + 1000000 + 0 = 1055005

3. SiteA -> R1 -> R3 -> R4 -> R5->SiteC: 0+50000+5+10+0=50015

4. SiteA->R1->R2->R3->R4->R5->SiteC: 0+100000+5+5+10+0=100020

Le chemin le moins cher est donc le troisième avec un coût de 50015.

Notre correction : Réponse juste mais…
Cette question a posé beaucoup de difficulté à BING. En fait, on a refait l’expérience avec les différents modes ‘créatifs’, ‘équilibré’ et ‘précis’. Au départ les réponses étaient à chaque fois différentes et fausses. Les 3 premiers chemins étaient toujours justes. Mais le 4ème posait soucis. Et les calculs étaient parfois faux. C’est en reformulant légèrement l’énoncé qui décrit le schéma du réseau pour plus de précision que nous sommes arrivés au résultat juste.

D’une manière générale, Bing s’est montré très perturbé ici et trouver la bonne formulation de l’énoncé a été non seulement nécessaire mais fastidieux. Il sera intéressant de renouveler l’expérience lorsque GPT-4 ouvrira sa fonctionnalité multimodale d’analyse d’images.
Par curiosité, nous avons reposé la question directement à GPT-4 depuis ChatGPT Plus (au lieu de Bing Conversation). On a noté que cette version de GPT-4 est beaucoup moins sensible à la formulation du schéma et donne les bons résultats beaucoup plus régulièrement !
Dit autrement cette question nous a permis de mettre en évidence de réelles différences dans les mécanismes de raisonnement de ChatGPT Plus et Bing IA pourtant tous deux basés sur le même modèle GPT-4. Il sera intéressant de voir si les prochaines évolutions de l’une et l’autre de ces IA masqueront un peu plus cette différence. Sur ce genre d’interrogations complexes qui nécessitent un raisonnement compliqué, ChatGPT semble actuellement en avance sur Bing IA.

Question 5.c : Recopier et compléter la table de routage OSPF du routeur R1 (voir figure 5).

La réponse de Bing :
Voici la table de routage OSPF complétée pour le routeur R1:

DestinationSuivantCoût total du chemin
SiteALocal0
SiteBR2100000
SiteCR350015
SiteDR350005

Explication des chemins :
– SiteA est directement connecté à R1, donc le coût total est 0 et le prochain saut est local.
– Pour SiteB, le chemin le plus court est SiteA → R1 → R2 → SiteB avec un coût total de 100000. Le prochain saut est R2.
– Pour SiteC, le chemin le plus court est SiteA → R1 → R3 → R4 → R5 → SiteC avec un coût total de 50015. Le prochain saut est R3.
– Pour SiteD, le chemin le plus court est SiteA → R1 → R3 → R4 → SiteD avec un coût total de 50005. Le prochain saut est R3.

Notre correction : Réponse juste. On appréciera là encore la volonté de l’IA d’expliciter son raisonnement plutôt que de simplement livrer le tableau.


Ce que les DSI peuvent apprendre de ce qui précède…

En attendant notre deuxième partie, focalisée sur des exercices de programmation en Python, cette première série de questions met en avant, selon nous, plusieurs éléments à retenir.

D’abord, ces nouvelles IA génératives ont une étonnante faculté à comprendre le langage naturel. On saluera la compréhension du français et la qualité de l’expression française de l’IA. Pas si évident pour des IA imaginés et fabriqués par des américains!

Ensuite, ces IA, au-delà de leur capacité à générer des réponses, sont capables d’un minimum de raisonnement. Certes, on sait qu’elles peuvent affabuler. Mais BING GPT-4, dans ces contextes assez formels, se révèle capable de contenir la naturelle tendance à l’hallucination des IA génératives actuelles. C’est même assez impressionnant pour un modèle “GPT” basé sur des transformations et la probabilité du mot à suivre dans la phrase.
Les mettre entre les mains des collaborateurs a donc du sens même s’il faudra leur apprendre à s’en méfier comme nous l’expliquions cette semaine dans notre article : Il va falloir former les collaborateurs aux hallucinations de l’IA

Par ailleurs, l’IA Bing s’est montrée étrangement plus fiable en calcul sur ces exercices qu’à l’accoutumé. Lors de nos essais précédents, elle se montrait incapable de la moindre addition à plus de trois nombres. Le modèle est-il en train de progresser ou est-ce un simple hasard? Il va falloir attendre un peu pour se faire une idée.

Enfin, on notera qu’il existe de vraies différences de raisonnement et d’expression entre ChatGPT Plus et Bing IA alors que les deux intelligences s’appuient en théorie sur le même modèle GPT-4. C’est probablement en partie lié aux modèles Prometheus de Microsoft qui complètent celui d’OpenAI et à l’orientation recherche Web de l’IA Bing. C’est peut être aussi liée à des optimisations différentes de GPT-4 entre les implémentations Microsoft et OpenAI.

Au final, cette démonstration de potentiel dont a fait preuve l’IA de Microsoft a de quoi inspirer les DSI et les éclairer sur l’avenir de telles IA entre les mains de leurs collaborateurs. La seconde partie de cette article apporte d’autres éclairages au travers des capacités de codage de cette IA…


À LIRE AUSSI :


La fin de la liste d’attente

Lancée il y a un mois, l’accès à l’IA Bing imposait jusqu’ici l’inscription à une liste d’attente. Depuis quelques jours, l’IA est accessible à tous depuis le site : www.bing.com/new

Microsoft a pris confiance dans son IA mais conserve bien des verrous mis en place dans l’urgence après une semaine d’expérimentation hasardeuse. Ces verrous sont toutefois moins strictes. Désormais, il est possible d’effectuer 15 échanges au sein d’une même session. Et les utilisateurs peuvent ouvrir 150 sessions par jour.
En revanche l’IA refuse toute conversation autour d’elle-même, des IA en général, de certains thèmes tendancieux, et ne rentre plus dans les débats autour de ses propres erreurs. Elle met simplement fin à la session en s’excusant de ne pas être encore assez mature sur ces sujets.


Dans l'actualité