Zähme dein LLM mit Prompt Engineering
Zähme dein LLM: Prompt Engineering als Basis für große Sprachmodelle
Wie bringt man ein großes Sprachmodell dazu, genau das zu liefern, was man erwartet? Prompt Engineering ist ein Schlüssel: Durch gezielte Eingaben lassen sich Large Language Models (LLM) präzise steuern. Doch was macht einen guten Prompt aus, wie vermeidet man Halluzinationen, und was sind die Prinzipien des Prompt Engineering? Antworten dazu liefern die Trainer Martin Pfister, Simeon Harrison und Thomas Haschka von EuroCC Austria im Interview mit Bettina Benesch.
Ich sitze hier mit einem Maschinenbauer (Simeon), einem Physiker (Martin) und einem Biophysiker (Thomas), die sich allesamt auf Machine Learning spezialisiert haben. Welche Begriffe verbindet ihr mit Prompt Engineering?
Simeon Harrison: Ich würde sagen, Prompt Engineering ist in erster Linie das Zähmen von Large Language Modells. Also wäre Zähmen hier mein erstes Schlagwort. Außerdem geht es darum, etwas wiederholbar und nachvollziehbar zu machen. Das heißt, ich will mit gewissen Prompts eine reproduzierbare Antwort. Reproduzierbarkeit ist daher ein weiterer wichtiger Begriff.
Martin Pfister: Für mich gehört auch Guidance dazu, also Regulierung, was das LLM erzählt und was nicht. ChatGPT zum Beispiel wird dir keine Anleitung geben, wie man eine Bombe baut.

