Skip to content

Ingineria prompturilor ChatGPT

Prezentare generală

În această secțiune, acoperim cele mai recente tehnici de inginerie prompturi pentru ChatGPT, inclusiv sfaturi, aplicații, limitări, lucrări și materiale suplimentare de citire.

Subiecte

Introducerea ChatGPT

ChatGPT este un model nou antrenat de OpenAI care are capacitatea de a interacționa într-un mod conversațional. Acest model este antrenat să urmeze instrucțiunile dintr-un prompt pentru a furniza răspunsuri adecvate în contextul unui dialog. ChatGPT poate ajuta cu:

  • Răspunsuri la întrebări
  • Sugestii de rețete
  • Scrierea de versuri într-un anumit stil
  • Generarea de cod
  • Și multe altele

Antrenamentul și capacitățile

ChatGPT este antrenat folosind Învățarea prin întărire din feedback-ul uman (RLHF). Deși acest model este mult mai capabil decât iterațiile anterioare GPT (și este, de asemenea, antrenat să reducă outputurile dăunătoare și neadevărate), încă vine cu limitări.

Accesul și utilizarea

Puteți folosi previzualizarea de cercetare ChatGPT aici, dar pentru exemplele de mai jos vom folosi modul Chat din OpenAI Playground.

Revizuirea sarcinii de conversație

Într-unul dintre ghidurile anterioare, am acoperit puțin despre capacitățile de conversație și promptarea rolului. Am acoperit cum să instruim LLM-ul să aibă o conversație într-un stil specific, cu o intenție, comportament și identitate specifice.

Exemplu de bază

Să revizuim exemplul nostru anterior de bază unde am creat un sistem conversațional capabil să genereze răspunsuri mai tehnice și științifice la întrebări.

Prompt:

Următoarea este o conversație cu un asistent de cercetare AI. Tonul asistentului este tehnic și științific.
Uman: Salut, cine ești?
AI: Salutare! Sunt un asistent de cercetare AI. Cum te pot ajuta astăzi?
Uman: Poți să-mi spui despre crearea găurilor negre?
AI:

Componente cheie

Din exemplul de mai sus, puteți vedea două componente importante:

  1. Intenția sau explicația: Ce este chatbot-ul
  2. Identitatea: Instruiește stilul sau tonul pe care chatbot-ul îl va folosi pentru a răspunde

Evoluția modelului

Exemplul simplu de mai sus funcționează bine cu API-urile de completare text care folosesc text-davinci-003. Mai recent, OpenAI a anunțat API-urile ChatGPT, care este un model mai puternic și mai ieftin numit gpt-3.5-turbo construit specific pentru acest tip de funcționalitate (completări de chat).

De fapt, OpenAI recomandă acesta ca cel mai bun model al lor, chiar și pentru cazuri de utilizare non-chat. Alte beneficii ale folosirii API-urilor ChatGPT sunt:

  • Reducerea semnificativă a costurilor: 90% economii de costuri
  • Eficiența îmbunătățită: Performanță și capacități mai bune

Adopția în industrie

Marile companii precum Snap Inc. și Instacart integrează deja funcții conversaționale alimentate de ChatGPT pe produsele lor care variază de la recomandări personalizate la obiective de cumpărare deschise.

Conversațiile cu ChatGPT

Conversații multi-turn

Pentru a începe să demonstrăm capacitățile ChatGPT, vom folosi exemplul asistentului chatbot de mai sus și vom discuta rezultatele. Comparat cu text-davinci-003, modelul gpt-3.5-turbo care alimentează ChatGPT folosește un format de chat ca input. Modelul așteaptă o serie de mesaje ca input și le folosește pe acestea pentru a genera un răspuns.

Input:

SYSTEM: Ești un asistent de cercetare AI. Folosești un ton care este tehnic și științific.
USER: Salut, cine ești?
ASSISTANT: Salutare! Sunt un asistent de cercetare AI. Cum te pot ajuta astăzi?
USER: Poți să-mi spui despre crearea găurilor negre?

Output:

ASSISTANT: Desigur! Găurile negre se creează când o stea masivă rămâne fără combustibil și se prăbușește sub propria sa gravitație. Această prăbușire face ca steaua să devină incredibil de densă, cu un câmp gravitațional atât de puternic încât nici măcar lumina nu poate să scape. Acest punct fără întoarcere este cunoscut ca orizontul evenimentelor. Odată ce o stea traversează orizontul evenimentelor, este considerată o gaură neagră...

Notă: În exemplul de mai sus, am simplificat inputul și outputul, dar API-ul de completare chat ChatGPT necesită ca mesajele să fie într-un format specific. Am adăugat o captură de ecran mai jos despre cum ar arăta acest exemplu folosind modul Chat din OpenAI Playground:

