une expérience avec GLM 5.3

Contexte

L’année dernière, j’avais fait le projet de réaliser des animations web pour expliquer les aspects contre-intuitifs des espaces vectoriels de haute dimension. J’ai été inspiré d’une part par les démos impressionnantes d’anime.js et d’autre part, par une présentation donnée par le prof. Lutz Dümbgen à l’université de Berne, et par le fait que j’avais souvent du mal à avoir les bonnes intuitions en raisonnant sur les réseaux de neurones (qui sont des applications dans des espaces en hautes dimensions). Je suis donc allé voir un professeur de maths (facile, je travaille dans une université), et nous avons listé quelques théorèmes et propriétés intéressants sur ce sujet. Et ensuite…

Rien. La réalité de mon doctorat m’a rattrapé. J’ai réalisé que je n’avais pas assez de temps à allouer à ce projet, donc je l’ai mis de côté. Je ne travaille pas beaucoup en front-end, et même si les outils IA de début 2025 pouvaient m’aider sur ce point, il y avait encore à faire tout le travail de conception des visualisations. Je n’avais pas assez de temps.

Avance rapide jusqu’à mercredi dernier. Je vois des démos impressionnantes de Claude qui crée des applications complexes en un coup et des éloges pour GLM 5.3, presque SOTA. Ça tombe bien, GLM 5.3 vient d’arriver dans l’API Mistral, que j’avais choisie (j’aime les modèles open source) d’utiliser dans Pi (j’aime aussi les logiciels open source). Donc j’ai décidé d’utiliser mon projet abandonné comme test.

Projet

J’ai dicté un prompt dans Pi et je l’ai laissé mouliner une vingtaine de minutes. J’ai été très impressionné par le résultat. Non seulement les idées sur les principes à représenter étaient bonnes, mais l’exécution des idées était aussi excellente.

le prompt (dicté en anglais)

I want you to make a single page application with a few visualizations to help people have a better understanding of high dimensions geometry, especially the points where high dimensions operate in a different manner than low dimensions. For example the fact that a sphere in high dimensions has most of its weight on the surface and almost nothing in the center, things like that. So, first think of a few properties of this kind that high dimensions have and then for each of those try to think of a way to make it understandable and to help people visualize it and then execute on these visualizations. The whole thing should be in a single HTML file, so you can have separate CSS and JavaScript on the side. But in the end it should be just one page. And the main point is for it to help the understanding.

Ideas

L’agent a produit 5 idées de principes contre-intuitifs à représenter. Ils étaient tous dans la liste que j’avais faite un an avant. En plus, il a aussi produit des idées sur comment représenter ces principes, ce sur quoi je n’avais pas travaillé.

Le principal problème est que les visualisations n’étaient pas faciles à comprendre, même pour moi qui avais travaillé ce sujet. Il a donc fallu quelques itérations de plus pour ajouter des animations 3D et rendre l’ensemble des visualisations plus intuitives. J’ai aussi fait rajouter les autres idées que j’avais listées.

Execution

L’agent a construit toute l’application en HTML, CSS et JavaScript, et ça a fonctionné du premier coup. Il n’y avait aucun bug et c’était esthétiquement bien. Même les réglages des visualisations et les petites animations du scroll marchaient parfaitement, alors que j’aurais eu besoin de laborieuses sessions de débugage.

Il n’a pas non plus pris le style en dégradés violets habituel de l’IA. À la place, il a fait des textes et des graphiques clairs et lisibles, avec la bonne quantité de couleur pour être joli sans être distrayant.

Conclusion

J’ai été vraiment impressionné par la vitesse et la qualité que j’ai obtenues avec cette combinaison Pi + GLM5.3, et par le peu de supervision dont j’ai eu besoin. C’était aussi très peu cher (environ ~2€ en tokens). J’ai fini par travailler quelques heures de plus sur ce projet, sans regarder le code source une seule fois.

Après quelques itérations de plus pour améliorer l’app, je l’ai mise en ligne avec GitLab Pages (elle tient dans une seule page HTML) : https://jchataigne.gitlab.io/h-dim/

Code source: https://gitlab.com/JChataigne/h-dim

Laisser un commentaire

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

Retour en haut