1 Punkte von GN⁺ 2025-03-24 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Scallop ist eine deklarative Sprache, um symbolisches Schließen auf Basis logischer Regeln in AI-Anwendungen einzubetten, und basiert auf Datalog, einer Abfragesprache für relationale Datenbanken
  • Der Solver unterstützt diskretes, probabilistisches und differenzierbares Schließen, sodass je nach Anforderungen der Anwendung die passende Inferenzmethode gewählt werden kann
  • Über Python-Bindings lassen sich Module für logisches Schließen in Programme einbetten und in bestehende Machine-Learning-Pipelines mit PyTorch integrieren
  • Bei Vision- und NLP-Aufgaben werden neuronale Komponenten, die von CNNs oder Transformers erzeugt werden, gemeinsam mit Komponenten für logische Regeln kombiniert
  • Es werden End-to-End-Beispiele bereitgestellt, bei denen neuronale Komponenten und Regeln gemeinsam trainiert werden, etwa CLEVR für visuelles Schließen, Pathfinder zur Bestimmung von Konnektivität und die Auswertung handgeschriebener Formeln

Kernbestandteile von Scallop

  • Language

    • Scallop ist eine deklarative Sprache für symbolisches Schließen in AI-Anwendungen
    • Die Grundlage ist Datalog, eine auf logischen Regeln basierende Abfragesprache für relationale Datenbanken
  • Solver

    • Scallop ist ein erweiterbarer Datalog-Solver
    • Er unterstützt Modi für diskretes Schließen, probabilistisches Schließen und differenzierbares Schließen
    • Jeder Inferenzmodus kann auf unterschiedliche Anforderungen von AI-Anwendungen abgestimmt werden
  • Framework

    • Scallop stellt Bindings bereit, mit denen sich Module für logisches Schließen in Python-Programmen nutzen lassen
    • Es lässt sich tief in bestehende Machine-Learning-Pipelines mit PyTorch integrieren

Beispielanwendungen

  • CLEVR ist eine Aufgabe zum visuellen Schließen, bei der Fragen wie „Wie viele blaue Objekte gibt es?“ zu einfachen 3D-Objekten in Bildern beantwortet werden
    • Eine neuronale Komponente erzeugt einen Scene Graph des Bildes und eine programmatische Query, die die Frage repräsentiert
    • Die Inferenzkomponente spezifiziert Operationen wie Auswählen, Vergleichen und Zählen von Objekten anhand vorgegebener Attribute als logische Regeln
    • Scallop integriert diese Komponenten in ein gemeinsames Framework und ermöglicht End-to-End-Training
  • Pathfinder ist eine Aufgabe zum Schließen über weitreichende Konnektivität, bei der in einem Schwarz-Weiß-Bild mit zwei Punkten und gestrichelten Linien entschieden wird, ob die beiden Punkte durch gestrichelte Linien verbunden sind
    • Sie lässt sich mit einer einfachen neuronalen Architektur zum Erkennen von Punkten und Strichen sowie wenigen Zeilen logischer Regeln in Scallop aufbauen
    • Die gezeigten Regeln behandeln dash(x, y) als Pfad und verbinden rekursiv path(x, z), dash(z, y), um is_connected() zu bestimmen
    • Diese Konfiguration erzielt eine höhere Leistung als aktuelle Transformers
  • Die Auswertung handgeschriebener Formeln ist eine Aufgabe, bei der Sequenzen handgeschriebener Symbole aus Ziffern von 0 bis 9 und einfachen arithmetischen Operationen erkannt und die Ausdrücke berechnet werden
    • Das Beispiel betrachtet 1 + 3 / 5 als Eingabe und berechnet den Ergebniswert 1.6
    • Mit Scallop lässt sich ein vollständiger kontextfreier Grammatik-Parser erstellen, der probabilistische Eingaben parsen kann
    • Parser und Evaluator können in 5 Zeilen Scallop-Code geschrieben werden
    • Dieses Programm kann gemeinsam mit einem neuronalen Modell zur Erkennung einzelner Symbole End-to-End trainiert werden und findet nach dem Training den wahrscheinlichsten Ausdruck und gibt dessen Auswertung zurück

Noch keine Kommentare.

Noch keine Kommentare.