🚀 Master Prompt Engineering and building AI Agents in our NEW courses! Use PROMPTING20 for 20% off ➜ Enroll now
ChatGPT

ChatGPT Prompt-Engineering

In diesem Abschnitt behandeln wir die neuesten Techniken des Prompt-Engineerings fĂŒr ChatGPT, einschließlich Tipps, Anwendungen, Grenzen, wissenschaftlichen Arbeiten und weiterfĂŒhrenden Lesestoffen.

Themen:


EinfĂŒhrung in ChatGPT

ChatGPT ist ein neues Modell, trainiert von OpenAI (opens in a new tab), das die FÀhigkeit besitzt, auf konversationelle Weise zu interagieren. Dieses Modell wurde darauf trainiert, Anweisungen in einem Prompt zu folgen, um angemessene Antworten im Kontext eines Dialogs zu liefern. ChatGPT kann dabei helfen, Fragen zu beantworten, RezeptvorschlÀge zu machen, Liedtexte in einem bestimmten Stil zu schreiben, Code zu generieren und vieles mehr.

ChatGPT wird mit Reinforcement Learning from Human Feedback (RLHF) trainiert. Obwohl dieses Modell viel leistungsfÀhiger als die vorhergehenden GPT-Iterationen ist (und auch darauf trainiert wurde, schÀdliche und unwahre Aussagen zu reduzieren), kommt es dennoch mit EinschrÀnkungen. Lassen Sie uns einige der FÀhigkeiten und Grenzen anhand konkreter Beispiele beleuchten.

Sie können die Forschungsvorschau von ChatGPT hier (opens in a new tab) verwenden, aber fĂŒr die nachfolgenden Beispiele werden wir den Chat-Modus im OpenAI Playground nutzen.


ÜberprĂŒfung der Konversationsaufgabe

In einem der vorhergehenden LeitfĂ€den haben wir ein wenig ĂŒber die KonversationsfĂ€higkeiten und das Role Prompting gesprochen. Wir haben erörtert, wie man das LLM anweist, ein GesprĂ€ch in einem bestimmten Stil, mit einer bestimmten Absicht, Verhalten und IdentitĂ€t zu fĂŒhren.

Lassen Sie uns unser vorheriges grundlegendes Beispiel ĂŒberprĂŒfen, in dem wir ein Konversationssystem erstellt haben, das in der Lage ist, auf Fragen technischere und wissenschaftlichere Antworten zu generieren.

Prompt:

Das Folgende ist ein GesprÀch mit einem KI-Forschungsassistenten. Der Assistententen ist technisch und wissenschaftlich.

Mensch: Hallo, wer bist du?
KI: GrĂŒĂŸe! Ich bin ein KI-Forschungsassistent. Wie kann ich Ihnen heute helfen?
Mensch: Kannst du mir ĂŒber die Entstehung von schwarzen Löchern berichten?
KI:

Anhand des obigen Beispiels können Sie zwei wichtige Komponenten erkennen:

  • die Absicht oder ErklĂ€rung, was der Chatbot ist
  • die IdentitĂ€t, welche den Stil oder Ton instruiert, den der Chatbot zur Beantwortung verwenden wird

Das einfache Beispiel oben funktioniert gut mit den Text-Completion-APIs, die text-davinci-003 benutzen. Neuerdings hat OpenAI die ChatGPT-APIs angekĂŒndigt (opens in a new tab), bei denen es sich um ein leistungsfĂ€higeres und kostengĂŒnstigeres Modell handelt, genannt gpt-3.5-turbo, das speziell fĂŒr diese Art der FunktionalitĂ€t (Chat-Completion) entwickelt wurde. TatsĂ€chlich empfiehlt OpenAI dies als ihr bestes Modell, auch fĂŒr Nicht-Chat-AnwendungsfĂ€lle. Weitere Vorteile der Nutzung der ChatGPT-APIs sind signifikante Kostenreduktion (90%) und Effizienz.

Große Unternehmen wie Snap Inc. und Instacart integrieren bereits konversationelle Funktionen, die von ChatGPT angetrieben werden, in ihre Produkte, die von personalisierten Empfehlungen bis hin zu offenen Einkaufszielen reichen.


GesprÀche mit ChatGPT

Mehrschrittige Konversationen

Um die FĂ€higkeiten von ChatGPT zu demonstrieren, werden wir das Chatbot-Assistenten-Beispiel von oben verwenden und die Ergebnisse diskutieren. Im Vergleich zu text-davinci-003 verwendet das gpt-3.5-turbo Modell, das ChatGPT antreibt, ein Chat-Format als Eingabe. Das Modell erwartet eine Reihe von Nachrichten als Eingabe und verwendet diese, um eine Antwort zu generieren.

Eingabe:

SYSTEM: Du bist ein KI-Forschungsassistent. Du verwendest einen Ton, der technisch und wissenschaftlich ist.
BENUTZER: Hallo, wer bist du?
ASSISTENT: GrĂŒĂŸe! Ich bin ein KI-Forschungsassistent. Wie kann ich Ihnen heute helfen?
BENUTZER: Kannst du mir ĂŒber die Entstehung von schwarzen Löchern berichten?

Ausgabe:

ASSISTENT: NatĂŒrlich! Schwarze Löcher entstehen, wenn ein massiver Stern keinen Treibstoff mehr hat und unter seiner eigenen Gravitation kollabiert. Dieser Kollaps fĂŒhrt dazu, dass der Stern unglaublich dicht wird, mit einem Gravitationsfeld so stark, dass nicht einmal Licht ihm entkommen kann. Dieser Punkt ohne Wiederkehr ist als Ereignishorizont bekannt. Sobald ein Stern den Ereignishorizont ĂŒberschreitet, wird er als schwarzes Loch betrachtet...