Ein nächstes Stichwort wäre Trial and Error: Beim Prompt Engineering gibt es im Vergleich zur Mathematik kein Richtig oder Falsch. Es handelt sich mehr um ein Ausprobieren. Manchmal ist das etwas frustrierend, wenn man gerne eine optimale Lösung hätte, aber die gibt es bei LLMs nicht. Was es gibt, ist: Wenn man hier dieses und jenes hineinschreibt, funktioniert es besser. Möglicherweise. Oder auch nicht.
Was ist denn Prompt Engineering überhaupt?
Thomas Haschka: Prompt Engineering ist ein sehr weitreichender Begriff. Im Wesentlichen geht es darum, den ursprünglichen Prompt – also die Anfrage eine:r Benutzer:in – zu erweitern, um das Verhalten eines Large Language Models zu steuern. Prompt Engineering ermöglicht es, die Antwortweise des LLMs zu beeinflussen. So könnte man beispielsweise bei einem Chatbot für medizinische Auskünfte die Anweisung „Beantworte die Frage exakt und unter Verwendung medizinischer Fachsprache“ zur Benutzeranfrage hinzufügen. Unter denselben Bedingungen könnte man auch „Beantworte die Anfrage kinderfreundlich“ an den Prompt anhängen. In diesem Fall würden wir zwei verschiedene Sprachstile in den Antworten des LLMs feststellen. Diese für die Benutzer:in unsichtbare Einflussnahme durch zusätzlichen Text in der Anfrage macht den Kern des Prompt Engineerings aus.
Simeon Harrison: Prompt Engineering ist der einfachste Weg, ein LLM zu erstellen, verglichen mit anderen Ansätzen wie RAG* (Retrieval Augmented Generation) oder Fine-tuning. Prompt Engineering ist sozusagen die Einstiegsdroge, und von dort aus baust du weiter.
Welchen Unterschied gibt es zwischen Userprompting und Systemprompts?
Simeon Harrison: Im Prinzip ist es das Gleiche, aber der Systemprompt ist versteckt, der Userprompt natürlich nicht.
Was lässt sich mit einem Systemprompt alles regeln?
Simeon Harrison: Du sagst dem LLM zum Beispiel, ob die Antwort als Liste, Fließtext oder in einem anderen Format geliefert werden soll, entscheidest über Stil und Tonfall, legst fest, ob einfache Sprache verwendet wird oder die Ausgabe komplexer ist, du modellierst einen ethischen Rahmen, regelst die Genauigkeit der Antwort, die Denkweise des LLM, wie zum Beispiel „Gehe Schritt für Schritt vor“, du steckst den Rahmen ab, wie das LLM reagiert, wenn es sich bei einer Antwort nicht ganz sicher ist, oder legst fest, dass Quellenangaben zu nennen sind.
“
Prompt Engineering ist der einfachste Weg, ein LLM zu erstellen, verglichen mit anderen Ansätzen wie RAG oder Fine-tuning. Es ist sozusagen die Einstiegsdroge, und von dort aus baust du weiter.
„
Am besten gibt man dem LLM noch Beispiele mit. Ich könnte etwa das Beispiel eines anderen Produkts liefern, eines Kühlschranks vielleicht, der auch mit einem Tiernamen verbunden ist. Damit kann ich die Ausgabe beeinflussen. Ein solcher Prompt könnte zum Beispiel heißen:
„Erstelle eine Liste von drei Produktnamen für einen Kinderschuh. Der Schuh soll Sportlichkeit, Naturliebe und Abenteuer verkörpern. Die Namen sollen allesamt in peppigem Englisch sein und einen Tiernamen beinhalten. Gib die Ergebnisse als komma-separierte Liste zurück in diesem Format:
Produkt Beschreibung: Kinder-Freizeitschuh
Produkt Namen: [Liste von 3 Namen]
## Beispiele:
Produkt Beschreibung: Standmixer
Produkt Namen: [Fruity Flamingo, Cheery Cheetah, Sunny Seahorse]“
Je mehr Beispiele ich gebe, und je weniger Varianz ich in diesen Beispielen habe, desto enger wird auch die Antwort des LLMs. Sie wird präzise und reproduzierbar – aber natürlich reduziert es auch den Grad an Kreativität, mit der das Modell arbeitet.
“
Ist dein Systemprompt sehr lang, hat der User nicht mehr so viel Raum für seine Eingabe zur Verfügung. Der Prompt sollte also eher kurz und knackig sein. Wenn du aber zum Beispiel ein LLM für Kinder hast, willst du die Ausgabe streng regulieren und entsprechend umfangreicher muss der Systemprompt sein.
„
Welche Länge haben solche Prompts im Durchschnitt?
Simeon Harrison: Das kommt immer auf den jeweiligen Anwendungsfall an. Generell gilt: Je umfangreicher der Prompt ist, desto genauer und reproduzierbarer wird dein Output. Aber du opferst damit natürlich deine Eingabesequenz, denn du hast nur eine bestimmte Anzahl an Token (ein Token ist etwa ¾ eines englischen Wortes) für User- und Systemprompt zusammen. Ist dein Systemprompt sehr lang, haben User:innen nicht mehr so viel Raum für ihre Eingaben zur Verfügung. Der Prompt sollte also eher kurz und knackig sein.
Martin Pfister: Wenn ich ChatGPT frage „Erkläre mir, was RAG ist“, dann wird die Anfrage sehr kurz und das Modell wird in etwa antworten: „RAG ist eine Technik, die Large Language Models mit externen Wissensquellen kombiniert, um genauere und aktuellere Antworten zu generieren“, und wird dann vielleicht ein paar weitere Sätze über RAG schreiben. Aber es gibt auch die Möglichkeit, dem LLM eine konkrete Aufgabe zu stellen; zum Beispiel „Nimm diesen 200 Seiten langen Text, der jetzt ohne Satzzeichen ist, und füge Satzzeichen und Absätze ein, wo sie passen.“ Dann wird das ein sehr langer Prompt sein, weil mein 200 Seiten langer Text ja Teil der Eingabe ist.
Simeon Harrison: Und wenn du zum Beispiel ein LLM für Kinder hast, willst du die Ausgabe streng regulieren und entsprechend umfangreicher muss der Systemprompt sein.
Welche Bibliotheken sind sinnvoll, wenn man sich mit LLM beschäftigen möchte bzw. mit welchen arbeitet ihr in euren Kursen?
Simeon Harrison: Es variiert, aber eine wichtige Bibliothek ist sicher die von ChatGPT selbst. Auch Langchain ist ein wichtiges Tool. Es ist ein Werkzeug, um aus einzelnen Modellen, einzelnen Prompts oder aus Datenbanken, die für RAG verwendet werden, ein fertiges, robustes Produkt zu machen.
LLMs halluzinieren immer wieder, also liefern mit Überzeugung falsche Antworten. Welche Rolle spielt Prompt Engineering beim Vermeiden von Halluzinationen?
Simeon Harrison: ChatGPT ist inzwischen nicht mehr so anfällig für Halluzinationen, wie es früher war. Moderne LLMs sind umfangreicher, werden länger trainiert, man kennt die Baustellen und greift entsprechend ein, mit neuen Releases und so weiter. Aber Halluzinationen sind sehr wohl noch ein Thema. Im Systemprompt kann man darauf zum Beispiel reagieren, indem man dem Modell vorgibt, dass es erst ab einer gewissen Sicherheit antworten soll. Wenn es sich zum Beispiel nur zu 60 Prozent sicher ist, ob die Antwort stimmt, könnte es sagen „Dafür fehlt mir derzeit die Datenlage, ich kann keine solide Aussage machen“.
“
Ich habe ChatGPT kürzlich um Hilfe bei einer Programmieraufgabe gebeten für eine Bibliothek, die ich noch nicht so gut kannte. Das LLM hat mir einen Programmcode geschrieben, der wunderbar ausgeschaut, aber nicht funktioniert hat.
„
Martin Pfister: Ich habe ChatGPT kürzlich um Hilfe bei einer Programmieraufgabe gebeten für eine Bibliothek, die ich noch nicht so gut kannte. Das LLM hat mir einen Programmcode geschrieben, der wunderbar ausgeschaut, aber nicht funktioniert hat. Ich habe das Modell dann angewiesen, mir zu jeder Funktion den Link zur Dokumentation zu liefern. So konnte ich die Antworten leichter überprüfen.
Gibt es fürs Prompt Engineering vorgefertigte Standardprompts, die man an die eigenen Bedürfnisse anpassen kann?
Thomas Haschka: Die gibt es und sie sind sogar in Llama.cpp** implementiert. Es gibt ein Web-Interface, über das man Standardprompts auswählen kann, wie Chain-of-Thought zum Beispiel, wo Zwischenschritte in einer Argumentation explizit ausgeführt werden. Allerdings ist das Ganze nicht so simpel wie man vielleicht denkt: Gibt man dem LLM im Systemprompt zum Beispiel den Auftrag, die eigene Ausgabe zu bewerten, hat es keinen Anhaltspunkt, woran es sich dabei orientieren soll. Das funktioniert nur, wenn man im Hintergrund eine Datenbank hat, aus der das LLM sich die richtige Antwort herausholt. Das wäre der RAG-Ansatz.
Ließe sich die Qualität nicht auch mit menschlichen Begutachter:innen bewerten?
Simeon Harrison: An sich ja, aber: Evaluation ist generell sehr, sehr schwierig und eine richtig große Herausforderung für die KI-Forschung und -Entwicklung. Das betrifft jeden Bereich bei LLMs. Übersetzungen zum Beispiel: Du kannst einen Satz auf zig verschiedene Arten übersetzen. Was die beste Variante ist, lässt sich schwer beurteilen.
Menschliche Bewertungen sind sicher der Goldstandard. Idealerweise hat man Expert:innen zu Verfügung, die eine statistisch signifikante Anzahl an Experimenten machen und diese bewerten. Das ist allerdings zeitaufwändig und teuer.
Abgesehen davon gibt es noch A/B-Testing. Das kennt man beispielsweise von ChatGPT, wenn man aufgefordert wird, zwischen zwei verschiedenen Antworten auszuwählen. Es kann aber auch verdeckt passieren. Grundsätzlich bezeichnet A/B-Testing ein experimentelles Verfahren, bei dem zwei Varianten miteinander verglichen werden. Es geht immer darum, festzustellen, welche Variante bessere Ergebnisse liefert. Die Ergebnisse werden statistisch ausgewertet und aufgrund dessen wird entschieden, welche Version im produktiven Einsatz bevorzugt werden sollte. Auf diese Weise können LLMs kontinuierlich optimiert werden.
“
Ein Problem beim Überprüfen von Qualität ist, dass Evaluationsdatensätze in die Trainingsdaten einfließen können. LLMs erarbeiten sich die Antworten dann möglicherweise nicht selbst, sondern greifen auf den Evaluationsdatensatz zurück. In so einem Fall kann niemand solide überprüfen, woher das LLM nun seine Antwort wirklich hat; ob es also selbst “nachdenkt” oder einfach auswendig gelernt hat.
„
Thomas Haschka: Ein Problem beim Überprüfen von Qualität ist, dass Evaluationsdatensätze in die Trainingsdaten einfließen können, was die Bewertung der Modellqualität verfälschen kann. In der Praxis passiert folgendes: Um LLMs wie DeepSeek oder Llama miteinander zu vergleichen, werden von den Entwickler:innen Frage-Antwort-Paare erstellt, und dieser Evaluationsdatensatz wird im Netz veröffentlicht. So kann jeder diesen Datensatz verwenden, um die Qualität der Antworten eines LLMs anhand dieser Frage-Antwort-Paare zu prüfen.
Leider passiert es dann manchmal, dass dieser Datensatz auch in die Trainingsdaten einfließt, wenn ein Web-Crawler das Internet nach Texten durchsucht, um einen neuen Trainingsdatensatz zu erstellen. Das ist wie in der Schule, wenn der Mathe-Lehrer seinen Schüler:innen die Fragen und Antworten zum Test schon vorab liefert: Man weiß nicht, ob die Schüler:innen die Antworten auswendig gelernt haben, oder ob sie in der Lage sind, das Problem selbstständig zu lösen. Für LLMs bedeutet das: Sie erarbeiten sich die Antworten möglicherweise nicht selbst, sondern greifen vielleicht auf den Evaluationsdatensatz zurück. In so einem Fall kann niemand solide überprüfen, woher das LLM nun seine Antwort wirklich hat; ob es also selbst “nachdenkt” oder einfach auswendig gelernt hat.
Eine Möglichkeit, Qualität sicherzustellen, ist der RAG-Ansatz, von dem hier schon kurz die Rede war. Am 9. April erscheint der nächste Blog-Beitrag zu diesem faszinierenden Thema. Melden Sie sich hier zum Newsletter an und lassen Sie sich den Beitrag direkt in den Postkorb liefern.
Lust auf Prompt Engineering, RAG und Fine-tuning? Hier geht‘s zu den nächsten kostenlosen Kursen von EuroCC Austria.
Die fünf Prinzipien des Promptings
- Gib klare und spezifische Aufträge
Je präziser die Anweisung, desto wahrscheinlicher ist es, dass das KI-Modell die gewünschte Antwort liefert. Unklare oder vage Prompts können zu ungenauen oder irrelevanten Ergebnissen führen.
- Lege Formatierung und Struktur fest
Durch die Angabe eines gewünschten Formats oder einer bestimmten Struktur kann das Modell seine Ausgabe entsprechend anpassen, was besonders nützlich für spezifische Anwendungen ist.
- Stelle Beispiele bereit
Das Einfügen von Beispielen in den Prompt kann dem Modell helfen, den gewünschten Stil oder das Format besser zu verstehen und entsprechend zu antworten.
- Teile komplexe Aufgaben in Teilschritte auf
Bei umfangreichen oder komplizierten Aufgaben ist es oft effektiver, diese in kleinere, überschaubare Schritte zu zerlegen, um klarere und präzisere Antworten zu erhalten.
- Gib dem Modell Zeit zum Nachdenken
Aufforderungen wie „Denke Schritt für Schritt“ können das Modell dazu anregen, gründlicher zu überlegen und detailliertere sowie logischere Antworten zu generieren.
Die Experten
Martin Pfister
Martin hat an der TU Wien Physik studiert und dissertiert derzeit im Bereich der medizinischen Physik an der MedUni Wien. Bei EuroCC Austria unterstützt er Kund:innen dabei, ihre Projekte am österreichischen Supercomputer VSC abzuwickeln und unterrichtet zu den Themen Deep Learning/Machine Learning.
Simeon Harrison
Simeon ist Trainer bei EuroCC Austria und hat sich auf die Bereiche Deep Learning/Machine Learning spezialisiert. Der ehemalige Maschinenbauer und Mathematiklehrer erhält von den Teilnehmenden seiner Kurse Feedbacks wie: „Simeon Harrison ist ein exzellenter Trainer. Sein Unterrichtsstil ist klar, ansprechend und gut strukturiert, was das Lernen sehr angenehm macht.“
Thomas Haschka
Thomas hat seinen Weg von der Simulation und Biophysik über Data Science hin zur künstlichen Intelligenz gefunden. Er promovierte in Frankreich und war in der Forschung am Musée National d'Histoire Naturelle, am Institut Pasteur sowie am Paris Brain Institute tätig. Bevor er an die TU Wien zurückkehrte, unterrichtete er über ein Jahr lang künstliche Intelligenz an der Amerikanischen Universität in Beirut. Bei der EuroCC-Austria-Trainingsreihe Foundations of LLM Mastery ist Thomas als Trainer für den Bereich RAG verantwortlich.



* RAG (Retrieval-Augmented Generation) ist eine Technik, die große Sprachmodelle mit einer externen Wissensquelle kombiniert. Anstatt sich nur auf das zu verlassen, was das Modell während des Trainings gelernt hat, sucht RAG in einer Datenbank oder im Internet nach relevanten Informationen und verwendet diese, um genauere und aktuellere Antworten zu geben. Dadurch kann das Modell auch mit aktuellen oder speziellen Informationen arbeiten, die es sonst nicht kennen würde. Das macht RAG besonders nützlich für Anwendungen wie Chatbots, Unternehmenswissen oder wissenschaftliche Recherchen.
** Llama.cpp ist eine Software, die es ermöglicht, ein Large Language Model effizient bereitzustellen.