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

Enginyeria de preguntes ChatGPT

En aquesta secció, tractem les últimes tècniques d'enginyeria de preguntes per a ChatGPT, incloent consells, aplicacions, limitacions, articles i materials de lectura addicionals.

⚠️

Aquesta secció està en desenvolupament intensiu.

Temes:


Introducció a ChatGPT

ChatGPT és un nou model entrenat per OpenAI (opens in a new tab) que té la capacitat d'interactuar de manera conversacional. Aquest model està entrenat per seguir instruccions en una pregunta per proporcionar respostes adequades en el context d'un diàleg. ChatGPT pot ajudar a respondre preguntes, suggerir receptes, escriure lletres en un estil determinat, generar codi i molt més.

ChatGPT està entrenat utilitzant aprenentatge per reforç amb retroacció humana (RLHF). Encara que aquest model és molt més capaç que les iteracions anteriors de GPT (i també està entrenat per reduir les sortides perjudicials i falses), encara té limitacions. Anem a repassar algunes de les capacitats i limitacions amb exemples concrets.

Podeu utilitzar la vista prèvia de recerca de ChatGPT aquí, però per als exemples que es presenten a continuació, utilitzarem el mode "Chat" a l'OpenAI Playground.


Revisió de la tasca de conversa

En una de les guies anteriors, vam tractar una mica sobre les capacitats de conversa i les preguntes de rol. Vam veure com donar instruccions al LLM per mantenir una conversa en un estil específic, amb una intenció, comportament i identitat específics.

Repassem el nostre exemple bàsic anterior, on vam crear un sistema de conversa que pot generar respostes més tècniques i científiques a les preguntes.

Pregunta:

La següent és una conversa amb un assistent de recerca en IA. El to de l'assistent és tècnic i científic.

Humà: Hola, qui ets?
IA: Salutacions! Sóc un assistent de recerca en IA. Com puc ajudar-te avui?
Humà: Em pots parlar sobre la creació de forats negres?
IA:

De l'exemple anterior, podeu veure dos components importants:

  • la intenció o explicació del que és el xatbot
  • la identitat que dóna instruccions sobre l'estil o to que el xatbot utilitzarà per respondre

El senzill exemple anterior funciona bé amb les APIs de compleció de text que utilitzen text-davinci-003. Més recentment, OpenAI va anunciar les APIs de ChatGPT (opens in a new tab), que és un model més potent i més barat anomenat gpt-3.5-turbo, específicament creat per a aquest tipus de funcionalitat (completions de xat). De fet, OpenAI recomana aquest model com el millor fins i tot per a casos d'ús que no siguin de xat. Altres avantatges de l'ús de les APIs de ChatGPT són una reducció significativa dels costos (90%) i l'eficiència.

Grans empreses com Snap Inc. i Instacart ja estan integrant funcions de conversa impulsades per ChatGPT als seus productes, que abasten des de recomanacions personalitzades fins a objectius de compres oberts.


Converses amb ChatGPT

Converses de múltiples torns

Per començar a demostrar les capacitats de ChatGPT, utilitzarem l'exemple d'assistent de xatbot anterior i discutirem els resultats. Comparat amb text-davinci-003, el model gpt-3.5-turbo que impulsa ChatGPT utilitza un format de xat com a entrada. El model espera una sèrie de missatges com a entrada i utilitza aquests per generar una resposta.

Entrada:

SYSTEM: Ets un assistent de recerca en IA. Utilitzes un to tècnic i científic.
USER: Hola, qui ets?
ASSISTANT: Salutacions! Sóc un assistent de recerca en IA. Com puc ajudar-te avui?
USER: Em pots parlar sobre la creació de forats negres?

Sortida:

ASSISTANT: Per descomptat! Els forats negres es creen quan una estrella massiva es queda sense combustible i col·lapsa sota la seva pròpia gravetat. Aquest col·lapse provoca que l'estrella es torni increïblement densa, amb un camp gravitatori tan fort que ni tan sols la llum pot escapar-se'n. Aquest punt de no retorn es coneix com a horitzó d'esdeveniments. Un cop una estrella travessa l'horitzó d'esdeveniments, es considera un forat negre...

