Prompt Engineering: LLMs lenken, ohne sie feinabzustimmen
Verwenden Sie Rollen, Few-Shot-Beispiele, Chain-of-Thought-Methoden sowie Formatvorgaben, um Modelle zu leiten – und erkennen Sie, ab wann alleinige Prompting-Strategien ihre Grenzen erreichen im Vergleich zum Feintuning.
Durch Feinabstimmung wird ein vortrainiertes Modell durch weiteres Training an gelabelten Beispielen angepasst. Dieser Ansatz bleibt wirksam, ist jedoch nicht immer notwendig. Moderne große Sprachmodelle reagieren oft bereits gut auf sorgfältige Anweisungen allein – ohne Trainingslauf, ohne gelabeltes Korpus und ohne GPU. Diese Praxis wird als Prompt Engineering bezeichnet und gehört zu den praktischsten Fähigkeiten in den heutigen NLP-Stacks.
Zwei Wege, ein Modell zu steuern
Feinabstimmung und Prompting verfolgen dasselbe Ziel – ein nützliches Modellverhalten – jedoch mit entgegengesetzten Methoden.
Durch Feintuning werden die Modellgewichte angepasst. Prompting lässt die Gewichte unverändert und liefert stattdessen klarere Anweisungen sowie Kontext, damit das Modell das, was es bereits weiß, genauer anwenden kann. Modelle wie Systeme der GPT-Klasse haben so umfangreiche Texte aufgenommen, dass bereits viel Fähigkeit latent vorhanden ist; Prompting bedeutet oft nur, den richtigen Teil davon freizuschalten. Die praktische Folge ist Geschwindigkeit: Teams können in wenigen Minuten Verhaltensänderungen ausprobieren, anstatt auf eine Feinjustierung zu warten.
from openai import OpenAI
client = OpenAI()response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful sentiment classifier. Respond with only 'positive' or 'negative'."},
{"role": "user", "content": "I loved this movie"}
]
)print(response.choices[0].message.content)
Zero-shot vs Few-shot Prompting
Eine frühe Gestaltungsentscheidung betrifft die Anzahl der Beispiele, falls überhaupt, die vor der eigentlichen Aufgabe gezeigt werden.
Ein Zero-Shot-Prompt beschreibt die Aufgabe und verlässt sich ausschließlich auf das Vortrainieren. Dies funktioniert überraschend gut für gängige Aufgaben wie Sentiment-Klassifizierung oder einfache Zusammenfassung. Ein Few-Shot-Prompt zeigt zunächst einige Eingabepaarungen mit Ausgaben, wodurch Format, Tonfall und Umgang mit Randfällen gesteuert werden – insbesondere bei ungewöhnlichen oder fachspezifischen Aufgaben. Jedes Beispiel verbraucht Tokens, was die Kosten erhöht und den Platz für die eigentliche Eingabe verringert. Es ist in der Regel besser, Few-Shot-Beispiele kurz und repräsentativ zu halten, anstatt viele nahezu identische Paare einzubringen.
prompt = """
Classify the sentiment of each review as positive or negative.
Review: "Absolutely fantastic, exceeded expectations!"
Sentiment: positiveReview: "Complete waste of money, broke in a week."
Sentiment: negativeReview: "I loved this movie"
Sentiment:
"""response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)print(response.choices[0].message.content)
Anatomie eines guten Prompts
Neben der Wahl zwischen Zero- und Few-Shot-Prompts hilft eine zuverlässige Struktur, wenn Prompts in echten Anwendungen eingesetzt werden und nicht nur für einmalige Fragen dienen.
Die Zuweisung einer klaren Rolle legt Ton und Perspektive fest. Eine spezifische Anweisung beseitigt Unklarheiten bezüglich des erwarteten Ergebnisses. Das Trennen von Kontext oder Eingaben von Anweisungen hilft dem Modell, die beiden voneinander zu unterscheiden. Explizite Formatregeln – beispielsweise JSON mit benannten Schlüsseln – machen die Antworten leichter zu verarbeiten als das Hoffen auf konsistente freie Prosa. Einige gut gewählte Beispiele können das Verhalten bei ungewöhnlichen Aufgaben weiter straffen.
Techniken zum Formulieren von Anfragen, die man kennen sollte
Mehrere Muster zeichnen sich bei schwierigeren Aufgaben aus:
- Chain-of-Thought-Anfragen – man bittet das Modell, schrittweise zu denken, bevor es die endgültige Antwort gibt; dies hilft oft bei mathematischen Wortaufgaben und mehrstufiger Logik.
- Rollenbasierte Anfragen – man weist eine Persona zu („Sie sind ein erfahrener Sicherheitsauditor“), um Tiefe und Stil zu beeinflussen.
- Beschränkungen bezüglich des Ausgabeformats – man verlangt JSON oder XML, wenn ein anderes System die Antwort verarbeiten muss.
Wenn Anfragen nicht ausreichen
Anfragen haben klare Grenzen. Sie können keine Fakten erfinden, die das Modell noch nie gesehen hat, sie sind durch das Kontextfenster begrenzt, und für Aufgaben mit hohem Volumen und eng gefassten Anforderungen ist ein fein abgestimmtes Modell oft günstiger und konsistenter als die wiederholte Verwendung komplexer Anfragen Millionen von Malen. Viele Produktionsysteme kombinieren beides: Sie feinabstimmen die Kernaufgabe, fügen anschließend Anfragen hinzu, um Flexibilität und Umgang mit Sonderfällen zu gewährleisten. Betrachten Sie Anfragen als Steuerungsmechanismus und die Feinabstimmung als Leistungssteigerung, wenn allein die Steuerung nicht mehr ausreicht.
Wohin das führt
Prompt-Engineering verkürzt den Weg von einer Idee bis zu einem funktionsfähigen Prototypen – Arbeiten, die früher gelabelte Daten und Training erforderten, können oft bereits in wenigen Minuten mit einem guten Prompt bearbeitet werden. Allein das Verwenden von Prompts hat jedoch weiterhin Grenzen, insbesondere dann, wenn Antworten Informationen nutzen müssen, mit denen das Modell nie trainiert wurde.
Die nächste Lücke – die Suche nach Bedeutung statt nach Schlüsselwörtern sowie das Einbinden des gefundenen Textes in die Generierung – liegt im Bereich von Embeddings und retrieval-augmented Generation (RAG).