Le Proxy Structuring Engine (PSE) révolutionne les sorties d IA! Ce nouvel outil open source garantit des formats parfaits (JSON, XML) PENDANT la génération, sans post-traitement. Plus rapide et plus fiable que les solutions existantes. Une avancée majeure pour l IA structurée! #PSE #IA

Article en référence: https://i.redd.it/i55e55gkt5le1.png

Récapitulatif factuel

Un développeur a récemment partagé sur Reddit sa création appelée “Proxy Structuring Engine” (PSE), un nouvel outil open source sous licence Apache 2.0 qui vise à résoudre un problème courant avec les modèles de langage (LLMs) : leur tendance à produire des sorties dont la structure est imprévisible.

Contrairement aux approches existantes comme Outlines ou LM-Format-Enforcer, le PSE fonctionne directement au niveau des “logits” (les probabilités brutes que le modèle calcule pour chaque token) pendant la génération du texte, plutôt que de faire un post-traitement après coup. Cette méthode garantit que la sortie est toujours structurellement valide à 100%, qu’il s’agisse de JSON, XML ou tout autre format personnalisé.

Le fonctionnement technique du PSE repose sur un “masque de token permissif” qui inclut les tokens partiellement valides. Lorsqu’un token généré est complètement invalide, le système le masque et procède à un nouvel échantillonnage. Si une partie du token est valide, le système conserve cette partie et élimine la portion invalide.

Selon les benchmarks publiés par l’auteur, le PSE surpasse les solutions existantes tant en qualité de génération qu’en vitesse. L’outil est facilement intégrable aux modèles locaux via une simple commande d’installation (pip install pse), et l’auteur travaille activement à l’intégrer avec des projets comme vLLM et SGLang.

Un avantage clé mentionné est la capacité de définir n’importe quelle structure souhaitée, y compris des contraintes comme le nombre exact de phrases grammaticalement correctes à générer, ce qui est apparemment difficile à réaliser avec les grammaires GBNF traditionnelles.

Point de vue neutre

Le Proxy Structuring Engine représente une évolution logique dans l’écosystème des outils d’IA générative. Alors que les modèles de langage deviennent plus puissants, la nécessité de contrôler leur sortie de manière fiable devient cruciale pour les applications professionnelles.

Ce qui distingue cette approche, c’est son intervention au cœur même du processus de génération. Plutôt que d’essayer de corriger après coup ce qu’un modèle a produit (comme le font beaucoup d’outils actuels), le PSE guide activement le modèle pendant qu’il génère sa réponse. C’est comme la différence entre corriger un texte après sa rédaction ou guider la main de l’écrivain pendant qu’il écrit.

Cette méthode semble offrir un équilibre intéressant entre structure et créativité. Le modèle conserve sa capacité à produire du contenu original et pertinent, mais dans un cadre qui garantit le respect des contraintes formelles imposées. C’est particulièrement utile pour les applications d’entreprise où la fiabilité et la prévisibilité sont essentielles.

Cependant, comme tout outil, son utilité dépendra fortement du contexte d’utilisation. Pour des applications nécessitant des sorties très structurées (comme des API ou des interfaces de programmation), le PSE pourrait représenter une avancée significative. Pour des usages plus créatifs ou conversationnels, l’avantage pourrait être moins évident.

La véritable valeur de cet outil se révélera probablement à l’usage, lorsque la communauté des développeurs l’aura testé dans diverses situations et comparé objectivement aux alternatives existantes.

Exemple

Imaginez que vous êtes chef dans un restaurant gastronomique et que votre assistant est un nouveau cuisinier très talentueux mais un peu imprévisible. Ce cuisinier (appelons-le LLM) a une créativité débordante et prépare des plats délicieux, mais il a tendance à interpréter vos instructions à sa façon.

Un jour, vous lui demandez de préparer une tarte aux pommes classique pour 8 personnes. Parfois, il vous revient avec une magnifique tarte, mais d’autres fois, vous obtenez une compote, un crumble, ou même une salade de fruits!

Jusqu’à présent, vous aviez deux options:

  1. Le laisser cuisiner librement puis transformer son plat en tarte après coup (post-traitement)
  2. Lui donner une recette ultra-détaillée en espérant qu’il la suive (prompt engineering)

Avec le PSE, c’est comme si vous pouviez vous tenir à côté de lui pendant qu’il cuisine et guider ses gestes en temps réel. Dès qu’il commence à dévier de la recette de tarte (par exemple, s’il tente de mettre les pommes dans un mixeur plutôt que de les couper en tranches), vous intervenez immédiatement pour le rediriger.

