Hey ChatGPT, schreib einen Blogbeitrag zum Thema Prompt Engineering [Teil 1]

Vor einigen Jahren kamen Large Language Models (LLMs) auf den Markt und versprachen, unsere Arbeitsweise zu revolutionieren. Ihr Aufkommen hat sicherlich viele Branchen verändert, aber auch eine Nachfrage nach neuen Fähigkeiten geschaffen – eine der wichtigsten ist die des Prompt Engineering.
Beim Prompt Engineering geht es um die geschickte Strukturierung von Anweisungen, um Modelle generativer künstlicher Intelligenz (KI) bei der Erzielung der gewünschten Ergebnisse zu unterstützen und dabei sowohl technische Präzision als auch Kreativität zu kombinieren.
Durch die effektive Strukturierung von Eingabeaufforderungen können Endbenutzer genaue, qualitativ hochwertige, angepasste und relevante Antworten erhalten und falsche, erfundene oder unsinnige Antworten vermeiden. Mit den heutigen fortschrittlicheren Modellen ist es für Modelle einfacher geworden, die Absicht des Benutzers mit minimalem Aufwand zu interpretieren, wodurch sie benutzerfreundlicher werden. Im Gegenzug haben Benutzer ihre Sprache angepasst, damit sie von LLMs besser verstanden wird. Ein Beispiel hierfür finden Sie im Bild unten.
In einer typischen Konversation zwischen einem Endbenutzer und einem Chatbot umfasst Prompt Engineering die Formulierung spezifischer Fragen oder Anweisungen, die die Antworten des Chatbots leiten und Klarheit und Relevanz gewährleisten. Diese Eingabeaufforderungen werden dann zur Verarbeitung an das Sprachmodell gesendet und die Antworten des LLM werden über die API zurückgesendet.
Natürlich bleibt es für Neulinge eine Herausforderung, die Fähigkeiten des Prompt Engineering zu beherrschen. Nicht das richtige Ergebnis zu erhalten, kann frustrierend sein. Dies liegt oft daran, dass man nicht die richtigen Fragen stellt oder die richtige Eingabeaufforderung liefert. In diesem Blogbeitrag lernen Sie, wie Sie durch Übung und Experimentieren die Kunst des Erstellens präziser und effektiver Eingabeaufforderungen meistern. Wir werden viel abdecken, von den Grundlagen bis hin zu fortgeschrittenen Konzepten wie der Verwendung von Gedankenbaumtechniken in einer Eingabeaufforderung.
Dieses Blog baut auf Ideen auf, die in einem anderen Beitrag begonnen wurden: So erstellen Sie intelligentere Apps mit Funktionsaufrufen und generativer KI. Wir empfehlen Ihnen dringend, es zuerst zu lesen, insbesondere wenn Sie mit Funktionsaufrufen nicht vertraut sind.
Verschiedene Eingabeaufforderungstypen
Um Ihr Verständnis zu verbessern von wie KI-Modelle funktionierenist es wichtig, die verschiedenen Arten von Eingabeaufforderungen zu verstehen, die im Interaktionsprozess involviert sind. Wie im obigen Bild dargestellt, werden sowohl die Systemeingabeaufforderung als auch die Benutzereingabeaufforderung über API-Aufrufe an das Sprachmodell gesendet. Diese Eingabeaufforderungen erfüllen unterschiedliche Rollen bei der Steuerung der Antworten der KI.
Systemaufforderung
Der Systemaufforderung stellt das grundlegende Verhalten und die Richtlinien des KI-Modells dar. Es gibt dem Modell beispielsweise eine Rolle, einen Ton, ethische Vorschriften und/oder eine Themenspezifikation. Dies wird von einem Prompt-Ingenieur festgelegt – oder von Ihnen, nachdem Sie diesen Blogbeitrag gelesen haben. Ein Beispiel für diese Art von Prompt ist: „Du bist ein hilfreicher Assistent, der nur Informationen liefert über Mendix"- Bietet direkte Richtlinien zu Rolle, Inhalt und Einschränkungen. Wenn Sie weiterlesen, finden Sie zusätzliche und fortgeschrittenere Beispiele.
Benutzeraufforderung
A Benutzereingabeaufforderung ist ein weiterer grundlegender Typ. Es handelt sich um die Eingabe, Frage oder Anfrage des Benutzers, die an das LLM gesendet wird, wie in dem zuvor in diesem Beitrag geteilten Bild dargestellt. Dies ist der Ort, an dem Endbenutzer alles schreiben können, was sie möchten, wie zum Beispiel „Gib mir 5 Ideen für eine coole App in Mendix". Bei komplexeren Anfragen können Endbenutzer diesen Beitrag natürlich nutzen, um ihre Eingabekompetenz zu verbessern und zuverlässigere oder passendere Ergebnisse von LLMs zu erhalten.
Kontexteingabeaufforderung
Je nach Projekt oder Anwendungsfall kann es erforderlich sein, dem Modell Kontextinformationen hinzuzufügen. Normalerweise werden diese Informationen, genannt Kontexteingabeaufforderung or Gesprächsverlauf, wird in derselben Interaktion wie das System und die Benutzeraufforderung gesendet. Es erfasst die historischen Informationen der Konversation, um die Kohärenz mit dem Endbenutzer aufrechtzuerhalten und kontextbezogen zu sein. Dies wird von Entwicklern innerhalb ihrer Anwendung festgelegt, beispielsweise in Mendixwird es durch einen Mikrostrom erfasst, wobei Chat-Abschluss (mit Verlauf).
Um dieses Konzept zu verstehen, stellen Sie sich einen Benutzer vor, der mit einem Chatbot interagiert und fragt: „Wie soll ich anfangen?“ Wenn der Benutzer in früheren Interaktionen gefragt hat nach Mendix, wird der LLM verstehen, dass sich die Frage bezieht auf Mendix Apps. In Fällen, in denen der Kontext nicht benötigt wird, wie z. B. bei befehlsbasierten Interaktionen, bei denen die Anfrage lauten könnte: „Licht an“ und das LLM benötigt keine historische Konversation, Entwickler können Operationen wie Chat-Abschluss (ohne Verlauf).
Wichtige Best Practices für die prompte Erstellung
Wenn Sie ein neues Teammitglied einarbeiten, möchten Sie sicherstellen, dass die ihm übertragene Aufgabe so effizient und schnell wie möglich erledigt wird. Dies gilt auch für die Entwicklung von Eingabeaufforderungen. Nachdem Sie nun einige Arten und Techniken von Eingabeaufforderungen kennen, ist es wichtig, die wesentlichen Best Practices für die Erstellung von Eingabeaufforderungen zu verstehen, wie zum Beispiel:
- Klar sein,: Stellen Sie sicher, dass die Eingabeaufforderung relevante Details enthält, die eine klare und präzise Botschaft für den LLM darstellen. Vermeiden Sie komplexe Sprache. Ein Beispiel könnte das Ändern von Sätzen wie „Verfahrensmethoden bewerten…“, Das ist eher formales akademisches Schreiben, um „Erklären Sie den Vorgang…“.
- Beschreiben Sie den Kontext: Wenn Sie dem LLM eine Hintergrundgeschichte, ein Szenario oder eine Erklärung geben, führt dies aufgrund der Kontextherstellung in der Regel zu einem genaueren Ergebnis. Wenn Sie beispielsweise möchten, dass Ihre Endbenutzer Folgendes erfahren: Mendix, die Eingabeaufforderung sollte dieses Detail enthalten.
- Geben Sie Details und Einschränkungen an: Durch die Angabe von Details oder Einschränkungen in der Eingabeaufforderung erhalten Sie konkretere und passendere Antworten auf Ihren Anwendungsfall. Diese können Anweisungen enthalten – beispielsweise die Aufforderung an den LLM, in jeder Antwort Quellen oder Beispiele anzugeben – oder das Aussehen des Ergebnisses anpassen, beispielsweise die Antwort auf 100 Wörter begrenzen oder die Ausgabe in einem JSON-Format schreiben.
- Lassen Sie den LLM eine Rolle übernehmen: Indem Sie dem LLM eine Persona und einen Kontext zu seiner Rolle geben, können Sie das Modell personalisieren, damit es besser zu Ihrem Anwendungsfall passt. Sie erstellen beispielsweise eine App, die Datenwissenschaft lehrt. Dann sollte die Eingabeaufforderung die Rolle eines Professors enthalten, dessen Publikum neu in der Datenwissenschaft ist.
- Verfeinern Sie Ihre Eingabeaufforderung und arbeiten Sie iterativ: Das Testen und Verbessern der Eingabeaufforderung ist eine wichtige Praxis. Manchmal können selbst geringfügige Änderungen, z. B. in der Modellkonfiguration, d. h. von GPT3.5-Turbo zu GPT4o-mini, erhebliche Unterschiede im LLM-Verhalten verursachen. Das Dokumentieren dieser Änderungen und der Ergebnisse kann dabei helfen, die optimale Eingabeaufforderung für Ihren Anwendungsfall zu finden. Optional und falls verfügbar kann das Testen der Eingabeaufforderung durch andere Personen, um Feedback zu erhalten, eine weitere Form der iterativen Verfeinerung darstellen.
Die 5 besten Eingabeaufforderungstechniken
Je komplexer ein Anwendungsfall ist, desto komplexer kann auch die Eingabeaufforderung werden. Machen Sie sich jedoch keine Sorgen, wenn das anfängliche Ergebnis nicht sofort das gewünschte ist. Verbessern Sie stattdessen Ihre Eingabeaufforderungsfähigkeiten, indem Sie eine der folgenden Eingabeaufforderungstechniken verwenden:
Schnelle Technik | Was es ist | Anwendungsfall und Eingabebeispiel |
Interview-Muster-Ansatz | Durch die Verwendung eines interviewähnlichen Ansatzes kann das Modell dem Endbenutzer weitere Fragen stellen, um eine passendere Antwort zu geben. | Anwendungsfall: Film-Empfehlungsmaschine.
Schnelle Anleitung: „Sie fungieren als Experte für Filmempfehlungen. Sie stellen dem Benutzer nacheinander eine Reihe detaillierter Fragen, um seine Filmvorlieben zu verstehen.“ |
Anweisungsaufforderung | Die Anweisung gibt dem KI-Modell Anweisungen, wie eine Aufgabe ausgeführt werden soll. Es kann sich dabei um eine Anleitung zur Art der Ausgabe handeln, z. B. Zusammenfassung oder Übersetzung, Stil, Format und mehr. | Anwendungsfall: Mendix ML Kit Python-Skriptgenerator
Schnelle Anleitung: „Sie agieren als erfahrener Python-Entwickler mit Spezialisierung auf die Mendix ML Kit. Die Ausgabe/Antwort sollte in einem Python-Skript mit Anmerkungen für die Mendix „ML Kit.“ |
Eingabeaufforderung für wenige Schüsse | Es hilft dem Modell, eine Aufgabe oder ein Muster dynamisch zu lernen, indem es Beispiele bereitstellt. Es kann auch Teil der Systemaufforderung sein. | Anwendungsfall: Englisch-Spanisch Übersetzer
Schnelle Anleitung: „Sie sind ein freundlicher Assistent, der beim Übersetzen englischer Texte ins Spanische hilft. Zum Beispiel ‚Guten Abend‘ auf Spanisch: ‚Buenas Noches‘“ |
Gedankenkette | Es vereinfacht komplexe Aufgaben, indem es sie in einzelne Schritte aufteilt, die in einer bestimmten Reihenfolge ausgeführt werden. | Anwendungsfall: Medizinische Diagnose für Praktikanten.
Schnelle Anleitung: „Sie sind ein Diagnoseassistent, der angehenden Ärzten dabei hilft, eine Reihe von Fragen für die Erstuntersuchung der Patienten zu stellen. Ihr Ziel ist es, die Symptome, die Krankengeschichte und andere relevante Variablen des Patienten zu ermitteln, um eine genaue Beurteilung zu erreichen, die je nach Ergebnis an Krankenschwestern oder Ärzte weitergeleitet wird. Fragen Sie den Patienten zunächst nach seinen Hauptsymptomen und dem Grund seines Besuchs. Dann …“ |
Baum des Gedankens | Ähnlich einem Entscheidungsbaum enthält es mehrere Denkstränge, die es dem Modell ermöglichen, eine Bewertung vorzunehmen und seinen Weg zum richtigen Ergebnis zu finden. | Anwendungsfall: Support-Assistent-Bot
Schnelle Anleitung: „Sie sind ein hilfreicher Assistent, der die IT-Abteilung bei Anfragen der Mitarbeiter unterstützt, beispielsweise zu Support-Tickets, Lizenzen oder Hardware-Anfragen. Folgen Sie je nach Art der Anfrage den nachstehenden Anweisungen. Fragt der Nutzer nach … Wenn die Anfrage vage oder unvollständig ist, … Wenn es bei der Anfrage um Lizenzen oder Hardware geht, dann zunächst … Wenn der Benutzer etwas über seine Support-Tickets erfahren möchte, …“ |
Im zweiten Teil dieser Serie finden Sie ein kürzeres Beispiel für einen Tree-Of-Thought-Prompt mit Funktionsaufrufen in Aktion, abgerufen aus dem Support Assistant Starter-App.
Von den Grundlagen zu komplexeren Problemen: Beginnen Sie Ihre Reise zum Prompting wie ein Profi
Wenn Anwendungsfälle komplexer werden und ein klarer Kontext fehlt, produzieren Modelle mit größerer Wahrscheinlichkeit erfundene oder irrelevante Informationen, sogenannte „Halluzinationen“. In Fällen, in denen weniger Hintergrund benötigt wird, tritt dieses Problem weitaus seltener auf. Die Eindämmung dieser Halluzinationen ist eine der großen Herausforderungen des Prompt Engineering. Lassen Sie uns also auf eine Reise eintauchen, um herauszufinden, wie dies erreicht werden kann.
Betrachten wir zunächst ein kurzes Beispiel für einen Chatbot, der Fragen beantwortet. Sie würden mit dem Schreiben beginnen:
You are a helpful assistant who helps users with their questions and requests.
Stellen Sie sich nun vor, Sie möchten einen Bot für ein Unternehmen erstellen und möchten einen Kontext bereitstellen. Sie könnten etwas schreiben wie:
You are a helpful assistant who provides information about Mendix.
Please collect any publicly available information about the company for the user’s question.
Obwohl diese Eingabeaufforderung dem Benutzer dabei helfen soll, öffentlich verfügbare Informationen zu einem bestimmten Unternehmen abzurufen, kann es zu Halluzinationen kommen, wenn die Anfrage technischer wird oder die Antwort nicht oder nicht leicht zugänglich ist.
Geben Sie also Anweisungen für ein besseres Benutzererlebnis, etwa:
You are a helpful assistant who provides information about Mendix.
If the user has a technical question, include the Mendix documentation link.
If the user is struggling with a bug, check Mendix Forum or Documentation for a solution.
Please provide the source of the information in your response.
Lastly, if you are not sure about the response, do not try to create one but rather inform the user that you do not know the answer.
Von hier aus können Sie mit der Erweiterung der Systemaufforderung durch andere Typen beginnen, z. B. eine Few-Shot-Eingabeaufforderung oder eine Anweisungsaufforderung:
You are a helpful assistant who provides information about Mendix.
1. For technical questions, include a link to the Mendix documentation.
Example: If the user asks about connecting to OpenAI, you can answer:
“You can connect your Mendix App with OpenAI by using the OpenAI Connector.
More information can be found here: https://docs.mendix.com/appstore/modules/genai/openai/.”
2. For bug-related issues, refer to the Mendix Forum or Documentation.
Example: If the user says that they created their first app and have an encryption issue, you can answer
“An encryption key might be missing.
More information can be found here: https://community.mendix.com/link/space/app-development/questions/99504..”
3. If unsure about a response, inform the user rather than guessing.
Example: “I do not know the answer. Please provide more information or check the Mendix Documentation (https://docs.mendix.com/) for an answer.”
Sicherlich ist es nicht die beste Lösung, für jede Anfrage öffentliche Informationen zu durchsuchen, da dies dem Modell mehr Interpretationsspielraum lässt und die Wahrscheinlichkeit von Trugbildern erhöht. Darüber hinaus beschränkt es sein Wissen auf einen bestimmten Zeitraum und liefert keine aktuellen Daten. Um dies zu mildern, kann die Integration des Modells in die Wissensdatenbank eines Unternehmens einen kontrollierten Spielraum für die Suche nach Antworten bieten, wodurch die Wahrscheinlichkeit falscher Antworten verringert und die neuesten oder aktuellen Informationen bereitgestellt werden.
Wir untersuchen dies weiter in Teil 2 dieser Serie.
Wenn Sie an Ihrem eigenen GenAI-Anwendungsfall arbeiten und Hilfe benötigen oder Feedback geben möchten, würden wir uns freuen, von Ihnen zu hören. Kontaktieren Sie Ihren Customer Success Manager oder senden Sie uns eine Nachricht im #genai-Steckverbinder Kanal im Mendix Gemeinschafts-Slack. Hier anmelden!
Weitere Ressourcen zum Ausprobieren: Eingabeaufforderung Bibliothek