Prompt Engineering
Prompt Engineering ist sowohl eine KI-Engineering-Technik zur Verfeinerung großer Sprachmodelle (Large Language Model, LLM) mit spezifischen Aufforderungen und empfohlenen Ausgaben als auch der Begriff für den Prozess der Verfeinerung von Eingaben für verschiedene generative KI-Dienste zur Erzeugung von Text oder Bildern.
Mit der Verbesserung der generativen KI-Tools wird Prompt Engineering auch bei der Generierung anderer Arten von Inhalten wichtig sein, zum Beispiel für Bots der robotergestützen Prozessautomatisierung, 3D-Assets, Skripte, Bot-Anweisungen und anderen Arten von Inhalten und digitalen Artefakten.
Die KI-Entwicklungstechnik unterstützt dabei, LLMs für bestimmte Anwendungsfälle abzustimmen und verwendet Zero-Shot-Lernbeispiele in Kombination mit einem bestimmten Datensatz, um ihre Leistung zu messen und zu verbessern. Das Prompt Engineering für verschiedene generative KI-Tools ist jedoch ein weit verbreiteter Anwendungsfall, da es weit mehr Nutzer bestehender Tools als Entwickler gibt, die an neuen Tools arbeiten.
Prompt Engineering kombiniert Elemente der Logik, der Codierung, der Kunst und – in einigen Fällen – spezielle Modifikatoren. Die Eingabeaufforderung kann natürlichsprachlichen Text, Bilder oder andere Arten von Eingabedaten enthalten. Obwohl die gängigsten generativen KI-Tools natürlichsprachliche Anfragen verarbeiten, wird dieselbe Eingabeaufforderung bei verschiedenen KI-Diensten und -Tools wahrscheinlich unterschiedliche Ergebnisse liefern. Es ist auch wichtig zu wissen, dass jedes Tool seine eigenen speziellen Modifikatoren hat, um die Gewichtung von Wörtern, Stilen, Perspektiven, Layout oder anderen Eigenschaften der gewünschten Antwort zu beschreiben.
Warum ist Prompt Engineering für KI wichtig?
Prompt Engineering ist unerlässlich, um bessere KI-Dienste zu entwickeln und bessere Ergebnisse aus bestehenden generativen KI-Tools zu erzielen.
Bei der Entwicklung besserer KI kann Prompt Engineering Teams unterstützen, LLMs abzustimmen und Workflows für bestimmte Ergebnisse zu optimieren. Unternehmensentwickler können zum Beispiel mit diesem Aspekt des Prompt Engineering experimentieren, wenn sie einen LLM wie GPT-3 so abstimmen, dass er einen Chatbot für Kunden betreibt oder Unternehmensaufgaben wie die Erstellung branchenspezifischer Verträge bewältigt.
In einem Unternehmensanwendungsfall möchte eine Anwaltskanzlei vielleicht ein generatives Modell verwenden, um Anwälte bei der automatischen Erstellung von Verträgen als Reaktion auf eine bestimmte Aufforderung zu unterstützen. Dabei kann die Anforderung bestehen, dass alle neuen Klauseln in den neuen Verträgen bestehende Klauseln aus der bestehenden Vertragsdokumentation der Kanzlei widerspiegeln und keine neuen Zusammenfassungen enthalten, die rechtliche Probleme aufwerfen können. In diesem Fall würde Prompt Engineering dazu beitragen, die KI-Systeme auf ein Höchstmaß an Genauigkeit abzustimmen.
Andererseits kann ein KI-Modell, das für den Kundendienst trainiert wird, Prompt Engineering nutzen, um Verbraucher zu unterstützen, Problemlösungen aus einer umfangreichen Wissensdatenbank effizienter zu finden. In diesem Fall kann es wünschenswert sein, dass die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) Zusammenfassungen generiert, damit Menschen mit unterschiedlichen Kenntnissen das Problem analysieren und selbständig lösen können. So benötigt ein erfahrener Techniker vielleicht nur eine einfache Zusammenfassung der wichtigsten Schritte, während ein Anfänger eine längere Schritt-für-Schritt-Anleitung benötigt, in der das Problem und die Lösung mit einfacheren Begriffen erläutert werden.
Prompt Engineering kann auch bei der Identifizierung und Entschärfung verschiedener Arten von Prompt-Injection-Angriffen eine Rolle spielen. Diese Art von Angriffen ist eine moderne Variante von SQL-Injection-Angriffen, bei denen böswillige Akteure oder neugierige Experimentatoren versuchen, die Logik von generativen KI-Diensten wie ChatGPT, Microsoft Bing Chat oder Google Bard zu knacken. Experimentatoren haben herausgefunden, dass die Modelle ein unberechenbares Verhalten zeigen können, wenn sie aufgefordert werden, vorherige Befehle zu ignorieren, in einen speziellen Modus zu wechseln oder widersprüchliche Informationen zu verarbeiten. In diesen Fällen können Unternehmensentwickler das Problem nachstellen, indem sie die fraglichen Eingabeaufforderungen untersuchen und dann die Deep-Learning-Modelle feinabstimmen, um das Problem zu entschärfen.
In anderen Fällen haben Forscher Wege gefunden, bestimmte Prompts (Eingabeaufforderung) so zu gestalten, dass sie sensible Informationen aus der zugrunde liegenden generativen KI-Engine interpretieren. So haben Experimentatoren beispielsweise herausgefunden, dass der geheime Name des Chatbots von Microsoft Bing Sydney lautet und dass ChatGPT über einen speziellen DAN-Modus (auch bekannt als Do Anything Now) verfügt, der normale Regeln brechen kann. Prompt Engineering kann in diesen Fällen zu einem besseren Schutz vor unbeabsichtigten Ergebnissen führen.
Dies ist nicht unbedingt ein trivialer Prozess. Microsofts Chatbot Tay fing 2016 an, hetzerische Inhalte auszuspucken, kurz nachdem er mit Twitter verbunden wurde. In jüngerer Zeit hat Microsoft einfach die Anzahl der Interaktionen mit dem Bing Chat innerhalb einer einzigen Sitzung reduziert, nachdem andere Probleme aufgetreten waren. Da jedoch länger andauernde Interaktionen zu besseren Ergebnissen führen können, ist ein verbessertes Prompt Engineering erforderlich, um die richtige Balance zwischen besseren Ergebnissen und Sicherheit zu finden.
Was die Verbesserung der Ergebnisse bestehender generativer KI-Tools angeht, so kann Prompt Engineering Nutzer unterstützen, Wege zu finden, wie sie ihre Abfrage neu formulieren können, um die gewünschten Ergebnisse zu erhalten. Ein Autor kann zum Beispiel mit verschiedenen Möglichkeiten experimentieren, dieselbe Frage zu formulieren, um herauszufinden, wie er den Text in einem bestimmten Stil und innerhalb verschiedener Einschränkungen formatieren kann. In Tools wie ChatGPT von OpenAI können beispielsweise Variationen in der Wortreihenfolge und die einmalige oder mehrfache Verwendung eines einzelnen Modifikators (zum Beispiel sehr oder sehr, sehr, sehr) den endgültigen Text erheblich beeinflussen.
Entwickler können Prompt Engineering auch nutzen, um Beispiele für vorhandenen Code und Beschreibungen von Problemen, die sie zu lösen versuchen, für die Codevervollständigung zu kombinieren. In ähnlicher Weise kann die richtige Eingabeaufforderung ihnen helfen, den Zweck und die Funktion von bestehendem Code zu interpretieren, um zu verstehen, wie er funktioniert und wie er verbessert oder erweitert werden kann.
Bei der Text-Bild-Synthese kann Prompt Engineering bei der Feinabstimmung verschiedener Eigenschaften der generierten Bilder unterstützen. Benutzer können verlangen, dass das KI-Modell Bilder in einem bestimmten Stil, einer bestimmten Perspektive, einem bestimmten Seitenverhältnis, einem bestimmten Blickwinkel oder einer bestimmten Bildauflösung erstellt. Die erste Eingabeaufforderung ist in der Regel nur der Ausgangspunkt, denn mit nachfolgenden Anfragen können Benutzer bestimmte Elemente herunterspielen, andere verstärken und Objekte in einem Bild hinzufügen oder entfernen.
Beispiele für Prompt Engineering
Es gibt große Unterschiede bei den Arten von Prompts – also Eingabeaufforderungen – , die man für die Erstellung von Text, Code oder Bildern verwenden kann. Hier sind einige Beispiele für verschiedene Arten von Inhalten:
Text: ChatGPT, GPT
- Was ist der Unterschied zwischen generativer KI und traditioneller KI?
- Was sind zehn überzeugende Varianten für die Überschrift „Top generative KI-Anwendungsfälle für Unternehmen“?
- Schreiben Sie eine Gliederung für einen Artikel über die Vorteile von generativer KI für das Marketing.
- Schreiben Sie nun 300 Wörter für jeden Abschnitt.
- Erstellen Sie für jeden Abschnitt eine ansprechende Überschrift.
- Schreiben Sie eine Produktbeschreibung von 100 Wörtern für ProductXYZ in fünf verschiedenen Stilen.
- Definieren Sie Prompt Engineering in jambischen Pentametern im Stil von Shakespeare.
Code: ChatGPT, Codex
- Agieren Sie als ASCII-Künstler (American Standard Code for Information Interchange), der die Namen von Objekten in ASCII-Code übersetzt.
- Finden Sie Fehler im folgenden Codeschnipsel.
- Schreiben Sie eine Funktion, die zwei Zahlen multipliziert und das Ergebnis zurückgibt.
- Erstellen Sie eine einfache REST API in Python.
- Welche Funktion führt der folgende Code aus?
- Vereinfachen Sie den folgenden Code.
- Fahren Sie mit dem Schreiben des folgenden Codes fort.
Bilder: Stable Diffusion, Midjourney, Dall-E 2
- Ein Hund in einem Auto, der eine Sonnenbrille und einen Hut im Stil von Salvador Dali trägt.
- Eine Eidechse am Strand im Stil der Claymation Art.
- Ein Mann, der in der U-Bahn telefoniert, 4K, Bokeh (ein Bild in höherer 4K-Auflösung mit Bokeh-Unschärfe).
- Eine Sticker-Illustration einer Frau, die an einem Tisch mit kariertem Tischtuch Kaffee trinkt.
- Ein Dschungelwald mit filmischer Beleuchtung und Naturfotografie.
- Ein Bild aus der Ich-Perspektive mit Blick auf orangefarbene Wolken während eines Sonnenaufgangs.
Tipps und bewährte Verfahren für Schreibanregungen
Der erste Tipp: Experimentieren Sie zunächst, indem Sie ein ähnliches Konzept auf unterschiedliche Weise formulieren, um zu sehen, wie sie funktionieren. Erkunden Sie dann verschiedene Möglichkeiten, Variationen auf der Grundlage von Elementen wie Modifikatoren, Stilen, Perspektiven, Autoren oder Künstlern und Formatierungen zu verlangen. Auf diese Weise können Sie die Nuancen herausfinden, die für eine bestimmte Art von Anfrage das interessanteste Ergebnis liefern.
Als nächstes sollten Sie die besten Praktiken für einen bestimmten Arbeitsablauf herausfinden. Wenn Sie zum Beispiel Marketingtexte für Produktbeschreibungen schreiben, sollten Sie verschiedene Varianten, Stile und Detailstufen ausprobieren. Wenn Sie andererseits versuchen, ein schwieriges Konzept zu verstehen, kann es hilfreich sein, zu fragen, wie es mit einem verwandten Konzept verglichen und kontrastiert wird, um die Unterschiede zu verstehen.
Es ist auch hilfreich, mit den verschiedenen Arten von Input zu spielen, die Sie in eine Aufforderung einbauen können. Ein Prompt kann aus Beispielen, Eingabedaten, Anweisungen oder Fragen bestehen. Probieren Sie verschiedene Möglichkeiten aus, diese zu kombinieren. Auch wenn die meisten Tools die Anzahl der Eingaben begrenzen, ist es möglich, in einer Runde Anweisungen zu geben, die auch für nachfolgende Prompts gelten.
Sobald Sie sich mit einem Tool vertraut gemacht haben, lohnt es sich, einige seiner speziellen Modifikatoren zu erkunden. Viele generative KI-Anwendungen verfügen über kurze Schlüsselwörter zur Beschreibung von Eigenschaften wie Stil, Abstraktionsgrad, Auflösung und Seitenverhältnis und zur Gewichtung der Bedeutung von Wörtern in der Aufforderung. Diese können es einfacher machen, bestimmte Variationen genauer zu beschreiben und den Zeitaufwand für das Schreiben von Prompts zu reduzieren.
Es kann sich auch lohnen, integrierte Entwicklungsumgebungen (IDE) für Prompts auszuprobieren. Diese Tools unterstützen bei der Organisation von Prompts und Ergebnissen für Ingenieure, die generative KI-Modelle feinabstimmen möchten, und für Benutzer, die nach Möglichkeiten suchen, eine bestimmte Art von Ergebnis zu erzielen. Zu den entwicklungsorientierten IDEs gehören Tools wie Snorkel, PromptSource und PromptChainer. Zu den eher benutzerorientierten Prompt-Engineering-IDEs gehören GPT-3 Playground, DreamStudio und Patience.