Was macht dspy?
Programmatische Eingabe-Mapping-Strukturen, die algorithmische Kriterien in zuverlässige, strukturierte Textgenerierungsanweisungen übersetzen.
Übersicht
DSPy (kurz für „Declarative Self-improving Python“) ist ein Framework, das den Prompt-Engineering-Prozess automatisiert, indem es Module und Optimierer bereitstellt. Entwickler definieren die Felder für Eingabe und Ausgabe sowie eine Metrik, und DSPy findet die beste Art, das Sprachmodell aufzurufen – sei es durch Prompt-Templates, Few-Shot-Beispiele oder Feinabstimmung.
Hauptmerkmale
- Automatisches Prompt-Design: Kein manuelles Tuning von Prompts nötig; DSPy optimiert basierend auf gegebenen Beispielen und Metriken.
- Modularer Aufbau: Wiederverwendbare Bausteine, die zu komplexen LM-Pipelines kombiniert werden können.
- Multi-Modell-Unterstützung: Funktioniert mit OpenAI, Cohere, Anthropic, Hugging Face Modellen und lokalen LMs.
- Optimierungsstrategien: Enthält Bootstrap-Few-Shot, Prompt-Tuning und komplexere Methoden wie MIPROv2.
- Python-nativ: Integration in bestehende Python-Umgebungen und Datenbibliotheken.
Schnellstart
import dspy
from dspy.datasets import HotPotQA
# Konfiguriere das LM (z. B. GPT-4)
lm = dspy.OpenAI(model='gpt-4', max_tokens=250)
dspy.settings.configure(lm=lm)
# Definiere ein einfaches QA-Modul
class GenerateAnswer(dspy.Signature):
"""Beantworte Fragen basierend auf dem Kontext."""
context = dspy.InputField()
question = dspy.InputField()
answer = dspy.OutputField(desc="oft zwischen 1 und 5 Wörtern")
# Erstelle eine Pipeline
qa_pipeline = dspy.Predict(GenerateAnswer)
# Frage stellen
result = qa_pipeline(context="Der Kölner Dom ist eine gotische Kathedrale in Köln.", question="Was ist der Kölner Dom?")
print(result.answer) # "gotische Kathedrale"