🚀 Tipp für das Projekt
Eine Schlüsselfähigkeit im Zeitalter der generativen KI ist das Prompt Engineering, die Kunst und Wissenschaft des Entwurfs effektiver Anweisungen, um Sprachmodelle bei der Erzeugung der gewünschten Ergebnisse anzuleiten. Diese aufstrebende Disziplin umfasst die Entwicklung und Optimierung von Prompts, um KI-Modellen, insbesondere Large Language Models (LLMs), bestimmte Antworten zu entlocken und die Art und Weise zu gestalten, wie wir mit KI interagieren und sie nutzen, so DataCamp.
📚 Struktur des Lagers
Name des Dokuments | Beschreibungen |
---|---|
Grundlegende Hinweise Design | Eine Einführung in die Konzepte und Strukturen des Basic Prompt Engineering. |
Fortschrittliches Queue-Design | Erweiterte Tipps zur Optimierung und Strukturierung der Ausgabe. |
Fortgeschrittenes Queue-Design - Praktische Übungen | Ein praktischer Leitfaden zur Anwendung fortgeschrittener Prompt-Design-Techniken. |
Verstehen der OpenAI API | Ein Überblick über das Prompting mit der OpenAI API. |
Funktionsaufrufe im LLM | Notizbuch, das die Funktionalität des Funktionsaufrufs im Sprachmodell demonstriert. |
Integrierte Tipps Engineering Notebook | Jupyter Notebook, das eine breite Palette von Techniken zur Erstellung von Eingabeaufforderungen abdeckt. |
🎯 Cue Design Briefs
Prompting ist der Prozess, bei dem einem KI-Modell spezifische Anweisungen oder Eingaben gegeben werden, um ein gewünschtes Ergebnis oder Verhalten auszulösen. Es ist eine wichtige Schnittstelle zwischen Menschen und KI-Systemen, die es dem Benutzer ermöglicht, die Reaktion des Modells effektiv zu steuern. Im Zusammenhang mit Large Language Models (LLMs) kann das Prompting von einfachen Abfragen bis hin zu komplexen Anleitungen, einschließlich Kontext und Stilvorgaben, erweitert werden.
Zu den wichtigsten Aspekten des Promptdesigns gehören:
- Vielseitigkeit: Je nach KI-Modell und Aufgabe können Aufforderungen in textlicher, visueller oder auditiver Form erfolgen
- Spezifität: gut gestaltete Tipps liefern präzise Details, um genauere und relevantere Ergebnisse zu erzielen
- Iterative Optimierung: Die Gestaltung der Hinweise beinhaltet in der Regel die Interpretation der Antwort des Modells und die Anpassung der nachfolgenden Hinweise, um bessere Ergebnisse zu erzielen.
- Anwendungsvielfalt: Hinweise werden in so unterschiedlichen Bereichen wie Texterstellung, Bilderkennung, Datenanalyse und KI eingesetzt.
🌟 Tipps zur Bedeutung der Technik
- Verbesserung der KI-Leistung: Gut konzipierte Stichworte können die Qualität und Relevanz der von der KI erzeugten Ergebnisse erheblich verbessern. Durch die Bereitstellung klarer Anweisungen und Zusammenhänge können die Modelle genauere, kohärentere und nützlichere Antworten geben.
- Anpassung und Flexibilität: Mit Cue Engineering können Benutzer KI-Antworten auf spezifische Bedürfnisse und Bereiche zuschneiden, ohne dass ein umfangreiches Neutraining des Modells erforderlich ist. Dank dieser Flexibilität können sich KI-Systeme besser an verschiedene Anwendungen in einer Vielzahl von Branchen anpassen.
- Abschwächung von Verzerrungen: Verzerrungen in der KI-Ausgabe können durch die Formulierung von Stichwörtern reduziert werden, die das Modell dazu anleiten, mehrere Perspektiven zu berücksichtigen oder sich auf bestimmte Quellen mit unvoreingenommenen Informationen zu konzentrieren.
- Verbesserung des Nutzererlebnisses: Ein effektives Cue-Engineering verbessert das Nutzererlebnis, indem es die Kluft zwischen menschlicher Absicht und maschinellem Verständnis überbrückt und KI-Tools zugänglicher und benutzerfreundlicher macht [4].
- Kosteneffizienz: Die Optimierung von Stichwörtern ermöglicht eine effizientere Nutzung von Rechenressourcen und verringert den Bedarf an größeren, teureren Modellen, um die gewünschten Ergebnisse zu erzielen.
- Rapid Prototyping und Iteration: Cue Engineering unterstützt die schnelle Erprobung und Optimierung von KI-Anwendungen, wodurch Entwicklungszyklen und Innovationen beschleunigt werden.
- Ethische Erwägungen: Ein durchdachtes Prompt-Design trägt dazu bei, dass KI-Systeme ethische Richtlinien befolgen und geeignete Inhalte für unterschiedliche Kontexte und Zielgruppen generieren.
- Skalierbarkeit: Sobald wirksame Hinweise entwickelt wurden, lassen sie sich leicht auf das gesamte Unternehmen übertragen, um einheitliche und hochwertige KI-Interaktionen zu ermöglichen.
- Fachübergreifende Anwendungen: Cue Engineering verbindet technisches und fachliches Know-how und ermöglicht es Fachexperten, KI-Funktionen ohne tiefgreifende technische Kenntnisse zu nutzen.
Tipps für die Technik
- Einführung in das Cue-Engineering: ein grundlegender Überblick über Cue-Engineering-Konzepte, einschließlich grundlegender Prinzipien, strukturierter Cues, vergleichender Analyse und problemlösender Anwendungen.
- Grundlegende Prompt-Strukturen: Untersucht Ein- und Mehrrunden-Prompts und zeigt, wie man einfache Prompts erstellt und mit KI-Modellen in Dialog tritt.
- Prompt Templates and Variables: Eine Einführung in die Verwendung von Templates und Variablen in Prompts, mit einem Schwerpunkt auf der Erstellung flexibler und wiederverwendbarer Prompt-Strukturen mit Tools wie Jinja2.
- Zero Sample Prompting: demonstriert, wie KI-Modelle durch direkte Aufgabenspezifikation und rollenbasierte Prompting-Techniken zur Erfüllung von Aufgaben angeleitet werden können, ohne dass ein konkretes Beispiel vorliegt.
- Sample Less Learning und Contextual Learning: umfasst Techniken, die die Leistung bei bestimmten Aufgaben verbessern, ohne dass eine Feinabstimmung erforderlich ist, indem eine kleine Anzahl von Beispielen zur Verfügung gestellt wird, um die KI-Reaktion zu steuern.
- Tipp zum Kettendenken (CoT): Ermutigen Sie KI-Modelle, komplexe Probleme in schrittweise Argumentationsprozesse zu zerlegen, um die Problemlösung zu verbessern.
- Selbstkonsistenz und Multipath-Reasoning: Erforschung von Methoden zur Generierung verschiedener Argumentationspfade und Aggregation von Ergebnissen zur Verbesserung der Genauigkeit und Zuverlässigkeit von KI-Ergebnissen.
- Beschränkte und geführte Generierung: konzentriert sich auf die Festlegung von Beschränkungen für Modellausgaben und die Implementierung regelbasierter Generierung, um die Reaktion der KI zu kontrollieren und zu steuern.
- Rollentipps: Zeigt, wie man KI-Modellen bestimmte Rollen zuweist und effektive Rollenbeschreibungen entwirft, um das erforderliche Verhalten oder Fachwissen zu erlangen.
- Task Breakdown Prompts: Erforschen Sie Techniken zur Aufteilung komplexer Aufgaben in kleinere, überschaubare Teilaufgaben in Prompts.
- Cue Chains and Sequences: Zeigt, wie man mehrere Cues in einem logischen Fluss verbindet, um komplexe mehrstufige Aufgaben zu bewältigen.
- Direktive Engineering: konzentriert sich auf den Entwurf klarer und effizienter Direktiven für Sprachmodelle, wobei ein Gleichgewicht zwischen Spezifität und Allgemeinheit zur Optimierung der Leistung hergestellt wird.
- Techniken zur Cue-Optimierung: Behandelt fortgeschrittene Methoden zur Verbesserung von Cues, einschließlich A/B-Tests und iterativer Optimierung auf der Grundlage von Leistungsmetriken.
- Umgang mit Mehrdeutigkeit und Verbesserung der Klarheit: Erkundung von Techniken zum Erkennen und Auflösen mehrdeutiger Aufforderungen und Strategien zum Schreiben klarerer, effektiverer Aufforderungen.
- Umgang mit der Länge und Komplexität von Prompts: Untersuchung von Strategien für den Umgang mit langen oder komplexen Prompts, einschließlich Chunking- und Zusammenfassungs-Techniken.
- Negative Hinweise und Vermeidung unerwünschter Ergebnisse: zeigt, wie man negative Beispiele und Einschränkungen verwendet, um das Modell von unerwünschten Reaktionen abzulenken.
- Cue-Formate und -Strukturen: Untersucht verschiedene Cue-Formate und Strukturelemente zur Optimierung von KI-Modellreaktionen.
- Aufgabenspezifische Prompts: Konzentration auf die Gestaltung von Prompts für bestimmte Aufgaben wie Zusammenfassungen, Quiz, Codegenerierung und kreatives Schreiben.
- Mehrsprachige und sprachübergreifende Prompts: Erforschen Sie Techniken zur Gestaltung von Prompts, die effektiv in mehreren Sprachen funktionieren, sowie die Gestaltung von Prompts für Übersetzungsaufgaben.
- Ethische Erwägungen beim Cue-Engineering: Konzentration auf die ethischen Dimensionen der Vermeidung von Voreingenommenheit und der Schaffung integrativer Cues.
- Prompt-Sicherheitsmaßnahmen: umfasst Techniken zur Verhinderung von Prompt-Injektionen und zur Implementierung von Inhaltsfiltern, um die Sicherheit von KI-Anwendungen zu gewährleisten.
- Bewertung der Cue-Validität: Untersuchung von Methoden zur Bewertung und Messung der Cue-Validität, einschließlich manueller und automatischer Bewertungstechniken.
Grundlegende Tipps zum Cueing
Cue Engineering umfasst eine Reihe von Techniken zur Optimierung der Interaktion mit KI-Modellen. Diese grundlegenden Methoden bilden die Basis für fortgeschrittenere Strategien und sind wesentliche Fähigkeiten für jeden, der das volle Potenzial generativer KI-Tools nutzen möchte.
Zero-Sample-Hinweise sind die einfachste Technik, d. h., es werden Anweisungen oder Fragen direkt an die KI gestellt, ohne zusätzlichen Kontext oder Beispiele [1][2]. Dieser Ansatz eignet sich für einfache Aufgaben oder um schnell Antworten zu erhalten. Zum Beispiel ist die Frage "Wo ist die Hauptstadt von Frankreich? ist eine Null-Probe-Aufforderung.
Single-sample cues fügen den zero-sample cues ein Beispiel hinzu, um die Reaktion der KI zu steuern [3]. Diese Technik ist besonders nützlich, wenn es um bestimmte Formate oder Stile geht. Um eine Produktbeschreibung zu erstellen, könnte beispielsweise eine Beispielbeschreibung gegeben und dann gebeten werden, eine weitere Beschreibung für ein anderes Produkt zu erstellen.
Der sample less cue erweitert dieses Konzept noch, indem er der KI mehrere Beispiele liefert [2]. Dieser Ansatz ist besonders effektiv bei komplexen Aufgaben oder wenn eine konsistente Ausgabe erforderlich ist. Durch die Bereitstellung mehrerer Beispiele für das gewünschte Ausgabeformat oder den gewünschten Stil kann die KI Muster besser verstehen und nachbilden.
Rollenbasierte Aufforderungen beeinflussen den Ton und den Inhalt der Antwort einer KI erheblich, indem sie ihr eine bestimmte Rolle oder Identität zuweisen [1]. Wenn die KI beispielsweise angewiesen wird, "den technischen Supportspezialisten zu spielen", bevor sie eine Frage stellt, kann dies zu einer eher technischen und unterstützenden Antwort führen.
Das Reframing von Aufforderungen ist eine Technik, mit der KI durch Umformulierung oder Umstrukturierung von Aufforderungen dazu gebracht werden kann, andere Perspektiven oder differenziertere Antworten zu geben [3]. Dieser Ansatz ist besonders nützlich, wenn die ersten Ergebnisse nicht zufriedenstellend sind oder wenn mehrere Aspekte eines Themas untersucht werden müssen. Anstatt beispielsweise zu fragen: "Was sind die Vorteile erneuerbarer Energien?" könnte die Frage umformuliert werden in "Wie wirken sich erneuerbare Energien auf verschiedene Wirtschaftssektoren aus?"
Bei der Prompt-Kombination werden mehrere Anweisungen oder Fragen zu einem umfassenden Prompt zusammengefasst [3]. Diese Technik ist nützlich, um mehrere Antworten zu erhalten oder komplexe Fragen zu behandeln. Die Kombination der Fragen "Erläutern Sie den Unterschied zwischen Shared Hosting und VPS-Hosting" und "Empfehlen Sie, was für kleine E-Commerce-Websites besser geeignet ist" in einer einzigen Aufforderung führt zu einer umfassenderen und individuelleren Antwort.
Diese grundlegenden Techniken bieten eine solide Basis für effektives Cue-Engineering und ermöglichen es den Nutzern, KI-Modelle so zu steuern, dass sie genauere, relevantere und nützlichere Ergebnisse für eine Vielzahl von Anwendungen erzeugen.
Erweiterte Cueing-Strategie
Bei den fortgeschrittenen Techniken zur Erstellung von Hinweisen werden anspruchsvollere Methoden eingesetzt, um die Leistung und die Fähigkeiten großer Sprachmodelle zu verbessern. Diese Methoden gehen über einfache Hinweise hinaus und zielen darauf ab, komplexere Schlussfolgerungen und aufgabenspezifische Ergebnisse zu erzielen.
Aufforderungen zum kohärenten Denken (CoT)
Diese Technik verbessert die Leistung des Modells bei komplexen Denkaufgaben, indem sie eine Reihe von Zwischenstufen des Denkens bereitstellt. Kohärente Denkanstöße ermöglichen es dem Sprachmodell, komplexe Probleme in kleinere, besser handhabbare Schritte zu zerlegen und dadurch genauere und logischere Ergebnisse zu erzielen.
Selbstverträglichkeit
Als Erweiterung von CoT beinhaltet der Ansatz der Selbstkonsistenz das Ausprobieren mehrerer Argumentationspfade und die Auswahl der konsistentesten Antwort. Dieser Ansatz ist besonders effektiv bei Problemen, für die es mehrere gültige Lösungen gibt, da er es dem Modell ermöglicht, mehrere Argumentationsstrategien zu untersuchen, bevor es das zuverlässigste Ergebnis ermittelt.
ReAct
ReAct Technik kombiniert Denken und Handeln, wobei das Modell sowohl den Denkprozess als auch die aufgabenspezifischen Aktionen generiert. Dieser Ansatz ermöglicht es der KI, ihren Ansatz dynamisch zu planen, auszuführen und anzupassen, was sie ideal für komplexe Problemlösungsszenarien macht, die eine Interaktion mit externen Informationsquellen erfordern.
Multimodale Stichworttechnik
Diese fortschrittliche Technik beinhaltet die Entwicklung von Aufforderungen, die mehrere Eingabearten wie Text, Bilder und Audio umfassen. Durch die Nutzung verschiedener Datentypen machen multimodale Hinweise KI-Interaktionen ganzheitlicher und kontextbezogener und ahmen die menschliche Wahrnehmung und Kommunikationsfähigkeit nach.
Echtzeit-Alarmoptimierung
Diese neue Technologie bietet sofortige Rückmeldung über die Validität der Prompts, indem sie die Klarheit, mögliche Verzerrungen und die Ausrichtung der Prompts auf das gewünschte Ergebnis bewertet. Eine solche Echtzeit-Anleitung vereinfacht das Schreiben von Prompts sowohl für Anfänger als auch für erfahrene Nutzer.
Proaktive Tipps
Dieser dynamische Ansatz ermöglicht die Anpassung von Hinweisen auf der Grundlage von Benutzerinteraktion und Feedback. Proaktive Hinweise ermöglichen es dem KI-Modell, seine Antworten in Echtzeit anzupassen und so die Relevanz und Effektivität der Ausgabe während der gesamten Interaktion zu erhöhen.
Tipps zur Wissensgenerierung
Bei dieser Technik werden Sprachmodelle eingesetzt, um vor der Beantwortung einer Frage relevantes Wissen zu generieren und so den gesunden Menschenverstand zu stärken. Indem es zuerst relevante Informationen generiert und diese dann in die Antwort einbezieht, kann das Modell eine aufschlussreichere und kontextbezogene Antwort geben.
Diese fortschrittlichen Techniken stellen die Spitze des Cue Engineering dar und bieten leistungsstarke Werkzeuge zur Optimierung der KI-Leistung in einer Vielzahl von Anwendungsbereichen und Problemfeldern.
logisches Denken
Coherent Thinking (CoT) Reasoning ist eine fortschrittliche Prompt-Engineering-Technik, mit der die Argumentationsfähigkeit großer Sprachmodelle verbessert werden soll. Bei dieser Methode werden mehrere Argumentationspfade für ein bestimmtes Problem generiert und die konsistenteste oder umfassendste Lösung ausgewählt. Durch die mehrfache Durchführung des CoT-Reasonings können Cueing-Ingenieure die Fähigkeit eines Modells verbessern, Probleme zu lösen, die logisches Denken und mehrere Schritte erfordern.
Kernpunkte der CoT-Argumentation
- Autocomplete-DekodierungWählen Sie die häufigsten Schlussfolgerungen bei Mehrfachargumentationen aus.
- Komplexitätsbasierte Tipps: Wählen Sie das Ergebnis mit der längsten Inferenzkette.
- menschliches EingreifenKorrektur der Inferenzkette mit Hilfe der manuellen Korrektur, wenn die Inferenzergebnisse signifikant inkonsistent sind.
- Verbessern Sie die GenauigkeitVerbesserung der Modellleistung bei Aufgaben, die logisches Denken, Rechnen und Entscheidungsfindung beinhalten.
Durch den Einsatz von CoT-Reasoning können cue-Ingenieure robustere und zuverlässigere KI-Systeme entwickeln, die in der Lage sind, komplexe Probleme in einer Vielzahl von Bereichen zu lösen.
Beispiel für eine ReAct-Aufforderung
Die ReAct (Reasoning and Acting) Prompting-Methode ist eine High-Level-Technik, die Argumentationsprozesse und aufgabenspezifische Aktionen kombiniert, um die Problemlösungsfähigkeiten von Large Language Models (LLMs) zu verbessern. Dieser Ansatz ermöglicht es LLMs, abwechselnd linguistische Argumentationsschritte zu erzeugen und Aktionen auszuführen, was zu einer effizienteren und dynamischeren Problemlösung führt.
Ein typischer ReAct-Tipp
- Gedanke: Der Denkprozess des Modells.
- AktionEine bestimmte Aufgabe oder Abfrage, die durchgeführt werden muss.
- BeobachtungDie Ergebnisse oder Informationen, die aus einer Handlung resultieren.
typisches Beispiel
AusgabenWie heißt die Hauptstadt des Landes, in dem sich der Eiffelturm befindet?
- ReflexionenUm diese Frage zu beantworten, müsste ich herausfinden, wo sich der Eiffelturm befindet, und dann die Hauptstadt des betreffenden Landes bestimmen.
- handeln: Suche nach "Standort des Eiffelturms".
- beachten SieDer Eiffelturm befindet sich in Paris, Frankreich.
- ReflexionenDa ich jetzt weiß, dass der Eiffelturm in Frankreich steht, muss ich die französische Hauptstadt nachschlagen.
- handelnSuchen Sie nach "Hauptstadt von Frankreich".
- beachten SieDie Hauptstadt Frankreichs ist Paris.
- ReflexionenIch habe alle Informationen, die ich brauche, um diese Frage zu beantworten.
- handelnAntworten geben.
- LösungDie Hauptstadt des Landes, in dem sich der Eiffelturm befindet, ist Paris, Frankreich.
Anwendung der ReAct-Aufforderung
- Frage und AntwortVerbesserung der Fähigkeit von Modellen, komplexe Probleme zu zerlegen und relevante Informationen zu erhalten.
- Automatisierung von AufgabenLeiten Sie das Modell durch einen mehrstufigen Prozess, indem Sie Denken und Handeln miteinander verbinden.
- Interaktion mit externen WissensdatenbankenErmöglicht es dem Modell, zusätzliche Informationen abzurufen und einzubeziehen, um seine Argumentation zu unterstützen.
- EntscheidungsfindungVerbesserung der Fähigkeit von Modellen, Optionen zu bewerten und auf der Grundlage der verfügbaren Daten fundierte Entscheidungen zu treffen.
Durch die Implementierung der ReAct-Eingabeaufforderung können Entwickler und Forscher robustere und anpassungsfähigere KI-Systeme schaffen, die in der Lage sind, komplexe Denkaufgaben und realistische Problemlösungsszenarien zu bewältigen.
Gezieltes Stimulus Cueing
Directional Stimulus Prompting (DSP) ist ein innovativer Rahmen für die Steuerung von Large Language Models (LLMs), um bestimmte gewünschte Ergebnisse zu erzeugen. Die Technik nutzt ein kleines, abstimmbares Strategiemodell, um für jede Eingabeinstanz zusätzliche direktionale Stimulusaufforderungen zu generieren, die als nuancierte Hinweise fungieren, um LLMs bei der Generierung der gewünschten Ergebnisse zu leiten.
Hauptmerkmale des DSP
- Erzeugung von Orientierungsreizen mit Hilfe eines kleinen, einstellbaren Strategiemodells (z. B. T5).
- Optimierung durch überwachte Feinabstimmung und intensives Lernen.
- Kann auf eine Vielzahl von Aufgaben angewandt werden, einschließlich der Erstellung von Zusammenfassungen, der Erstellung von Dialogantworten und verketteten Schlussfolgerungen.
- Erhebliche Verbesserung der Leistung bei begrenzten Annotationsdaten, z. B. bei Verwendung von nur 80 Dialogen, durch Konvertierung der ChatGPT Die Leistung auf dem MultiWOZ-Datensatz wird um 41,41 TP3T verbessert.
Durch den Einsatz des DSP können Forscher und Praktiker die Fähigkeiten des LLM verbessern, ohne seine Parameter direkt zu verändern, und so einen flexiblen und effizienten Ansatz für das Cue Engineering bieten.
Hinweise zur Wissensgenerierung
Generated Knowledge Prompting verbessert die Leistung von KI-Modellen, indem es sie auffordert, relevante Fakten zu generieren, bevor sie eine Frage beantworten oder eine Aufgabe erledigen. Dieser zweistufige Prozess umfasst die Wissensgenerierung (bei der das Modell relevante Informationen generiert) und die Wissensintegration (bei der diese Informationen verwendet werden, um genauere und kontextbezogene Antworten zu geben).
Wichtigste Vorteile
- Verbessern Sie die Genauigkeit und Zuverlässigkeit von KI-generierten Inhalten.
- Verbessern Sie das kontextuelle Verständnis für bestimmte Themen.
- Fähigkeit, Antworten auf Sachinformationen zu verankern.
- Das Wissen kann durch die Einbindung externer Quellen wie APIs oder Datenbanken noch erweitert werden.
Indem das Modell aufgefordert wird, zuerst die relevanten Fakten zu berücksichtigen, trägt die Knowledge Generation Prompting Method dazu bei, informativere und sinnvollere Ergebnisse zu erzeugen, insbesondere bei komplexen Aufgaben oder bei der Behandlung von Spezialthemen.
Hinweise zu praktischen Ingenieurtechniken
Dieser technische Leitfaden von Tip Engineering basiert vollständig auf NirDiamant Ein Repository für hervorragende Praktiken. Der gesamte Inhalt und das Jupyter-Notebook sind urheberrechtlich geschützt:Schnelles Engineering.
Ich füge dies hier ein, weil es eine großartige Lernressource ist, volles Copyright Schnelles Engineering Lagerhaus.
🌱 Grundlegende Konzepte
- Tipp Projektprofil
Überblick 🔎
Eine detaillierte Einführung in die Konzepte, die der KI und dem Cue Engineering von Sprachmodellen zugrunde liegen.
Implementiert 🛠️
Kombiniert theoretische Erklärungen mit praktischen Demonstrationen, die grundlegende Konzepte, strukturierte Aufforderungen, vergleichende Analysen und problemlösende Anwendungen umfassen.
- Grundlegende Struktur des Stichworts
Überblick 🔎
Erforschen Sie zwei grundlegende Cue-Strukturen: Cues für eine Runde und Cues für mehrere Runden (Dialoge).
Implementiert 🛠️
Demonstration von Ein- und Mehrrunden-Prompts, Prompt-Vorlagen und Dialogketten unter Verwendung des GPT-Modells von OpenAI und LangChain.
- Tipp-Vorlagen und Variablen
Überblick 🔎
Beschreibt, wie man Prompt-Vorlagen mit Variablen unter Verwendung von Python und der Jinja2-Vorlagen-Engine erstellt und verwendet.
Implementiert 🛠️
Beinhaltet die Erstellung von Vorlagen, das Einfügen von Variablen, bedingte Inhalte, Listenverarbeitung und die Integration mit der OpenAI-API.
🔧 Kerntechnologien
- Nullprobe Tipp
Überblick 🔎
Erforschung von Nullbeispielen, um Sprachmodelle in die Lage zu versetzen, Aufgaben ohne spezifische Beispiele oder vorheriges Training zu lösen.
Implementiert 🛠️
Demonstration von direkter Aufgabenspezifikation, rollenbasiertem Prompting, Formatspezifikation und mehrstufiger Inferenz mit OpenAI und LangChain.
- Beispielloses Lernen vs. kontextbezogenes Lernen
Überblick 🔎
Erkunden Sie Beispiele für Less Learning und kontextbezogene Lerntechniken mit den GPT-Modellen von OpenAI und der LangChain-Bibliothek.
Implementiert 🛠️
Bewährte Praktiken für die Umsetzung von grundlegenden und fortgeschrittenen Lernmethoden für weniger als eine Probe, kontextbezogenes Lernen sowie die Auswahl und Bewertung von Beispielen.
- Tipps zum Kettendenken (CoT)
Überblick 🔎
Einführung von Chain Thinking (CoT) Hinweisen, um KI-Modelle bei der Zerlegung komplexer Probleme in schrittweise Argumentationsprozesse anzuleiten.
Implementiert 🛠️
Behandelt grundlegende und fortgeschrittene CoT-Techniken, wendet sie auf eine Vielzahl von Problemlösungsszenarien an und vergleicht sie mit Standardaufforderungen.
🔍 Fortgeschrittene Strategie
- Selbstkonsistenz und Multipath Reasoning
Überblick 🔎
Erforschung von Techniken zur Generierung verschiedener Inferenzpfade und Aggregation der Ergebnisse, um die Qualität der von der KI generierten Antworten zu verbessern.
Implementiert 🛠️
Demonstration des Entwurfs verschiedener Inferenzaufforderungen, Generierung mehrerer Antworten, Implementierung von Aggregationsmethoden und Anwendung von Selbstkonsistenzprüfungen.
- Beschränkte und gebootstrapte Generierung
Überblick 🔎
Schwerpunkt auf Techniken zur Festlegung von Beschränkungen für Modellausgaben und zur Umsetzung der regelbasierten Generierung.
Implementiert 🛠️
Verwenden Sie das PromptTemplate von LangChain, um strukturierte Prompts zu erstellen, Einschränkungen zu erzwingen und regelbasierte Generierungstechniken zu erkunden.
- Tipps zum Charakter
Überblick 🔎
Erforschen Sie Techniken für die Zuweisung spezifischer Rollen an KI-Modelle und die Gestaltung effektiver Rollenbeschreibungen.
Implementiert 🛠️
Demonstration der Erstellung von rollenbasierten Prompts, Zuweisung von Rollen an KI-Modelle und Optimierung von Rollenbeschreibungen für verschiedene Szenarien.
🚀 Fortgeschrittene Verwirklichung
- Tipps zur Aufgabengliederung
Überblick 🔎
Erforschen Sie Techniken zur Untergliederung komplexer Aufgaben und zur Verknüpfung von Teilaufgaben in Prompts.
Implementiert 🛠️
Beinhaltet die Problemanalyse, die Definition von Teilaufgaben, die Entwicklung von Zielvorgaben, die sequentielle Ausführung und die Zusammenfassung der Ergebnisse.
- Verkettung und Serialisierung von Stichwörtern
Überblick 🔎
Zeigen Sie, wie Sie mehrere Prompts miteinander verbinden und logische Abläufe für komplexe KI-gesteuerte Aufgaben erstellen.
Implementiert 🛠️
Grundlegende Cue-Ketten, sequenzielle Cues, dynamische Cue-Generierung und Fehlerbehandlung in Cue-Ketten.
- Führungstechnik
Überblick 🔎
Konzentrieren Sie sich auf den Entwurf klarer und effektiver Anweisungen für Sprachmodelle, wobei Sie ein Gleichgewicht zwischen Spezifität und Allgemeinheit herstellen.
Implementiert 🛠️
Dazu gehören die Erstellung und Optimierung von Anweisungen, das Ausprobieren verschiedener Strukturen und iterative Verbesserungen auf der Grundlage von Modellreaktionen.
🎨 Optimierung und Verbesserung
- Techniken zur Optimierung von Stichwörtern
Überblick 🔎
Erforschen Sie fortgeschrittene Techniken zur Optimierung von Prompts mit dem Schwerpunkt auf A/B-Tests und iterativen Verbesserungen.
Implementiert 🛠️
Demonstration eines prompten A/B-Tests, eines iterativen Verbesserungsprozesses und einer Leistungsbewertung unter Verwendung relevanter Metriken.
- Umgang mit Zweideutigkeiten und Verbesserung der Klarheit
Überblick 🔎
Der Schwerpunkt liegt auf Techniken zum Erkennen und Auflösen mehrdeutiger Aufforderungen und zum Schreiben klarerer Aufforderungen.
Implementiert 🛠️
Dazu gehören die Analyse mehrdeutiger Aufforderungen, die Anwendung von Strategien zur Auflösung von Mehrdeutigkeiten und die Erforschung von Techniken zum Schreiben klarerer Aufforderungen.
- Verwaltung der Länge und Komplexität von Stichwörtern
Überblick 🔎
Untersuchung von Techniken zur Verwaltung der Länge und Komplexität von Prompts bei der Verwendung großer Sprachmodelle.
Implementiert 🛠️
Demonstration von Techniken, um ein Gleichgewicht zwischen Detailgenauigkeit und Kürze herzustellen, sowie von Strategien für den Umgang mit langen Kontexten, einschließlich Chunking, Zusammenfassung und iterativer Verarbeitung.
🛠️ Spezialisierte Anwendungen
- Negative Hinweise und Vermeidung von unerwartetem Output
Überblick 🔎
Erforschung negativer Hinweise und Techniken zur Vermeidung unerwünschter Ausgaben von großen Sprachmodellen.
Implementiert 🛠️
Enthält grundlegende Negativbeispiele, explizite Ausschlüsse, die Implementierung von Beschränkungen mit LangChain und Methoden zur Bewertung und Verbesserung negativer Hinweise.
- Formatierung und Struktur von Stichwörtern
Überblick 🔎
Erforschen Sie eine Vielzahl von Cue-Formaten und Strukturelementen und demonstrieren Sie deren Auswirkung auf die Reaktionen des AI-Modells.
Implementiert 🛠️
Demonstration der Erstellung mehrerer Cue-Formate, Integration von Strukturelementen und Vergleich von Reaktionen auf verschiedene Cue-Strukturen.
- Aufgabenspezifische Tipps
Überblick 🔎
Erkunden Sie die Erstellung und Verwendung von Aufforderungen für bestimmte Aufgaben wie Textzusammenfassungen, Quiz, Codegenerierung und kreatives Schreiben.
Implementiert 🛠️
Dazu gehört der Entwurf aufgabenspezifischer Prompt-Templates, ihre Implementierung mit LangChain, ihre Ausführung mit Beispieleingaben und die Analyse der Ausgabe für jeden Aufgabentyp.
🌍 Erweiterte Anwendungen
- Mehrsprachige und sprachenübergreifende Tipps
Überblick 🔎
Erforschung von Techniken zur Gestaltung effektiver Prompts für mehrsprachige und sprachliche Übersetzungsaufgaben.
Implementiert 🛠️
Dazu gehören die Erstellung mehrsprachiger Prompts, die Implementierung von Spracherkennung und -anpassung, die Gestaltung sprachübergreifender Übersetzungsprompts und der Umgang mit verschiedenen Schriftsystemen und Zeichensätzen.
- Ethische Erwägungen beim Cue Engineering
Überblick 🔎
Erkundung der ethischen Dimensionen des Prompt-Engineerings mit dem Schwerpunkt auf der Vermeidung von Voreingenommenheit und der Erstellung von integrativen und gerechten Prompts.
Implementiert 🛠️
Dazu gehören Methoden zur Erkennung von Voreingenommenheit in Prompts, die Umsetzung von Strategien zur Erstellung inklusiver Prompts sowie die Bewertung und Verbesserung der ethischen Qualität von KI-Ergebnissen.
- Tipps Sicherheit und Schutz
Überblick 🔎
Zeigt, wie man Prompt Injection verhindert und Inhaltsfilterung in Prompts implementiert, um KI-Anwendungen zu sichern.
Implementiert 🛠️
Dazu gehören Techniken zur Verhinderung von Prompt Injection, die Implementierung von Inhaltsfiltern und das Testen der Wirksamkeit von Sicherheitsmaßnahmen.
- Evaluierung der Wirksamkeit von Prompts
Überblick 🔎
Erkundung von Methoden und Techniken zur Bewertung der Validität von KI-Sprachmodell-Cues.
Die API des Large Language Model (LLM) verstehen
Erörtern wir die Large Language Model (LLM) API.
Es gibt mehrere Möglichkeiten, die API zu nutzen. Zum einen kann eine direkte HTTP-Anfrage gestellt werden, zum anderen kann das offizielle OpenAI-Paket über pip installiert werden, das immer auf dem neuesten Stand der Funktionen ist.
pip install openai
Da dieses API-Format so beliebt ist, bieten viele andere Anbieter APIs im gleichen Format an, das als "OpenAI-kompatibel" bezeichnet wird.
Liste von Anbietern, die OpenAI-kompatible APIs anbieten
Nachfolgend finden Sie eine Liste von Anbietern, die mit der OpenAI-API kompatibel sind, und Entwickler können diese Dienste in ähnlicher Weise nutzen, wie es OpenAI tut:
- Groq
- Groq Die meisten der angebotenen APIs sind mit den Client-Bibliotheken von OpenAI kompatibel. Die Benutzer müssen nur die
basis_url
und verwenden den API-Schlüssel von Groq, um ihre Anwendungen für die Ausführung auf Groq zu konfigurieren.
- Groq Die meisten der angebotenen APIs sind mit den Client-Bibliotheken von OpenAI kompatibel. Die Benutzer müssen nur die
- Mistral AI
- Mistral bietet eine API, die OpenAI-konforme Anfragen unterstützt, so dass Entwickler über diesen Dienst auf eine breite Palette von Modellen zugreifen können.
- Gesicht umarmen
- Hugging Face bietet Zugang zu einer Reihe von Modellen über eine API, die ähnlich wie die API von OpenAI konfiguriert ist. Hugging Face ist bekannt für seine große Bibliothek von Modellen.
- Google Vertex AI
- Google Vertex AI ermöglicht es den Nutzern, mit großen Sprachmodellen auf eine Weise zu interagieren, die mit der OpenAI API übereinstimmt.
- Microsoft Azure OpenAI
- Microsoft bietet den Zugang zu OpenAI-Modellen über seine Azure-Plattform für eine einfache Integration in bestehende Azure-Dienste.
- Anthropisch
- Auf die Modelle von Anthropic kann auch über eine API zugegriffen werden, die die Struktur von OpenAI nachahmt und ähnliche Interaktionen ermöglicht.
Diese Anbieter ermöglichen es Entwicklern, verschiedene KI-Funktionen zu nutzen und gleichzeitig die Kompatibilität mit der vertrauten OpenAI-API-Struktur zu wahren, um die Integration in Anwendungen und Workflows zu erleichtern.
Es gibt auch Anbieter, die andere API-Architekturen und -Typen verwenden, aber wir können etwas wie die litellm Eine solche Client-Bibliothek bietet ein einheitliches Client-Paket für verschiedene Arten von großen Sprachmodellen.
Darüber hinaus sind die Portschlüssel Ein solches Gateway bietet OpenAI-kompatible APIs für jedes große Sprachmodell.
In diesem Artikel werden Sie die verschiedenen Parameter der API kennenlernen.
Wichtige Parameter
Temperatur
- BeschreibungenDer Parameter : Temperatur steuert die Zufälligkeit der Modellausgabe und reicht von 0 bis 2.
- beeinflussen (in der Regel nachteilig):
- Niedriger Wert (0-0,3)Der Output ist deterministischer und zielgerichteter und wiederholt oft ähnliche Antworten.
- Mittel (0,4-0,7):: Finden Sie ein Gleichgewicht zwischen Kreativität und Kohärenz.
- Hoher Wert (0,8-2)Erzeugt vielfältigere und kreativere Ergebnisse, kann aber auch zu sinnlosen Ergebnissen führen.
- typisches Beispiel:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Vervollständige den Satz: 'Der Schlüssel zum Glück ist'."}] , Temperatur=1 )
Top_p
- BeschreibungenDieser Parameter ermöglicht ein Nukleus-Sampling, bei dem das Modell nur die höchsten
p
Wahrscheinliche Qualität der Ausgabe. - ReichVon 0 bis 1, niedrigere Werte beschränken die Ausgabe auf das wahrscheinlichere Token.
- typisches Beispiel:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Schreibe ein Gedicht."}] , top_p=0.9 )
Maximale Wertmarken
- Beschreibungen: Definieren Sie die maximale Anzahl von Token Anzahl (Wörter oder Teile von Wörtern).
- StandardwertBei den meisten Modellen ist dies in der Regel auf ein Maximum von 4096 Token eingestellt.
- typisches Beispiel:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Erzähl eine Geschichte."}] , max_tokens=150 )
Funktion Aufrufen
- BeschreibungenDiese Funktion ermöglicht es dem Modell, mit externen APIs oder Diensten zu interagieren, indem es auf der Grundlage von Benutzereingaben vordefinierte Funktionen aufruft.
- typisches Beispiel:
Funktionen = [ { "name": "get_current_weather", "description": "Ermittelt das aktuelle Wetter für einen Ort." , "parameter": { "type": "object", "properties": { "properties": { "location": {"type": "string"}, "description": {"type": "string", "properties": { "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["location": ["celsius", "fahrenheit"]} "required": ["location"] } } ] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Wie ist das Wetter in New York?"}] , functions=functions, function_call={"name": "get_current_weather"} )
Rollen in API-Aufrufen
Das Verständnis der an einem API-Aufruf beteiligten Rollen hilft, die Interaktion effektiv zu strukturieren.
System-Rolle
- ZielDie Funktion ist eine übergeordnete Anleitung oder ein Kontext, der das Verhalten des Modells während des Dialogs steuert.
- Verwendung: Wird am Anfang des Nachrichtenfeldes gesetzt, um den Ton oder die Regeln der Interaktion festzulegen.
- typisches Beispiel::
messages = [ {"role": "system", "content": "Sie sind ein hilfreicher Assistent"}, {"role": "user", "content": "Was können Sie tun?"} {"role": "user", "content": "Was können Sie tun?"} ]
Benutzerrolle
- Ziel: repräsentiert die Eingabe eines menschlichen Benutzers, der den Dialog durch Abfragen oder Aufforderungen leitet.
- Verwendung: Am häufigsten in Interaktionen verwendet, um Fragen zu stellen oder Aussagen zu machen.
- typisches Beispiel::
{"role": "user", "content": "Können Sie erklären, wie OpenAI funktioniert?"}
Assistentenrolle
- Ziel: stellt die Reaktion dar, die das Modell auf der Grundlage von Benutzereingaben und Systembefehlen erzeugt.
- VerwendungBei der Beantwortung einer Benutzeranfrage nimmt das Modell automatisch diese Rolle an.
- typisches Beispiel::
{"role": "assistant", "content": "OpenAI verwendet fortschrittliche maschinelle Lerntechniken, um Texte zu generieren."}
Andere Parameter
Strom (von Wasser usw.)
- BeschreibungenStreaming: Wenn auf true gesetzt, ist Streaming bei der Erzeugung von Teilantworten für Echtzeitanwendungen möglich.
Logprobs
- BeschreibungenGibt die logarithmische Wahrscheinlichkeit der Vorhersage des Tokens zurück, die dazu dient, das Verhalten des Modells zu verstehen und die Ausgabe zu verbessern.
Zusammenfassungen
Die OpenAI-API bietet eine Reihe leistungsfähiger Parameter und Rollen, die Entwickler nutzen können, um hochgradig interaktive Anwendungen zu erstellen. Durch die Anpassung von Parametern wie der Temperatur und den effektiven Einsatz von strukturierten Rollen können Benutzer Antworten auf spezifische Bedürfnisse zuschneiden und gleichzeitig Klarheit und Kontrolle über den Dialog gewährleisten.
Im Folgenden finden Sie Beispiele für die Verwendung der APIs verschiedener Anbieter, die mit OpenAI kompatibel sind, sowie Anwendungsbeispiele für das Lightweight Large Language Model (LLM).
Beispiel für die Verwendung der OpenAI-API eines kompatiblen Anbieters
1. Groq
Um die API von Groq zu nutzen, müssen Sie die Basis-URL festlegen und den Groq-API-Schlüssel angeben.
os importieren
importieren openai
client = openai.
base_url="https://api.groq.com/openai/v1", api_key=os.environ.
api_key=os.environ.get("GROQ_API_KEY"))
)
response = client.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Erzähl mir einen Witz."}]
)
print(response.choices[0].message['content'])
2. Mistral AI
Mistral AI Es bietet auch eine OpenAI-kompatible API, und hier ist, wie man es verwendet:
Anfragen importieren
url = "https://api.mistral.ai/v1/chat/completions"
headers = {
"Autorisierung": f "Bearer {os.environ.get('MISTRAL_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"model": "mistral-7b", "role": [{ "role": "mistral_API_KEY", "Content-Type": "application/json" }
"messages": [{"role": "user", "content": "Was ist die Hauptstadt von Frankreich?"}]
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
3. Gesicht umarmen
Für die Verwendung der Hugging Face API sind Zugriffstoken erforderlich. Im Folgenden finden Sie einen Beispielcode:
Anfragen importieren
url = "https://api-inference.huggingface.co/models/gpt2"
headers = {
"Authorization": f "Bearer {os.environ.get('HUGGINGFACE_API_KEY')}"
}
data = {
"inputs": "Es war einmal in einem weit entfernten Land,"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()[0]['generated_text'])
4. Google Vertex AI
Der folgende Code kann verwendet werden, um mit Google Vertex AI zu interagieren:
from google.cloud import aiplatform
aiplatform.init(project='your-project-id', location='us-central1')
response = aiplatform.gapic.PredictionServiceClient().predict(
endpoint='projects/ihre-project-id/locations/us-central1/endpoints/ihre-endpoint-id',
instances=[{"content": "Wer gewann die World Series im Jahr 2020?"}], )
)
print(response.predictions)
5. Microsoft Azure OpenAI
Im Folgenden finden Sie ein Beispiel für einen Code, der den OpenAI-Service von Azure aufruft:
Anfragen importieren
url = f "https://your-resource-name.openai.azure.com/openai/deployments/your-deployment-name/chat/completions?api-version=2023-05-15"
headers = {
"Content-Type": "application/json", "api-key": os.environ.
"api-key": os.environ.get("AZURE_OPENAI_API_KEY")
}
data = {
"messages": [{"role": "user", "content": "What's the weather today?"}], "model": "gpt-3": [{"role": "user", "content": "what's the weather today?
"model": "gpt-35-turbo"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
6. Anthropisch
Mit Anthropic's Claude Der Beispielcode für das Modell und seine API wird unten gezeigt:
Anfragen importieren
url = "https://api.anthropic.com/v1/complete"
headers = {
"Autorisierung": f "Bearer {os.environ.get('ANTHROPIC_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"prompt": "Erkläre die Quantenphysik in einfachen Worten.",
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['completion'])
Das Beispiel zeigt, wie man ein leichtgewichtiges Modell effektiv nutzen und gleichzeitig eine sinnvolle Ausgabe in einer Textgenerierungsaufgabe erzielen kann.
Quelle:
https://www.coltsteele.com/tips/understanding-openai-s-temperature-parameter
https://community.make.com/t/what-is-the-difference-between-system-user-and-assistant-roles-in-chatgpt/36160
https://arize.com/blog-course/mastering-openai-api-tips-and-tricks/
https://learn.microsoft.com/ko-kr/Azure/ai-services/openai/reference
https://community.openai.com/t/the-system-role-how-it-influences-the-chat-behavior/87353
https://community.openai.com/t/understanding-role-management-in-openais-api-two-methods-compared/253289
https://platform.openai.com/docs/advanced-usage
https://platform.openai.com/docs/api-reference
https://console.groq.com/docs/openai
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://www.reddit.com/r/LocalLLaMA/comments/16csz5n/best_openai_api_compatible_application_server/
https://docs.gptscript.ai/alternative-model-providers
https://towardsdatascience.com/how-to-build-an-openai-compatible-api-87c8edea2f06?gi=5537ceb80847
https://modelfusion.dev/integration/model-provider/openaicompatible/
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://docs.gptscript.ai/alternative-model-providers
https://console.groq.com/docs/openai
Tipp Projektfibel II (Funktionsaufrufe)
Die folgenden Bibliotheken, Tools und Konfigurationen sind zum Laden erforderlich.
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/function_calling.ipynb
Erste Schritte mit Cue Engineering
Die folgenden Bibliotheken, Tools und Konfigurationen sind zum Laden erforderlich.
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/prompt_engineering.ipynb