1 points par GN⁺ 2025-03-24 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Scallop est un langage déclaratif conçu pour intégrer un raisonnement symbolique fondé sur des règles logiques dans des applications d’IA, basé sur Datalog, un langage de requête pour bases de données relationnelles
  • Son solveur prend en charge le raisonnement discret, probabiliste et différentiable, ce qui permet de choisir l’approche la plus adaptée aux besoins de l’application
  • Grâce à des liaisons Python, il est possible d’intégrer un module de raisonnement logique dans un programme et de l’associer aux pipelines de machine learning PyTorch existants
  • L’approche consiste à combiner, dans des tâches de vision et de NLP, des composants neuronaux produits par un CNN ou un Transformer avec des composants de règles logiques
  • Des exemples end-to-end sont fournis pour apprendre conjointement des composants neuronaux et des règles, comme le raisonnement visuel CLEVR, la détection de connectivité Pathfinder ou l’évaluation d’expressions manuscrites

Composants clés de Scallop

  • Language

    • Scallop est un langage déclaratif destiné à traiter le raisonnement symbolique dans des applications d’IA
    • Il repose sur Datalog, un langage de requête fondé sur des règles logiques pour les bases de données relationnelles
  • Solver

    • Scallop est un solveur Datalog extensible
    • Il prend en charge les modes de raisonnement discret, raisonnement probabiliste et raisonnement différentiable
    • Chaque mode peut être configuré selon les exigences de différentes applications d’IA
  • Framework

    • Il fournit des liaisons permettant d’utiliser des modules de raisonnement logique dans des programmes Python
    • Il peut s’intégrer en profondeur à des pipelines de machine learning PyTorch existants

Exemples d’applications

  • CLEVR est une tâche de raisonnement visuel qui répond à des questions sur de simples objets 3D dans une image, comme « combien y a-t-il d’objets bleus ? »
    • Un composant neuronal génère un graphe de scène (scene graph) de l’image ainsi qu’une requête programmatique (programmatic query) représentant la question
    • Le composant de raisonnement définit, via des règles logiques, des opérations de sélection, de comparaison et de comptage des objets selon les propriétés indiquées
    • Scallop permet d’intégrer ces composants dans un cadre commun et d’effectuer un apprentissage end-to-end
  • Pathfinder est une tâche de raisonnement de connectivité à longue portée consistant à déterminer, dans une image noir et blanc contenant deux points et une ligne en pointillés, si ces deux points sont reliés par la ligne
    • Elle peut être construite avec une architecture neuronale simple qui détecte les points et les segments, ainsi qu’avec quelques lignes de règles logiques Scallop
    • Les règles proposées utilisent dash(x, y) comme chemin, puis relient récursivement path(x, z), dash(z, y) pour déterminer is_connected()
    • Cette configuration obtient de meilleures performances que les Transformer de pointe
  • L’évaluation d’expressions manuscrites consiste à reconnaître une séquence de symboles manuscrits composée de chiffres de 0 à 9 et d’opérations arithmétiques simples, puis à calculer l’expression
    • L’exemple prend 1 + 3 / 5 en entrée et calcule la valeur de sortie 1.6
    • Avec Scallop, on peut construire un parseur de grammaire hors contexte complet capable d’analyser des entrées probabilistes
    • Le parseur et l’évaluateur peuvent être écrits en 5 lignes de code Scallop
    • Ce programme peut être entraîné de bout en bout avec un modèle neuronal de reconnaissance de symboles individuels ; après l’apprentissage, il trouve l’expression la plus probable et renvoie le résultat de son évaluation

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.