Tingueu en compte que a l'exemple anterior, he simplificat l'entrada i la sortida, però l'API de compleció de xat de ChatGPT requereix que els missatges estiguin en un format específic. He afegit una instantània a continuació de com es veuria aquest exemple utilitzant el mode "Xat" a l'OpenAI Playground:

CHATGPT1

La crida API més formal per al nostre exemple semblaria a l'exemple següent:

import openai
 
openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "Ets un assistent de recerca en IA. Utilitzes un to tècnic i científic."},
        {"role": "user", "content": "Hola, qui ets?"},
        {"role": "assistant", "content": "Salutacions! Sóc un assistent de recerca en IA. Com puc ajudar-te avui?"},
        {"role": "user", "content": "Em pots parlar sobre la creació de forats negres?"}
    ]
)

De fet, es preveu que la forma en què els desenvolupadors interactuaran amb ChatGPT en el futur es farà a través del Llenguatge de Marcatge de Xat (opens in a new tab) (ChatML en resum).

Tasques de torn únic

El format de xat permet converses de múltiples torns, però també admet tasques de torn únic similars a les que utilitzàvem amb text-davinci-003. Això significa que podem utilitzar ChatGPT per realitzar tasques similars a les que hem demostrat per als models GPT originals. Per exemple, intentem realitzar la següent tasca de resposta a preguntes utilitzant ChatGPT:

Entrada:

USER: Respon la pregunta basada en el context següent. Mantén la resposta curta i concisa. Respon "No estic segur de la resposta" si no estàs segur de la resposta.

Context: Teplizumab té els seus orígens en una empresa farmacèutica de Nova Jersey anomenada Ortho Pharmaceutical. Allà, els científics van generar una versió inicial de l'anticòs, anomenada OKT3. Originalment obtinguda de ratolins, la molècula era capaç de lligar-se a la superfície de les cèl·lules T i limitar el seu potencial d'eliminació cel·lular. El 1986, va ser aprovada per ajudar a prevenir el rebuig d'òrgans després de trasplantaments de ronyó, convertint-se en el primer anticòs terapèutic permès per a ús humà.

Pregunta: De què es va obtenir originalment l'OKT3?

Resposta:

Sortida:

ASSISTANT: Ratolins.

Tingueu en compte que estic afegint les etiquetes USER i ASSISTANT per demostrar millor com es pot realitzar la tasca utilitzant ChatGPT. Aquí teniu l'exemple utilitzant el Playground:

CHATGPTCLASSIC

Més formalment, aquesta és la crida API (només he inclòs el component de missatge de la sol·licitud):

CONTENT = """Respon la pregunta basada en el context següent. Mantén la resposta curta i concisa. Respon \"No estic segur de la resposta\" si no estàs segur de la resposta.
 
Context: Teplizumab té els seus orígens en una empresa farmacèutica de Nova Jersey anomenada Ortho Pharmaceutical. Allà, els científics van generar una versió inicial de l'anticòs, anomenada OKT3. Originalment obtinguda de ratolins, la molècula era capaç de lligar-se a la superfície de les cèl·lules T i limitar el seu potencial d'eliminació cel·lular. El 1986, va ser aprovada per ajudar a prevenir el rebuig d'òrgans després de trasplantaments de ronyó, convertint-se en el primer anticòs terapèutic permès per a ús humà.
 
Pregunta: De què es va obtenir originalment l'OKT3?
 
Resposta:
"""
 
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)

Instruccions per als Models de Xat

Segons la documentació oficial d'OpenAI, també es posaran a disposició captures instantànies del model gpt-3.5-turbo. Per exemple, podem accedir a la captura instantània del 1 de març gpt-3.5-turbo-0301. Això permet als desenvolupadors optar per versions específiques del model. Això també vol dir que les millors pràctiques per instruir models poden canviar d'una versió a una altra.

La recomanació actual per a gpt-3.5-turbo-0301 és afegir instruccions al missatge user en lloc del missatge system disponible.


Referències