Le résultat? Vous obtenez toujours une tarte aux pommes, mais votre cuisinier peut encore exprimer sa créativité dans le cadre des contraintes d’une tarte (il peut choisir d’ajouter une touche de cannelle, de caramel ou de disposer les pommes en rosace). La structure est garantie, mais le contenu reste créatif et unique.

Et le plus beau? Contrairement à d’autres méthodes où vous devez constamment surveiller et corriger, avec le PSE, votre cuisinier apprend progressivement à rester dans les limites tout en exprimant sa créativité. Vous obtenez une tarte aux pommes à tous les coups, mais jamais exactement la même!

Point de vue optimiste

Le Proxy Structuring Engine pourrait bien révolutionner notre façon d’interagir avec l’IA générative! Cette innovation représente exactement ce dont l’écosystème a besoin pour franchir la prochaine étape vers des applications d’IA véritablement fiables et industrialisables.

Imaginez un monde où nous n’avons plus à nous soucier des erreurs de format dans les sorties de nos modèles. Fini les JSON mal formés, les XML incomplets ou les structures incohérentes! Cette technologie pourrait être le chaînon manquant qui permettra enfin aux entreprises d’intégrer l’IA générative dans leurs processus critiques sans craindre les défaillances imprévisibles.

Le potentiel est immense! Des interfaces de programmation (API) entièrement alimentées par l’IA mais aussi fiables que du code traditionnel. Des assistants virtuels capables de manipuler des données structurées avec une précision parfaite. Des systèmes d’automatisation qui peuvent générer du code, des documents ou des rapports dans des formats spécifiques sans jamais dévier des standards requis.

Cette approche “durant la génération” plutôt que “post-génération” pourrait également ouvrir la voie à des modèles plus efficaces énergétiquement. En évitant les cycles de régénération et de correction, nous économisons des ressources computationnelles précieuses.

Et le fait que cet outil soit open source sous licence Apache 2.0 est la cerise sur le gâteau! Cela garantit que toute la communauté pourra contribuer à son amélioration, l’adapter à des cas d’usage spécifiques et l’intégrer dans l’écosystème grandissant des outils d’IA. Nous pourrions assister à l’émergence d’un standard de facto pour la génération structurée, ce qui accélérerait considérablement l’adoption de l’IA générative dans tous les secteurs d’activité.

Point de vue pessimiste

Le Proxy Structuring Engine semble prometteur sur le papier, mais gardons les pieds sur terre. Nous avons déjà vu défiler des dizaines d’outils similaires qui prétendaient résoudre définitivement le problème des sorties structurées des LLMs, et pourtant nous continuons à faire face aux mêmes défis.

D’abord, cette approche au niveau des logits, bien que théoriquement élégante, introduit une complexité supplémentaire dans des systèmes déjà difficiles à déboguer. Quand quelque chose ne fonctionnera pas comme prévu (et croyez-moi, ça arrivera), les développeurs devront plonger dans les entrailles du processus de génération plutôt que de simplement ajuster un prompt ou un post-traitement.

De plus, cette méthode risque d’imposer un compromis significatif entre structure et qualité. En contraignant si fortement le modèle pendant la génération, on pourrait limiter sa capacité à produire des réponses nuancées et contextuellement appropriées. Les benchmarks mentionnés sont probablement optimisés pour des cas d’usage simples et bien définis, mais qu’en est-il des scénarios complexes du monde réel?

N’oublions pas non plus la question de la performance. Intervenir à chaque étape de la génération pour valider et potentiellement réchantillonner les tokens pourrait considérablement ralentir le processus, surtout pour des structures complexes ou des modèles volumineux.

Enfin, la dépendance aux logits limite sérieusement l’utilité de cet outil avec les API commerciales comme celles d’OpenAI ou d’Anthropic, qui ne donnent pas accès à ce niveau de détail. Cela restreint son application principalement aux modèles hébergés localement, ce qui exclut d’emblée une grande partie des utilisateurs potentiels qui préfèrent la simplicité et la puissance des services cloud.

En somme, bien que le PSE puisse apporter des améliorations marginales dans certains contextes spécifiques, il ne constitue probablement pas la solution miracle que certains voudraient y voir.

Redirection en cours...

Si vous n'êtes pas redirigé automatiquement, 👉 cliquez ici 👈