Logische Programmierung mit modernen Sprachmodellen kombinieren

2025-01-22

Logische Programmierung mit modernen Sprachmodellen kombinieren

Eine Untersuchung zur Integration von Prologs logischen Schlussfolgerungsfähigkeiten mit modernen Sprachmodellen zur Verbesserung der Regelkonsistenz und des Wissensmanagements.

Kürzlich habe ich mich mit einer Idee beschäftigt, die mir schon länger im Kopf herumging: Was wäre, wenn wir “altmodische” logische Programmierung mit modernen Sprachmodellen kombinieren könnten? Hier ist, was ich versucht habe und was ich dabei gelernt habe.

Der Ausgangspunkt

Stellen Sie sich vor, Sie haben ein Unternehmensdokument mit folgenden Richtlinien:

“Unser Unternehmen bietet eine umfassende Reisekostenrichtlinie, um eine faire Erstattung bei gleichzeitiger Kostenkontrolle zu gewährleisten. Mitarbeiter können die Erstattung notwendiger Geschäftsreisekosten beantragen. Economy-Class-Flüge sind Standard für Reisen unter 6 Stunden, während Business-Class für längere Flüge erlaubt ist. Hotelunterkünfte sollten in Großstädten 200 $ pro Nacht und an anderen Orten 150 $ nicht überschreiten. Das tägliche Essensgeld beträgt 75 $ in Großstädten und 50 $ an anderen Orten.

Die Firmenwagenrichtlinie erlaubt Managern und leitenden Mitarbeitern, Fahrzeuge über unser Unternehmensprogramm zu leasen. Junior Manager qualifizieren sich für Fahrzeuge bis zu einem Wert von 35.000 $, während Senior Manager Fahrzeuge bis zu 50.000 $ wählen können. Abteilungsleiter und Führungskräfte können Fahrzeuge bis zu 75.000 $ wählen. Alle Fahrzeuge müssen alle 4 Jahre oder bei 100.000 Meilen ersetzt werden, je nachdem, was zuerst eintritt.

Unsere Urlaubsrichtlinie gewährt allen Mitarbeitern jährlich 20 Tage bezahlten Urlaub. Nach jedem Dienstjahr erhalten die Mitarbeiter einen zusätzlichen Urlaubstag bis zu einem Maximum von 30 Tagen pro Jahr. Mitarbeiter müssen mindestens 10 Urlaubstage pro Jahr nehmen und können bis zu 5 nicht genutzte Tage ins nächste Jahr übertragen. Für langjährige Mitarbeiter mit über 10 Jahren Betriebszugehörigkeit können Sonderregelungen für längere Auszeiten in Betracht gezogen werden.”

Wenn Sie mit Sprachmodellen gearbeitet haben, wissen Sie, dass sie sehr gut darin sind, solche Texte zu verstehen. Aber sie können manchmal inkonsistent sein, wenn Sie detaillierte Fragen zu Regeln und Richtlinien stellen. In einem Moment sagen sie vielleicht, das Fahrzeuglimit für Junior Manager beträgt 35.000 $, im nächsten 50.000 $.

Ein Blast from the Past: Enter Prolog

Hier kam mir Prolog in den Sinn, ein faszinierendes Stück KI-Geschichte. In den 1970er und 80er Jahren, als Forscher erstmals versuchten, Computer zum “Denken” zu bringen, entwickelten sie Prolog als Teil dessen, was wir heute symbolische KI nennen. Die Idee war einfach, aber wirkungsvoll: Anstatt wie moderne KI mit riesigen Datenmengen trainiert zu werden, arbeiteten diese Systeme mit expliziten Regeln und Logik.

Denken Sie bei Prolog an einen sehr wörtlich nehmenden Detektiv. Sie geben ihm Fakten wie “Sokrates ist ein Mensch” und Regeln wie “alle Menschen sind sterblich”, und er findet methodisch heraus, dass “Sokrates sterblich ist”. Das Besondere daran war seine Fähigkeit, diese logischen Schritte automatisch miteinander zu verketten. In seiner Blütezeit trieb Prolog alles an, von medizinischen Diagnosesystemen bis hin zu Unternehmenswissensbasen.

