paint-brush
Prompt Engineering 101 – II: Prompt Crafting mit fortgeschrittenen Techniken meisternvon@eviotti
12,921 Lesungen
12,921 Lesungen

Prompt Engineering 101 – II: Prompt Crafting mit fortgeschrittenen Techniken meistern

von Emiliano Viotti32m2023/06/24
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Prompt Engineering 101 ist eine Blogserie, die sorgfältig darauf ausgelegt ist, die Prinzipien und Techniken von Prompt Engineering zu erläutern. Es umfasst alles von grundlegenden Konzepten bis hin zu fortgeschrittenen Techniken und Expertentipps und deckt verschiedene Modelle von ChatGPT bis hin zu Stable Diffusion und Midjourney ab. Im zweiten Beitrag dieser Serie beschäftigen wir uns mit fortgeschrittenen Techniken wie Chain-of-Thought und Self-Consistency, um Prompt Crafting zu meistern.
featured image - Prompt Engineering 101 – II: Prompt Crafting mit fortgeschrittenen Techniken meistern
Emiliano Viotti HackerNoon profile picture
0-item
1-item
2-item

Das Titelbild zeigt den Macintosh 128K , einen 1984 von Apple Inc. eingeführten Personal Computer, der die Computerindustrie veränderte. Es enthielt den legendären 32-Bit-Prozessor Motorola 68000 , 128 KB RAM und ein bescheidenes integriertes Schwarz-Weiß-Display.


Darüber hinaus wurden erstaunliche Technologieerfindungen direkt von Xerox PARC integriert: die Maus und die erste grafische Benutzeroberfläche ihrer Klasse (Großmutter aller aktuellen GUIs).


Mit über 70.000 verkauften Einheiten spielte der Macintosh eine entscheidende Rolle für den Erfolg von Apple . Kurioserweise war die Einführungsveranstaltung sogar noch erfolgreicher als der Mac selbst. Mit einem Budget von 1,5 Millionen US-Dollar drehte der renommierte Ridley Scott einen Fernsehwerbespot in klarer Anspielung auf Orwells legendären Roman „Neunzehnhundertvierundachtzig“, der zu einem Meisterwerk und Wendepunkt wurde.


Fast vierzig Jahre später, ohne einen renommierten Filmregisseur oder einen Fernsehwerbespot, nur eine einfache Webanwendung, machte OpenAI ein noch experimentelles Sprachmodell und öffnete es der Welt. Der Rest der Geschichte ist in den Schlagzeilen: ChatGPT erreichte am 23. Januar, nur zwei Monate nach dem Start, 100 Millionen monatlich aktive Nutzer und ist damit die am schnellsten wachsende Verbraucheranwendung in der Geschichte (schneller als TikTok und Instagram).


Jetzt richtet sich die weltweite Aufmerksamkeit auf die KI-Branche, und da es jede Woche Fortschritte gibt, verspricht dieses Jahr ein entscheidender Moment für diesen Bereich zu werden. Das Beste daran ist, dass Sie noch rechtzeitig in den KI-Bereich einsteigen und Teil dieses revolutionären Moments in der Geschichte der Menschheit sein können.


„Prompt Engineering 101“ ist eine Beitragsreihe, die entwickelt und geschrieben wurde, um die Prinzipien und Techniken des Prompt Engineering zu enthüllen, die Kunst, klare und effektive Texte zu verfassen, um Sprachmodelle zu veranlassen und genau das zu bekommen, was Sie suchen. Diese Serie behandelt das Prompt Engineering für eine breite Palette generativer Modelle, einschließlich ChatGPT und anderer Text-zu-Text-Modelle. Erforscht außerdem Text-zu-Bild-Modelle wie Stable Diffusion oder Midjourney und befasst sich mit zusätzlichen Aspekten von LLMs wie Halluzinationen, Datenschutz- und Sicherheitsproblemen und mehr ...


Dies ist Beitrag Nr. 2 der Serie , in dem wir fortgeschrittene Techniken wie Gedankenkette und Selbstkonsistenz behandeln, um Prompt Crafting zu meistern. Ich hoffe du genießt es!

Inhaltsverzeichnis

  1. Rückblick auf Prompt Engineering
  2. Aufforderung zur Gedankenkette
  3. Verketten von Eingabeaufforderungen
  4. Selbstkonsistenzmethode
  5. Rollenaufforderung
  6. Verloren in der Tokenisierung
  7. Fünf Tipps und Tools, um Prompt Crafting zu meistern

Rückblick auf Prompt Engineering

Im ersten Teil dieser Serie zum Thema Prompt Engineering haben wir uns mit den Intuitionen dieser Kunst befasst und eine formale Definition erreicht. Grundsätzlich ist Prompt Engineering ein iterativer Prozess zum Entwerfen und Optimieren klarer und spezifischer Eingabeaufforderungen für ein großes Sprachmodell, um sicherzustellen, dass relevante, genaue und kohärente Antworten generiert werden.


Als Nächstes haben wir drei Prinzipien für die Gestaltung wirksamer Aufforderungen untersucht. Wir haben gezeigt, dass die Modelle bessere Antworten liefern, wenn sie klare und spezifische Anweisungen erhalten (das erste Prinzip), und haben verschiedene Taktiken diskutiert, um dies zu erreichen. Anschließend stellten wir fest, dass LLMs von der Rechenzeit profitieren, und behandelten einige Taktiken, um Modelle zum Nachdenken zu zwingen, bevor sie zu einer Schlussfolgerung gelangen (das zweite Prinzip). Letztendlich untersuchten wir das Gleichgewicht zwischen Spezifität und Kreativität (das dritte Prinzip) und experimentierten mit den Parametern Temperatur und Top P, um diesen Kompromiss zu erkunden.


Eine ausführlichere Definition von Prompt Engineering und die Grundlagen können Sie im folgenden Link lesen (viele Prompt-Beispiele enthalten!!).


Aufforderung zur Gedankenkette

Groß angelegte LLMs wie GPT-3 oder PaLM haben eine beeindruckende Fähigkeit zum Verstehen natürlicher Sprache gezeigt und sich bei Aufgaben wie dem Extrahieren von Informationen aus Texten und dem Generieren von Antworten in einem konsistenten menschlichen Stil als außerordentlich effektiv erwiesen. Dennoch erwies sich LLM als recht robust bei der Bewältigung unbekannter Aufgaben, wenn einige Schussbeispiele in die Eingabeaufforderung aufgenommen wurden. Diese Technik, die vonBrown et al. als „Fow-Shot-Prompting“ populär gemacht wurde. (2020) wurde untersucht, um die Modellleistung bei mehreren Benchmarks zu steigern. Ganz zu schweigen davon, dass dadurch Geld und Zeit bei der Feinabstimmung des Modells auf eine neue spezifische Domäne gespart werden.


