Sprachmodelle, wie ChatGPT, sind in der Tech-Community und der öffentlichkeit mittlerweile sehr bekannt. Nutzer:innen interagieren mit solchen Sprachmodellen, indem sie ihre Anweisungen und Fragen in natürlicher Sprache formulieren. Dafür benötigen die Nutzenden keine Programmierkenntnisse.
Diese Interaktionen funktionieren in bestimmten Fällen gut und führen zu einem gewünschten Ergebnis. In manchen Situationen versteht das Sprachmodell allerdings den Befehl nicht und die generierte Antwort fällt unerwartet oder unbefriedigend aus. In einem solchen Fall, stellen Nutzer:innen gleich eine weitere Anfrage, um die gewünschte Antwort zu erhalten. ChatGPT versucht daraufhin die Fehler zu korrigieren und seine Ausgabe anzupassen. Ein Sprachmodell so zu verwenden, ist jedoch unsystematisch, willkürlich und es kann einige Zeit dauern, bis das angestrebte Resultat die Nutzenden zufriedenstellt.
Um dieses Problem zu lösen, haben Forscher nun eine neue Programmiersprache und Open-Source-Plattform namens LMQL (Language Model Query Language) entwickelt. LMQL erlaubt es, die Interaktion mit grossen Sprachmodellen wie ChatGPT zu erweitern und besser zu kontrollieren. LMQL ist eine neue Art des Programmierens und eine neue Form der Interaktion zwischen Computer und Mensch, da Nutzer:innen direkt mit dem Computer interagieren und ihn instruieren.
LMQL ist die erste Sprache, welche die Fähigkeiten von natürlichen Sprachen und Programmiersprachen kombiniert, um bestmöglich mit grossen Sprachmodellen wie ChatGPT zu kommunizieren. Für einfache Abfragen reicht es aus, ChatGPT mit natürlicher Sprache zu bedienen. Für komplexere und spezifischere Aufgaben, wie die Erstellung einer Datenbank oder die Analyse von Daten, ist es jedoch unerlässlich, dem Sprachmodell exakte Anweisungen zu geben. Daher wird der Formalismus von Programmiersprachen benötigt, um das Sprachmodell mit formalen Konstrukten genau zu steuern und sicherzustellen, dass Nutzer:innen die gewünschte Antwort erhalten. Martin Vechev, Professor für Computerwissenschaften und einer der Entwickler, präzisiert: «Im Grunde ermöglicht LMQL einen viel gezielteren Weg, um das Resultat zu bekommen, das man möchte. Durch die Senkung der erforderlichen Interaktionen zwischen User:in und Sprachmodell können auch die Kosten für die Austauschprozesse gesenkt werden. Die Verwendung von LMQL erhöht die Chancen, die gewünschte Ausgabe zu erhalten. Manchmal kann sogar erst die Verwendung von LMQL dazu führen, ein gewünschtes Resultat zu erhalten, weil man seine Anfrage dadurch genauer formulieren kann.»
Ein entscheidender Vorteil
Die Datensätze, mit denen grosse Sprachmodelle trainiert werden und auf denen sie basieren, sind so umfangreich, dass Nutzer:innen nicht mehr kontrollieren und nachvollziehen können, welche Prozesse sich innerhalb eines Modells abspielen. Aus diesem Grund liefern die Modelle mitunter ungewünschte oder kontroverse Ergebnisse. Den Forschern zufolge liegt eines der Hauptprobleme darin, dass die User:innen nicht verstehen, warum ein bestimmtes Ergebnis generiert wurde und wie sie dieses unerwünschte Resultat vermeiden können.LMQL ermöglicht es dem Nutzenden Sicherheitseinschränkungen zu formulieren. Diese tragen dazu bei, das Modell in die richtige Richtung zu lenken und es von unerwünschten oder unerwarteten Ergebnissen fernzuhalten. «Mit LMQL kann man das Sprachmodell so einschränken, dass es sich strikt in einem vorgegebenen Rahmen bewegt. Dadurch können Nutzer:innen besser kontrollieren, wie sich das Sprachmodell verhält. Natürlich ist es schwierig, unerwünschte Verhaltensweisen vollständig zu vermeiden, aber LMQL macht einen Schritt in diese Richtung», sagt Luca Beurer-Kellner, der an der Entwicklung der neuen Programmiersprache mitgearbeitet hat. Die Programmiersprache LMQL ermöglicht es dem Benutzenden beispielsweise bestimmte Wörter auszuschliessen oder hindert das Modell daran, gewisse Argumentationsprozesse zu durchlaufen.
Transparenz ist entscheidend
Viele Unternehmen entwickeln ihre grossen Sprachmodelle hinter verschlossenen Türen. Dadurch werden die Modelle intransparent. Nutzer:innen können nicht mehr nachvollziehen, weshalb sie einen bestimmten Output erhalten haben. Um dem entgegenzuwirken, muss die Wissenschaft laut den Forschern Open-Source-Tools wie LMQL entwickeln, die transparent, offen zugänglich und adaptierbar sind. Marc Fischer, der die neue Programmiersprache mitentwickelt hat, erklärt: «Sowohl für die Tech-Community als auch für ein technisch nicht versiertes Publikum ist es entscheidend, dass der Quellcode von LMQL offen und frei zur Verfügung steht, damit die Nutzenden keine weitere Blackbox vor sich haben. Da die Forschung an Sprachmodellen rasant voranschreitet, ist es wichtig, dass LMQL transparent ist und somit eine schnelle Weiterentwicklung ermöglicht.»Ein Werkzeug auch für weniger versierte Nutzer:innen
LMQL ist vom syntaktischen Aufbau her eine deklarative, SQL-ähnliche Programmiersprache, die weniger Fachkenntnisse erfordert, um die gewünschten Ergebnisse zu erhalten. Sie ist somit ein innovatives Werkzeug für Forschende verschiedener Disziplinen. «Wenn Sie nicht ernsthaft am Programmieren interessiert sind oder keine Zeit dazu haben, weil es nicht zu den Kernbereichen Ihrer Tätigkeit gehört, dann macht LMQL die präzise Interaktion mit grossen Sprachmodellen leicht verständlich und wesentlich zugänglicher», erklärt Beurer-Kellner.Darüber hinaus kann LMQL als hilfreiche Grundlage für programmiererfahrene Nutzer:innen und Experten dienen, da der Abfrage in natürlicher Sprache verschiedene Programmierkonstrukte hinzugefügt werden können. Versierte Programmierer:innen können LMQL als Baustein verwenden und damit ihre eigenen Programme für die Interaktion mit grossen Sprachmodellen schreiben.
Das Interesse an LMQL wächst. Es hat sich bereits eine interdisziplinäre Community rund um die neue Programmiersprache gebildet. Die Forscher sehen LMQL als ein langfristiges Vorhaben an und planen bereits Folgeprojekte und Veröffentlichungen weiterer Artikel. Sie wurden ausserdem eingeladen, ihre Arbeit im Juni auf einer der wichtigsten internationalen Konferenzen zum Thema Design und Implementierung von Programmiersprachen zu präsentieren.