Effektives Prompt Engineering in der KI Entwicklung
In der heutigen, sich schnell verändernden Technologielandschaft spielt die künstliche Intelligenz (KI) eine immer wichtigere Rolle in allen Bereichen unseres Lebens. Vom Gesundheitswesen bis zum Finanzwesen verändert KI die Branchen, indem sie Aufgaben automatisiert, Ergebnisse vorhersagt und Erkenntnisse liefert, die früher unvorstellbar waren. Doch selbst die fortschrittlichsten KI-Modelle benötigen menschliche Unterstützung, um ihr Potenzial voll auszuschöpfen. Hier kommt Prompt Engineering ins Spiel.
Prompt Engineering ist die Kunst, natürlichsprachige Prompts zu erstellen, die es KI-Modellen, insbesondere den Large Language Models (LLMs), ermöglichen, ausgewählte Aufgaben zu erfüllen. Einfach ausgedrückt, sind Prompts Phrasen oder Sätze, die zur Eingabe von Daten in KI-Modelle verwendet werden und diese anweisen, eine bestimmte Aufgabe auszuführen. Ein Prompt kann verwendet werden, um Text zu generieren, Bilder zu klassifizieren oder Programmcodes zu erklären.
Bei der Verarbeitung natürlicher Sprache (NLP) kann ein Prompt beispielsweise ein Sprachmodell (wie GPT-3 und ChatGPT) dazu anleiten, einen Text zu erzeugen, der einem bestimmten Stil oder Tonfall entspricht. Ein Prompt kann auch verwendet werden, um eine Fortsetzung eines gegebenen Textes zu generieren, wie z. B. die Vervollständigung eines Satzes oder eines Absatzes.
Bei der Bilderzeugung können Prompts verwendet werden, um das Modell (DALLE-2, Stable Diffusion) anzuleiten, Bilder eines bestimmten Typs oder Stils zu erzeugen. So kann eine Eingabeaufforderung beispielsweise dazu dienen, Bilder von Katzen oder Hunden oder Bilder in einem bestimmten Stil wie Impressionismus oder Kubismus zu generieren.
Insgesamt sind Prompts ein entscheidender Bestandteil der generativen KI, da sie eine Möglichkeit bieten, die Ausgabe des Modells zu steuern und sicherzustellen, dass es Inhalte erzeugt, die für eine bestimmte Anwendung oder Aufgabe relevant und nützlich sind.
Die Prompts können je nach Kontext variieren, aber es gibt ein paar Bausteine, die in verschiedenen Kombinationen recht häufig verwendet werden. Dazu gehören:
- Anweisung – die Aufgabe oder Tätigkeit, die erledigt werden muss. Häufig verwendete Formulierungen sind z. B. schreiben, zusammenfassen, antworten, erstellen, extrahieren usw. Die Anweisung kann auch viel detaillierter sein und beschreiben, wie das Modell das Ergebnis erreichen soll.
- Input/Payload – zusätzlicher Text, Bild oder sonstiger Input, mit dem das Modell arbeiten soll. Zum Beispiel ein Text, den das Modell zusammenfassen soll, oder ein Tweet, für den das Modell die Stimmung analysieren soll.
- Kontext – zusätzliche Beschreibung der Rolle, die das Modell bei der Erfüllung der Aufgabe spielen soll, oder weitere Details über die Aufgabe selbst, zum Beispiel: “Sie sind ein Marketingexperte, der auf SEO und Positionierung spezialisiert ist …”
- Beispiele/Output-Anweisungen – wir können unserem Modell helfen, bessere Ergebnisse zu erzielen, wenn wir ihm ein paar Beispiele geben, damit es das Muster lernt (mehr dazu im Abschnitt über das Lernen mit wenigen Beispielen weiter unten). Wir können auch eine beispielhafte Ausgabestruktur angeben, z. B. eine bestimmte JSON-Dateistruktur, in der wir Informationen aus der Eingabe oder anderen Quellen extrahieren möchten.
Je nach der Aufgabe, die das generative Modell erfüllen soll, und der Art des Modells können wir alle oder einige der oben genannten Elemente verwenden. Sie gelten insbesondere für die generativen Text-zu-Text-Modelle. Im Falle von Text-zu-Bild- oder anderen Arten von generativen Modellen wie Text-zu-Video oder Text-zu-3D kann es zusätzliche Aspekte geben, auf die man achten sollte, wie z. B. Beleuchtung, Perspektive, Stil usw.
Wenn es um die Erstellung von Prompts geht, stehen uns einige Methoden zur Verfügung, die in verschiedenen Szenarien eingesetzt werden können. Zu den grundlegenden Prompting-Techniken gehören: Zeo-Shot-Learning, Few-Shot-Learning und Modell-Feinabstimmung.
Zero-shot Learning
Die erste Methode wird als Zero-Shot-Learning bezeichnet. Bei dieser Methode geben wir dem Modell eine Anweisung oder eine Frage und erwarten die Antwort, ohne ihm Beispiele oder Muster für das, was wir erreichen möchten, zu geben. Dies ist die einfachste Methode, mit der wir in der Regel beginnen, wenn wir an einer neuen Aufgabe arbeiten.
Beispiele für solche Methoden sind die folgenden Prompts:
- Wie groß ist der Durchmesser der Erde?
- Erstelle eine Zusammenfassung des folgenden Textes: [Text]
- Generiere einen einprägsamen Slogan für eine Online-Marketing-Agentur
- Übersetze von Deutsch auf Französisch: Bier =>
Few-shot Learning
Bei dieser Methode geben wir dem Modell neben der Aufgabenbeschreibung auch einige Beispiele für die Aufgabe vor. Diese Methode verwendet kontextbezogenes Lernen, was bedeutet, dass wir das Modell “trainieren” oder besser lenken, um die erwarteten Ergebnisse zu erzielen. Es wird empfohlen, diese Methode für komplexere Aufgaben zu verwenden, wenn das Zero-Shot Learning nicht ausreichend ist. Manchmal kommt auch das One-Shot-Learning zum Einsatz, bei dem nur ein einziges Beispiel anstelle von mehreren verwendet wird.
Feinjustierung der Modelle
Einige Modelle, wie z. B. die GPT-Modellfamilie, bieten uns zusätzliche Optionen zur Feinabstimmung der Modelle speziell auf unsere Beispiele. Auch wenn es sich hierbei nicht direkt um eine Prompting-Technik handelt, ist sie doch erwähnenswert, da sie eine weitere Stufe der Komplexität darstellt, wenn Zeo- und Little-Shot-Learning-Ansätze nicht ausreichen, um unsere Ziele zu erreichen. In diesem Beispiel verwenden wir eine separate API, in der wir einen vorbereiteten Datensatz von Prompts und Vervollständigungen (richtige Antworten auf die Prompts) bereitstellen, auf deren Grundlage das Modell lernt, sich an unseren spezifischen Anwendungsfall anzupassen. Normalerweise sind Tausende von aufgabenspezifischen Beispielen erforderlich, um den gewünschten Effekt zu erzielen. Bei dieser Methode sind wir nicht durch die maximale Länge der Aufforderungen und Antworten beschränkt, wie es beim few-shot learning der Fall ist.
Prompts mögen einfach erscheinen, aber sie spielen eine entscheidende Rolle für die Effektivität der Anwendung der generativen KI-Modelle auf unser Szenario. Die Qualität und Spezifität der Prompts wirken sich direkt auf die Genauigkeit und Relevanz der von der KI generierten Ergebnisse aus. Schlecht gestaltete Prompts können zu verzerrten oder irrelevanten Ergebnissen führen, während gut gestaltete Prompts die Genauigkeit und Relevanz der von der KI generierten Ergebnisse erheblich verbessern können.
Betrachten wir die folgenden sehr einfachen Beispiele für gute und schlechte Prompts:
Guter Prompt “Was sind die Symptome einer Erkältung?”
- Dieser Prompt ist spezifisch genug für die gestellte Aufgabe und relevant für den Datensatz.
Schlechter Prompt: “Erzählen Sie mir alles, was Sie über das Gesundheitswesen wissen.”
- Dieser Prompt ist zu allgemein und unspezifisch, was es dem KI-Modell erschwert, genaue und relevante Ergebnisse zu liefern.
Es gibt keine allgemeingültige Regel für die Erstellung der besten Prompts, aber es gibt ein paar Hinweise, die in den meisten Fällen zu qualitativ guten Ergebnissen führten:
- Beginnen Sie einfach und fügen Sie in den nächsten Iterationen mehr Details hinzu. Denken Sie daran, dass die Entwicklung von Prompts ein iterativer Prozess ist und normalerweise viele Experimente erfordert, um optimale Ergebnisse zu erzielen.
- Nach der Regel der Einfachheit: Beginnen Sie mit dem Null-Schuss-Ansatz, wenn die Ergebnisse nicht zufriedenstellend sind, verwenden Sie das Lernen mit wenigen Schüssen, und als nächsten Schritt die Feinabstimmung.
- Seien Sie sehr genau, was Sie erreichen möchten. Im Allgemeinen gilt: Je detaillierter die Anweisungen sind, desto näher liegen die Ergebnisse an dem, was Sie erreichen wollen. Dies ist besonders interessant bei Text-Bild-Modellen wie Stable Diffusion, wo die genaue Beschreibung des Blitzes oder sogar die Parameter des Kameraobjektivs einen großen Unterschied in der Qualität des erzeugten Bildes ausmachen können.
- Wenn Sie eine Ausgabe in einem bestimmten Format erhalten möchten, verwenden Sie Beispiele für die Struktur in der Eingabeaufforderung.
- Lesen Sie die Dokumentation und beachten Sie die modellspezifischen Hinweise zur Eingabeaufforderung. Im Falle des Modells GPT-3 ist es beispielsweise ratsam, bei der Arbeit mit anderen Sprachen als Englisch den Prompt auf Englisch zu schreiben und eine Antwort in der gewünschten Sprache zu verlangen, während der Eingabetext in der Originalsprache bleibt.
- Seien Sie sich der Grenzen des von Ihnen gewählten Large Language Model bewusst und passen Sie Ihre Prompting-Strategie entsprechend an. Achten Sie zum Beispiel auf die maximale Anzahl von Token pro Anfrage (4096 im Fall von GPT 3.5).
Wenn wir uns entscheiden, unsere Lösungen auf der Grundlage von großen Sprachmodellen und Generativer KI zu entwickeln, müssen wir uns neben dem großen Potenzial für die Lösung selbst sehr komplexer Probleme auch der damit verbundenen Risiken und Sicherheitspraktiken bewusst sein.
Einige Überlegungen dazu sind:
- Verzerrungen – Große Sprachmodelle (LLMs) können aufgrund der Daten, auf denen sie trainiert wurden, verzerrt sein, was zu unfairen oder ungenauen Antworten führen kann. Es ist wichtig, die Qualität der LLMs für unseren Anwendungsfall zu validieren und die Voreingenommenheit zu minimieren, indem z. B. richtige Prompting-Techniken oder Feinabstimmung verwendet werden.
- Genauigkeit – LLM-Modelle sind nicht immer genau, sie können Fehler machen oder Antworten generieren, die für die Aufforderung nicht relevant sind. Es ist wichtig, das Modell zu testen und zu validieren, bevor es in einer Produktionsumgebung eingesetzt wird.
- Modellhalluzinationen – eine der wichtigsten Herausforderungen bei der Arbeit mit LLMs sind Situationen, in denen die KI auf sehr überzeugende Weise falsche Antworten erzeugt. Wir können dem entgegenwirken, indem wir zum Beispiel die Parameter des Modells anpassen, robuste Prompts erstellen oder eine zuverlässige Quelle im Kontext des Modells bereitstellen.
- Datenschutz – bei der Erstellung der Prompts müssen wir uns darüber im Klaren sein, wie genau die Daten, die wir als Input verwenden, verarbeitet werden, insbesondere wenn es sich um personenbezogene Informationen oder andere sensible Daten handelt. Zum Beispiel können die Daten, die bei Gesprächen mit ChatGPT verwendet werden, für weitere Modellumschulungen genutzt werden – was bedeutet, dass wir darauf achten müssen, keine PII zu verwenden, um mit der GDPR und anderen relevanten Vorschriften konform zu sein.
Da es sich bei der generativen KI um einen sich sehr schnell verändernden Bereich handelt, ist es von entscheidender Bedeutung, sich ständig über die neuen Entwicklungen auf dem Laufenden zu halten, sowohl um die mit den neuen Modellen und neuen Funktionen verbundenen neuen Möglichkeiten zu nutzen, als auch um die neu entdeckten Risiken zu erkennen. Eines der fortschrittlicheren Themen im Zusammenhang mit der Sicherheit von LLMs sind auch Prompt Injections oder im weiteren Sinne gegnerische Prompts, die wir bei der Entwicklung von auf generativer KI basierenden Lösungen berücksichtigen müssen.
In diesem Artikel haben wir Ihnen die grundlegenden Konzepte im Zusammenhang mit Prompt-Engineering vorgestellt. Die Erstellung gut gestalteter Prompts ist eine der Möglichkeiten, wie wir die generativen KI-Modelle effektiv nutzen können.
Bei der Entwicklung effektiver generativer KI-Lösungen sollten wir auch verschiedene Aspekte berücksichtigen, wie z. B. die Verwendung des richtigen Modells, seine Parametrisierung oder fortgeschrittenere Prompting-Techniken, wie z. B. Chain-of-Thought-Prompting. Zu den fortschrittlicheren Szenarien gehört die Anwendung der generativen Modelle in Kombination mit eigenen Unternehmensdaten, was einen immensen Mehrwert für die Anwendung generativer KI in Unternehmen schafft. Folgen Sie uns, um mehr über Generative KI zu erfahren.
Wenn Sie einen erfahrenen Partner für die Implementierung einer effektiven, an Ihr Unternehmen und Ihre Daten angepassten generativen KI-Lösung suchen, nehmen Sie Kontakt mit uns auf.