- Mercury est un nouveau grand modèle de langage (LLM) commercial qui exploite une approche par diffusion (Diffusion)
- Ce modèle se distingue par sa capacité à prédire plusieurs tokens en parallèle, sur la base d’une architecture Transformer
- Mercury Coder constitue le premier ensemble de LLM à diffusion, développé pour l’écriture de code, et proposé en deux tailles : Mini et Small
- Sur GPU NVIDIA H100, il enregistre un débit de 1109 tokens/s (Mini) et 737 tokens/s (Small), avec des performances jusqu’à 10 fois plus rapides que les modèles existants orientés vitesse à qualité équivalente
- Lors de benchmarks en usage réel et d’évaluations développeurs comme Copilot Arena, il a obtenu la 2e place en qualité et la 1re place en vitesse, et propose aussi une API publique ainsi qu’un playground
Aperçu
- Mercury est une nouvelle série de grands modèles de langage basée sur la diffusion et représente une nouvelle génération de LLM fonctionnant à l’échelle commerciale
- Tous les modèles sont paramétrés avec une architecture Transformer et entraînés à prédire plusieurs tokens en parallèle
- Ce rapport présente principalement la première gamme de Mercury Coder, conçue pour les applications de génération de code
- Mercury Coder est actuellement disponible en deux tailles de modèle : Mini et Small
Contributions principales
- Mercury Coder atteint un nouveau niveau state-of-the-art dans l’équilibre entre vitesse et qualité
- Selon l’organisme d’évaluation externe Artificial Analysis :
- Mercury Coder Mini : 1109 tokens par seconde
- Mercury Coder Small : 737 tokens par seconde sur GPU NVIDIA H100
- Jusqu’à 10 fois plus rapide en moyenne que les modèles frontier les plus rapides, avec une qualité comparable
- Des résultats d’évaluation supplémentaires sont également fournis sur des benchmarks de code couvrant divers langages de programmation et cas d’usage
- Dans un environnement développeur réel (Copilot Arena) également :
- 2e place en qualité
- 1re place absolue en vitesse
- Prend en charge une API publique ( platform.inceptionlabs.ai ) et un chat playground gratuit ( chat.inceptionlabs.ai ) accessibles à tous
Structure de la table des matières
- Introduction
- Contributions principales
- Inception Mercury Model Family (présentation de la famille de modèles)
- Processus d’entraînement (Training)
- Méthode d’inférence (Inference)
- Capabilities (fonctionnalités du modèle)
- Performances de référence (Baselines)
- Capacités de génération de code (Coding Capabilities)
- Benchmarks d’évaluation (Evaluation Benchmarks)
En résumé
- Mercury combine une conception innovante de LLM basé sur la diffusion et une architecture de prédiction parallèle afin d’offrir une vitesse écrasante et une qualité élevée dans la génération de code
- Avec plusieurs tailles de modèle, de solides benchmarks en conditions réelles et une grande facilité d’accès, il propose une option compétitive aussi bien pour les usages commerciaux que pour les environnements de développement
1 commentaires
Avis Hacker News
Souligne que l’adoption d’agents LLM risque de transformer les performances de test en goulot d’étranglement CPU encore plus sévère, alors que toutes les équipes sont déjà limitées par la vitesse de leur CI
Même si un agent écrit du code 100 fois plus vite qu’un humain, cela ne sert à rien si les tests prennent une heure
Sur beaucoup de projets où j’ai travaillé, énormément de temps développeur était gaspillé à attendre que les changements soient pris en compte, et de nombreuses exécutions étaient limitées par les E/S ou par le manque de workers
Si des agents de code transforment rapidement des tickets simples en PR puis réagissent aux échecs de test en corrigeant en temps réel, le goulot d’étranglement de la CI va empirer
La plupart des environnements de test de projet ont une grande marge d’amélioration, mais dans les faits on a fini par considérer comme normale une CI lente et coûteuse, sans réel progrès depuis des années
La CI est même devenue plus lente dans certains cas, par exemple quand on désactive le cache pour isoler complètement les builds, ou quand on passe de l’on-premise à des VM cloud plus lentes
La vitesse de Mercury est complètement folle et, d’après quelques essais, la qualité du code était excellente et précise, mais le défi est désormais de faire suivre l’exécution des tests à cette cadence
J’ai du mal à croire que, sur la plupart des projets où j’ai travaillé, autant de temps développeur soit perdu à attendre l’approbation des PR
Du point de vue de l’entreprise, le temps développeur coûte bien plus cher que le temps machine, donc si les développeurs se plaignent, il suffit de doubler le nombre de workers CI
Chez Google, lors du débogage de tests instables, il arrivait de lancer 10 000 exécutions sur 10 000 machines pour trouver des échecs très rares
Mon entreprise actuelle propose quelque chose de similaire : avec une seule commande, on exécute tous les tests en parallèle sur 1 000 workers afin d’obtenir un retour en moins de 5 minutes même sur un projet de 1M LOC
Isoler complètement les builds et ne pas utiliser de cache sont deux sujets différents ; on peut isoler totalement les builds tout en exploitant au maximum tous les caches
Si la vitesse d’implémentation augmente, le goulot d’étranglement se déplacera vers les PM, ce qui pourrait réduire fortement les conflits à mesure que les changements seront davantage sérialisés
On pourrait aussi assister à un retour des langages de spécification (comme TLA+), les agents pouvant les écrire et les vérifier rapidement, ce qui réduirait le nombre total de tests d’intégration
Quand des agents d’arrière-plan nettoient du code dupliqué, ils peuvent aussi nettoyer les tests dupliqués
L’IA semble susceptible de travailler plus efficacement que des équipes d’ingénieurs humains sur des architectures monolithiques, ce qui augmenterait la couverture de tests exécutables en local, réduirait les flaky tests et allégerait la charge CI
Même si l’IA améliore l’efficacité, elle générera aussi plus de code, plus vite, avec de nouveaux problèmes en continu ; je suis convaincu que de nouveaux problèmes à résoudre par les ingénieurs humains continueront d’apparaître
Les LLM conviennent pour des corrections rapides de moins de 100 lignes ou pour servir de rubber duck, mais les injecter directement dans la pipeline CI d’un gros projet risque de faire perdre des centaines d’heures de productivité
Si au lieu d’améliorer sa capacité à écrire du code on passe son temps à faire du prompt tuning et à ajuster le contexte, cela n’a aucun intérêt
J’ai l’impression qu’il y a beaucoup trop de confiance dans le tooling LLM, qui selon moi s’applique mal aux systèmes complexes
L’idée de lâcher un LLM sans supervision sur un dépôt critique me paraît impossible, « sauf sous la menace d’une arme »
Au final, on finit par retravailler à moitié ce que produit le LLM, et dans ce cas autant le faire soi-même
Avant l’automobile, on dépensait très peu pour l’essence, l’huile ou l’entretien, mais à mesure que le système évolue, l’infrastructure annexe et les coûts qui vont avec suivent aussi
Avec l’IA, soit on résout les goulots d’étranglement, soit on crée plus de fonctionnalités pour maximiser les revenus, puis on utilise ces revenus supplémentaires pour acheter plus de ressources CI : une boucle de renforcement
L’IA ne change pas grand-chose au fait d’ajouter 10 développeurs de plus ; il est donc normal que les coûts de support augmentent
Cela invite à se demander si l’on peut argumenter de manière rationnelle en faveur de plus de ressources CI grâce aux gains d’efficacité, ou proposer une direction d’optimisation
Je me demande combien coûte une machine de ressource CI
J’ai nettement accéléré la CI d’une application Python grâce à la toolchain d’astral.sh et à l’installation de paquets via uv avec cache
Je vais bientôt remplacer mypy par le type checker d’astral, ce qui devrait encore accélérer les choses
Pour les applications avec frontend, les tests Playwright seront probablement la partie la plus lente, mais ce n’est pas le cas sur d’autres applications
(P.S. : si Mike est bien la personne à laquelle je pense, c’est le SRE avec qui j’ai travaillé sur Google Maps au début des années 2000, donc son avis m’inspire confiance)
J’ai demandé un motif d’expression régulière dans le playground Mercury, et le modèle a commencé par élaborer son propre plan, écrire le motif, puis générer des tests
Sauf qu’il a continué à ajouter des tests sans fin jusqu’à atteindre la limite de contexte, moment où la réponse s’est interrompue
Vers une trentaine de tests, il a commencé à mal annoter les commentaires de résultat, et au-delà de 120, les entrées de test elles-mêmes sont devenues bizarres, remplies de caractères aléatoires
Le motif lui-même n’était pas correct non plus, mais ce phénomène de « boucle infinie » était encore plus intéressant
Pour info, je me souviens que, jusqu’à récemment encore, des LLM généralistes produisaient eux aussi ce genre de sortie répétitive ressemblant à une « quasi-boucle infinie »
Ils restaient coincés dans un schéma où seule une petite partie de la sortie changeait
Je pense que c’est une preuve typique qu’on ne peut pas produire du code correct uniquement par prédiction de tokens
Les LLM n’ont de toute façon pas été conçus à l’origine pour raisonner sur le code
En lisant le rapport technique, j’ai constaté que Mercury est basé sur l’article Lou et al. 2023, SEDD
J’ai été le premier (probablement) à réimplémenter SEDD from-scratch, avec le code en open source
J’ai aussi implémenté moi-même la méthode de denoising complexe
Je l’ai conçue pour qu’elle soit plus propre et plus lisible que le SEDD d’origine, et elle peut tourner en quelques heures sur un seul GPU avec un dataset jouet
À noter que DeepMind a également un modèle Gemini basé sur la diffusion (lien)
Après l’avoir testé moi-même, j’ai trouvé la vitesse aussi folle que celle de Mercury, mais la qualité des réponses nettement inférieure à celle des autres Gemini
Après un essai rapide, je suis d’accord : la vitesse est impressionnante, mais le taux de bonnes réponses chute beaucoup
Je me demande si la démo Gemini Diffusion est gratuite
Je suis sur liste d’attente depuis plusieurs jours et je regrette de ne pas avoir encore pu l’essayer
Personnellement, ce type de progrès m’enthousiasme énormément
Lors d’une game jam récente, j’ai codé un petit jeu avec l’IA, et plus de la moitié du temps était passée à attendre les résultats
Si au lieu de 1 à 2 minutes par prompt il ne faut attendre que 10 secondes, on peut faire cinq à dix expérimentations pendant le temps qu’il fallait auparavant pour un seul test
Mercury n’est pas encore assez mature pour un usage vraiment pratique, mais Claude 3.0 était lui aussi insuffisant il y a un an, donc on peut s’attendre à de nets progrès
La suite est vraiment prometteuse
Après avoir essayé le playground Mercury, la vitesse est vraiment remarquable
La visualisation du mode diffusion est originale, mais en pratique elle semble surtout montrer un processus où un bruit de lignes visualisé est progressivement raffiné vers un état plus précis
En réalité, j’y vois plutôt un processus de convergence, dans un espace vectoriel arbitraire, vers des tokens de plus en plus certains
Certains modèles de diffusion textuelle utilisent un espace latent continu, mais les performances ne sont pas très bonnes
Ces derniers temps, la plupart se concentrent plutôt sur la prédiction de vrais tokens de sortie et corrigent l’état précédent étape par étape jusqu’au résultat final
Je recommande cette explication du fonctionnement de la diffusion textuelle
Lien : https://chat.inceptionlabs.ai/
C’est vraiment absurdement rapide
Il reste énormément de marge d’optimisation dans la plupart du code proche du GPU
Mais je me demande si le papier arXiv relève davantage du marketing que de la recherche proprement dite
Je suis preneur d’autres avis
Tarification du modèle Mercury
1 dollar par million de tokens en sortie, 0,25 dollar par million de tokens en entrée
Voir la tarification détaillée ici
Pour les usages sensibles aux performances, en comparant Mercury à Groq (Llama 3.1 8b, Llama 4 Scout), les performances étaient similaires mais les prix de Groq étaient bien plus avantageux
J’attends avec intérêt l’arrivée de modèles de diffusion open source
Dans le code du playground et les réponses API, on voit
gpt-3.5-turboet"openai": true, ce qui fait se demander si, en réalité, ils n’appellent pas OpenAI au lieu de leur propre dLLMLa fonction d’effet de diffusion en haut à droite ressemble à une simple animation
Tout cela a l’air formidable, mais
si l’on soumet du contenu utilisateur au service, les conditions accordent à Inception une licence mondiale, non exclusive, perpétuelle, sans redevance, gratuite et entièrement cessible
Autrement dit, ils peuvent utiliser le contenu des utilisateurs pour entraîner leurs modèles d’IA
(Il existe toutefois une clause d’exception indiquant que ce qui transite via OpenRouter n’est pas utilisé pour l’entraînement)