Was ist Prompt Engineering?

Auf Geschwindigkeit ausgelegt: ~ 10 ms Latenz, auch unter Last
Unglaublich schnelle Methode zum Erstellen, Verfolgen und Bereitstellen Ihrer Modelle!
- Verarbeitet mehr als 350 RPS auf nur 1 vCPU — kein Tuning erforderlich
- Produktionsbereit mit vollem Unternehmenssupport
Einführung
Eine Aufforderung ist wie eine klare Anweisung oder eine Reihe von Anweisungen, die Sie einem Werkzeug oder einer Person geben. Ganz gleich, ob es sich um ein Schlüsselwort handelt, das Sie in eine Suchmaschine eingeben, um einen Befehl für ein Computerprogramm oder um eine Frage, die Sie einem Freund stellen, die Aufforderungen helfen ihm zu verstehen, wonach Sie suchen oder was er tun soll.
Prompt Engineering, die Kunst und Wissenschaft der Erstellung effektiver Prompts, ist mit der zunehmenden Beliebtheit von Large Language Models (LLMs) immer wichtiger geworden, da es die volle Nutzung der Funktionen von LLMs ermöglicht.
Dieser Artikel hilft Ihnen dabei, Prompt Engineering durch die Linse von Sprachmodellen zu beherrschen.
Prompts und LLMs
Bei der Arbeit am Prompt Engineering verwenden Sie in der Regel eine API, um mit dem LLM zu interagieren. Diese APIs bestehen aus einer Reihe von Hyperparametern, die angepasst werden können, um die gewünschten Ergebnisse zu erzielen. In dieser Diskussion werden wir die Hugging Face Inference API (wie in der Abbildung unten dargestellt) untersuchen und die Bedeutung der einzelnen Parameter untersuchen.
von huggingface_hub importiere InferenceClient
# Parameter HF-Inferenz-Endpunkte
endpunkt_url = "https://YOUR_ENDPOINT.endpoints.huggingface.cloud“
hf_token = „HF_Ihr_Token“
# Streaming-Client
client = inferenceClient (Endpunkt-URL, token=hf_token)
# Generierungsparameter
gen_kwargs = {
„max_neue_Tokens“: 512,
„top_k“: 50, # Anpassung des Top-K-Sampling-Parameters
„top_p“: 0.8, # Nucle-Sampling-Parameter anpassen
„Temperatur“: 0,5, # Anpassung der Temperatur an Zufälligkeit
„repetition_penalty“: 1.5, # Anpassung der Wiederholungsstrafe zur Vermeidung sich wiederholender Antworten
„stop_sequences“: [“\nBenutzer:“, „“, "</s>„],
}
# Aufforderung
prompt = „Was sind die Auswirkungen des Klimawandels auf“
# Textgenerierung
stream = client.text_generation (prompt, stream=true, details=true, **gen_kwargs)
Wie oben erwähnt, können verschiedene Hyperparameter angepasst werden, um die Qualität und Vielfalt des generierten Textes zu beeinflussen. Schauen wir uns die verschiedenen Hyperparameter genauer an, die in der obigen Eigenschaft gen_kwards enthalten sind -
Hyperparameter
Temperatur
Das ist so, als würde man den Gewürzgrad beim Kochen anpassen — eine höhere Temperatur bedeutet mehr Zufälligkeit, z. B. das Hinzufügen von Gewürzen für den Geschmack, während eine niedrigere Temperatur die Dinge vorhersehbar macht, wie z. B. das Festhalten an einem Rezept. Beispielsweise kann bei kreativen Schreibaufgaben wie der Generierung von Gedichten oder der Ideenfindung für Geschichten eine höhere Temperatureinstellung zu vielfältigeren und einfallsreicheren Texten führen.
Top_K
Stellen Sie sich das so vor, als würden Sie die Auswahl in einer Bibliothek auf die beliebtesten Bücher einschränken. Es wählt bei der Textgenerierung die wahrscheinlichsten Tokens aus und verfeinert so die Ausgabe.Stellen Sie sich einen Kundenservice-Chatbot vor, der Benutzer bei häufig gestellten Fragen unterstützt. Durch das Setzen eines top_k-Parameters kann der Chatbot Antworten auf der Grundlage der relevantesten Informationen priorisieren und so sicherstellen, dass die Benutzer genaue und hilfreiche Unterstützung erhalten, ohne von unnötigen Details überfordert zu werden.
Top_P
Top_p setzt ein Limit für die Token, die bei der Auswahl von Token berücksichtigt werden, bis eine kumulative Wahrscheinlichkeit von p erreicht ist. Sowohl top_k als auch top_p werden verwendet, um Diversität und Qualität zu kontrollieren.
Max_neue_Tokens
Es ist, als würde man ein Wortlimit für einen Aufsatz festlegen. MAX_NEW_TOKENS bestimmt, wie viel Text das Modell generieren kann, wobei er innerhalb einer bestimmten Länge bleibt. Wenn Sie beispielsweise Antworten für einen Chatbot generieren, stellen Sie durch das Festlegen eines maximalen Token-Limits sicher, dass die Antworten präzise und für den Konversationskontext relevant bleiben, oder Sie können es erhöhen
Wiederholungsstrafe
Repetition_Penalty hält das Modell davon ab, Tokens wiederzuverwenden, wodurch die Vielfalt im generierten Text gefördert wird. In einer dialogorientierten KI-Anwendung, z. B. einem virtuellen Assistenten, stellt das Setzen einer Wiederholungsstrafe sicher, dass die Reaktionen des Assistenten bei längeren Interaktionen abwechslungsreich und natürlich bleiben
Frequenzstrafe
Frequency Penalty ermutigt das Modell, weniger verbreitete Zeichen zu untersuchen, wodurch der Text einzigartiger wird. Nehmen wir an, Sie entwickeln eine Nachrichtenaggregator-App, die Artikel aus verschiedenen Quellen zusammenfasst. Durch die Anwendung einer Frequenzberichtigung kann die App weniger bekannte Veröffentlichungen oder Nischenthemen priorisieren und den Nutzern so ein breites Spektrum an Perspektiven bieten.
Anwesenheitsstrafe
Die Präsenzstrafe leitet das Modell an, um Text zu generieren, der bestimmten Kriterien entspricht oder bestimmte Themen vermeidet, um die Relevanz sicherzustellen. In einem System zur Inhaltsmoderation von Online-Foren hilft die Festlegung einer Präsenzstrafe dabei, unangemessene oder anstößige Sprache herauszufiltern. Wenn ein Nutzer beispielsweise versucht, diskriminierende Kommentare zu posten, würde die Anwesenheitsstrafe das System veranlassen, eine Warnmeldung zu generieren.
Allgemeine Tipps zum Schreiben besserer Prompts
Beginne mit der Einfachheit
Sie sollten mit einfachen, unkomplizierten Aufforderungen beginnen und die Komplexität durch Verfeinerung schrittweise erhöhen, anstatt am Anfang alle Informationen zu überladen. Versuchen Sie also, eine große Aufgabe in Teilmengen aufzuteilen.
Klare Anleitung
Befehle sollten klar und deutlich sein. Zum Beispiel
Schlechte Aufforderung: "Der schnelle braune Fuchs springt über den faulen Hund, übersetze das.“
Bessere Aufforderung: „Übersetze den folgenden englischen Text ins Spanische: 'Der schnelle braune Fuchs springt über den faulen Hund. '“
Spezifisch sein
Sorgen Sie für eine schnelle Übersichtlichkeit, indem Sie relevante Beispiele und detaillierte Anweisungen einbeziehen.
Schlechte Aufforderung: „Schreiben Sie über soziale Medien und ihre Auswirkungen.“
Bessere Aufforderung: „Schreiben Sie einen Aufsatz mit 500 Wörtern, in dem die Auswirkungen der sozialen Medien auf die psychische Gesundheit von Teenagern erörtert werden. Fügen Sie Statistiken aus seriösen Quellen wie der American Psychological Association hinzu und geben Sie Beispiele aus dem wirklichen Leben von Personen an, die von übermäßiger Nutzung sozialer Medien betroffen sind. “
Verwirrung vermeiden
Stellen Sie sicher, dass die Eingabeaufforderungen klar und direkt sind, um Mehrdeutigkeiten bei den Modellantworten zu vermeiden.
Kontinuierliche Verbesserung
Verfeinern Sie die Eingabeaufforderungen iterativ auf der Grundlage von Feedback und Leistung, um die Ergebnisse zu optimieren.
Tools, Frameworks und Bibliotheken für schnelles Engineering in LLMs
Auswahl der beste schnelle Engineering-Tools hängt davon ab, ob Sie Aufforderungen für Experimente, Produktionsbereitstellung oder modellspezifische Workflows optimieren.
Transformers mit umarmtem Gesicht
Es bietet Schnittstellen für die Feinabstimmung von Modellen für bestimmte Aufgaben und ermöglicht die Erstellung benutzerdefinierter Eingabeaufforderungen.
OpenAI-Codex-API
Die API von OpenAI umfasst Funktionen für das Prompt-Engineering, mit denen Benutzer Code oder Text auf der Grundlage von Eingabeaufforderungen generieren können.
GPT-3 Spielplatz
Plattformen wie der GPT-3 Playground bieten interaktive Umgebungen, in denen Sie mit Eingabeaufforderungen experimentieren und Modellreaktionen in Echtzeit beobachten können.
Googles T5-Framework
T5 (Text-To-Text Transfer Transformer) ist ein Framework, das alle NLP-Aufgaben in ein Text-zu-Text-Format umwandelt und so das Prompt-Engineering für verschiedene Aufgaben vereinfacht.
Allen NLP
AllennLP bietet Tools für die Erstellung und Bewertung von NLP-Modellen, einschließlich Mechanismen für eine schnelle Planung und Bewertung.
Fortgeschrittene Techniken für Prompt Engineering
In diesem Abschnitt werde ich über einige SOTA-Techniken (State-of-the-Art) sprechen, die unter dem Dach von Prompt Engineering in der Verarbeitung natürlicher Sprache (NLP) und der Feinabstimmung von Sprachmodellen implementiert werden. Es kann zu leichten Überschneidungen mit den oben genannten Methoden kommen. Betrachten Sie dies als einen formelleren und strukturierteren Ansatz zum Verständnis der Techniken:
Zero-Shot-Eingabeaufforderung
Wie der Begriff „Zero-Shot“ zeigt, erfolgt die Schlussfolgerung hier direkt, ohne dem LLM zusätzlichen Kontext zu bieten. Stattdessen generiert es Ergebnisse, die auf bereits vorhandenem Wissen basieren.
Aufforderung:
Wer war der erste Mann im Weltraum?
Leistung:
Der erste Mann im Weltraum war Yuri Gagarin, ein sowjetischer Kosmonaut.
Eingabeaufforderung mit wenigen Schüssen
Wenn es um Few-Shot Prompting geht, geht es darum, das Sprachmodell (LLM) ein wenig zu warnen, bevor die Frage gestellt wird. Dieser zusätzliche Kontext dient zwei wichtigen Zwecken: Erstens hilft er dem LLM, zu verstehen, was vor sich geht, sodass er eine genauere Antwort geben kann. Zweitens ermöglicht es dem LLM, neue Dinge zu lernen, auf die es noch nie gestoßen ist, sodass sein Wissen frisch und anpassungsfähig bleibt.
Aufforderung:
Verfassen Sie ein Gedicht mit drei Strophen, die sich jeweils auf ein anderes Thema konzentrieren: Liebe, Natur und Einsamkeit.
Leistung:
In deiner Umarmung finde ich meinen Trost,
Eine Symphonie von Herzen, die wie eins schlagen,
Verloren im Tanz der Umarmung der Leidenschaft.
Seht die flüsternden Bäume, ihre Blätter glühen,
Die Leinwand der Natur, bemalt mit göttlichen Farben,
Gelassenheit findet man im murmelnden Fluss.
In der Stille der Nacht bin ich allein,
Eine einsame Seele unter dem Sternenhimmel,
Ich finde Trost in der Stille, ganz alleine.
Prompte Verkettung
Prompt Chaining ist eine leistungsstarke Technik, um komplexe Aufgaben in überschaubarere Schritte zu unterteilen. Indem Sie die Ausgabe einer Aufforderung mit der Eingabe einer anderen verbinden, können Sie Prozesse rationalisieren und komplizierte Probleme effizient lösen.
Dieser Ansatz bietet mehrere Vorteile: Vereinfachung der Anweisungen, Identifizierung von Problembereichen für eine gezielte Problembehandlung und bessere Validierung der Ergebnisse. Darüber hinaus ermöglicht das Prompt-Chaining die parallele Ausführung von Aufgaben, sodass mehrere Unteraufgaben gleichzeitig bearbeitet werden können.
Eingabeaufforderung-1:
Auf der Website gibt es eine Trainingsroutine<link>:
Bitte identifizieren Sie alle Übungen, die auf der Website erwähnt werden. Geben Sie sie als direkte Anführungszeichen an, eingeschlossen in<quotes></quotes> XML-Tags. Wenn es keine Übungen gibt, sagen Sie bitte: „Es werden keine Übungen erwähnt.“
Ausgang-1:
<quotes>
„10 Liegestütze“
„20 Kniebeugen“
</quotes>
Eingabeaufforderung-2:
Hier sind die Übungen, die in der Routine erwähnt werden und in<quotes></quotes> XML-Tags enthalten sind:
<quotes>
„10 Liegestütze“
„20 Kniebeugen“
</quotes>
Bitte verwenden Sie diese Übungen, um eine Trainingsroutine zu erstellen. Stellen Sie sicher, dass Ihre Anweisungen klar und leicht zu befolgen sind.
Ausgang-2:
# Generiert einen umfassenden Trainingsplan
Gedankenkette als Anregung
Die Chain-of-Thought-Prompting-Technik spiegelt das Szenario wider, in dem ein Schüler ein Beispielproblem erhält und anschließend aufgefordert wird, ähnliche Probleme zu lösen.
Aufforderung:
F: Sally hat 50 Äpfel. Sie gibt ihrer Freundin 15 und kauft dann dreimal so viele, wie sie weggegeben hat. Wie viele Äpfel hat Sally jetzt?
A: Sally begann mit 50 Äpfeln. Nachdem sie 15 verschenkt hat, hat sie 50 - 15 = 35 Äpfel übrig. Dann kauft sie dreimal so viele, wie sie verschenkt hat, also 3* 15 = 45 Äpfel. Sally hat jetzt 35 + 45 = 80 Äpfel, die sie gekauft hat, zu dem hinzu, was sie noch übrig hatte. Daher hat Sally 80 Äpfel.
F: Joe hat 20 Eier. Er kauft 2 weitere Kartons mit Eiern. Jeder Karton enthält 12 Eier. Wie viele Eier hat Joe jetzt?
Leistung:
A: Joe hat mit 20 Eiern angefangen. 2 Kartons mit 12 Eiern sind 24 Eier. 20 + 24 = 44. Daher hat Joe 44 Eier und die Antwort lautet 44.
In Situationen, in denen Sie weniger oder keine Beispiele haben, fügen Sie einen Satz hinzu wie“Lass uns Schritt für Schritt nachdenken„zur ursprünglichen Aufforderung zu wechseln, verbessert effektiv die Leistung des Modells.
Automatische Gedankenkette (Auto-COT)
Es generiert automatisch Beispiele, die dem LLM zeigen, wie Probleme gelöst werden können. Diese Beispiele werden als „Demonstrationen“ bezeichnet und entstehen, indem der LLM aufgefordert wird, seinen Denkprozess zu artikulieren und zu erläutern, wie er an ein Problem herangehen würde.
Wie funktioniert Auto-COT?
Auto-COT arbeitet in zwei Stufen:
- Fragen-Clustering: Zunächst werden ähnliche Fragen gruppiert. Auf diese Weise wird sichergestellt, dass die Demonstrationen ein breites Spektrum verschiedener Arten von Problemen abdecken.
- Stichprobenerhebung: Anschließend wählt es eine repräsentative Frage aus jedem Cluster aus und bittet den LLM, eine Demonstration dafür zu erstellen. Der LLM tut dies, indem er laut denkt und seine Argumentation Schritt für Schritt erklärt.
Feinabstimmung von LLMs
Oft wird Feinabstimmung nicht als Teil von Prompt Engineering betrachtet, sondern ist ähnlich wie Prompt Engineering eine Methode zur Anpassung großer Sprachmodelle (LLMs) an spezifische Aufgaben.
Dabei wird das bereits trainierte Modell mit unserem speziellen markierten Datensatz trainiert und so dessen Parameter angepasst. Während die letzten Ebenen häufig an die neuen Daten angepasst werden, kann bei der Feinabstimmung die Parameter auf mehreren Ebenen angepasst werden, um domänenspezifische Merkmale besser zu erfassen und gleichzeitig das Wissen aus dem ursprünglichen Training beizubehalten.
Traditionell war Fine-Tunning ein komplexer und ressourcenintensiver Prozess, der leistungsstarke Hardware, Fachwissen im Bereich maschinelles Lernen und große Mengen an beschrifteten Daten erforderte.
Mit Plattformen wie Hugging Face, die vortrainierte Modelle und benutzerfreundliche Feinabstimmungspipelines bereitstellen, ist die Feinabstimmung jedoch zugänglicher und effizienter geworden. Durch die Integration der Funktionen von Hugging Face mit herkömmlichen Ansätzen zur Feinabstimmung können wir vortrainierte Modelle als Ausgangspunkt nutzen, wodurch der Bedarf an riesigen Mengen an beschrifteten Daten und Fachwissen reduziert wird.
Truefoundry bietet auch die Möglichkeit, Ihre LLMs zu optimieren. Mit seiner intuitiven und einfachen Oberfläche können Sie Ihre Modelle in 3 einfachen Schritten optimieren:
- Ihre Datenbank verbinden
- Vergleichen Sie verschiedene Feintuning-Jobs und wählen Sie den richtigen für Ihre Bedürfnisse aus.
- Stellen Sie Ihr fein abgestimmtes Modell bereit.
Erweiterte Generierung (RAG) für Abruf
In RAG wird der Abruf neben der Generierung als Komponente verwendet, um die Leistung des Modells bei Aufgaben wie der Beantwortung von Fragen und der Textgenerierung zu verbessern. RAG kann an Szenarien mit sich ändernden Fakten angepasst werden, was wertvoll ist, da das feste Wissen der LLMs nicht Schritt halten kann. RAG ermöglicht es Sprachmodellen, ein erneutes Training zu überspringen und durch abrufbasierte Generierung auf die neuesten Informationen zuzugreifen, um zuverlässige Ergebnisse zu erzielen.
In den letzten Jahren haben sich RAG-Systeme von einfachen Naive RAG zu anspruchsvolleren Advanced RAG- und Modular RAG-Modellen weiterentwickelt.
Naive RAG ruft Informationen auf der Grundlage von Benutzereingaben ab, hat jedoch aufgrund veralteter Daten und irrelevanter Antworten Probleme mit der Genauigkeit. Advanced RAG verbessert dies, indem es den Abrufprozess optimiert und ihn so präziser und relevanter macht.
Modular RAG geht noch einen Schritt weiter und bietet verschiedene anpassbare Module wie Suche und Speicher an, die Flexibilität bei der Lösung spezifischer Probleme ermöglichen. Insgesamt zielen diese Fortschritte darauf ab, Konversationssysteme intelligenter und zuverlässiger zu machen, indem das Abrufen von Informationen und die Generierung von Antworten besser verwaltet werden.
Echte Gießerei bietet auch eine durchgängige Schnittstelle für RAG mit der Möglichkeit zur Integration in beliebige Metadatenspeicher, Einbettungen oder LLM-Modelle
Verstärktes Lernen durch menschliches Feedback (RLHF)
Eine ganze Weile lang schien die Idee, ein Sprachmodell mithilfe von Reinforcement Learning zu trainieren, aufgrund sowohl technischer als auch algorithmischer Herausforderungen nicht realisierbar. Um die technischen Aspekte von RLHF zu verstehen, sind verschiedene Voraussetzungen für Reinforcement Learning erforderlich. Deshalb werde ich versuchen, die Erklärung sehr allgemein zu halten.
Stellen Sie sich ein Problem vor, bei dem es unser Ziel ist, einem Roboter beizubringen, sich in einem Labyrinth zurechtzufinden. Traditionell versucht der Roboter beim Reinforcement Learning (RL), sein Ziel schnell zu erreichen und erhält Feedback, das darauf basiert, wie gut er im Labyrinth abschneidet. Reinforcement Learning from Human Feedback (RLHF) geht jedoch noch einen Schritt weiter, indem es Menschen ermöglicht, zusätzlichen Input zu geben. Sie können mehr als nur die Geschwindigkeit kommentieren, z. B. ob der Roboter Hindernissen ausweicht oder einen Weg einschlägt, der gut aussieht.
Wenn der Roboter beispielsweise einen Weg wählt, der Hindernissen ausweicht oder einer Route folgt, die Menschen mögen, kann er einige Bonuspunkte erhalten. Auf diese Weise lernt der Roboter nicht nur, das Ziel schnell zu erreichen, sondern auch zu berücksichtigen, was Menschen bevorzugen.
Beim Prompt Engineering für große Sprachmodelle (LLMs) ist RLHF ziemlich praktisch. Es stellt sicher, dass die Eingabeaufforderungen besser die von uns gewünschten Antworten erhalten, verbessert die Qualität der Eingabeaufforderungen durch menschliche Kontrollen, ermöglicht es uns, die Eingabeaufforderungen an unsere Präferenzen anzupassen, und hält mit den Änderungen Schritt, die im Laufe der Zeit beliebt sind. Durch die Einbeziehung menschlicher Eingaben wird sichergestellt, dass die Ergebnisse in den verschiedenen Aufgaben und Bereichen näher an unseren Erwartungen liegen.
TrueFoundry AI Gateway bietet eine Latenz von ~3—4 ms, verarbeitet mehr als 350 RPS auf einer vCPU, skaliert problemlos horizontal und ist produktionsbereit, während LiteLM unter einer hohen Latenz leidet, mit moderaten RPS zu kämpfen hat, keine integrierte Skalierung hat und sich am besten für leichte Workloads oder Prototyp-Workloads eignet.
Der schnellste Weg, deine KI zu entwickeln, zu steuern und zu skalieren














.png)




.png)






.webp)

.webp)



