In der schnelllebigen Welt der künstlichen Intelligenz gehört der Aufstieg des Prompt Engineering zu den interessantesten Entwicklungen. Die junge Disziplin prägt, wie wir mit fortgeschrittenen Sprachmodellen wie GPT-4 umgehen, und schlägt die Brücke zwischen dem, was Menschen wollen, und dem, was die KI kann. Aber was genau ist Prompt Engineering, und wie verändert es unsere Sicht auf das Programmieren?
Prompt Engineering: Definition und Erklärung
Prompt Engineering ist die Kunst und Wissenschaft, Eingaben (Prompts) so zu formulieren, dass sie die Antworten eines Sprachmodells in die gewünschte Richtung lenken. Anders als klassische Befehle beim Programmieren sind diese Prompts in natürlicher Sprache verfasst und nutzen gezielt, dass die KI Kontext, Nuancen und Semantik versteht. Das Ziel ist die genaueste, relevanteste und nützlichste Antwort, die das KI-Modell liefern kann. Dazu gehört mehr, als Fragen zu stellen oder Befehle zu erteilen: Der Prompt muss strategisch so angelegt sein, dass er zum Training und zur Interpretationsfähigkeit des Modells passt.
Wie sich Prompt Engineering von klassischer Programmierung unterscheidet
Klassische Programmierung beruht auf einer strengen Syntax und auf festgelegten Regeln und Funktionen. Jeder Befehl hat ein bestimmtes, vorhersehbares Ergebnis, und jede Abweichung von der Syntax kann zu Fehlern oder unbeabsichtigten Resultaten führen. Prompt Engineering bewegt sich dagegen in natürlicher Sprache, und die ist von Haus aus mehrdeutiger und flexibler. Deshalb kann derselbe Prompt je nach Kontext unterschiedliche Antworten liefern, was die Interaktion dynamischer und nuancierter macht. In der klassischen Programmierung kommt es vor allem auf Präzision und die Einhaltung der Syntax an, Prompt Engineering lebt von Kreativität und Experimentieren.
Prompts als „winzige Programme“, die KI-Antworten steuern
In diesem Zusammenhang kann man Prompts als „winzige Programme“ sehen: kompakte, aber wirkungsvolle Anweisungen, die die KI durch eine Aufgabe oder zu einer Antwort führen. Diese Prompts übermitteln mehr als eine Bitte oder einen Befehl. Sie transportieren auch Kontext, Tonfall und manchmal unausgesprochene Anweisungen, die beeinflussen, wie die KI sie verarbeitet und beantwortet. Das ähnelt dem Programmieren, nur kompilieren wir keinen Code, sondern Gedanken und Absichten, und zwar in eine Form, die die KI verstehen und umsetzen kann.
PROMPTS SIND WINZIGE PROGRAMME
Die KI-Revolution läuft jetzt seit etwa 18 Monaten. Ende 2022 war noch offen, ob Prompt Engineering bleiben würde oder ob bessere KI es schnell überflüssig machen würde.
Inzwischen denke ich, dass es bleibt, und ich habe eine Erklärung dafür… https://t.co/E4z2Vid7Bc pic.twitter.com/nOi8gGwYDq
Balaji (@balajis), 24. Jänner 2024
Ein gut formulierter Prompt kann Erstaunliches leisten, ähnlich wie ein gut geschriebenes Programm. Er kann die KI anweisen, in einem bestimmten Stil zu schreiben, Informationen zu einem bestimmten Thema zu liefern, Probleme zu lösen oder sogar bestimmte Denkweisen nachzuahmen. Wie beim Programmieren hängt die Wirksamkeit eines Prompts aber stark davon ab, wie gut der Prompt Engineer die Mechanismen und Fähigkeiten der KI versteht.
Prompt Engineering verändert deutlich, wie wir mit KI umgehen. Es verbindet die Präzision klassischer Programmierung mit der Kunstfertigkeit menschlicher Sprache und eröffnet neue Wege für KI-Anwendungen und -Interaktionen.
Prompts als neue API
Dieser Abschnitt geht der Analogie zwischen Prompts und Application Programming Interfaces (APIs) nach, einem Grundpfeiler der klassischen Softwareentwicklung. Der Vergleich zeigt, wie grundlegend sich das Zusammenspiel von Softwarekomponenten verändert, und auch, wie wichtig es wird, Prompt Engineering zu verstehen und zu beherrschen.
Die Analogie zwischen Prompts und Application Programming Interfaces (APIs)
APIs sind in der Softwareentwicklung ein Satz von Protokollen und Werkzeugen zum Bauen von Softwareanwendungen. Sie legen fest, wie verschiedene Softwarekomponenten miteinander interagieren sollen. Ähnlich kann man Prompts als neue Form von API für Sprachmodelle wie GPT-4 betrachten. Anders als klassische APIs mit ihrem klar definierten und dokumentierten Satz von Befehlen und Antworten sind Prompts aber fließender und anpassungsfähiger. Sie dienen eher als Orientierung denn als strikter Befehl und nutzen das Training des Sprachmodells, um passende Antworten zu erzeugen. Diese Beweglichkeit erlaubt ein breiteres Spektrum an Interaktionen und Ausgaben und bedient auch komplexere, nuanciertere Anfragen, mit denen klassische APIs Mühe hätten.
Ein Beispiel aus der Praxis ist die Integration von DALL-E 3 mit GPT-4. Dabei erzeugt GPT-4 Prompts, um mit DALL-E 3 zu „sprechen“: Eine KI kommuniziert also mit einer anderen. GPT-4 geht hier über die Rolle des bloßen Antwortgebers hinaus. Es ergreift selbst die Initiative und verfasst Beschreibungen oder Anfragen, aus denen DALL-E 3 Bilder erzeugt. Das zeigt das Potenzial KI-gesteuerter APIs: Ein KI-Modell nutzt sein Verständnis von Sprache und Kontext als Schnittstelle zu einem anderen Modell, und aus dem anspruchsvollen Zusammenspiel können bemerkenswert kreative Ergebnisse entstehen.
Entscheidend ist dabei die Flexibilität der Prompts. Bei einem starren API-Aufruf sind Ein- und Ausgabeparameter genau festgelegt. Die Prompts von GPT-4 an DALL-E 3 können dagegen in Stil, Detailgrad und Absicht stark variieren, was zu sehr unterschiedlichen Bildern führt. Diese Vielseitigkeit zeigt, wie sich promptbasierte Interaktionen an ganz verschiedene Anwendungen anpassen, von kreativem Design bis zu komplexer Problemlösung, und neue Wege für Zusammenarbeit und Innovation mit KI eröffnen.
Das Beispiel zeigt außerdem, wie sich die Interaktion mit KI wandelt. Je fortgeschrittener und vernetzter KI-Modelle werden, desto mehr verändert sich auch die Art, wie wir sie „programmieren“. Statt direkte Befehle zu erteilen, gehen wir zu einem eher dialogischen, kollaborativen Vorgehen über, bei dem die Grenze zwischen Programmierer und KI immer durchlässiger wird. Das erweitert, was mit KI möglich ist, und definiert auch unsere Beziehung zu diesen mächtigen Werkzeugen neu. Damit ist der Boden bereitet für intuitivere, stärker am Menschen ausgerichtete KI-Interaktionen in der Zukunft.
Beispiele für wirksame Prompts und ihre Ergebnisse
Wie viel Prompt Engineering leisten kann, zeigen ein paar Beispiele, in denen Prompts im Unterschied zu klassischen APIs wirklich glänzen.
- Kreatives Schreiben: Gibt man einer KI ein Genre, einen Stil oder auch nur den Anfang einer Geschichte vor, kann sie packende und originelle Erzählungen erzeugen. Mit klassischen APIs, die auf vordefinierte Funktionen beschränkt sind, geht das nicht. Außerdem können Sie die Ergebnisse durchgehen und Schritt für Schritt verfeinern.
- Datenanalyse: Ein gut formulierter Prompt kann eine KI anweisen, komplexe Datensätze zu analysieren und Erkenntnisse oder Zusammenfassungen zu liefern. Dank der Flexibilität des Prompts können Nutzer die Art der Analyse oder die Darstellung der Ergebnisse festlegen. Mit einer klassischen API bräuchte es dafür mehrere spezifische Befehle.
- Allgemeine Problemlösung: Schildert man ein Problem in natürlicher Sprache und bittet die KI um Lösungen, können kreative und unerwartete Antworten herauskommen. Das zeigt, dass die KI komplexe Anfragen interpretieren und verarbeiten kann.
Diese Beispiele zeigen, was Prompts klassischen APIs voraushaben: eine eigene Mischung aus Flexibilität, Kreativität und Anpassungsfähigkeit. Sie eröffnen neue Möglichkeiten für die Interaktion mit KI und erlauben einen natürlicheren, menschenähnlicheren Austausch, und zwar zwischen Mensch und KI ebenso wie zwischen KI und KI. Leicht zu beherrschen ist Prompt Engineering allerdings nicht. Es verlangt ein tiefes Verständnis der Fähigkeiten und Grenzen des KI-Modells und die Fähigkeit, kreativ darüber nachzudenken, wie man einen Prompt formuliert, um das gewünschte Ergebnis zu erreichen.
Jedes Modell ist eine eigene Sprache
In der KI-Landschaft gibt es eine Vielzahl von Sprachmodellen, jedes mit eigenen Eigenschaften und Fähigkeiten. Diese Modelle als eigenständige „Programmiersprachen“ zu verstehen, ist für wirksames Prompt Engineering entscheidend. Dieser Abschnitt behandelt die Vielfalt von KI-Modellen wie GPT-4 und seinem Vorgänger GPT-3, die Lernkurve, die jedes mit sich bringt, und die Möglichkeiten modellspezifischer Optimierung.
Verschiedene KI-Modelle als eigenständige „Programmiersprachen“
So wie Programmiersprachen ihre Syntax, ihre Strukturen und ihre idealen Einsatzgebiete haben, haben KI-Modelle ihre Trainingsdaten, Algorithmen und Stärken. Modelle wie GPT-3 und GPT-4 bauen zwar auf ähnlichen Grundlagen auf, unterscheiden sich aber deutlich in ihren Fähigkeiten und Antworten. GPT-3 mit seinem riesigen Trainingsdatensatz erzeugt gekonnt menschenähnlichen Text, GPT-4 geht einen Schritt weiter und versteht und erzeugt nuanciertere, kontextbewusstere Antworten. Diese Unterschiede zu erkennen ist so, als würde man die Stärken und Grenzen verschiedener Programmiersprachen kennen und sie entsprechend einsetzen.
Die Lernkurve und die Anpassung, die jedes Modell verlangt
Die „Sprache“ eines KI-Modells zu beherrschen, ist mit einer Lernkurve verbunden. So wie ein Programmierer Zeit braucht, um die Feinheiten einer neuen Programmiersprache zu lernen, müssen sich Prompt Engineers mit den Eigenheiten jedes KI-Modells vertraut machen. Dazu gehört zu verstehen, wie ein Modell Prompts interpretiert, welche Antwortmuster es typischerweise zeigt und wie es mit verschiedenen Arten von Information umgeht. Manche Modelle sind etwa bei kreativen Aufgaben stark, andere eignen sich besser für analytische Anfragen. Sich auf die „Sprache“ eines Modells einzustellen heißt, Prompts so zuzuschneiden, dass sie diese Stärken nutzen und die Schwächen abfedern.
Möglichkeiten für modellspezifische Optimierungen und Techniken
Die Eigenheiten jedes KI-Modells machen modellspezifische Optimierungen möglich: Strategien oder Techniken, die mit einem bestimmten Modell besonders gut funktionieren. GPT-3 reagiert zum Beispiel möglicherweise besser auf knappe, direkte Prompts, während GPT-4 mit kontextreicheren, detaillierteren Prompts glänzen könnte. Solche Optimierungen findet man durch Versuch und Irrtum, durch Experimentieren und laufendes Lernen. Außerdem muss man bei den neuesten Entwicklungen und Updates der einzelnen Modelle auf dem Laufenden bleiben, denn die KI-Technologie entwickelt sich schnell weiter.
Syntax spielt weiterhin eine Rolle
Ironischerweise beruht die ganze Flexibilität von LLMs auf Prompt-Vorlagen mit einer bestimmten Syntax. Diese Vorlagen geben dem LLM den Kontext, den es zum Erzeugen von Antworten braucht. Mistral-7B-Instruct verwendet zum Beispiel diese Syntax:
<s>[INST] Instruction [/INST] Model answer</s>[INST] Follow-up instruction [/INST]
Llama-2 verwendet dagegen diese Syntax:
<s>[INST]<<SYS>>\n{system_text}<</SYS>>\n{text} [/INST]
Beachten Sie, dass sich diese Syntaxstruktur ändern kann und dass geschlossene Modelle wie GPT-3 und GPT-4 diese Implementierungsdetails verbergen.
Auch das Wissen über die Trainingsdaten und Algorithmen eines Modells kann dabei helfen, Prompts optimal zu formulieren. Wurde ein Modell zum Beispiel intensiv mit literarischen Daten trainiert, kann es kreative Inhalte womöglich besser erzeugen. Ein Modell, das mit einem breit gefächerten Datensatz trainiert wurde, versteht Themen dagegen womöglich breiter, aber weniger tief.
Jedes KI-Modell hat seine eigene „Sprache“ mit eigener Syntax und eigenen Redewendungen, und sie zu kennen ist für wirksames Prompt Engineering unerlässlich. Wenn wir diese „Sprachen“ beherrschen, können wir das volle Potenzial jedes Modells ausschöpfen, was in verschiedenen Bereichen zu innovativeren Anwendungen und Lösungen führt.
Wie sich Programmierparadigmen entwickelt haben
Mit dem Aufkommen von Prompt Engineering verschieben sich die Programmierparadigmen grundlegend. Dieser Abschnitt zeichnet die historische Entwicklung von klassischen Programmiersprachen bis zur heutigen flexiblen Interaktion mit KI in natürlicher Sprache nach und zeigt, wie stark sich dabei die Fähigkeiten und die Denkweise von Programmierern und Engineers verändert haben. Außerdem zieht er eine interessante Analogie zu einer bahnbrechenden Technik der Spieleprogrammierung, an der sich die Verbindung von klassischen und KI-gestützten Programmiermethoden ablesen lässt.
Historische Perspektive: von starren Programmiersprachen zur flexiblen Interaktion in natürlicher Sprache
- Die Anfänge der Programmierung: Anfangs waren Programmiersprachen eng an den Maschinencode gebunden und verlangten ein tiefes Verständnis der Hardware. Sprachen wie Assembler boten Kontrolle, setzten aber akribische Genauigkeit und umfangreiches technisches Wissen voraus.
- Hochsprachen und Abstraktion: Mit der technischen Entwicklung entstanden höhere Programmiersprachen wie C, Java und Python, die stärker abstrahierten und einfacher zu benutzen waren. Damit konnten sich Programmierer mehr auf die Logik konzentrieren und weniger auf hardwarespezifische Details.
- Aufstieg der objektorientierten und funktionalen Programmierung: Paradigmen wie die objektorientierte Programmierung (OOP) und die funktionale Programmierung brachten neue Wege, Daten zu organisieren und zu verarbeiten, und legten den Schwerpunkt auf Modularität und Wiederverwendbarkeit.
- Prompt Engineering: Programme in natürlicher Sprache schreiben, um mit Softwaresystemen zu kommunizieren.
Neue Fähigkeiten und eine neue Denkweise für Programmierer und Engineers
- Anpassung an neue Paradigmen: Jedes neue Programmierparadigma verlangte andere Fähigkeiten und eine andere Denkweise. Programmierer mussten sich laufend anpassen und lernen, in Objekten, Funktionen oder nebenläufigen Prozessen zu denken.
- Flexibilität und Kreativität annehmen: Mit dem Aufkommen von KI und Prompt Engineering verlagert sich der Schwerpunkt von starrer Syntax und strukturierter Logik zu einem fließenderen, kreativeren Ansatz. Dafür braucht es neue Fähigkeiten, die technisches Verständnis mit sprachlichem Können und psychologischem Gespür verbinden.
Die Verbindung von klassischen und KI-gestützten Programmiermethoden verstehen
- Einander ergänzende Ansätze: Klassische Programmierung und Prompt Engineering schließen einander nicht aus, sie ergänzen sich. Klassische Programmierung ist stark bei Struktur und Vorhersagbarkeit, Prompt Engineering bietet Flexibilität und Anpassungsfähigkeit.
- Die neue Rolle von Programmierern: Programmierer übersetzen heute zwischen menschlicher Absicht und maschinellem Verständnis. Sie müssen die technischen Seiten der Softwareentwicklung beherrschen und ebenso die Feinheiten natürlicher Sprache und menschlicher Psychologie.
Fazit
Der Weg von der starren, syntaxgetriebenen Programmierung zum fließenderen, dynamischeren Feld des Prompt Engineering ist eine deutliche Verschiebung in der Informatik. Darin spiegelt sich, wie sich unser Umgang mit Technologie verändert: von expliziten Befehlen hin zu einem dialogischeren, kollaborativen Austausch. Je weiter wir die Möglichkeiten von KI und Sprachmodellen ausloten, desto größer wird die Rolle des Programmierers, mit neuen Herausforderungen und Chancen in einem Feld, das sich ständig weiterentwickelt.
Aus dem Englischen übersetzt: zum Originalbeitrag