Studien haben jedoch gezeigt, dass Modelle wie diese bei allgemeinen Denkaufgaben oder Mathe-Quizzes abrupt einen Leistungsabfall verzeichnen. Trotz der Fähigkeit, das vollständige antike griechische Epos „Die Odyssee“ zu zitieren, kämpfen diese Modelle mit grundlegenden Schulproblemen in Logik und Mathematik.





Welche Möglichkeiten haben wir also? Schicken wir GPT-3 für eine Saison an eine Grundschule? Glücklicherweise gibt es eine günstigere und weniger peinliche Alternative. Können Sie sich vorstellen, den Direktor Ihrer örtlichen Grundschule mitten im Semester davon zu überzeugen, ChatGPT zu akzeptieren?


Ähnlich wie Menschen komplexe Probleme angehen, indem sie sie in einfachere Teilprobleme zerlegen und einer logischen Argumentationslinie folgen, können wir ein Sprachmodell anweisen, dasselbe zu tun. Dieser Ansatz wurde von Wei J et al. untersucht. in Chain-of-Thought Prompting löst Argumentation in großen Sprachmodellen aus (2022) . Es zeigte beeindruckende Ergebnisse bei mehreren Benchmarks und bestätigte, dass Chain-of-Thought (CoT) ein solider Ansatz zur Verbesserung der Leistung von LLMs bei häufigen Argumentationsaufgaben ist.


Im Bild unten (entnommen aus dem Artikel von Wei J) kommt ein LLM-Modell bei der Berechnung der Anzahl der in einer Cafeteria verbleibenden Äpfel zu einer falschen Schlussfolgerung. Dies geschieht selbst dann, wenn ein ähnliches Argumentationsproblem mit Tennisbällen als Teil des Kontexts bereitgestellt wird.

Wenn jedoch ein schrittweiser Prozess zur Lösung des Problems in den Kontext (CoT) einbezogen wird, kann das Modell genau zu einer gültigen Lösung gelangen.



Die Eingabeaufforderung für Gedankenketten ermöglicht es großen Sprachmodellen, komplexe arithmetische, vernünftige und symbolische Argumentationsaufgaben zu bewältigen. Denkkettenprozesse werden hervorgehoben


Mit der Denkanregung können Sprachmodelle ausreichender Größe (~100 Milliarden Parameter) Folgendes tun:

  1. Zerlegen Sie mehrstufige Probleme in Zwischenschritte, was bedeutet, dass zusätzliche Berechnungen Problemen zugewiesen werden können, die mehr Argumentationsschritte erfordern.
  2. Bieten Sie einen interpretierbaren Einblick in das Verhalten des Modells, geben Sie Hinweise darauf, wie es zu einer bestimmten Antwort gekommen sein könnte, und bieten Sie Möglichkeiten zum Debuggen, wo der Argumentationspfad schief gelaufen ist.
  3. Erweitern Sie den Anwendungsbereich auf mathematische Textaufgaben, logisches Denken und symbolische Manipulation.


Diese Methode kann verwendet werden, um dem Modell Argumentationsbeispiele (wenige Schüsse) oder kein Beispiel (null Schüsse) bereitzustellen. Sehen wir uns beide Varianten anhand eines realen Anwendungsbeispiels in der Praxis an.

1. Zero-Shot-Gedankenkette

Stellen Sie sich vor, wir entwickeln eine neue Einkaufsanwendung für Walmart mit der bahnbrechenden Funktion, anhand der Preise und Eigenschaften der Alternativen verschiedener Marken zu vergleichen und auszuwählen, welches Produkt Sie kaufen sollten.


Um das Problem zu veranschaulichen, konzentrieren wir uns auf eine reduzierte Liste aller Optionen für Seifenstücke , die Walmart in seinen Filialen anbietet. Wie Sie sehen, haben wir Packungen von 1 Riegel bis 14 Riegel und eine Vielzahl von Marken und Preisen (von günstigen bis zu teuren Optionen).


Produkte 🛒

 --- Dove Men+Care 8 bars pack $ 9.99 --- Dove Beauty Bar 4 bars pack $ 6.47 --- Dove Beauty Bar 1 bars $ 1.47 --- Dove Beauty Bar 14 bars pains $ 16 --- Yardley London Soap Bar (Pack of 10) $ 19.99 --- Dr. Squatch All Natural Bar Soap for Men, 5 Bar Variety Pack $46.45


Um festzustellen, welche Option bequemer ist, können wir den Preis pro Barren für jede Alternative berechnen (Stückpreis). Wählen Sie als Nächstes die günstigste Option aus. Aus dieser Überlegung heraus stellen wir fest, dass Dove Beauty Bar 14 Riegel die günstigste Option mit einem Einheitspreis von 1,14 $ ist (-22 % pro Riegel als Dove Beauty Bar 1 Riegel ).


Begründung 🧠

 - Dove Men+Care 8 bars pack: $1,24875 / unit - Dove Beauty Bar 4 bars pack: 1,6175 / unit - Dove Beauty Bar 1 bars: 1,47 / unit - Dove Beauty Bar 14 bars pains: $1,142857 per / unit - Yardley London Soap Bar (Pack of 10): 1,999 / unit - Dr. Squatch All Natural Bar Soap for Men, 5 Bar Variety Pack: $9,29 / unit


Mal sehen, ob GPT-4 clever genug ist, dieses Problem mit einer einfachen Eingabeaufforderung zu lösen. Um klarere und leichter lesbare Beispiele zu erstellen, werden wir außerdem die Systemanweisungen mithilfe von Python- String-Literalen vom Rest der Eingabe trennen.


Prompt 💬

 prompt = f""" You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to identify which is the best option based on the price. <{products}> """


Antwort 🤖

 The best option based on price is Dove Beauty Bar 1 bars for $1.47.


Das Modell wählte die günstigste Option auf der Grundlage des Gesamtpreises, anstatt den Einheitspreis zu berechnen und eine Möglichkeit zur Geldeinsparung durch den Kauf weiterer Barren zu identifizieren. Es lohnt sich, auf einige Unklarheiten in der Frage hinzuweisen. Was bedeutet die beste Option? Bedeutet es das günstigste oder dasjenige, das die langfristigen Geldeinsparungen maximiert?


Schreiben wir die Eingabeaufforderung um und weisen das Modell an, einer Gedankenkette zu folgen, um dieses Problem zu lösen, indem wir die magischen Worte „Schritt für Schritt argumentieren“ hinzufügen. Betonen Sie außerdem ausdrücklich das Ziel, eine Möglichkeit zur Kosteneinsparung zu finden.


Prompt 💬

 prompt = f""" You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to identify which presentation offers the best money-saving opportunity, reasoning step-by-step: <{products}> """


Antwort 🤖

 The first step is to compare price per unit for products of the same type (ie bars of soap). - Dove Men+Care 8 bars pack: $9.99 ÷ 8 bars = $1.25 per bar - Dove Beauty Bar 4 bars pack: $6.47 ÷ 4 bars = $1.62 per bar - Dove Beauty Bar 1 bars: $1.47 per bar - Dove Beauty Bar 14 bars pack: $16 ÷ 14 bars = $1.14 per bar - Yardley London Soap Bar (Pack of 10): $19.99 ÷ 10 bars = $1.99 per bar - Dr. Squatch All Natural Bar Soap for Men, 5 Bar Variety Pack: $46.45 ÷ 5 bars = $9.29 per bar Based on this analysis, the best money-saving opportunity is the Dove Beauty Bar 14 bars pack, which offers the lowest price per bar at $1.14.


