Definition Was ist DSPy?

Von Dipl.-Ing. (FH) Stefan Luber 3 min Lesedauer

Anbieter zum Thema

DSPy ist ein Framework zur systematischen und algorithmischen Optimierung von Eingabeaufforderungen und Gewichtungen großer Sprachmodelle. Dank DSPy lassen sich große Grundlagenmodelle in KI-Anwendungspipelines integrieren. Anstatt Modelle mit traditionellem Prompting anzusteuern, werden sie quasi programmiert.

(Bild:  © aga7ta - stock.adobe.com)
(Bild: © aga7ta - stock.adobe.com)

DSPy ist ein Framework zur systematischen und algorithmischen Optimierung der Eingabeaufforderungen und der Gewichtungen von KI-Grundlagenmodellen wie großen Sprachmodellen oder Retrieval-Modellen. Das Kürzel DSPy steht für „Declarative Self-improving Language Programs, pythonically“. Die Entwickler haben das Framework selbst mit dem Untertitel „The framework for programming-not prompting-foundation models“ versehen. Das Framework ist für die Entwicklung von KI-Systemen beziehungsweise Anwendungspipelines gedacht, in denen Sprachmodelle wiederholt zum Einsatz kommen sollen.

Entwickelt wurde das Framework von Stanford NLP. DSPy eröffnet neue Möglichkeiten in der programmierzentrischen Einbindung von großen Sprachmodellen. Traditionelle Prompting-Techniken werden durch einen auf einer strukturierten Programmierung basierenden Ansatz ersetzt. Das Framework stellt Techniken und Methoden für ein systematisches Prompting und Finetuning von Modellen in Python-Syntax bereit. Anstatt Sprachmodelle direkt über Prompting anzusteuern, werden sie quasi programmiert.

Das Framework unterstützt verschiedene LM- und RM-APIs. Auch lokal gehostete Modelle lassen sich integrieren. So ist DSPy beispielsweise mit den Sprachmodellen GPT-3, GPT-4, T5 und Llama 2 nutzbar. Das Framework integriert die Modelle in eigene KI-Systeme und optimiert die Qualität und Genauigkeit der Ausgaben. DSPy ist unter MIT-Lizenz frei verfügbar und kann über GitHub heruntergeladen werden.

Motivation für die Entwicklung von DSPy

Die Einbindung von KI-Grundlagenmodellen wie LLMs in eigene KI-Systeme und KI-Programme ist ein aufwendiger und mühsamer Prozess. Die Problem- oder Aufgabenstellungen müssen zunächst in einzelne Schritte zerlegt werden. Anschließend sind für jeden Schritt geeignete Eingabeaufforderungen zu erstellen. Die einzelnen Schritte müssen optimal zusammenarbeiten und benötigen passende Beispiele, um die Modelle und ihre Gewichtungen feinabzustimmen. Jedes Mal, wenn sich Daten, Modelle oder Pipelines ändern, benötigen die Eingabeaufforderungen der einzelnen Schritte entsprechende manuelle Anpassungen und Überarbeitungen. Das erfordert viel Zeit und ist fehleranfällig.

DSPy versucht dieses Problem durch einen Programmieransatz zu lösen. Er gestattet es, Eingabeaufforderungen und Gewichtungen systematisch und algorithmisch zu optimieren und komplette Pipelines dynamisch zu rekompilieren. Optimierungsprozesse können automatisiert werden und die Ausgaben der Modelle werden ohne manuelle Prompt-Anpassungen verbessert. So können robuste und zuverlässige KI-Systeme entstehen.

Die Komponenten des DSPy-Programmiermodells

DSPy basiert auf einem strukturierten, programmierzentrischen Ansatz. Das Programmiermodell besteht aus drei grundlegenden Komponenten. Diese drei Komponenten sind:

  • Signatures
  • Modules
  • Optimizers (auch als Teleprompters bezeichnet)

Aufgabe der Signatures ist es, das Prompting und Finetuning der Modelle zu abstrahieren. Die Signatures spezifizieren das erwartete Input- und Output-Verhalten der Module. Sie beschreiben, was über die Texttransformation eines Modells erreicht werden soll: zum Beispiel die Eingabe einer Frage und der Erhalt einer Antwort.

Die Module sorgen für die Abstrahierung der Prompting-Strategien und -Techniken. Sie dienen dazu, die Signaturen durch die Anwendung von Aufforderungs-, Feinabstimmungs-, Erweiterungs- und Argumentationsmethoden für die jeweilige Aufgabe anzupassen. Ein Beispiel hierfür ist das Chain-of-Thought-Modul, das die Prompting-Technik der Gedankenkette (Chain-of-Thought) abstrahiert und anwendet. Die Module lassen sich einzeln verwenden, aber auch miteinander kombinieren. Dadurch wird die Realisierung komplexer Pipelines oder Programme möglich, die mithilfe der Sprachmodelle spezifische Problemstellungen lösen.

Aufgabe der Optimierer ist es, die Module einer Pipeline zu optimieren, um eine vorgegebene Metrik zu maximieren. Das DSPy-Framework stellt eine ganze Reihe von Optimierern zur Verfügung. Jeder Optimierer benötigt drei Komponenten: das DSPy-Programm, bestehend aus einem oder mehreren miteinander kombinierten Modulen, die zu maximierende Metrik (eine Funktion, die der Programmausgabe einen Score zuweist) und einen Satz von Trainingsbeispielen. Die Optimierer maximieren die Metrik eines Programms, indem sie die Eingabeaufforderungen und die Gewichtungen der Modelle aktualisieren. So lassen sich hochwertige Ergebnisse erzielen und domänenspezifische Anforderungen einhalten.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Beispielhafter Workflow für die Anwendung des DSPy-Frameworks

Ein beispielhafter Workflow für die Anwendung des DSPy-Frameworks für eine spezifische Aufgabenstellung könnte folgendermaßen aussehen:

  • 1. Definition der Aufgabenstellung
  • 2. Definition der zu optimierenden Metrik
  • 3. Vorbereitung von Ein- und Ausgabebeispielen (zum Beispiel Frage-/Antwortpaare)
  • 4. Erstellen des Programms mit den entsprechenden Modulen, Signatures und der Pipeline-Logik
  • 5. Anwendung der DSPy-Optimierer und Kompilierung des Programms
  • 6. Iterative Verfeinerung des Programms, der Daten und der Validationslogik

Vorteile durch DSPy

Die Verwendung des DSPy-Frameworks bringt einige Vorteile mit sich. Es lassen sich robuste und zuverlässige KI-Systeme und KI-Anwendungen erstellen, mit denen sich auch komplexe und schwierige Aufgabenstellungen lösen lassen. DSPy verbessert die Qualität und Genauigkeit der Ausgaben der verwendeten Grundlagenmodelle. Eingabeaufforderungen müssen nicht mehr manuell erstellt oder angepasst werden, sondern lassen sich dank des systematischen und algorithmischen Ansatzes programmieren und automatisiert optimieren. In die KI-Systeme können verschiedene sowohl lokal betriebene als auch gehostete LLMs mit wenig Aufwand integriert werden. Die benötigten APIs stehen zur Verfügung.

(ID:50078679)