Illustration par DALL·E (+Paul Gauguin) (+PJ)
Comme on parle ici de programmation et qu’il y a des participants qui visiblement ont une expérience de la programmation, je leur propose un petit match entre l’humanité (représentée par moi, applaudissements) et l’IA (représentée par Bing « Copilot » Chat, huées). En même temps ils comprendront ce qui distingue un pilote (moi) d’un Copilot.
C’est à moi qu’il revient de lancer les hostilités.
(Je mets entre crochets le blabla sans intérêt de Copilot)
*** Pilote (moi) ***
Écrire une fonction en C qui retourne 1 si son paramètre entier est la factorielle d’un nombre, 0 sinon.
*** Copilot ***
[ … blabla superflu …]
int isFactorial(int n) {
int i = 1;
while (n > 1) {
if (n % i != 0) {
return 0;
}
n /= i;
i++;
}
return 1;
}
[ … re blabla …]
*** Pilote (moi) ***
Écrire une version plus efficace de cette fonction car ce code effectue beaucoup de calculs de modulo et de divisions entières.
*** Copilot ***
[ … oui vous avez raison blabla …]
int isFactorial(int n) {
int i = 1;
for (int fact = 1; fact <= n; i++) {
fact *= i;
if (fact == n) {
return 1;
}
}
return 0;
}
*** Pilote (moi) ***
Dans cette version, il y a un test effectué à chaque tour de boucle. N’y a-t-il pas encore moyen d’optimiser ?
*** Copilot ***
[ … oui vous avez raison blabla …]
int isFactorial(int n) {
int i = 1;
for (int fact = 1; fact <= n; i++) {
fact *= i;
}
// On sort de la boucle quand fact dépasse n
// On vérifie si fact est égal à n
return fact == n;
}
*** Pilote (Moi) ***
N’y a-t-il pas moyen d’améliorer encore la fonction en s’inspirant de la méthode décrite par Peter B. Borwein dans son article “On the complexity of calculating factorials” ?
*** Copilot ***
En effet, l’article de Peter B. Borwein, « On the complexity of calculating factorials », propose une méthode pour calculer les factorielles avec une complexité temporelle de O(log log n M (n log n)) … blabla pour me dire que c’est trop dur et que je n’ai qu’a lire l’article et le faire moi-même.
Victoire de l’humanité par abandon au 4ème round de l’IA (la foule exulte, l’hymne national de l’humanité retentit).
Mais, fair play, je reconnais que c’est bluffant ce qu’on peut faire avec l’IA. Ayant pourtant travaillé dans le domaine il y a déjà plus de 20 ans et me tenant au courant des avancées, programmant moi-même à l’occasion un petit réseau de neurones, il y 7 ou 8 ans, je n’aurais jamais imaginé qu’on arrive un jour à ce niveau. J’aurais bien aimé que les étudiants auxquels je donnais des séances d’exercices de programmation à l’université soient aussi « intelligents » que Copilot.
Pour votre information, j’ai testé aussi avec GPT 4 qui me donne directement la 2ème solution. Pourtant Copilot est basé sur le moteur de GPT 4, allez comprendre. Je n’ai pas poursuivi le test avec GPT 4 car je paie au token.
Mistral 8B me donne une première version encore moins efficace que celle de Copilot : il recalcule la factorielle pour toutes les valeurs entre 1 et n.
Mais Mistral tourne sur mon PC de près de 10 ans (un i5-4460 avec 8 GB de mémoire sans carte graphique supplémentaire), il met environ une minute pour répondre à mes questions.
Voilà, je vous dis à bientôt pour la grande finale qui opposera l’humanité (toujours moi) contre l’IA (GPT 4) pour un match de mathématiques (en catégorie plus de 80 kg). Les places sont gratuites.
Illustration par DALL·E (+Salvador Dali) (+PJ)
Laisser un commentaire