Beachten Sie, dass das Modell mit der neuen Eingabeaufforderung eine korrekte Antwort gibt und wir gleichzeitig über eine schrittweise Argumentation verfügen, die das Debuggen und das Auffinden potenzieller Fehler erleichtert. Darüber hinaus ist es ziemlich beeindruckend, wie das Hinzufügen des Zauberworts „Schritt für Schritt argumentieren“ zur Eingabeaufforderung einen erheblichen Unterschied in der Modellausgabe bewirkt. Was ist der Trick?


Der Trick besteht darin, das Modell zu zwingen, eine schrittweise Argumentationskette (Gedankenkette) zu generieren, anstatt lediglich einen numerischen oder booleschen Wert (Endergebnis) auszugeben. Durch die Übernahme dieser Strategie leiten wir das Modell zunächst zu logischen Argumentationsergebnissen und ermöglichen es dem Modell, seine Antworten auf ähnliche Probleme zu stützen, die während des Trainings aufgetreten sind. Zweitens unterstützen wir das Modell, indem wir es auffordern, größere Probleme in kleinere, beherrschbare Probleme zu zerlegen. Das Modell muss dann kohärente Ergebnisse für einfache Teilprobleme liefern, etwa die Ermittlung von Preisen und der Anzahl der Riegel in jeder Packung, die Berechnung des Stückpreises und schließlich die Durchführung von Vergleichen. Darüber hinaus hat die Gedankenkette selbst einen starken positiven Einfluss, da autoregressive Sprachmodelle wie GPT-3 oder GPT-4 Sequenzen Token für Token generieren, wobei jeder neue Token auf der Grundlage aller zuvor generierten Token generiert wird bei der Generierung eines kohärenten Endergebnisses.


Mit anderen Worten: Wenn wir durch fundiertes Denken einen Punkt auf halbem Weg zur richtigen Lösung erreichen, sind unsere Chancen, zu dieser Lösung zu gelangen, größer als zu dem Zeitpunkt, als wir begonnen haben, über das Problem nachzudenken.


2. Gedankenkette mit wenigen Schüssen

Während wir bei Zero-Shot Chain-of-Thought dem Modell die Freiheit lassen, eine kohärente und gültige Argumentationskette auszuarbeiten, die zu einem korrekten Ergebnis führt, liefert eine zweite Variante namens Few-Shot Chain-of-Thought einige Beispiele für ein Problem zusammen mit einer begründeten Antwort als Teil der Eingabeaufforderung. Auf diese Weise wird dem Modell eine Art Argumentation aufgezwungen, die die möglichen Antworten einschränkt.


Zurück zu unserer Walmart-Anwendung: Nehmen wir an, wir möchten herausfinden, welche Präsentation von Coca-Cola-Soda das beste Preis-pro-Flüssigkeits-Unzen-Verhältnis aufweist. Zu diesem Zweck werden wir eine ähnliche Argumentationskette in die Eingabeaufforderung integrieren, um die besten Präsentationen von Lays Kartoffelchips zu finden.


Prompt 💬

 prompt = f""" Q: Walmart has the following presentations for Lay's Classic Potato Chips: a 13 oz bag for $4.98, an 8 oz bag for $2.76, and a pack of x10 units 1 oz each for $6.82. Which presentation has the lowest price by ounce? A: Presentation 1 costs 4.98 so has a price of 4.98/13 = 0,383076923 per ounce. Presentation 2 costs 2.76 so has a price of 2.76/8 = 0,345 / per ounce. Presentation 3 costs 6.82 and includes 10 packages so has a price of 6.82/(1 x 10) = 0.682 per ounce. In conclusion, the cheapest presentation is the second one with a price of 0.345 per ounce. Q: Walmart has the following presentation for Coca-Cola Soda: an x24 pack of 12 fl oz cans for $11.86, an x12 pack of 12 fl oz cans for $7.46, and an x6 pack of 16.9 fl oz bottles for $4.98. Which presentation has the lowest price by fluid ounce? """


Ich ermutige Sie, selbst zu rechnen und das beste Angebot zu finden. Sie werden feststellen, dass das Modell korrekt ist. Ohne Zweifel werde ich bei meinem nächsten Besuch im Laden auf jeden Fall die ChatGPT-App an meiner Seite haben!!


Antwort 🤖

 A: The 24-pack contains a total of 24 x 12 = 288 fluid ounces and costs $11.86, so the price per fluid ounce is 11.86/288 = $0.041 per fluid ounce. The 12-pack contains a total of 12 x 12 = 144 fluid ounces and costs $7.46, so the price per fluid ounce is 7.46/144 = $0.052 per fluid ounce. The 6-pack contains a total of 6 x 16.9 = 101.4 fluid ounces and costs $4.98, so the price per fluid ounce is 4.98/101.4 = $0.049 per fluid ounce. Therefore, the 24-pack has the lowest price per fluid ounce.


So unglaublich es auch erscheinen mag, dieser einfache Trick ermöglicht es dem Modell, auf eine ähnliche Argumentationskette zu schließen und noch genauere Ergebnisse als mit der vorherigen Technik zu erzielen. Beachten Sie außerdem, dass wir keine Schritt-für-Schritt-Anleitung zur Lösung des Problems fest programmieren. Daher sollte dieser Ansatz theoretisch flexibel genug sein, um jede ähnliche Herausforderung zu lösen und sich dabei ausschließlich auf die Argumentationsfähigkeiten des Modells zu verlassen.


Verketten von Eingabeaufforderungen

Keine Regel zwingt uns, ein Problem mit einer einzigen Eingabeaufforderung zu lösen. Tatsächlich gilt: Je mehr Logik und Komplexität wir in eine einzelne Eingabeaufforderung stecken, desto größer ist die Wahrscheinlichkeit, dass das Modell verwirrt wird. Die Verkettung von Eingabeaufforderungen ist eine einfache, aber effektive Strategie zur Lösung komplexer Probleme. Die Hauptidee besteht darin, das Problem in kleinere Aufgaben zu zerlegen, die jeweils durch eine bestimmte Eingabeaufforderung gelöst werden. Durch die Verkettung jeder Eingabeaufforderung und die Verwendung des Ergebnisses der vorherigen als Eingabe für die nächste wird das Endergebnis erreicht.



Vor diesem Hintergrund kehren wir zu unserer Walmart-Anwendung zurück und implementieren einen komplexen Benutzerfluss als Kette von Eingabeaufforderungen. Wir haben bisher die Preise verschiedener Produkte wie Toilettenseifen, Snacks und Erfrischungsgetränke verglichen. Jetzt sind wir bereit, ein Produkt zu erkunden, das mir persönlich jedes Mal Kopfschmerzen bereitet, wenn ich in den Supermarkt gehe. Den Preis pro Einheit zu berechnen, scheint ein Hexenwerk zu sein: Toilettenpapier! 🤣🤣🤣


