Actualités

Le coût marginal de l'exactitude

16 juillet 2026

Le coût marginal de la qualité tend vers zéro. Vous devez prendre pleinement conscience de ce que cela implique pour votre pratique de l'ingénierie logicielle. Vous devez vous attacher à tout faire correctement.

Un paysage en pleine évolution

Autrefois, un ingénieur pouvait se démarquer grâce à son talent technique brut : une réflexion algorithmique efficace, des systèmes distribués évolutifs, ou encore la recherche minutieuse de points d'arrêt dans le débogueur. Cela devient de moins en moins vrai, et ce à un rythme accéléré. Les agents permettent désormais à n'importe qui d'écrire du code correct.

La compétence la plus importante que vous devez développer pour vous démarquer aujourd'hui, c'est le flair : la capacité à flairer ce qui ne va pas et la volonté de faire en sorte que cela aille mieux.

Détecter une API lente

Chez Pangram, nous sommes en train de former un nouveau modèle (je ne pense pas en dévoiler trop en le mentionnant) : il sera plus puissant, plus intelligent et aussi *plus rapide* que nos modèles précédents. Ce dernier superlatif n’aurait pas été possible sans une obsession pour le travail bien fait, juste pour le plaisir. Parce que nous en sommes capables. Parce que nous sommes fiers de notre métier. Parce qu’un jour, alors que je testais notre API, je me suis dit : « Ça devrait vraiment être plus rapide que ça ».

À l'époque, je n'avais aucun moyen de savoir comment, exactement, le fait de m'engager dans cette aventure allait porter ses fruits. Je n'avais pour seules armes que la conviction qu'il fallait faire les choses comme il faut et la certitude qu'avec Fable à mes côtés, tout était possible.

Quelques jours plus tard à peine, nous en sommes sortis victorieux, ayant vaincu la latence qui avait entravé mon « dogfooding ». Grâce à Fable, j’ai pu mettre en place un environnement de test entièrement local pour notre orchestrateur d’API distribué et complexe. Nous avons formulé des hypothèses pour tous les points sensibles de notre code et testé des corrections pour chacun d’entre eux. Nous avons mis en place un pipeline pour des opérations Redis complexes et validé la préservation du comportement. Nous avons effectué des simulations de différents modèles de charge basés sur le trafic de production et estimé l’infrastructure nécessaire.

Sans ces agents, ce projet aurait été irréalisable et impossible à envisager : il aurait nécessité des semaines, voire des mois, de travail d'ingénierie. Au lieu de cela, il s'agissait d'un projet parallèle, mené pendant que ma session d'entraînement se déroulait en arrière-plan.

Nos efforts ont été récompensés par une multiplication par environ 5 de l'utilisation du GPU — passant de 20 % (aïe) à 98 % — et un débit comparable à celui de nos nœuds « bare metal ». Cela ne nous a presque rien coûté. Et cela nous a tout apporté. Grâce à cela, l'hébergement de notre nouveau modèle, qui était auparavant d'un coût prohibitif, est devenu une véritable aubaine.

Développer votre sens de l'odorat

Malheureusement, il n'existe pas d'astuce miracle pour affiner son nez, mais c'est une compétence que l'on peut développer. Voici ce qui a fonctionné pour moi (je crois) :

Avoir une faible tolérance à la douleur

Tout ce qui vous frustre frustre probablement aussi vos utilisateurs — ne vous contentez pas de serrer les dents. Vous devez être à l’écoute de vous-même : remarquez ce qui vous cause une légère agitation au cours de la journée, les parties du code que vous pourriez inconsciemment éviter, ou les tâches pendant lesquelles vous devenez un peu trop agité. C’est là que se trouvent les gains à réaliser. C’est ce qui a marqué le début de mon exploration en profondeur de l’optimisation de l’API.

J'aime dire que « les choses simples doivent rester simples ». Cela vaut aussi bien pour votre base de code (par exemple, l'exécution d'une simple ablation d'entraînement ne devrait nécessiter aucun effort mental) que pour votre produit (par exemple, un simple appel API ne devrait être que très légèrement plus lent que le passage en avant lui-même). Lorsque vous vous surprenez à penser « ça ne devrait pas être aussi difficile », corrigez le problème ! Vous disposez désormais d'agents ! Créez un worktree et lancez Codex. /but Allez-y, qu'avez-vous à perdre ?

Tout remettre en question en partant des principes fondamentaux

Les agents simplifient grandement les choses. « Combien de temps cette tâche devrait-elle prendre, compte tenu de la taille de notre lot, des spécifications de nos GPU et du nombre de paramètres ? » « Combien devrions-nous dépenser auprès de ce fournisseur, compte tenu de notre volume de données et de requêtes ? » Quand on sait à quoi ressemble un résultat correct, il est beaucoup plus facile d'identifier ce qui ne l'est pas.

Je procède ainsi pour chaque topologie de type « modèle/nœud/forme de requête » que nous prenons en charge : c'est ainsi que j'optimise notre configuration vLLM pour m'assurer que nous sommes proches de la limite théorique. C'est ainsi que j'ai pu constater qu'il existait un écart entre le débit de notre API et celui obtenu sur un nœud « bare metal ».

Ce principe s'applique également à votre base de code. Si une abstraction vous semble étrange, ne vous contentez pas d'accepter comme réponse « ça a toujours été comme ça ». Repensez le contrat en partant des principes fondamentaux : à quoi devrait-il ressembler au vu de ce que nous savons aujourd'hui ? Votre rôle consiste à déterminer dans quelle direction orienter l'agent. L'agent peut se charger de la refactorisation et de la validation de la justesse du code en un clin d'œil.

Soyez curieux, lisez beaucoup

L'une de mes optimisations préférées, que j'ai mise en œuvre dès ma première semaine chez Pangram, s'inspirait du mécanisme d'attention hybride et clairsemée de DeepSeek V4.

Mon optimisation n'avait rien à voir avec l'architecture neuronale, et encore moins avec l'attention en particulier. Il s'agissait d'une amélioration de l'algorithme que nous utilisons pour détecter les frontières entre le texte humain et le texte généré par l'IA, qui nécessitait auparavant un deuxième passage d'inférence sans limite.

Absorbez autant d'idées intéressantes que possible, provenant d'autant de personnes brillantes que vous le pouvez. Votre mission consiste désormais à faire preuve d'une curiosité sans limite, à établir des liens et à vous poser la question « Et si… ? ». N'oubliez pas que le coût marginal de la découverte tend vers zéro.

Utilisez vos jetons

Chaque dimanche, j'ai pour habitude de lancer Codex sur un jeu au hasard. /but pour essayer d'utiliser mes jetons hebdomadaires avant la réinitialisation. La plupart du temps, je finis par jeter le code ou celui-ci reste enfoui dans un brouillon de PR oublié. Parfois, ça porte ses fruits. J'apprends presque toujours quelque chose de cet exercice. Dans tous les cas, ça ne me coûte rien. Certains appellent ça « jouer aux machines à sous », mais je dis qu’on ne peut pas gagner si on ne joue pas.


Ben Glickenhaus
Ben GlickenhausIngénieur en IA

Chez Pangram, Ben évolue à la croisée de la recherche en IA et de l'ingénierie. Il s'intéresse à l'entraînement de modèles plus volumineux et plus performants, ainsi qu'à leur déploiement à grande échelle.

Plus d'articles de Ben Glickenhaus
    Le coût marginal de l'exactitude | Pangram Labs