Bei der Betrachtung heutiger Sprachmodelle fiel mir auf, dass sie manchmal genau dort Schwierigkeiten haben, wo Prolog gut war - bei der durchgängig konsistenten Anwendung von Regeln. Während ChatGPT Ihnen bei jeder Anfrage möglicherweise leicht unterschiedliche Antworten zu Unternehmensrichtlinien gibt, würde Prolog Ihnen jedes Mal die exakt gleiche Antwort geben - solange sich die Regeln nicht geändert haben.

Das brachte mich zum Nachdenken: Was wäre, wenn wir das Beste aus beiden Welten kombinieren könnten? Sprachmodelle für ihre erstaunliche Fähigkeit, menschlichen Text zu verstehen, aber die logische Argumentation an Prolog übergeben? Es wäre, als würden wir unserem KI-System sowohl Intuition als auch Logik geben.

Das Experiment

Ich schrieb ein Python-Programm, das mehrere Dinge tut:

  • Nimmt Richtliniendokumente auf
  • Verwendet ein Sprachmodell, um die Richtlinien in Prolog-Fakten und -Regeln umzuwandeln
  • Speichert diese in einer Prolog-Wissensbasis
  • Ermöglicht es, Fragen zu stellen, die mit diesem Wissen beantwortet werden

Die Ergebnisse waren interessant. Das System meldete konsistent das Fahrzeugwertlimit für Senior Manager als 75.000 $ und erkannte Inkonsistenzen im Richtliniendokument, wie zwei verschiedene Fahrzeugwertlimits für Junior Manager (35.000 $ und 50.000 $). Bei Urlaubsberechnungen implementierte und wendete es Regeln wie den 25-Tage-Anspruch nach 5 Dienstjahren korrekt an und erstellte bei Bedarf sogar Regeln spontan.

Wichtige Erkenntnisse und Herausforderungen

Der Aufbau dieses experimentellen Systems offenbarte mehrere interessante Einblicke in die Kombination von logischer Programmierung mit moderner KI:

Die Übersetzungsherausforderung

Eine der faszinierendsten Herausforderungen war es, das Sprachmodell dazu zu bringen, natürliche Sprache zuverlässig in Prolog-Regeln umzuwandeln. Während LLMs gut darin sind, Richtliniendokumente zu verstehen, haben sie manchmal Schwierigkeiten mit der für logische Programmierung erforderlichen Präzision. Es ist, als würde man jemanden bitten, Poesie in Mathematik zu übersetzen - die Bedeutung muss exakt gleich bleiben, aber die Sprachen funktionieren sehr unterschiedlich.

Der Konsistenz-Kompromiss

Die Verwendung von Prolog als Wissensspeicher half bei der Aufrechterhaltung der Konsistenz - wenn eine Regel definiert war, wurde sie jedes Mal auf die gleiche Weise angewendet. Dies ging jedoch mit einem Kompromiss einher: Wir verloren etwas von der Flexibilität, die Sprachmodelle so leistungsfähig macht. Während das System Ihnen zuverlässig sagen konnte, dass das Fahrzeugbudget eines Junior Managers genau 35.000 $ beträgt, könnte es bei ungenauen Fragen wie “Was ist ein angemessenes Auto für einen Junior Manager?” Schwierigkeiten haben.

Das Verifikationsproblem

Eine überraschende Entdeckung war, wie wichtig die Überprüfung wurde. Wenn Sie es mit Regeln zu tun haben, die auf komplexe Weise interagieren können, müssen Sie nicht nur überprüfen, dass jede Regel korrekt ist, sondern auch, dass sie alle zusammen korrekt funktionieren. Das System erkannte widersprüchliche Fahrzeugwertlimits, die in einem traditionellen Dokument möglicherweise unbemerkt geblieben wären.

Zeit- und Performance-Erkenntnisse