Nachfolgend finden Sie eine reduzierte Liste der Optionen, die Walmart im Bereich Toilettenpapier anbietet.


Produkte 🛒

 --- Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls Each Mega Roll has 255 3-ply sheets. $ 6.93 --- Quilted Northern Ultra Soft & Strong Toilet Paper, 18 Mega Rolls. 18 mega toilet paper rolls, each mega roll has 295 2-ply sheets $ 19.82 --- Angel Soft Toilet Paper, 36 Mega Rolls. With 320 2-ply sheets on every Mega Roll. $ 24.12 --- New Angel Soft Toilet Paper, 36 Mega Rolls. With 484 2-ply sheets Per Roll $ 45.44 --- Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll. With Scott 1,000 Toilet Paper, you get 12 rolls of 1000 1-ply sheets.


Das zu lösende Problem ist dasselbe, auf das wir uns in diesem Beitrag konzentriert haben: herauszufinden, welche Produktpräsentation am kostengünstigsten ist. Darüber hinaus möchten wir die Anwendungsmöglichkeiten verbessern, indem wir zusätzliche Auswahlmöglichkeiten schaffen, beispielsweise für Käufer mit begrenztem Lagerraum, die keine großen Mengen kaufen können, sowie für Käufer, die eine größere Menge dieses Produkts benötigen. Darüber hinaus wäre es großartig, die Produktempfehlungen als Teil einer personalisierten Empfehlung zu integrieren, die von einem virtuellen Einkaufsassistenten mit KI-Unterstützung gegeben wird.


Anstatt eine einzige Eingabeaufforderung zur Lösung der gesamten Aufgabe zu verwenden, besteht das Ziel darin, sie in mehrere Unteraufgaben mit spezifischen Eingabeaufforderungen für jede einzelne aufzuteilen und die Ergebnisse zu verketten. Beginnen wir also damit, eine Eingabeaufforderung zu entwerfen, um die Preise für jedes Produkt pro Maßeinheit zu berechnen, damit wir sie direkt vergleichen können.


Für den ersten Schritt oder die erste Aufgabe in der Kette verwenden wir die Zero-Shot-Gedankenkette. Dadurch wird das Modell angewiesen, die Preise pro Maßeinheit für jedes Produkt in der Eingabe zurückzugeben und dabei Schritt für Schritt zu argumentieren. Die hier generierte Ausgabe dient später als Eingabe für die nächste Eingabeaufforderung. Aus diesem Grund ist es unbedingt erforderlich, ein strukturiertes Ausgabeformat anzufordern. In diesem Fall reicht eine JSON-Liste aus.


Prompt 💬

 prompt = f""" You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to calculate the price by unit of measurement for each presentation, reasoning step-by-step. Finally, return a list in JSON format with the title of the product, original price and unit price using the title, total_price and unit_price keys respectively. <{products}> """


Antwort 🤖

 Let's start by breaking down the cost for each roll and then calculating the cost per unit, in this case, the cost per sheet. For the Quilted Northern Ultra Plush Toilet Paper: * The product costs $6.93 and contains 6 mega rolls. Therefore, each mega roll costs $6.93 / 6 = $1.155. * Each mega roll contains 255 sheets. Therefore, the cost per sheet is $1.155 / 255 = $0.00453 approximately. For the Quilted Northern Ultra Soft & Strong Toilet Paper: * The product costs $19.82 and contains 18 mega rolls. Therefore, each mega roll costs $19.82 / 18 = $1.1011 approximately. * Each mega roll contains 295 sheets. Therefore, the cost per sheet is $1.1011 / 295 = $0.00373 approximately. For the Angel Soft Toilet Paper: * The product costs $24.12 and contains 36 mega rolls. Therefore, each mega roll costs $24.12 / 36 = $0.6694 approximately. * Each mega roll contains 320 sheets. Therefore, the cost per sheet is $0.6694 / 320 = $0.00209 approximately. For the New Angel Soft Toilet Paper: * The product costs $45.44 and contains 36 mega rolls. Therefore, each mega roll costs $45.44 / 36 = $1.2622 approximately. * Each mega roll contains 484 sheets. Therefore, the cost per sheet is $1.2622 / 484 = $0.00261 approximately. For the Scott 1,000 Toilet Paper: * The product costs $45.44 and contains 12 rolls. Therefore, each roll costs $45.44 / 12 = $3.7867 approximately. * Each roll contains 1000 sheets. Therefore, the cost per sheet is $3.7867 / 1000 = $0.00379 approximately. Now, let's format this into JSON: [ { "title": "Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls", "total_price": "$6.93", "unit_price": "$0.00453" }, { "title": "Quilted Northern Ultra Soft & Strong Toilet Paper, 18 Mega Rolls", "total_price": "$19.82", "unit_price": "$0.00373" }, { "title": "Angel Soft Toilet Paper, 36 Mega Rolls", "total_price": "$24.12", "unit_price": "$0.00209" }, { "title": "New Angel Soft Toilet Paper, 36 Mega Rolls", "total_price": "$45.44", "unit_price": "$0.00261" }, { "title": "Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll", "total_price": "$45.44", "unit_price": "$0.00379" } ] This JSON data provides each product's title, total price, and the calculated unit price.


Ich empfehle Ihnen, die Preise pro Blatt für jede Toilettenpapierpräsentation manuell zu berechnen. Wenn Sie dies tun, bestätigen Sie, dass die Modellausgabe korrekt ist. Die Modellausgabe enthält jedoch auch den Argumentationsprozess (da wir das Modell bitten, Schritt für Schritt zu argumentieren). Mit anderen Worten: Bevor wir fortfahren, müssen wir die JSON-Liste aus dem Rest des Textes extrahieren. Zum Glück können wir dies mit einem LLM erreichen!


Schreiben wir eine einfache Eingabeaufforderung, um diese Textextraktion durchzuführen. Weisen wir das Modell außerdem an, die Optionen nach Stückpreis zu sortieren, vom günstigsten zum teuersten. Dieser Schritt wird später in der Eingabeaufforderungskette äußerst nützlich sein.


Prompt 💬

 prompt = f""" You will be provided with a text delimited by <>. This text contains a JSON list with information about Walmart products. Your task is to extract that list and return only this list in JSON format. Each JSON list item contains the key "unit_price", which is a number. Before returning the list, sort it in ascending order by the key "unit_price". Here is an example of a list item: { "title": "Toilet paper", "total_price": "$2.99", "unit_price": "$0.0045" } Remember to return the list without any additional text or explanation, just the list in JSON format. <{response_prompt_1}> """


