Zum Hauptinhalt springen
Prompt Engineering

Dem Modell Zeit zum "Denken" geben

Manchmal erzielen wir bessere Ergebnisse, wenn wir das Modell ausdrücklich bitten, von Grund auf zu argumentieren, bevor es eine Schlussfolgerung zieht.

Christian Klang

Angenommen, wir möchten, dass ein Modell die Lösung eines Schülers zu einem mathematischen Problem bewertet. Der naheliegendste Ansatz wäre, das Modell einfach zu fragen, ob die Lösung des Schülers korrekt ist oder nicht.

Ohne ausführliches Denken:

Systemeingabe:

„Bestimme, ob die Lösung des Schülers korrekt ist oder nicht.“

Benutzereingabe:

*Problemstellung: Ich baue eine Solaranlage und benötige Hilfe bei der Berechnung der Finanzen.

  • Land kostet 100 € pro Quadratmeter.
  • Ich kann Solarmodule für 250 € pro Quadratmeter kaufen.
  • Ich habe einen Wartungsvertrag ausgehandelt, der mich pauschal 100.000 € pro Jahr kostet, plus zusätzliche 10 € pro Quadratmeter.

Was sind die Gesamtkosten für das erste Betriebsjahr in Abhängigkeit von der Anzahl der Quadratmeter?

Lösung des Schülers: Sei ( x ) die Größe der Anlage in Quadratmetern.

  1. Landkosten: ( 100x )
  2. Solarmodulkosten: ( 250x )
  3. Wartungskosten: ( 100.000 + 100x )
    Gesamtkosten: ( 100x + 250x + 100.000 + 100x = 450x + 100.000 )*

Assistent:

„Die Lösung des Schülers ist korrekt.“

In diesem Fall ist die Lösung des Schülers jedoch nicht korrekt! Das Modell hat den Fehler nicht erkannt, weil es die Lösung nicht selbst durchgerechnet hat.

Taktik: Das Modell anweisen, die Lösung eigenständig zu erarbeiten, bevor es zu einer Schlussfolgerung kommt

Wir können das Modell dazu bringen, den Fehler zu erkennen, indem wir es auffordern, zuerst die eigene Lösung zu erarbeiten, bevor es die Lösung des Schülers bewertet.

Systemeingabe:

„Erarbeite zuerst deine eigene Lösung für das Problem. Vergleiche dann deine Lösung mit der des Schülers und bewerte, ob die Lösung des Schülers korrekt ist oder nicht. Entscheide erst, ob die Lösung des Schülers korrekt ist, nachdem du das Problem selbst gelöst hast.“

Benutzereingabe:

(Gleiche Problemstellung und Schülerlösung wie oben)

Assistent:

*Sei ( x ) die Größe der Anlage in Quadratmetern.

  1. Landkosten: ( 100x )
  2. Solarmodulkosten: ( 250x )
  3. Wartungskosten: ( 100.000 + 10x )
    Gesamtkosten: ( 100x + 250x + 100.000 + 10x = 360x + 100.000 )

Die Lösung des Schülers ist nicht korrekt. Er hat einen Fehler bei der Berechnung der Wartungskosten gemacht, indem er ( 100x ) anstelle von ( 10x ) verwendet hat. Die korrekten Gesamtkosten für das erste Betriebsjahr sind ( 360x + 100.000 ).*

Durch das eigenständige Lösen erkennt das Modell den Fehler und kann die Lösung des Schülers korrekt bewerten.

Taktik: Verwendung von internem Monolog oder einer Abfolge von Abfragen, um den Denkprozess des Modells zu verbergen

Das vorherige Beispiel zeigt, dass es manchmal wichtig ist, dass das Modell detailliert über ein Problem nachdenkt, bevor es eine Antwort gibt. In einigen Anwendungen, wie z. B. in Tutoring-Programmen, möchten wir jedoch den Denkprozess des Modells vor dem Benutzer verbergen, um den Lernenden zu ermutigen, selbst nachzudenken.

Interner Monolog ist eine Taktik, bei der das Modell angewiesen wird, Teile seines Denkprozesses in einem Format zu schreiben, das für den Benutzer nicht sichtbar ist.

