Recherche · Modèle Jev

Faire décider l'IA de l'entreprise, et pouvoir le vérifier

Au cœur de PROSuite, le serveur VAILS et son langage VVL réunissent deux familles d'intelligence artificielle : les modèles de langage, qui comprennent le texte, et le raisonnement symbolique, qui applique des règles de façon exacte et vérifiable. Cette page présente nos choix de modélisation et nos premières mesures.

  • 60 % de bonnes réponses pour un modèle de langage seul quand six règles s'enchaînent
  • 100 % pour le moteur symbolique de VAILS sur les mêmes faits
  • ≈ 0,4 s par décision tranchée par le décideur Jev
  • 2 800 questions dans notre banc d'essai

Pourquoi un modèle de langage seul ne suffit pas pour gérer une entreprise

Confier à l'IA une part de la gestion, c'est lui confier des milliers de petites décisions par jour : trier une demande, qualifier un client, contrôler un document, appliquer un tarif. Un grand modèle de langage, utilisé seul, n'est pas conçu pour cela.

Plausible n'est pas exact

Un modèle de langage prédit le texte le plus probable. Il ne vérifie rien. Dès qu'il faut enchaîner plusieurs règles, son taux d'erreur augmente nettement.

Aucun degré de certitude

Il rend une réponse, jamais une probabilité exploitable. Or c'est ce dont un processus a besoin pour décider seul, demander une vérification ou passer la main à une personne.

Un coût par décision

Chaque tri ou contrôle devient un appel lent et facturé. À l'échelle d'une entreprise, la latence et le coût deviennent le premier frein.

Des règles invisibles

Quand la règle de gestion est cachée dans une consigne rédigée en langage naturel, personne ne peut l'auditer, la versionner ni prouver qu'elle a été appliquée.

Notre principe : le modèle propose, le symbolique décide

L'IA neuro-symbolique associe un réseau de neurones, qui apporte la compréhension du langage, à une couche symbolique, qui apporte la logique, la structure et la preuve. Dans VAILS, cette association suit quatre couches.

  • Comprendre

    Le modèle de langage lit le cas particulier

    Une demande, un devis, un CV ou une facture est transcrit dans le schéma de l'entreprise : champs typés, valeurs obligatoires, listes fermées. Le modèle transcrit, il ne raisonne pas.

  • Modéliser

    L'ontologie porte la connaissance générale

    Les catégories, les règles, les exceptions et les profils types de l'entreprise sont écrits une fois, de façon explicite, dans une ontologie compilée en règles logiques.

  • Décider

    Règle, puis Jev, puis modèle de langage, puis humain

    Chaque décision part vers le moteur le plus simple capable de la prendre avec assez de confiance. L'incertitude remonte au lieu d'être masquée.

  • Vérifier et tracer

    Contrats, preuves et journal des décisions

    Une sortie n'est acceptée que si elle respecte des contrats explicites. Chaque décision laisse une trace : quel moteur a tranché, avec quelle confiance, sur quelle règle.

Le sens, une valeur du langage VVL

Dans la plupart des outils, les appels à l'IA sont ajoutés par-dessus un langage de programmation classique. Dans VAILS, c'est le langage lui-même, VVL, qui sait manipuler le sens.

Par défaut, une valeur VVL se comporte comme une valeur ordinaire : un texte, un nombre, une liste. Le programme reste déterministe et rapide. Lorsqu'une valeur est marquée comme sémantique, les opérateurs habituels se mettent à juger selon le sens : l'égalité devient une équivalence de sens, l'appartenance devient une inclusion de concepts, l'ordre devient une comparaison de rang.

[semanticMode "jev"]
[print ([§ "a baby penguin"] == [§ "a young penguin"])]           # 1
[print ([§ "a salmon"] in [§ "freshwater and saltwater fish"])]   # 1
[print ([§ "a colonel"] < [§ "a captain"])]                       # 0

Cette séparation est un choix de conception essentiel : la partie imprévisible du système reste petite, visible et localisée. VVL compte 21 opérateurs de ce type, une instruction qui choisit une branche selon le sens, des tables de décision, des projections sur une échelle ordonnée et des degrés de logique floue mesurés sur un texte.

Jev : un décideur rapide dont la confiance est mesurée

Jev est un modèle de décision qui ne rédige pas : il tranche. On lui soumet un texte et des questions typées, de trois formes : oui ou non, un choix parmi des options, une position sur une échelle. Il répond en une seule passe, avec une probabilité calibrée pour chaque réponse.

Nous l'utilisons comme ce que la psychologie cognitive appelle un Système 1 : un mode de décision rapide et économe. Le grand modèle de langage joue le rôle du Système 2, plus lent et plus coûteux, sollicité seulement quand Jev hésite.

Soit p la probabilité donnée par Jev et τ le seuil choisi par le métier, 0,8 par défaut.

Si p ≥ τ, la réponse est oui. Si p ≤ 1 − τ, la réponse est non. Entre les deux, la question passe au modèle de langage, puis à une personne si le doute persiste.

  1. Règle métier
  2. Jev
  3. Modèle de langage
  4. Humain