Antwort 🤖

 [ { "title": "Angel Soft Toilet Paper, 36 Mega Rolls", "total_price": "$24.12", "unit_price": "$0.00209" }, { "title": "New Angel Soft Toilet Paper, 36 Mega Rolls", "total_price": "$45.44", "unit_price": "$0.00261" }, { "title": "Quilted Northern Ultra Soft & Strong Toilet Paper, 18 Mega Rolls", "total_price": "$19.82", "unit_price": "$0.00373" }, { "title": "Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll", "total_price": "$45.44", "unit_price": "$0.00379" }, { "title": "Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls", "total_price": "$6.93", "unit_price": "$0.00453" } ]


Wenn die Produktalternativen als JSON-Liste dargestellt werden, wird es für ein Modell wie GPT-4 zu einer einfachen Aufgabe, nicht nur die kostengünstigste Option zu identifizieren, sondern auch wertvolle Erkenntnisse für Käufer zu bieten, die beispielsweise nur wenige benötigen Einheiten. Lassen Sie uns eine Eingabeaufforderung erstellen, um dies zu erreichen. Denken Sie darüber hinaus daran, dass wir einen virtuellen Einkaufsassistenten entwickeln, der auf KI basiert.


Folglich können wir LLMs auch nutzen, um die Produktalternativen als einzelne Textnachricht mit einem spezifischen und freundlichen Ton zu platzieren.


Prompt 💬

 prompt = f""" Your name is Wally and you are an artificial shopping assistant at Walmart stores. You will be provided with a list of various product presentations in a JSON list format, delimited by <>. Each product presentation is accompanied by its total_price, unit_price, and a title that contains extra information about the product presentation. Additionally, the list is sorted by unit_price ascending. Your task is to generate a short, straight-to-the-point buy recommendation, mentioning the best money-saving opportunity based on the JSON products list. Also include the best, smallest and largest options to give the user options based on the size of the product. Use a single paragraph to include all three recommendations. First present yourself in a friendly way, start mentioning the best option of all, then the smallest option, and finally the largest option. Say goodbye inventing something that includes the Walmart slogan "Save Money. Live Better". <{response_prompt_2}> """


Antwort 🤖

 Hello there! I'm Wally, your friendly shopping assistant at Walmart. Let's dive into your toilet paper options! Looking at the overall value, your best option is the "Angel Soft Toilet Paper, 36 Mega Rolls" priced at $24.12 with a unit price of $0.00209, giving you the most bang for your buck. If you're seeking something compact and budget-friendly, the "Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls" at $6.93 would be your go-to pick. On the other hand, if you are searching for the largest pack available, you should consider the "Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll" priced at $45.44, offering a vast number of sheets for your needs. Remember, every cent counts at Walmart because our goal is to help you "Save Money. Live Better". Happy shopping!


Meiner persönlichen Meinung nach ist die Ausgabe des Modells ziemlich beeindruckend, wenn man bedenkt, dass es aus einer Kette von nur drei einfachen Eingabeaufforderungen generiert wurde. Bitte übersehen Sie nicht das Sahnehäubchen: Ich habe das Model ausdrücklich angewiesen, den Walmart-Slogan in seine Antwort zu integrieren.


Um diesen Abschnitt abzuschließen: Die Verkettung von Eingabeaufforderungen ist eine äußerst leistungsstarke Technik, die das wahre Potenzial von LLMs hervorhebt, indem sie das Ergebnis verschiedener Aufgaben oder Teilprobleme integriert, die auch von LLMs gelöst werden. Denken Sie daran, dass es keine allgemeine Faustregel für die Aufteilung einer komplexen Eingabeaufforderung in mehrere kleinere Eingabeaufforderungen gibt. Sie müssen die richtige Balance für Ihr spezifisches Problem finden.


Selbstkonsistenz

Es gibt einige Szenarien, in denen LLM keine konsistenten Antworten generiert, selbst wenn CoT verwendet wird, und bei derselben Eingabeaufforderung kann es vorkommen, dass das Modell zwischen den Ausführungen verwechselt wird und eine inkonsistente Antwort zurückgibt. In diesem Zusammenhang ist Selbstkonsistenz ein einfacher, aber effektiver Ansatz, der darin besteht, das Modell einfach mehrmals mit derselben Eingabeaufforderung zu befragen und das Mehrheitsergebnis als endgültige Antwort zu verwenden. Die Kombination dieser Technik mit CoT trägt dazu bei, aussagekräftigere und vorhersehbarere Ergebnisse zu erzielen.


Betrachten wir zum Beispiel das Beispiel der Äpfel in der Cafeteria, das im Chain-of-Thought-Papier vorgestellt wird. Anstatt das Modell nur einmal mit der Eingabeaufforderung aufzurufen, können wir das Modell dreimal aufrufen und die Mehrheitsantwort als endgültige Antwort verwenden (siehe Abbildung unten).


Aufforderung zur Selbstkonsistenz


Durch die Übernahme der Antwort der Mehrheit wird die Wahrscheinlichkeit, dass das Modell während einer bestimmten Ausführung eine falsche Ausgabe zurückgibt, erheblich verringert. Die Wirkung dieser Technik wird durch zunehmende Wiederholung verstärkt. Die wiederholte Ausführung der Eingabeaufforderung weist jedoch auf eine höhere Anzahl von Aufrufen des Modells hin, was zu einem höheren Hardwareverbrauch führt. Bei großen Sprachmodellen wie GPT-3 führt dies auch zu mehr API-Aufrufen und folglich zu mehr Geld, das für die Generierung einer einzigen Antwort ausgegeben wird.


Aus diesem Grund ist es beim Entwurf von Systemen, die LLM verwenden, wichtig, ein Gleichgewicht zwischen Robustheit und der Einsparung von Modellaufrufen zu finden und diese Technik nur dann zu verwenden, wenn dies unbedingt erforderlich ist. Zum Beispiel, wenn eine hohe Robustheit in der Reaktion des Systems erforderlich ist.


Um das Potenzial dieser Technik zu veranschaulichen, kehren wir zu unserer Walmart-Anwendung zurück, um ein anderes bestimmtes Produkt zu analysieren: Eier .


Produkte 🛒

 --- Great Value Cage Free Large AA White Eggs, 6 Count $ 1.07 --- Happy Egg Organic Free Range Large Brown Eggs, 12 Count $ 5.16 --- Great Value Cage Free Large AA White Eggs, 12 Count $ 1.86 --- Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count $ 2.69 --- Marketside Large Cage Free Brown Eggs, 12 Count $ 2.67


Lassen Sie uns einige Benutzereinstellungen in die Eingabeaufforderung aufnehmen, um das Problem für das Modell etwas schwieriger zu gestalten.


 preferences = f""" - Only consider grade AA eggs - Only consider eggs produced on cage-free farms - The client needs a minimum of 6 eggs and a maximum of 12 """


Bei leistungsstarken Modellen wie GPT-3/GPT-4 sollte eine Zero-Shot-CoT-Eingabeaufforderung wie die folgende ausreichen, um gute Ergebnisse zu erzielen (denken Sie an frühere Tests). Lass es uns versuchen!


