Heute mache ich mal Tag 8 und 9 zusammen, da es mir doch etwas wenig erscheint, einfach nur ein Datensatz zu erstellen und ihn nicht zu benutzen. Dafür habe ich dann morgen frei 🙂 – Los geht’s. Anstatt Prompts manuell zu verfeinern, nutzt DSPy sogenannte „Teleprompter“, um diese Aufgabe automatisiert durchzuführen. Die Grundlage für jede dieser Optimierungen ist ein Datensatz, der aus Beispielen besteht mit denen die Prompts optimiert werden. Die Rolle von Beispieldaten (dspy.Example) In DSPy ist ein Datenpunkt kein einfacher Text-String oder ein Dictionary, sondern ein strukturiertes Objekt vom Typ dspy.Example. Ein dspy.Example kapselt alle zu einem Datenpunkt gehörenden Informationen, wie Eingabefelder (z. B. eine Frage) und Ausgabefelder (z. B. die erwartete Antwort). Diese strukturierten Beispiele erfüllen zwei…
Kommentare geschlossenjentsch.io Beiträge
Wenn man die Zahl 1.000.000 hört, denkt man meist an Euro auf dem Bankkonto oder Klicks auf YouTube. Aber es gibt eine Währung, die man nicht sparen kann, sondern die man ausgeben muss, um reicher zu werden: Kalorien. Heute werfe ich einen Blick zurück auf einen Zeitraum, der am 1. Januar 2017 begann und bis heute, in den 16. Dezember 2025, reicht. Ein Blick auf mein Polar Flow Tagebuch zeigt nicht nur bunte Balken und Linien, sondern die Geschichte meiner sportlichen Aktivität. Die „Big Data“ der Ausdauer Was bedeutet es, über 9 Jahre hinweg den Sport in den Alltag zu integrieren? Was wurde trainiert? Ein Blick auf die Sportartenverteilung verrät sofort: Mein Herz schlägt für alles, was Räder hat. Gehen…
Kommentare geschlossenDer Tag heute dient der Konsolidierung des Wissens aus der ersten Woche. Der Fokus liegt auf der Wiederholung der zentralen Konzepte von DSPy – Signaturen, Module und ChainOfThought – und deren praktischer Anwendung in einem erweiterten Projekt. Kernkonzepte im Überblick Die drei wichtigsten Bausteine, die in der ersten Woche eingeführt wurden, sind Signaturen, Module und die ChainOfThought-Logik. Erweiterung des Zitat-Generators Das bestehende Programm zur Generierung von Zitaten wird nun um eine zusätzliche Funktionalität erweitert. Ich ergänze es um die Bewertung des generierten Zitats. Initialisierung des Sprachmodells Zunächst wird die Verbindung zu einem lokalen Sprachmodell hergestellt. Diese Konfiguration bleibt im Vergleich zum ursprünglichen Skript unverändert. Definition der Signaturen Die bestehende Signatur GenerateQuote bleibt bestehen und es wird eine neue Signatur, ClassifyQuote…
Kommentare geschlossenDer Zitat Generator soll in der Lage sein, zu einem vorgegebenen Thema ein Zitat im Stil einer bestimmten berühmten Persönlichkeit zu generieren. Das Projekt dient der Festigung der grundlegenden Konzepte von DSPy, insbesondere der Signatures und Predict-Module. Für ChainOfThought sehe ich hier keine Verwendeung, da es keine verschachtelten Aufgaben gibt, die man in Einzelschritten durchgehen muss. Theoretische Grundlagen Ich werde den Zitat-Generators auf den folgenden beiden Komponenten des DSPy-Frameworks aufbauen. Praktische Umsetzung Die Umsetzung erfolgt in mehreren Schritten: Konfiguration der Umgebung, Definition der Signatur, Erstellung des Vorhersagemoduls und schließlich die Ausführung des Programms. Konfiguration des Sprachmodells Zunächst muss wieder eine Verbindung zu einem Sprachmodell hergestellt werden. In diesem Beispiel wird ein Modell von Qwen verwendet. Es ist ein 8 Milliarden…
Kommentare geschlossenChain-of-Thought (CoT) ist eine Technik, die die Fähigkeit von Sprachmodellen (LLMs) bei komplexen, mehrstufigen Aufgaben verbessert. Anstatt eine direkte Antwort zu erzwingen, instruiert CoT das Modell, seine Schlussfolgerungen schrittweise herzuleiten und diesen Denkprozess explizit darzulegen, bevor das finale Ergebnis präsentiert wird. Das DSPy-Framework stellt für diesen Zweck das Modul dspy.ChainOfThought bereit. Theoretische Grundlagen von Chain of Thought (CoT) Standard-Prompting fordert ein LLM auf, direkt von einer Eingabe zu einer Ausgabe zu gelangen. Bei Aufgaben, die mehrere logische Schritte erfordern, ist dieser Ansatz fehleranfällig, da das Modell gezwungen ist, den gesamten Denkprozess intern und ohne explizite Struktur zu verarbeiten. Die CoT-Methode modifiziert diesen Prozess. Sie zerlegt die Aufgabenlösung in zwei Phasen: Reasoning (Schlussfolgern)Das Modell generiert eine schrittweise Herleitung der Lösung. Jeder…
Kommentare geschlossenIch habe ein Experiment gewagt. Mit nichts weiter als den Originalbildern, dem Text und dem Audio-Tool im Google AI Studio habe ich versucht, die Geschichte vorlesen zu lassen und muss sagen, das es wirklich gut funktioniert hat, auch wenn die Stimme zum Schluss etwas nachgelassen hat. Hier schon mal das Video. Das fertige Ergebnis: Paulinchens Geschichte, neu interpretiert. Der Prozess Die Erstellung war recht intuitiv. Anstatt Stunden im Tonstudio zu verbringen oder professionelle Sprecher zu buchen, nutzte ich die multimodalen Fähigkeiten von Google AI Studio. Ich habe den Reimtext direkt in das Tool geladen. Die KI generierte daraufhin eine Audio-Spur, die wie ein kurzes Hörbuch wirkt. Kein trockenes Vorlesen, sondern eine Darbietung. Anschließend habe ich die generierte Audiodatei mit den…
Kommentare geschlossenIn DSPy stellen Module die fundamentalen Bausteine zur Erstellung komplexer Anwendungen mit Sprachmodellen (LLMs) dar. Ein Modul kapselt eine bestimmte Logik – typischerweise einen oder mehrere Aufrufe an ein Sprachmodell – und kann mit anderen Modulen zu einer mehrstufigen Pipeline kombiniert werden. Dieser modulare Ansatz ermöglicht es, komplexe Probleme in überschaubare, wiederverwendbare Komponenten zu zerlegen. Die zentralen integrierten Module sind dspy.Predict und dspy.ChainOfThought. Während dspy.Predict für direkte Inferenzen von Eingabe zu Ausgabe verwendet wird, erweitert dspy.ChainOfThought diesen Prozess um einen expliziten Zwischenschritt des „Nachdenkens“, was die Qualität der Ausgabe bei anspruchsvollen Aufgaben verbessert. Das Ziel dieses Tages ist es, ein Programm zu erstellen, das zwei Module miteinander verkettet, um eine Aufgabe zu lösen, die eine sequenzielle Verarbeitung erfordert. Theorie: Die…
Kommentare geschlossenEine Signatur definiert auf deklarative Weise die Ein- und Ausgabestruktur für einen Aufruf an ein Sprachmodell (LLM). Sie ist das Kernstück, um die Interaktion mit dem Modell programmatisch und strukturiert zu gestalten, anstatt manuelle Prompts zu formulieren. Theorie: Die Funktion von DSPy-Signaturen Eine DSPy-Signatur ist eine Spezifikation, die dem LLM mitteilt, welche Aufgabe es ausführen soll. Sie besteht im Wesentlichen aus zwei Komponenten: Anstatt einen langen, detaillierten Prompt zu konstruieren, deklariert eine Signatur die semantischen Rollen der Ein- und Ausgaben. Zum Beispiel unterscheidet eine Signatur klar zwischen einer frage und einer antwort. Es gibt zwei primäre Methoden, Signaturen zu definieren: Inline oder als Klasse. Die klassenbasierte Methode bietet mehr Kontrolle und ermöglicht es, die Aufgabe durch einen Docstring genauer zu…
Kommentare geschlossenDieser Beitrag behandelt die grundlegende Struktur eines DSPy-Programms und dessen praktische Umsetzung. Das Ziel ist die Erstellung einer einfachen Frage-Antwort-Anwendung. Das habe ich zwar schon gestern erledigt, aber das war nur zum Testen ob alles wie erwartet funktioniert. Theorie: Die Grundstruktur eines DSPy-Programms Ein DSPy-Programm besteht aus drei Kernkomponenten, die ein modulares und programmatisches Arbeiten mit Sprachmodellen (LMs) ermöglichen. Die Kombination dieser drei Komponenten erlaubt es, LLM-basierte Anwendungen strukturiert zu programmieren, anstatt manuelle und oft fehleranfällige Prompts zu erstellen. Anbindung von LLMs Hier sind 10 Beispiele für die Anbindung verschiedener Language Models von unterschiedlichen Anbietern an DSPy. OpenAI Anthropic Databricks Gemini Weitere Provider DSPy erweitert seine Kompatibilität durch die Integration von LiteLLM, wodurch Dutzende weiterer LLM-Anbieter angebunden werden können. Die…
Kommentare geschlossenHeute starte ich die 30-Tage-DSPy-Challenge. Die Idee ist, jeden Tag ein Stück tiefer in das DSPy-Framework einzutauchen, um am Ende nicht nur zu verstehen, was es kann, sondern es auch wirklich anwenden zu können. Ich möchte herausfinden, ob DSPy wirklich die Art und Weise verändert, wie ich mit großen Sprachmodellen (LLMs) arbeite. Die Theorie: Warum ich das hier überhaupt mache Bisher fühlt sich die Arbeit mit LLMs oft wie ein unstrukturiertes Herumprobieren an. Ich habe viel Zeit damit verbracht, Prompts in f-strings zu verpacken, mit Formulierungen zu jonglieren und zu hoffen, dass das Modell das gewünschte Ergebnis liefert. Das ist nicht nur mühsam, sondern auch extrem fragil. Ändert sich das Modell, kann die ganze Arbeit umsonst gewesen sein. Genau hier…
Kommentare geschlossen








