Prompt Engineering

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Prompt Injection)
Zur Navigation springen Zur Suche springen

Prompt Engineering ist ein Konzept der künstlichen Intelligenz (KI), insbesondere der Verarbeitung natürlicher Sprache (englisch: natural language processing, NLP) (Computerlinguistik). Dabei wird ein Prompt, also die Aufgabe, die von der KI erledigt werden soll, in das Eingabefeld geschrieben, z. B. als Frage, statt implizit vorgegeben. Prompt Engineering funktioniert typischerweise, indem es eine oder mehrere Aufgaben in einen prompt-basierten Datensatz umwandelt und ein Sprachmodell mit dem sogenannten „prompt-basierten Lernen“ trainiert.

Die Sprachmodelle GPT-2 und GPT-3 waren wichtige Schritte im Prompt Engineering. Im Jahr 2021 zeigte das Multitask Prompt Engineering unter Verwendung mehrerer NLP-Datensätze eine gute Leistung bei neuen Aufgaben.[1]

Die breite Zugänglichkeit dieser Tools wurde durch die Veröffentlichung mehrerer Open-Source-Projekt-Notizen und von der Community geführter Projekte zur Bildsynthese vorangetrieben.[2]

Im Jahr 2022 wurden Modelle für maschinelles Lernen (ML) wie DALL-E 2, Stable Diffusion und Midjourney für die Öffentlichkeit freigegeben. Diese Modelle verwenden Anweisungen in Text-Form (englisch: text prompts) als Eingabe und verwenden diese, um Bilder zu erzeugen, was eine neue Kategorie des Gestaltens mittels Texten (englisch: prompt engineering) im Zusammenhang mit der Text-zu-Bild-Anregung (englisch: text-to-image prompting) erschuf.[3]

Arten von Prompts

[Bearbeiten | Quelltext bearbeiten]

Abhängig vom System unterscheidet man zwischen unterschiedlichen Arten von Prompts:

  • Ein Systemprompt (englisch: system prompt) beinhaltet Instruktionen für einen bestimmten KI-Agenten. Der Systemprompt wird dem Benutzer nicht angezeigt.
  • Der Benutzerprompt (englisch: user prompt) beinhaltet die Instruktionen eines Benutzers an das System.
  • Als Agentenprompt (englisch: agent prompt) bezeichnet man die Ausgabe eines KI-Agenten.

Eine Serie von Prompts wird zu einer Konversation (englisch: chat) zusammengeführt. Je nach System besteht die Möglichkeit, dass an einer Konversation mehrere Benutzer und KI-Agenten beteiligt sind, wobei jedem Benutzer bzw. Agenten unterschiedliche Aufgaben zukommen.

Beispielsweise kann eine Unterhaltung in einem System für Reisebuchungen die folgenden Stakeholder beinhalten:

  • Ein oder mehrere Personen einer Reisegruppe, welche eine bestimmte Reise buchen möchte(n)
  • Ein Berater des Reisebüro-Unternehmens, welcher die Unterhaltung leitet
  • Spezialisierte KI-Assistenten, welche zusätzliche Informationen bereitstellen:
    • Informationen zu Hotels (Standort, Kosten etc.)
    • Informationen zu Reiseverbindungen (Flugzeug, Zug etc.)
    • Wettervorhersage
    • Informationen zu Sehenswürdigkeiten und kulturellen Veranstaltungen am Reiseziel

Zudem unterscheidet man Prompts nach ihrer Modalität (Text, Bild, Audio, Video), wobei ein Prompt auch mehrere Modalitäten beinhalten kann.

Systemprompts und Agentenprompts werden wiederholt verwendet. Es ist daher möglich, diese Prompts nur einmalig mittels des Tokenizers als Token-Vektoren zu codieren und das Ergebnis in einem Cache oder Datenbank zu speichern. Bei wiederholter Verwendung ergibt sich eine bessere Performance, da der Prompt nicht erneut codiert werden muss.[4]