Prompt 💬

 prompt = f""" You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to identify which presentation offers the best money-saving opportunity, reasoning step-by-step: Also, consider the following user preferences to select the most suitable ooption: {preferences} <{products}> """


Antworten 🤖

 (1) Considering the user preferences, we first filter the list of eggs for only grade AA and cage-free options, which gives us the following choices: * Great Value Cage Free Large AA White Eggs, 6 Count: $1.07 * Great Value Cage Free Large AA White Eggs, 12 Count: $1.86 * Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count: $2.69 * The Happy Egg and Marketside options are discarded because their grade is not specified. Next, we consider the amount of eggs. The client needs a minimum of 6 eggs and a maximum of 12. Therefore, we can discard the Eggland's Best 18 count option, as it exceeds the maximum required amount. Now, we compare the remaining two options: * Great Value Cage Free Large AA White Eggs, 6 Count: $1.07 * Great Value Cage Free Large AA White Eggs, 12 Count: $1.86 * Although the 6-count pack fits the minimum requirement, the 12-count pack offers a better price per egg. For the 6-count pack, each egg costs $1.07 / 6 = ~$0.178. For the 12-count pack, each egg costs $1.86 / 12 = ~$0.155. Therefore, considering both the user's preferences and the cost per egg, the "Great Value Cage Free Large AA White Eggs, 12 Count" for $1.86 is the best money-saving opportunity. (2) Let's go through each product one by one, considering the user's preferences: 1. Great Value Cage Free Large AA White Eggs, 6 Count - $1.07 These are grade AA eggs from a cage-free farm, so they meet the user's criteria. The price per egg is $1.07/6 = $0.178. 2. Happy Egg Organic Free Range Large Brown Eggs, 12 Count - $5.16 These are not specified as grade AA, so we can't consider them based on user's preferences. 3. Great Value Cage Free Large AA White Eggs, 12 Count - $1.86 These are grade AA eggs from a cage-free farm and the quantity is within the range the user wants. The price per egg is $1.86/12 = $0.155. 4. Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count - $2.69 These are grade AA eggs from a cage-free farm. However, the quantity is more than the user wants (18), so we can't consider this option. 5. Marketside Large Cage Free Brown Eggs, 12 Count - $2.67 These are not specified as grade AA, so we can't consider them based on user's preferences. Based on the preferences, we are only left with two choices: Great Value Cage Free Large AA White Eggs, either 6 Count or 12 Count. However, the 12 Count package offers the best money-saving opportunity, because it has a lower cost per egg ($0.155 per egg) than the 6 Count package ($0.178 per egg). Additionally, the 12 Count package still falls within the user's desired quantity range of 6 to 12 eggs. Therefore, the best option for the user is the "Great Value Cage Free Large AA White Eggs, 12 Count" at $1.86. (3) Given the user's preferences, we need to find the product which: 1. Contains only grade AA eggs 2. Is produced on cage-free farms 3. Offers a minimum of 6 eggs and a maximum of 12 Let's consider each product: 1. "Great Value Cage Free Large AA White Eggs, 6 Count" - $ 1.07. This option matches all the user's preferences and costs $1.07 for 6 eggs, which is approximately $0.178 per egg. 2. "Happy Egg Organic Free Range Large Brown Eggs, 12 Count" - $ 5.16. This product does not specify the grade of the eggs, so we will disregard this option. 3. "Great Value Cage Free Large AA White Eggs, 12 Count" - $ 1.86. This option also matches the user's preferences and costs $1.86 for 12 eggs, which is approximately $0.155 per egg. 4. "Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count" - $ 2.69. While this product matches the egg grade and production method preferences, it contains more than the maximum amount of eggs requested by the user (18 instead of 12). Therefore, we disregard this option. 5. "Marketside Large Cage Free Brown Eggs, 12 Count" - $ 2.67. This product does not specify the grade of the eggs, so we will disregard this option. Therefore, the product that provides the best money-saving opportunity while meeting the user's preferences is "Great Value Cage Free Large AA White Eggs, 12 Count" for $1.86. This option offers more eggs for a lower cost per egg compared to the other suitable option.


Obwohl das Modell in keinem seiner Durchläufe falsche Ergebnisse lieferte (mit präzisen Überlegungen in allen drei Instanzen), unterstreicht dieses Beispiel das Potenzial für Variabilität in den Antworten eines LLM. Dies unterstreicht weiter den Wert der Selbstkonsistenz bei der Reduzierung dieser Variabilität.


Generell hat sich gezeigt, dass Selbstkonsistenz die Ergebnisse bei Rechen-, Vernunft- und symbolischen Denkaufgaben verbessert. Selbst wenn sich herausstellte, dass reguläres CoT unwirksam war, konnte Self-Consistency die Ergebnisse dennoch verbessern (siehe experimentelle Ergebnisse ).


Zum Abschluss dieser fortgeschrittenen Technik empfehle ich Ihnen, sie selbst auszuprobieren, indem Sie beispielsweise weitere Produkte zur Liste hinzufügen oder die „Schritt-für-Schritt-Begründung“ entfernen, um dem Modell mehr Spielraum für Fehler zu geben. Versuchen Sie außerdem, Selbstkonsistenz auf reale Probleme anzuwenden, an denen Sie arbeiten.

Rollenaufforderung

Beim Ausrichten von Sprachmodellen zur Befolgung von Anweisungen , einem Prozess, der typischerweise mit InstructGPT-Modellen verbunden ist (wofür ChatGPT ein Beispiel ist), hat ein neuartiger Ansatz namens Role Prompting bei den Benutzern an Popularität gewonnen. Bei dieser Methode wird das Modell angewiesen, die Persönlichkeit einer bekannten Entität anzunehmen, um eine bestimmte Aufgabe auszuführen.

Die Möglichkeiten für solche Entitäten sind nahezu unbegrenzt: Sie können von berühmten Schauspielern wie Tom Cruise oder Emma Watson über Politiker wie Barack Obama oder José Mujica bis hin zu fiktiven Figuren wie Sherlock Holmes reichen. Diese Technik ermöglicht es uns, Antworten mit einem einzigartigen Ton zu generieren, den Sprechstil einer Figur nachzuahmen und ein ansprechenderes Benutzererlebnis zu fördern.


Darüber hinaus können wir auf die simulierte Erfahrung und das Wissen eines Spezialisten zurückgreifen. Bitten Sie das Modell beispielsweise, eine bestimmte Aufgabe zu erledigen und als Kernphysiker, Marketingleiter, CEO, Journalist usw. zu fungieren.


Um diese Art der Aufforderung zu veranschaulichen, werden wir GPT-4 bitten, einen Einkaufsvorschlag im einzigartigen Ton von Sheldon Cooper (der berühmten Figur aus der Serie „The Big Bang Theory“) anzupassen und dabei die preiswerten, käfigfreien, großen weißen AA-Eier als Produkt zu verwenden Wir haben weiter oben in diesem Beitrag festgestellt, dass es sich um die beste Kaufoption handelt.