Die Performance erwies sich als kniffliger als erwartet. Während Prolog blitzschnell bei der Anwendung von Regeln ist, schuf der ständige Austausch zwischen dem Sprachmodell, Python und Prolog einige interessante Herausforderungen. Es ist eine Erinnerung daran, dass die Kombination verschiedener Technologien immer mit Integrationskosten verbunden ist.

Die Evolution der Fehlerbehandlung

Vielleicht die praktischste Erkenntnis betraf die Fehlerbehandlung. Prologs traditionelle Fehlermeldungen sind berüchtigt kryptisch, und Sprachmodelle können übermäßig selbstbewusst sein. Ich musste einen völlig neuen Ansatz entwickeln, um Fehler so zu erklären, dass sie für Benutzer verständlich sind.

Was ich gelernt habe

Dieses Experiment zeigte einige interessante Möglichkeiten auf. Das Sprachmodell ist hervorragend darin, die natürlichsprachlichen Richtlinien zu verstehen und in logische Regeln umzuwandeln. Prolog ist großartig darin, diese Regeln konsistent anzuwenden und Konflikte zu erkennen.

Aber es ist nicht alles perfekt. Manchmal hat das Sprachmodell Schwierigkeiten, komplexe Richtlinien in Prolog-Regeln umzuwandeln. Und Prolog kann recht starr sein - es benötigt sehr präzise formulierte Regeln. Dies kann jedoch gemildert werden, indem man entweder ein Modell für die Verwendung von Prolog feinabstimmt oder ihm mehr Kontext über Prolog-Programmierung gibt.

Wohin es gehen könnte

Ich denke, dieser hybride Ansatz - die Kombination verschiedener KI-Techniken - ist es wert, weiter erforscht zu werden. Es geht nicht darum, moderne KI durch ältere Ansätze zu ersetzen, sondern darum, nützliche Wege zu finden, sie zu kombinieren.

Einige Ideen für die Weiterentwicklung:

  • Einfachere Aktualisierung von Regeln bei Richtlinienänderungen
  • Hinzufügen einer einfachen Weboberfläche für nicht-technische Benutzer
  • Umgang mit komplexeren Richtlinienszenarien
  • Verbesserung der Umwandlung von Text in Prolog-Regeln durch das Sprachmodell

Abschließende Gedanken

Dieses Experiment ist Teil einer breiteren Untersuchung, die ich zum Wissensmanagement für Sprachmodelle durchführe. Wir haben den Aufstieg von RAG-Systemen erlebt, die LLMs helfen, auf große Dokumentensammlungen zuzugreifen und darüber zu argumentieren. Wir haben mit Vektordatenbanken gearbeitet, die semantisch ähnliche Inhalte finden können. Wir haben sogar hybride Ansätze mit SQL-Datenbanken für strukturierte Datenabfragen gesehen.

Aber es gibt etwas einzigartig Interessantes an der Verwendung von Prolog hier. Anders als diese anderen Ansätze speichert und ruft Prolog nicht nur Informationen ab - es kann aktiv mit logischen Regeln darüber argumentieren. Dieses Experiment deutet darauf hin, dass es möglicherweise einen Platz für logische Reasoning-Engines neben unseren modernen einbettungsbasierten Retrievalsystemen gibt.

Vielleicht geht es bei der Zukunft der KI nicht nur darum, größere Modelle oder bessere Einbettungen zu bauen. Vielleicht geht es auch darum, Werkzeuge aus der KI-Vergangenheit wiederzuentdecken und neu zu nutzen, neue Wege zu finden, symbolische und neuronale Ansätze zu kombinieren. Schließlich kombiniert auch die menschliche Intelligenz viele verschiedene Arten des Denkens - warum sollte künstliche Intelligenz das nicht auch tun?

Ich würde gerne von anderen hören, die am Wissensmanagement für LLMs arbeiten. Haben Sie experimentiert mit der Kombination verschiedener Ansätze? Welche anderen Werkzeuge aus der KI-Geschichte verdienen einen zweiten Blick im Zeitalter der großen Sprachmodelle? Lassen Sie uns diese Möglichkeiten gemeinsam weiter erforschen.