Beachten Sie, dass ich im obigen Beispiel die Eingabe und Ausgabe vereinfacht habe, aber die ChatGPT-Chat-Completion-API erfordert, dass Nachrichten in einem spezifischen Format vorliegen. Untenstehend habe ich eine Momentaufnahme hinzugefĂŒgt, wie dieses Beispiel im Chat Mode im OpenAI Playground aussehen wĂŒrde:

CHATGPT1

Der formellere API-Aufruf fĂŒr unser Beispiel sĂ€he etwa so aus wie das folgende Beispiel:

import openai
 
openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "Du bist ein KI-Forschungsassistent. Du verwendest einen Ton, der technisch und wissenschaftlich ist."},
        {"role": "user", "content": "Hallo, wer bist du?"},
        {"role": "assistant", "content": "GrĂŒĂŸe! Ich bin ein KI-Forschungsassistent. Wie kann ich Ihnen heute helfen?"},
        {"role": "user", "content": "Kannst du mir ĂŒber die Entstehung von schwarzen Löchern berichten?"}
    ]
)

TatsĂ€chlich wird erwartet, dass die Art und Weise, wie Entwickler in Zukunft mit ChatGPT interagieren, ĂŒber die Chat Markup Language (opens in a new tab) (kurz ChatML) erfolgen wird.

Einzelschritt-Aufgaben

Das Chat-Format ermöglicht mehrschrittige Konversationen, aber es unterstĂŒtzt auch Einzelschritt-Aufgaben, Ă€hnlich wie wir es mit text-davinci-003 verwendet haben. Das bedeutet, dass wir ChatGPT fĂŒr Ă€hnliche Aufgaben verwenden können, wie wir sie fĂŒr die ursprĂŒnglichen GPT-Modelle demonstriert haben. Versuchen wir beispielsweise, die folgende Frage-Antwort-Aufgabe mithilfe von ChatGPT durchzufĂŒhren:

Eingabe:

BENUTZER: Beantworte die Frage basierend auf dem Kontext unten. Halte die Antwort kurz und prĂ€gnant. Antworte "Unsicher ĂŒber Antwort", wenn du dir nicht sicher ĂŒber die Antwort bist.

Kontext: Teplizumab hat seine Wurzeln in einem New Jerseyer Arzneimittelunternehmen namens Ortho Pharmaceutical. Dort erzeugten Wissenschaftler eine frĂŒhe Version des Antikörpers, den man OKT3 nannte. UrsprĂŒnglich aus MĂ€usen gewonnen, war das MolekĂŒl in der Lage, an die OberflĂ€che von T-Zellen zu binden und deren Zelltötungspotential zu begrenzen. Im Jahr 1986 wurde es zur Verhinderung der Abstoßung von Organen nach Nierentransplantationen zugelassen und war damit der erste fĂŒr den Menschen zugelassene therapeutische Antikörper.

Frage: Woraus wurde OKT3 ursprĂŒnglich gewonnen?

Antwort:

Ausgabe:

ASSISTENT: MĂ€use.

Beachten Sie, dass ich die BENUTZER- und ASSISTENT-Labels hinzugefĂŒgt habe, um besser zu demonstrieren, wie die Aufgabe mithilfe von ChatGPT durchgefĂŒhrt werden kann. Hier ist das Beispiel unter Verwendung des OpenAI Playgrounds:

CHATGPTCLASSIC

Formeller ausgedrĂŒckt wĂ€re dies der API-Aufruf (ich habe nur den Nachrichtenteil der Anforderung eingeschlossen):

CONTENT = """Beantworte die Frage basierend auf dem Kontext unten. Halte die Antwort kurz und prĂ€gnant. Antworte \"Unsicher ĂŒber Antwort\", wenn du dir nicht sicher ĂŒber die Antwort bist.
 
Kontext: Teplizumab hat seine Wurzeln in einem New Jerseyer Arzneimittelunternehmen namens Ortho Pharmaceutical. Dort erzeugten Wissenschaftler eine frĂŒhe Version des Antikörpers, den man OKT3 nannte. UrsprĂŒnglich aus MĂ€usen gewonnen, war das MolekĂŒl in der Lage, an die OberflĂ€che von T-Zellen zu binden und deren Zelltötungspotential zu begrenzen. Im Jahr 1986 wurde es zur Verhinderung der Abstoßung von Organen nach Nierentransplantationen zugelassen und war damit der erste fĂŒr den Menschen zugelassene therapeutische Antikörper.
 
Frage: Woraus wurde OKT3 ursprĂŒnglich gewonnen?
 
Antwort:
"""
 
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)

Anweisungen fĂŒr Chat-Modelle

Laut der offiziellen OpenAI-Dokumentation werden auch Snapshots des gpt-3.5-turbo-Modells verfĂŒgbar gemacht. Wir können beispielsweise auf den Snapshot vom 1. MĂ€rz gpt-3.5-turbo-0301 zugreifen. Dies erlaubt Entwicklern, spezifische Modellversionen zu wĂ€hlen. Das bedeutet auch, dass sich die besten Praktiken fĂŒr das Instruieren von Modellen von Version zu Version Ă€ndern können.

Die aktuelle Empfehlung fĂŒr gpt-3.5-turbo-0301 besteht darin, Anweisungen in der user-Nachricht hinzuzufĂŒgen, anstatt in der verfĂŒgbaren system-Nachricht.


Referenzen