Nutzerschnittstelle

[Bearbeiten | Quelltext bearbeiten]

Die Nutzung von Prompts zur Steuerung von KI ändert nach Jakob Nielsen zum dritten Mal in der Computergeschichte die Denkweise von Dateneingaben: Auf die Batch-Verarbeitung und die befehlsbasierte Interaktion folge nun die absichtsbasierte Ergebnisspezifikation, bei der Benutzer dem Computer sagen, was sie wollen, und nicht, wie er es tun soll.[5]

Bestandteile eines Text-Prompt

[Bearbeiten | Quelltext bearbeiten]

Typische Bestandteile eines Text-Prompt umfassen Rolle, Tonalität, Kontext, Aufgabenstellung und Ausgabeformat. Es gibt Anleitungen für die Formulierung von Text-Prompts.[6]

Beispiel:

Rolle: Du bist ein Reiseführer.
Tonalität: Sei freundlich und enthusiastisch.
Kontext: Eine Familie möchte einen Sommerurlaub in Europa machen und benötigt Empfehlungen.
Aufgabe: Erstelle einen detaillierten 7-tägigen Reiseplan für einen Familienurlaub in Wien, Österreich. Gib Empfehlungen für familienfreundliche Aktivitäten, Speisemöglichkeiten und kulturelle Erlebnisse.
Ausgabeformat: Erstelle eine Liste, sortiert nach Wochentag und Tageszeit, sowie der möglichen Aktivitäten.

Ein effektiver Prompt setzt sich aus einer gezielten Kombination verschiedener Prompt-Muster zusammen. Zu den gängigen Mustern gehören das Persona-Muster, das Unendliche Generationsmuster und das Template-Muster. Diese Muster werden verwendet, um die generativen Fähigkeiten eines Modells, insbesondere bei autoregressiven Sprachmodellen, optimal zu nutzen.[7]

Bei der autoregressiven Textgenerierung hat jedes erzeugte Token (Wort oder Satzzeichen) eine direkte Auswirkung auf alle nachfolgenden Token. Dies bedeutet, dass bereits das Hinzufügen eines spezifischen Begriffs oder einer Rolle, wie etwa „Rechtsanwalt“, einen erheblichen Einfluss auf die Qualität der generierten Antwort haben kann. Der Begriff „Rechtsanwalt“ aktiviert während des Interferenzprozesses des Sprachmodells verwandte Token, die dem Benutzer ohne spezifische Fachkenntnisse möglicherweise nicht bekannt sind, aber entscheidend für die fachliche Präzision und Kohärenz der Antwort sind.[8]

Durch die gezielte Auswahl von Prompt-Mustern und Begriffen lässt sich die Leistung von Sprachmodellen erheblich steigern, da das Modell kontextbezogene Assoziationen besser erkennen und nutzen kann.

Zero-Shot-Prompting

[Bearbeiten | Quelltext bearbeiten]

Als Zero-Shot-Prompt bezeichnet man es, wenn auf eine Anfrage des Benutzers eine Antwort durch einen Agent erzeugt wird. Im Idealfall kann der Agent die Anfrage des Benutzers direkt beantworten bzw. ausführen.

Few-Shot-Prompting

[Bearbeiten | Quelltext bearbeiten]

Als Few-Shot-Prompting bezeichnet man es, wenn die Antwort des Agenten die Anfrage des Benutzers nicht vollständig beantworten kann. Der Benutzer stellt daher zusätzliche Informationen und Instruktionen bereit, um die Antwort des Agenten in eine bestimmte Richtung zu führen.[9][10][11][12]

Chain-of-Thought (Gedankenkette)

[Bearbeiten | Quelltext bearbeiten]