CHATGPT1

Implementarea API

Apelul API mai formal pentru exemplul nostru ar arăta cam așa:

python
import openai

openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "Ești un asistent de cercetare AI. Folosești un ton care este tehnic și științific."},
        {"role": "user", "content": "Salut, cine ești?"},
        {"role": "assistant", "content": "Salutare! Sunt un asistent de cercetare AI. Cum te pot ajuta astăzi?"},
        {"role": "user", "content": "Poți să-mi spui despre crearea găurilor negre?"}
    ]
)

Limbajul de marcare pentru chat

De fapt, modul în care dezvoltatorii vor interacționa cu ChatGPT în viitor se așteaptă să fie realizat prin Limbajul de marcare pentru chat (ChatML pentru scurt).

Sarcini single-turn

Formatul de chat permite conversații multi-turn, dar suportă și sarcini single-turn similare cu ceea ce am folosit cu text-davinci-003. Aceasta înseamnă că putem folosi ChatGPT pentru a executa sarcini similare cu ceea ce am demonstrat pentru modelele GPT originale.

De exemplu, să încercăm să executăm următoarea sarcină de răspuns la întrebări folosind ChatGPT:

Input:

USER: Răspunde la întrebare bazându-te pe contextul de mai jos. Păstrează răspunsul scurt și concis. Răspunde "Nu sunt sigur despre răspuns" dacă nu ești sigur despre răspuns.

Context: Teplizumab își are rădăcinile într-o companie farmaceutică din New Jersey numită Ortho Pharmaceutical. Acolo, oamenii de știință au generat o versiune timpurie a anticorpului, numită OKT3. Originar din șoareci, molecula era capabilă să se lege de suprafața celulelor T și să-și limiteze potențialul de ucidere a celulelor. În 1986, a fost aprobat pentru a ajuta la prevenirea respingerii organelor după transplanturile de rinichi, făcându-l primul anticorp terapeutic permis pentru uz uman.

Întrebare: Din ce era originar OKT3?

Răspuns:

Output:

ASSISTANT: Șoareci.

Notă: Rețineți că adaug etichetele USER și ASSISTANT pentru a demonstra mai bine cum poate fi executată sarcina folosind ChatGPT. Iată exemplul folosind Playground-ul:

CHATGPTCLASSIC

Apelul API formal

Mai formal, acesta este apelul API (am inclus doar componenta de mesaj a cererii):

python
CONTENT = """Răspunde la întrebare bazându-te pe contextul de mai jos. Păstrează răspunsul scurt și concis. Răspunde "Nu sunt sigur despre răspuns" dacă nu ești sigur despre răspuns.

Context: Teplizumab își are rădăcinile într-o companie farmaceutică din New Jersey numită Ortho Pharmaceutical. Acolo, oamenii de știință au generat o versiune timpurie a anticorpului, numită OKT3. Originar din șoareci, molecula era capabilă să se lege de suprafața celulelor T și să-și limiteze potențialul de ucidere a celulelor. În 1986, a fost aprobat pentru a ajuta la prevenirea respingerii organelor după transplanturile de rinichi, făcându-l primul anticorp terapeutic permis pentru uz uman.

Întrebare: Din ce era originar OKT3?

Răspuns:
"""

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)

Instruirea modelelor de chat

Conform documentației oficiale OpenAI, snapshot-urile modelului gpt-3.5-turbo vor fi, de asemenea, disponibile. De exemplu, putem accesa snapshot-ul din 1 martie gpt-3.5-turbo-0301. Aceasta permite dezvoltatorilor să opteze pentru versiuni specifice ale modelului.

Aceasta înseamnă, de asemenea, că cele mai bune practici pentru instruirea modelelor se pot schimba de la o versiune la alta.

Recomandările actuale

Recomandarea actuală pentru gpt-3.5-turbo-0301 este să adaugi instrucțiuni în mesajul utilizatorului în loc de mesajul de sistem disponibil.

Notebook-uri

Iată un notebook pentru a afla mai multe despre cum să faci apeluri la API-urile ChatGPT folosind biblioteca oficială openai:

Referințe

Lucrări de cercetare recente

Învățăminte cheie

  1. ChatGPT folosește formatul de chat: Modelul așteaptă o serie de mesaje cu roluri (sistem, utilizator, asistent)
  2. Capacități multi-turn: Suportă atât conversații cât și sarcini single-turn
  3. Cost eficient: 90% reducere a costurilor comparat cu modelele anterioare
  4. Gata pentru industrie: Deja adoptat de companii majore
  5. Arhitectură flexibilă: Poate gestiona atât prompturi conversaționale cât și orientate pe sarcini
  6. Evoluție continuă: Snapshot-urile modelului permit optimizarea specifică versiunii

Subiecte conexe