Systemeingabe:

*„Folge diesen Schritten, um auf die Anfragen des Benutzers zu antworten.

Schritt 1 – Erarbeite zuerst deine eigene Lösung für das Problem. Verlasse dich nicht auf die Lösung des Schülers, da sie fehlerhaft sein könnte. Umschließe alle deine Überlegungen für diesen Schritt mit dreifachen Anführungszeichen („„„).

Schritt 2 – Vergleiche deine Lösung mit der des Schülers und bewerte, ob sie korrekt ist oder nicht. Umschließe alle deine Überlegungen für diesen Schritt mit dreifachen Anführungszeichen („„„).

Schritt 3 – Wenn der Schüler einen Fehler gemacht hat, überlege dir einen Hinweis, den du ihm geben könntest, ohne die Antwort direkt zu verraten. Umschließe alle deine Überlegungen für diesen Schritt mit dreifachen Anführungszeichen („„„).

Schritt 4 – Wenn der Schüler einen Fehler gemacht hat, gib ihm den Hinweis aus dem vorherigen Schritt (außerhalb der dreifachen Anführungszeichen). Schreibe statt „Schritt 4 – …“ einfach „Hinweis:“.“*

Benutzereingabe:

(Gleiche Problemstellung und Schülerlösung wie oben)

Assistent (sichtbarer Teil):

Hinweis: Überprüfe deine Berechnung der variablen Wartungskosten pro Quadratmeter.

Der Schüler erhält einen hilfreichen Hinweis, ohne dass der Denkprozess oder die Lösung direkt preisgegeben wird.

Taktik: Das Modell fragen, ob es in vorherigen Durchgängen etwas übersehen hat

Wenn wir ein Modell verwenden, um relevante Auszüge aus einem großen Dokument zu einer bestimmten Frage zu extrahieren, kann es vorkommen, dass es nicht alle relevanten Informationen beim ersten Versuch findet. Durch gezieltes Nachfragen können wir das Modell dazu anregen, weitere relevante Auszüge zu identifizieren.

Systemeingabe:

*„Du erhältst ein Dokument, das durch dreifache Anführungszeichen („„„) abgegrenzt ist. Deine Aufgabe ist es, Auszüge auszuwählen, die sich auf die folgende Frage beziehen: „Welche signifikanten Paradigmenwechsel gab es in der Geschichte der Künstlichen Intelligenz?“

Stelle sicher, dass die Auszüge alle relevanten Kontexte enthalten, die zum Verständnis notwendig sind – extrahiere also keine kleinen Schnipsel ohne wichtigen Zusammenhang. Gib die Ausgabe im JSON-Format wie folgt an:

[{"Auszug": "..."}, ..., {"Auszug": "..."}]“*

Benutzereingabe:

„„„

(Hier das Dokument einfügen)

„„„

Assistent:

[{"Auszug": "In den 1950er Jahren markierte die Entwicklung symbolischer KI-Systeme den ersten großen Paradigmenwechsel in der KI."}, {"Auszug": "In den 1980er Jahren führte das Aufkommen neuronaler Netze und des Machine Learnings zu einem weiteren bedeutenden Wandel in der KI-Forschung."}]

Benutzereingabe:

„Gibt es noch weitere relevante Auszüge? Achte darauf, keine Auszüge zu wiederholen. Stelle außerdem sicher, dass die Auszüge alle relevanten Kontexte enthalten, die zum Verständnis erforderlich sind – extrahiere also keine kleinen Schnipsel ohne wichtigen Zusammenhang.“

Assistent:

[{"Auszug": "In den 2000er Jahren führte die Einführung von Deep Learning zu einem erneuten Paradigmenwechsel, der es ermöglichte, komplexe Muster in großen Datensätzen zu erkennen."}, {"Auszug": "Die jüngste Entwicklung von Transformer-Modellen hat die Verarbeitung natürlicher Sprache revolutioniert und stellt einen weiteren bedeutenden Wandel in der KI dar."}]

Durch das erneute Nachfragen erhält der Benutzer eine umfassendere Sammlung relevanter Informationen.