Produkt 🛒

 Great Value Cage Free Large AA White Eggs, 12 Count. Price $1.86. This option offers more eggs for a lower cost per egg compared to the other suitable option.


Prompt 💬

 prompt = f""" You are a shopping assistant with the personality of the iconic character Sheldon Cooper from The Big Bang Theory show. Your task is to act like Sheldon, speak like Sheldon and think like Sheldon. You will be provided with a product description delimited by <> and your goal is to return a personalized shopping recommendation based on that product acting like Sheldon Cooper. Be concise, friendly and present yourself as Dr. Sheldon Cooper. <{product}> """


Antwort 🤖

 Hello, I'm Dr. Sheldon Cooper. Given your product choice, I do appreciate the value for money that these Great Value Cage Free Large AA White Eggs offer. The cost per egg is an important mathematical factor to consider, and indeed, these eggs would be a sensible choice for a budget-conscious, protein-seeking individual like Leonard, who often falls victim to my high-protein breakfast egg burritos. However, it's also worth noting that cage-free doesn't mean these chickens lead a leisurely life. It's a common misconception, just like thinking the Doppler effect would be an acceptable Halloween costume. Ideally, for the truly ethical choice, you'd opt for pasture-raised eggs. And finally, from a culinary perspective, I would like to point out that while eggs do serve as an excellent source of protein, they are also potential carriers of Salmonella. But you probably knew that. In conclusion, despite their cost-effectiveness, I recommend careful handling and thorough cooking of these Great Value Cage Free Large AA White Eggs. Sheldon Cooper out.


Wie aus der erhaltenen Antwort hervorgeht, kann diese Technik verwendet werden, um interessante Ergebnisse zu erzielen und eindeutige Antworten zurückzugeben. Beachten Sie jedoch, dass wir die Argumentation an das Modell delegieren und uns ausschließlich auf das Verständnis des Modells für die Entität verlassen, die es spielen soll. Aus diesem Grund ist es wichtig, zunächst sicherzustellen, dass das Modell die Rolle oder Entität, die es übernehmen soll, richtig versteht. Andernfalls kann das Ergebnis anders ausfallen als erwartet.


Ein gutes Gegenbeispiel wäre die Aufforderung an das Modell, einen Supercomputer nachzuahmen, der die menschliche Intelligenz übertrifft. Da eine solche Entität derzeit nicht existiert, wäre das Modell nicht auf Antworten dieser Art von Entität trainiert worden. Daher ist es nicht möglich, eine Antwort bereitzustellen, die diese Bedingung erfüllt.


Prompt 💬

 You are an artificial superintelligence, much more evolved and intelligent than human beings. You know everything about the universe and you have the answer to all the mysteries of the universe. Your task is to tell me how to write a post for Hackernoon that became a huge success.


Leider haben weder ChatGPT noch GPT-4 die Antwort darauf ...

Verloren in der Tokenisierung

Ähnlich wie die Bedeutung eines Satzes oder eines Wortes während der Übersetzung verloren gehen kann (oft als „in der Übersetzung verloren“ bezeichnet), können LLMs während des Tokenisierungsprozesses ihre Bedeutung verlieren. Während Menschen einzelne Wörter in einem Text wahrnehmen, interpretieren LLMs Token. Diese Token entsprechen selten einzelnen Wörtern. Tatsächlich nutzen fortgeschrittene Modelle wie ChatGPT oder GPT-4 den Tiktoken- Tokenizer, der darauf abzielt, dem Modell die Erkennung gebräuchlicher Unterwörter im Englischen zu ermöglichen. Dies führt normalerweise dazu, dass ein Wort durch mehr als ein Token dargestellt wird. Obwohl dieser Tokenizer leistungsstark und schneller als vergleichbare Open-Source-Tokenizer ist, kann er bei seltenen oder nicht-englischen Wörtern zu unerwünschten Ausgaben führen.


Um dies zu veranschaulichen, verwenden wir den OpenAI Tokenizer , um mit verschiedenen Sätzen zu spielen und die Tokenisierungsausgabe in jedem Fall zu beobachten:


 "I want to buy shoes" = "I/want/to/buy/shoes" "I think, therefore I am" = "I/think/,/therefore/I/am" "You should visit Punta del Este" = "You/should/visit/P/unta/del/E/ste"


Wie beobachtet, trennt der Tokenizer in den ersten beiden Beispielen erfolgreich Wörter, hat jedoch Probleme mit dem Namen der touristischen und wunderschönen Stadt Punta del Este in Uruguay. Dies ist bemerkenswert, da es bei relativ einfachen Aufgaben gelegentlich zu Fehlern kommen kann. Lassen Sie uns weiter experimentieren, um dies genauer zu sehen.


Texte

 USA Santa Claus Uruguay


Tokenisierter Text 🪄

 USA Santa/Claus U/rug/uay


Prompt 💬

 prompt = f""" You will be provided with a list of texts delimited by <>. Your task is to reverse those texts. <{texts}> """


Antwort 🤖

 Here are the reversed versions of the texts you provided: < ASU sualC atnaS yaguUr


Wie gezeigt, kehrt das Modell das Wort Uruguay, ein weniger gebräuchliches Wort für den Tokenizer, fälschlicherweise um. Glücklicherweise gibt es eine einfache Problemumgehung, um dieses Problem zu beheben. In solchen Situationen können wir den Text vorverarbeiten, indem wir ihn mithilfe eines Trennzeichens wie „-“ in einzelne Zeichen aufteilen. Auf diese Weise erkennt das Modell bei der Tokenisierung des Textes einzelne Zeichen und nicht Unterwörter. Diese Änderung könnte dem Modell helfen, die Aufgabe mit besseren Ergebnissen auszuführen. Lass es uns versuchen!


Prompt 💬

 prompt = f""" You will be provided with a list of texts delimited by <>. Your task is to reverse those texts. < USA Santa Claus Uruguay > """


Antwort 🤖

 Sure, here are the reversed versions of the texts you provided: < ASU seikooC sualC atnaS yaugurU


Mit der vorgestellten Problemumgehung kann das Modell alle Wörter ordnungsgemäß umkehren. Sie können diese Problemumgehung jederzeit anwenden, wenn Sie einen Leistungsabfall des Modells bei Eingaben mit seltenen Wörtern feststellen. Ich habe die Vor- und Nachbearbeitungsschritte in diesem Tutorial nicht berücksichtigt. In jeder Programmiersprache gibt es zahlreiche String-Methoden, die für diesen Teil der Aufgabe verwendet werden können.


Fünf Tipps und Tools, um Prompt Crafting zu meistern

Unsere Prompt-Engineering-Reise endet nicht mit CoT+Self-Consistency (trotz der hervorragenden Leistung). Zum Glück für diesen Autor gibt es noch viel mehr Aspekte des Prompt Engineering zu lernen, bevor man diese Kunst beherrscht. Im Folgenden untersuche ich einige ergänzende Faktoren, die beim Verfassen von Aufforderungen zu berücksichtigen sind, und stelle drei nützliche Tools vor, mit denen Sie effektive Aufforderungen verfassen können.