Chain-of-Thought (CoT) Prompting ist eine Prompt-Engineering-Technik, die darauf abzielt, die Argumentationsfähigkeit großer Sprachmodelle (Large Language Models, LLMs) zu verbessern, indem sie sie dazu veranlasst, eine Reihe von Zwischenschritten zu generieren, die zur endgültigen Antwort eines mehrstufigen Problems führen.[13] Bei Nutzung bestehender LLMs kann die schrittweise Verfeinerung der Fragestellung zu verbesserten Antworten führen.

Während LLMs bei verschiedenen Aufgaben zur Verarbeitung natürlicher Sprache eine beeindruckende Leistung zeigen, haben sie immer noch Schwierigkeiten bei einigen Denkaufgaben, die logisches Denken und mehrere Lösungsschritte erfordern, wie etwa arithmetische Fragen oder Fragen zum gesunden Menschenverstand.[14][15][16]

Dafür werden Modelle verwendet, die eine Gedankenkette erzeugen, um logische Textaufgaben zu lösen, die sonst falsch gelöst würden. Die Gedankenkette ähnelt einer Lösung und kann auch als solche interpretiert werden. Sie ahmt einen schrittweisen Denkprozess nach, um zu einer Antwort zu gelangen. Die Lösungen und Erklärungen werden normalerweise nach der endgültigen Antwort ausgegeben.

Das Chain-of-thought prompting hat als Methode zur Erleichterung des Denkens in Sprachmodellen mehrere vorteilhafte Eigenschaften:[17]

  • Es ermöglicht, mehrstufige Probleme in Zwischenschritte zu zerlegen, was bedeutet, dass zusätzliche Berechnungen Problemen zugewiesen werden können, die mehr Denkschritte erfordern.
  • Es bietet ein interpretierbares Fenster zum Verhalten des Modells, das Hinweise darauf gibt, wie es zu einer bestimmten Antwort gekommen sein könnte, und Möglichkeiten, Fehler zu beheben, wenn der Denkpfad falsch war.
  • Es kann für Aufgaben wie mathematische Textaufgaben, logisches Denken und Symbolverarbeitung verwendet werden und ist prinzipiell auf jede Aufgabe anwendbar, die Menschen mithilfe von Sprache lösen können.
  • Es kann in ausreichend großen Sprachmodellen hervorgerufen werden, indem Beispiele von Gedankenketten in die Muster von Few-Shot-Prompting aufgenommen werden.

Tree-of-Thought (Gedankenbaum)

[Bearbeiten | Quelltext bearbeiten]

Tree-of-Thought (ToT) bezeichnet eine Strategie, bei der mehrere Antworten mittels Chain-of-Thought generiert werden und anschließend die Antworten – gewichtet und gefiltert – zusammgengeführt werden.[18][19][20]

Self-Consistency-Prompting

[Bearbeiten | Quelltext bearbeiten]

Sprachmodelle besitzen kein vollständiges Wissen der Welt und interpolieren bzw. konfabulieren fehlendes Wissen.[21] Diese Eigenschaft von Sprachmodellen ermöglicht es, Anfragen an das Modell auf eine kreative Weise zu beantworten, anstatt ausschließlich auf vorhandenes Wissen zurückgreifen zu können. Allerdings führt dies auch dazu, dass eine Anfrage des Benutzers, auf die eine objektiv richtige Antwort existiert, dem Modell aber unbekannt ist, auf eine Weise beantwortet wird, die richtig erscheinen kann, jedoch nicht den Tatsachen entspricht. Man spricht in diesem Zusammenhang von einer Halluzination.

Als Self-Consistency-Prompting bezeichnet man es, wenn dieselbe Anfrage des Benutzers mehrfach an einen KI-Agenten gestellt wird. Bei einer Information, welche das Modell als Fakt erlernt hat, liefert das Modell eine konsistente Antwort. Konfabulierte Antworten fallen jedoch jedes Mal unterschiedlich aus.[22]

Reflexion-Prompting

[Bearbeiten | Quelltext bearbeiten]