Le seuil devient ainsi un paramètre de gestion : plus il est élevé, plus les cas délicats remontent vers le modèle de langage ou vers une personne. Plusieurs questions portant sur le même texte partent en un seul appel. Chaque décision est journalisée avec le moteur qui l'a prise, sa probabilité et son temps de réponse.

Décision mesuréeRésultat
Temps d'une décision Jev0,35 à 0,45 s, dont 2 ms de traitement VAILS
Classification des questions posées au routeur16 sur 16 correctes, confiance supérieure ou égale à 0,99
Scénarios de routage de référence11 sur 13 tranchés par Jev, tous justes ; les 2 cas volontairement ambigus laissés au modèle de langage
Juge de fin de tâche d'un agent10 sur 10, environ 0,4 s
Trois décisions sur un même ticket, préchargées1 appel au lieu de 3, 0,5 s au lieu de 1,1 s

Mesures de mise au point sur de petits échantillons. Elles seront élargies à plusieurs centaines de cas par type de décision.

Modéliser plutôt que deviner

La règle centrale de notre approche tient en une phrase : chaque connaissance a sa place. La connaissance générale de l'entreprise est écrite dans une ontologie ; le modèle de langage ne fait que transcrire le cas particulier dans cette ontologie ; le raisonnement est confié au moteur symbolique.

Des ontologies compilées en logique

Une ontologie VAILS décrit des classes, des attributs typés et des relations. Elle est traduite automatiquement en clauses logiques, exécutées par un moteur de type Prolog intégré au serveur. L'héritage devient une règle : tout ce qui est un devis de chantier est aussi un devis. Une relation déclarée transitive, comme « se trouve dans », est calculée par une fermeture qui mémorise les éléments déjà visités, ce qui garantit qu'elle termine même lorsque les données contiennent des cycles.

rel(X, r, Z)    :- tc(X, r, Z, [X]).
tc(X, r, Z, _)  :- dedge(X, r, Z).
tc(X, r, Z, V)  :- dedge(X, r, Y), not(member(Y, V)), tc(Y, r, Z, [Y|V]).

Les règles d'exception s'écrivent sous l'hypothèse du monde clos : ce qui n'est ni énoncé ni déductible est considéré comme faux. Une règle comme « un client éligible et non bloqué reçoit l'offre » s'applique alors sans ambiguïté, par négation par l'échec.

Des profils types : les objets abstraits

Pour représenter un profil, un archétype ou une norme, VAILS s'appuie sur la théorie des objets abstraits du logicien Edward Zalta. Un objet concret possède des propriétés ; un objet abstrait, lui, encode les propriétés qui le définissent. Un profil « développeuse confirmée » encode une compétence, un mode de travail et un niveau. Deux profils qui encodent exactement les mêmes propriétés sont le même profil.

Comparer un candidat, un client ou un dossier à un profil donne un degré de satisfaction entre 0 et 1 : la part des propriétés encodées que l'instance possède. Les valeurs identiques ou les seuils numériques sont comparés symboliquement ; les autres paires de valeurs sont comparées par le sens, par Jev d'abord, par le modèle de langage seulement pour les paires où Jev hésite.

[semanticMode "jev"]
$rh = [ontology:define rh
    [ontology:class Candidat [attributes
        [nom String] [competence String] [remote String] [niveau String]]]
    [ontology:abstract ProfilDevConfirme : Candidat
        [encode competence "ingenieure logicielle"]
        [encode remote "teletravail complet"]
        [encode niveau "confirmee"]]]
$bob = [new Candidat [nom "Bob"] [competence "boulanger"]
                     [remote "sur site uniquement"] [niveau "apprenti"]]
[print ($bob ~~ "ProfilDevConfirme")]      # ~0.04

Des contrats et des preuves

Emprunté au génie logiciel des systèmes critiques, un contrat précise ce qui doit être vrai avant et après une opération. VVL permet d'écrire des préconditions et des postconditions, vérifiées symboliquement. Un contrat ontologique n'accepte une extraction du modèle de langage que si elle satisfait l'ontologie au-dessus d'un seuil ; sinon, l'extraction est relancée avec l'erreur constatée, puis refusée proprement. Pour la logique propositionnelle, le modèle de langage peut proposer une preuve, mais c'est un petit noyau vérificateur qui l'accepte ou la rejette.

Nous sommes précis sur ce que cela apporte : un contrat ne rend pas le modèle infaillible. Il garantit que ce qui passe a été vérifié contre des règles explicites.

Mesurer : notre banc d'essai