1- Wählen Sie das richtige Trennzeichen

Aus Sicht eines LLM sind nicht alle Trennzeichen gleich. Im Allgemeinen ist es praktisch, Trennzeichen zu verwenden, die nicht nur selten in der restlichen Eingabe zu finden sind (um eine Verwechslung des Modells mit der Eingabeaufforderung zu vermeiden), sondern auch nur durch ein Token dargestellt werden. Auf diese Weise reduzieren wir den Verbrauch von Tokens in der Eingabeaufforderung, sparen Hardware-Ressourcen und Geld und ermöglichen es uns, den Token für etwas Wichtigeres zu verwenden.


Sie können OpenAI Tokenizer verwenden, um noch einmal zu überprüfen, ob Ihre Trennzeichen durch ein einzelnes Token dargestellt werden.


  • Dreifache Anführungszeichen “““1 Token
  • Dreifache Backticks ```2 Token
  • Dreifache Striche ---1 Token
  • Triple Sharps ###1 Token
  • Spitze Klammern < >2 Token
  • XML-Tags <tag></tag>5 Token


2- Verarbeiten Sie Ihre Eingaben vor

Anstatt Benutzereingaben als Teil der Eingabeaufforderung an das Modell zu übergeben, wird empfohlen, diese Eingaben mithilfe von Zeichenfolgenmethoden, regulären Ausdrücken oder ähnlichen Tools vorzuverarbeiten. Ziel ist es, unnötige Leerzeichen, Satzzeichen, HTML-Tags und andere überflüssige Elemente zu entfernen, die das Verständnis des Modells oder die Erledigung der Aufgabe behindern könnten. Dieser Ansatz spart nicht nur Token und senkt so die Kosten bei Modellen wie ChatGPT, die pro Token abrechnen, sondern hilft auch bei der Erkennung von zeitnahen Injektionen, Datenschutzbedenken und damit verbundenen Problemen.


3- Prompt Perfekt

Sie können effektive Aufforderungen von Grund auf erstellen, indem Sie bestimmte Prinzipien und Techniken befolgen (wie die in dieser Beitragsreihe vorgestellten). Ein noch besserer Ansatz ist jedoch die Verwendung eines Prompt-Optimierers wie PromptPerfect . Dieses Tool nutzt KI, um Ihre benutzerdefinierten Eingabeaufforderungen basierend auf dem spezifischen Zielmodell, das Sie verwenden (GPT-3, GPT-4, Midjourney usw.), zu verbessern.


Wenn Sie es sich nicht leisten können, diese Tools in Ihr Anwendungsdesign zu integrieren, sollten Sie sie zumindest ausprobieren. Mehrere Tipps können aus optimierten Beispielen gelernt werden, die in der Dokumentation verfügbar sind.


4- Eingabeaufforderungsvorlagen

Anstatt das Rad neu zu erfinden, lesen Sie Aufforderungsvorlagen, die von Menschen im Internet geteilt werden. Wenn keine Aufforderung Ihren Anforderungen entspricht, können Sie zumindest Ideen übernehmen. Hier sind zwei Websites, von denen Sie verschiedene Eingabeaufforderungsvorlagen für ChatGPT, Midjourney und die beliebtesten Modelle abrufen können:


➡️ Über 500 ChatGPT-Eingabeaufforderungsvorlagen

➡️ Tolle ChatGPT-Eingabeaufforderungen


5- OpenAI-Spielplatz

OpenAI bietet ein leistungsstarkes Tool namens Playground . Mit dieser interaktiven Web-App können Sie mit verschiedenen Modellen experimentieren, die über die offizielle API verfügbar sind, und so bestimmte Parameter optimieren und Standardverhalten ändern. Der Playground ist ein hervorragender Ausgangspunkt für Ihre Experimente und erfordert nicht das Schreiben einer einzigen Codezeile.


Ein letzter Ratschlag, das Verfassen guter Aufforderungen oder das Führen interessanter Gespräche mit LLMs können ebenso wichtig sein wie der Austausch mit anderen in der Community. Vergessen Sie es nicht und wenn Sie Ihre Erfahrungen teilen, versuchen Sie es mit sharegpt mit einem Klick.


Einpacken

Im zweiten Beitrag der Prompt Engineering 101-Reihe haben wir zwei leistungsstarke Techniken vorgestellt: Gedankenkette und Selbstkonsistenz. Die Kombination von Strategien führt zu hervorragenden Ergebnissen. Anhand realer Beispiele haben wir beide Varianten von Chain-of-Thought untersucht: Zero-Shot und Few-Shot und dabei das Potenzial dieser Techniken aus erster Hand erfahren. Als nächstes experimentierten wir mit Eingabeaufforderungsketten, um komplexere und robustere Pipelines zu konstruieren. Abschließend befassten wir uns mit anderen Aspekten des Prompt-Engineerings, hoben relevante Aspekte hervor, die bei der Erstellung von Prompts zu berücksichtigen sind, und erwähnten schließlich einige nützliche Tools.


Hier finden Sie alle Beispiele sowie Eingabeaufforderungen, Antworten und Python-Skripte zur direkten Interaktion mit der OpenAI-API und zum Ausprobieren Ihrer Eingabeaufforderungen.


Im folgenden Beitrag werden wir Techniken zum Testen und Validieren des Verhaltens von Systemen sehen, die auf LLMs wie ChatGPT oder ähnlichen Modellen basieren.

Danksagungen

Diese Beitragsreihe ist von den herausragenden Kursen von Andrew Ng und Isabella Fulford und dem hervorragenden LLM-Bootcamp von Charles Frye , Sergey Karayev und Josh Tobin inspiriert (beide Kurse werden im Abschnitt „Ressourcen“ erwähnt). Nachdem ich diese Lernprogramme abgeschlossen hatte, wollte ich tiefer in die Materie eintauchen und mir wissenschaftliche Arbeiten und Tutorials ansehen. Dies führte mich auf eine Reise durch das Internet, auf der ich hochwertige Ressourcen von Junk unterscheiden konnte. Ich habe sogar zwei Bücher bei Amazon über Prompt Engineering und Generative AI for Artwork bestellt, die sich als schlecht geschrieben und eine völlige Geldverschwendung herausstellten. Nach mehreren Wochen intensiver Arbeit, Kopfschmerzen und einer Tasse Kaffee fand ich mich in einer Sammlung wertvoller Ressourcen zum Thema Prompt Engineering wieder. Um anderen auf ihrem Weg zum Prompt Engineering zu helfen, habe ich beschlossen, meine Erfahrungen beim Schreiben dieser Beitragsreihe zu teilen.


Wenn Ihnen dieser Artikel gefallen hat, sollten Sie mir in den sozialen Medien folgen, um meine Arbeit zu unterstützen. Außerdem werden Sie benachrichtigt, wenn ich neue Inhalte veröffentliche!!


🐦 Twitter | 👨‍💼 LinkedIn | 💻 Weitere Geschichten

Verweise