Als Reflexion-Prompting bezeichnet man es, wenn ein KI-Agent Feedback zu einem Prompt erstellt.[23] Man unterscheidet hierbei zwischen:

  • Umformulieren und Ergänzen einer Benutzeranfrage
  • Das Bewerten einer Antwort des KI-Agenten, welcher der KI-Agent selbst getätigt hat (Selbstreflexion)
  • Das Bewerten einer Antwort eines anderen KI-Agenten (Fremdreflexion)

Reverse Prompting

[Bearbeiten | Quelltext bearbeiten]

Das Reverse Prompting ist eine Methode in der das Modell gebeten wird, anhand einer Few-Shot-Prompting-Konversation oder eines Bildes einen Prompt zu generieren, der möglichst zu dem gleichen Ergebnis im Zuge eines Zero-Shot-Prompts geführt hätte.[24]

Plan like a Graph

[Bearbeiten | Quelltext bearbeiten]

Plan like a Graph (PLaG) ist eine Methode in der das Sprachmodell angewiesen wird, eine zu lösende Textaufgabe als Graph zu repräsentieren, etwa als Mermaid-Diagramm oder Python-Code, bevor das Problem gelöst wird.[25]

Negativer Prompt

[Bearbeiten | Quelltext bearbeiten]

Ein Negativer Prompt liefert dem Modell Informationen was es nicht tun soll. Beispielsweise kann man ein Bildgenerator-Modell dazu anleiten, ein Landschaftsbild ohne Häuser zu erstellen. Die Information, dass keine Häuser dargestellt werden sollen, stellt hierbei den negativen Prompt dar. Einfache Sprachmodelle haben jedoch Schwierigkeiten einen negativen Prompt zu verstehen.[26] Ein negativer Prompt sollte daher mit einem „positiven“ Prompt (welches Ergebnis ist erwünscht) ergänzt und bekräftigt werden.

Prompt Injection

[Bearbeiten | Quelltext bearbeiten]

Das Verwenden spezifischer Texteingaben, um an Hintergrundinformationen oder nicht zur Veröffentlichung bestimmte Ausgaben der Sprachmodelle zu gelangen, wird Prompt Injection genannt. Die Bezeichnung entspringt der SQL-Injection, bei der ebenfalls eine spezifische Eingabe des Benutzers zu einem, vom Betreiber des Systems nicht vorgesehenem, Verhalten führt. Da Sprachmodelle anhand von zwischenmenschlichen Konversationen trainiert werden, funktionieren oft auch Social Engineering-Methoden wie Erpressung oder Identitätsbetrug.

Forscherinnen und Forscher widmen sich deren Vermeidung, verwerfen dies aber auch als nicht gänzlich lösbares Problem.[27][28]

Nicht-Text Prompting

[Bearbeiten | Quelltext bearbeiten]

Die Modelle des maschinellen Lernens (ML) wie DALL-E 2, Stable Diffusion und Midjourney verwenden Texteingabeaufforderungen (Prompts) und generieren daraus Bilder, wodurch eine neue Kategorie der Eingabeaufforderungstechnik im Zusammenhang mit Text-zu-Bild-Eingabeaufforderungen eingeführt wurde.[3]

Ein Text-zu-Bild-Prompt kann die Beschreibung des künstlerischen Motivs (beispielsweise leuchtend orange Mohnblumen), das bevorzugte Medium (etwa digitale Malerei oder Fotografie), den gewählten Stil (zum Beispiel hyperrealistisch oder Pop-Art), die Art der Beleuchtung (wie Randbeleuchtung oder Dämmerungslicht) sowie Farbe und Beschaffenheit enthalten. Dadurch lassen sich präzisere Ergebnisse erzielen.[29]

Kombination von Text-Grafischen Nutzerschnittstelle (GUI)

[Bearbeiten | Quelltext bearbeiten]

Die KI-Forschung von Meta Segment Anything veröffentlichte 2023, ein Modell, das eine Bildsegmentierung durch Eingabeaufforderung durchführen kann. Es unterstützt drei Formen der Eingabeaufforderung: einzuschließende und auszuschließende Punkte, Begrenzungsrahmen und Auswahlen.[30]