Pour comparer rigoureusement un modèle de langage seul et la modélisation neuro-symbolique, nous avons construit un générateur de petits mondes : des faits, des règles, des distracteurs et une question dont la réponse est oui ou non. Les noms sont inventés, pour qu'aucune connaissance préalable du modèle ne puisse l'aider.

  • Trois familles de raisonnement : relations transitives avec ou sans cycles, appartenance à des catégories emboîtées, chaînes de règles avec ou sans exceptions.
  • Une profondeur k de 1 à 6 : le nombre de phrases qu'il faut enchaîner pour répondre.
  • Des réponses de référence calculées par un raisonneur indépendant de VAILS, puis recoupées par un second calcul.
  • Le même modèle de langage, gpt-4.1, avec une température nulle, dans toutes les conditions.
Profondeur kModèle seul, réponse directeModèle seul, raisonnement pas à pasMoteur VAILS, faits exacts
197 %99 %100 %
287 %95 %100 %
375 %88 %100 %
469 %86 %100 %
564 %84 %100 %
660 %82 %100 %
Ensemble74 %88 %100 %

2 800 questions pour le modèle seul. Moteur VAILS : 332 mondes, dont 280 rejoués en deux sessions simultanées sur un serveur VAILS en service.

Les règles d'exception sont le point le plus faible du modèle seul : même en raisonnant pas à pas, il ne répond juste qu'à 72 % de ces questions. Il cite les bonnes phrases, puis conclut qu'on ne peut pas savoir, au lieu d'appliquer l'hypothèse du monde clos énoncée dans le texte.

Sur la chaîne complète, où le modèle de langage extrait les faits et où VAILS raisonne, un premier pilote de 52 questions donne 98 % de bonnes réponses, contre 65 % et 87 % pour le modèle seul sur les mêmes questions. Toutes les erreurs restantes viennent de l'extraction et sont mesurées séparément. La campagne complète est en cours.

Ce que nous avons appris

Quand on laisse la connaissance générale dans le texte transmis au modèle d'extraction, celui-ci se met à raisonner à la place du moteur. Informé qu'une relation est transitive, notre extracteur a produit 369 déductions non demandées sur 52 cas, malgré une consigne explicite de ne rien déduire. Retirer cette connaissance du texte et la placer dans l'ontologie a fait disparaître le problème. C'est l'argument central de la modélisation : chaque connaissance a sa place, et le modèle de langage n'a plus rien à inventer.

Le même banc d'essai, rejoué en sessions simultanées, nous a aussi permis de détecter et de corriger un défaut d'isolation entre sessions dans le serveur. Mesurer n'est pas seulement démontrer : c'est aussi le meilleur moyen de fiabiliser le système.

Ce que cela change pour la gestion de l'entreprise

Une règle de gestion écrite en VVL reste lisible par le métier. Voici un routeur de demandes clients : trois décisions typées, confiées à Jev en un seul appel, et une branche d'escalade vers une personne lorsque rien ne correspond.

[semanticMode "jev"]
$route = [match [§ $ticket]
    `[[§ "urgent, time-critical"]  [§ "Payments, invoicing, refunds"]]  "on-call billing"
    `[[§ "urgent, time-critical"]  [§ "Bugs, outages, integrations"]]   "on-call technical"
    `[_                            ?team]                               ("queue " + $__team)
    "human escalation"]

Relation client

Routage des demandes, urgence, humeur du client, détection du spam et de la fraude, escalade.

Documents

Extraction guidée par un schéma, classement, contrôle de cohérence avant tout traitement.

Devis et tarifs

Application exacte des règles tarifaires modélisées dans une ontologie, sur des centaines de devis.

Qualification

Comparaison de candidats, de clients ou de dossiers à des profils types, avec un degré de satisfaction.

Limites et travaux en cours

Nous préférons dire précisément où nous en sommes.

  • Souveraineté : le modèle de langage est aujourd'hui appelé chez un fournisseur externe, et Jev est servi par Cloudflare. Nous travaillons à pouvoir exécuter ces deux étages dans le périmètre du client.
  • Traçabilité de bout en bout : chaque décision est journalisée, mais le chemin complet, de la source jusqu'à la conclusion et à la règle qui la justifie, reste à assembler.
  • Mesures élargies : la campagne complète de la chaîne neuro-symbolique et des échantillons plus larges pour Jev sont en cours.
  • Échecs explicites : quand un moteur externe ne répond pas, la décision doit échouer de façon visible plutôt que rendre un score trompeur.

Références

  • Kahneman, D. Thinking, Fast and Slow, 2011.
  • Zalta, E. N. Abstract Objects: An Introduction to Axiomatic Metaphysics, 1983.
  • Meyer, B. Applying Design by Contract, IEEE Computer, 1992.
  • Garcez, A. d'A. et Lamb, L. C. Neurosymbolic AI: the 3rd wave, Artificial Intelligence Review, 2023.
  • Dinu, M.-C. et al. SymbolicAI: a framework for logic-based approaches combining generative models and solvers, CoLLAs 2024.
  • Règlement (UE) 2024/1689 sur l'intelligence artificielle, articles 12 à 14.

Appliquer ces travaux à vos processus ?

Le diagnostic part de votre fonctionnement réel et identifie les décisions qui peuvent être confiées à l'IA.

Discuter avec nous sur WhatsApp