Mit der Funktion „Vary (Variieren)“ haben Benutzer von Midjourney die Möglichkeit, bestimmte Teile eines Bildes auszuwählen und diese mithilfe von Texteingabeaufforderungen zu ändern. Benutzer können beispielsweise einen Teil des Bildes auswählen, der ihnen nicht gefällt, und ihn mithilfe einer Eingabeaufforderung umwandeln. Das Tool bietet auch die Möglichkeit, Elemente hinzuzufügen, beispielsweise das Hinzufügen von Accessoires zu einem Porträt. Dieser Vorgang wird in anderen Werkzeugen als „Inpainting“ bezeichnet.[31] Einige Tools bieten zudem auch das Outpainting an, bei dem ein Bild am Rand vergrößert und um fiktive Elemente erweitert wird.[32]

Commons: Prompt Engineering – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Victor Sanh, Albert Webson, Colin Raffel et al.: Multitask Prompted Training Enables Zero-Shot Task Generalization. 15. Oktober 2021, arxiv:2110.08207v3 (englisch).
  2. Vivian Liu, Lydia B. Chilton: Design Guidelines for Prompt Engineering Text-to-Image Generative Models. In: ACM Digital Library. Association for Computing Machinery, 29. April 2022, doi:10.1145/3491102.3501825 (englisch).
  3. a b Jim Clyde Monge: Dall-E2 VS Stable Diffusion: Same Prompt, Different Results. In: MLearning.ai. 25. August 2022, abgerufen am 31. August 2022 (englisch).
  4. Prompt caching with Claude. Anthropic, 14. August 2024, abgerufen am 17. August 2024 (englisch).
  5. Jakob Nielsen: AI Is First New UI Paradigm in 60 Years. In: jakobnielsenphd.substack.com. 22. Juni 2023, abgerufen am 29. Juni 2023 (englisch).
  6. Introduction to prompt engineering. Microsoft, 29. März 2024, abgerufen am 2. Juni 2024 (englisch).
  7. Jules White, Quchen Fu, Sam Hays, Michael Sandborn, Carlos Olea, Henry Gilbert, Ashraf Elnashar, Jesse Spencer-Smith, Douglas C. Schmidt: A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT. 21. Februar 2023, abgerufen am 7. September 2024 (englisch).
  8. Pit Ogermann: Warum ist die Optimierung von Prompts wichtig? 3. September 2024, abgerufen am 8. September 2024.
  9. Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothee Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin, Edouard Grave, Guillaume Lample: LLaMA: Open and Efficient Foundation Language Models. Meta AI, 27. Februar 2023, doi:10.48550/arXiv.2302.13971, arxiv:2302.13971v1.
  10. Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei: Scaling Laws for Neural Language Models. 23. Januar 2022, doi:10.48550/arXiv.2001.08361, arxiv:2001.08361v1 (englisch).
  11. Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Ramesh, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, Dario Amodei: Language Models are Few-Shot Learners. 23. Januar 2022, doi:10.48550/arXiv.2005.14165, arxiv:2005.14165v4 (englisch).
  12. Sewon Min, Xinxi Lyu, Ari Holtzman, Mikel Artetxe, Mike Lewis, Hannaneh Hajishirzi, Luke Zettlemoyer: Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? 20. August 2022, doi:10.48550/arXiv.2202.12837, arxiv:2202.12837v2 (englisch).
  13. Zachary McAuliffe: Google's Latest AI Model Can Be Taught How to Solve Problems. In: CNET. Abgerufen am 10. März 2023 (englisch).
  14. Ekta Dang: Harnessing the power of GPT-3 in scientific research. In: VentureBeat. 8. Februar 2023, abgerufen am 10. März 2023 (englisch).
  15. Roger Montti: Google's Chain of Thought Prompting Can Boost Today's Best Algorithms. In: Search Engine Journal. 13. Mai 2022, abgerufen am 10. März 2023 (englisch).
  16. Tiernan Ray: Amazon's Alexa scientists demonstrate bigger AI isn't always better. In: ZDNET. Abgerufen am 10. März 2023 (englisch).
  17. Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed H. Chi, Quoc V. Le, Denny Zhou: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. 10. Januar 2023, doi:10.48550/arXiv.2201.11903, arxiv:2201.11903v6 (englisch).
  18. Shunyu Yao, Dian Yu, Jeffrey Zhao, Izhak Shafran, Thomas L. Griffiths, Yuan Cao, Karthik Narasimhan: Tree of Thoughts: Deliberate Problem Solving with Large Language Models. 3. Dezember 2023, doi:10.48550/arXiv.2305.10601, arxiv:2305.10601v2 (englisch).
  19. Jieyi Long: Large Language Model Guided Tree-of-Thought. 15. März 2023, doi:10.48550/arXiv.2305.08291, arxiv:2305.08291v1.
  20. Tree of Thoughts (ToT). In: Prompt Engineering Guide. Abgerufen am 26. Juli 2024 (englisch).
  21. Beren Millidge: LLMs confabulate not hallucinate. In: Beren's Blog. 19. März 2023, abgerufen am 26. Juli 2024 (englisch).
  22. Xuezhi Wang, Jason Wei, Dale Schuurmans, Quoc Le, Ed Chi, Sharan Narang, Aakanksha Chowdhery, Denny Zhou: Self-Consistency Improves Chain of Thought Reasoning in Language Models. 7. März 2003, doi:10.48550/arXiv.2203.11171, arxiv:2203.11171v4 (englisch).
  23. Noah Shinn, Federico Cassano, Edward Berman, Ashwin Gopinath, Karthik Narasimhan, Shunyu Yao: Reflexion: Language Agents with Verbal Reinforcement Learning. 10. August 2023, doi:10.48550/arXiv.2303.11366, arxiv:2303.11366v4 (englisch).
  24. Jeremy Lamri: Reverse prompting: how to get what you want from ChatGPT? Medium, 25. Februar 2024, abgerufen am 7. August 2024.
  25. Fangru Lin, Emanuele La Malfa, Valentin Hofmann, Elle Michelle Yang, Anthony Cohn, Janet B. Pierrehumbert: Graph-enhanced Large Language Models in Asynchronous Plan Reasoning. 3. Juni 2024, doi:10.48550/arXiv.2402.02805, arxiv:2402.02805 (englisch).
  26. Max Woolf: Stable Diffusion 2.0 and the Importance of Negative Prompts for Good Results. In: Max Woolf's Blog. 28. November 2022, abgerufen am 17. August 2024 (englisch).
  27. Yi Liu, Gelei Deng, Yuekang Li, Kailong Wang, Tianwei Zhang, Yepang Liu, Haoyu Wang, Yan Zheng, Yang Liu: Prompt Injection attack against LLM-integrated Applications. 2023, doi:10.48550/ARXIV.2306.05499, arxiv:2306.05499v1.
  28. Daniel Szöke: Prompt Injection: Marvin von Hagen trägt vor, wie er Bing Chat austrickste. In: heise online. 17. Juli 2023, abgerufen am 26. Juli 2023.
  29. Prompt Engineering für Einsteiger: So funktioniert's! In: tolingo. Abgerufen am 23. August 2023.
  30. Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alexander C. Berg, Wan-Yen Lo, Piotr Dollár, Ross Girshick: Segment Anything. 1. April 2023, doi:10.48550/arXiv.2304.02643, arxiv:2304.02643v1 (englisch).
  31. Jose Antonio Lanz: MidJourney Adds Image Inpainting—Game Changer or Catch-Up Play? In: decrypt.co. 23. August 2023, abgerufen am 23. August 2023 (englisch).
  32. Michael Smith: AI-Powered Image Outpainting. Dev, 11. Mai 2024, abgerufen am 17. August 2024 (englisch).