ChatGPT Prompt Engineering
In questa sezione vengono trattate le più recenti tecniche di prompt engineering per ChatGPT, compresi suggerimenti, applicazioni, limitazioni, documenti e materiali di lettura aggiuntivi.
Questa sezione è in fase di forte sviluppo.
Topics:
Introduzione a ChatGPT
ChatGPT è un nuovo modello addestrato da OpenAI (opens in a new tab) che ha la capacità di interagire in modo conversazionale. Questo modello è addestrato a seguire le istruzioni di un prompt per fornire risposte appropriate nel contesto di un dialogo. ChatGPT può aiutare a rispondere a domande, suggerire ricette, scrivere testi in un certo stile, generare codice e molto altro ancora.
ChatGPT è addestrato utilizzando il RLHF - Reinforcement Learning from Human Feedback (apprendimento per rinforzo dal feedback umano). Sebbene questo modello sia molto più capace delle precedenti iterazioni di GPT (e sia anche addestrato per ridurre gli output dannosi e non veritieri), presenta comunque dei limiti. Vediamo alcune delle capacità e dei limiti con esempi concreti.
È possibile utilizzare l'anteprima di ricerca di ChatGPT [qui] (chat.openai.com), ma per gli esempi che seguono utilizzeremo la modalità Chat
sul Playground OpenAI.
Revisione del compito di conversazione
In una delle guide precedenti, abbiamo parlato delle capacità di conversazione e delle richieste di ruolo. Abbiamo spiegato come istruire l'LLM a tenere una conversazione in uno stile specifico, con un intento, un comportamento e un'identità specifici.
Rivediamo il nostro precedente esempio di base, in cui abbiamo creato un sistema di conversazione in grado di generare risposte più tecniche e scientifiche alle domande.
Prompt:
La seguente è una conversazione con un assistente di ricerca AI. Il tono dell'assistente è tecnico e scientifico.
Umano: Ciao, chi sei?
IA: Saluto! Sono un assistente di ricerca AI. Come posso aiutarla oggi?
Umano: Puoi parlarmi della creazione dei buchi neri?
IA:
Dall'esempio precedente, si possono notare due componenti importanti:
- l' intento o spiegazione di cosa è il chatbot
- l'identità che indica lo stile o il tono che il chatbot utilizzerà per rispondere
Il semplice esempio precedente funziona bene con le API di completamento del testo che utilizzano text-davinci-003
. Più recentemente, OpenAI ha annunciato le API ChatGPT (opens in a new tab), un modello più potente e più economico chiamato gpt-3.5-turbo
è stato costruito specificamente per questo tipo di funzionalità (completamento di chat). In effetti, OpenAI raccomanda questo modello come il migliore anche per casi d'uso diversi dalla chat. Altri vantaggi dell'utilizzo delle API ChatGPT sono la riduzione significativa dei costi (90%) e l'efficienza.
Grandi aziende come Snap Inc. e Instacart stanno già integrando nei loro prodotti funzioni di conversazione basate su ChatGPT, che vanno dalle raccomandazioni personalizzate agli obiettivi di acquisto aperti.
Conversazioni con ChatGPT
Conversazioni multi-giro
Per iniziare a dimostrare le capacità di ChatGPT, utilizzeremo l'esempio dell'assistente chatbot di cui sopra e discuteremo i risultati. Rispetto a text-davinci-003
, il modello gpt-3.5-turbo
che alimenta ChatGPT utilizza un formato di chat come input. Il modello si aspetta una serie di messaggi come input e li usa per generare una risposta.
Input:
SISTEMA: sei un assistente di ricerca AI. Usa un tono tecnico e scientifico.
UTENTE: Salve, chi è Lei?
ASSISTENTE: Salve! Sono un assistente di ricerca AI. Come posso aiutarLa oggi?
UTENTE: Può parlarmi della creazione dei buchi neri?
Output:
ASSISTENTE: Certo! I buchi neri si formano quando una stella massiccia esaurisce il suo combustibile e collassa sotto la sua stessa gravità. Questo collasso fa sì che la stella diventi incredibilmente densa, con un campo gravitazionale così forte che nemmeno la luce può sfuggirgli. Questo punto di non ritorno è noto come orizzonte degli eventi. Una volta che una stella attraversa l'orizzonte degli eventi, viene considerata un buco nero...
Si noti che nell'esempio precedente ho semplificato l'input e l'output, ma l'API di completamento della chat ChatGPT richiede che i messaggi siano in un formato specifico. Di seguito ho aggiunto un'istantanea di come apparirebbe questo esempio utilizzando la modalità Chat
nel Playground di OpenAI:
La chiamata API più formale per il nostro esempio sarebbe simile a quella riportata di seguito:
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Sei un assistente di ricerca AI. Usa un tono tecnico e scientifico."},
{"role": "user", "content": "Salve, chi è Lei?"},
{"role": "assistant", "content": "Salve! Sono un assistente di ricerca AI. Come posso aiutarLa oggi?"},
{"role": "user", "content": "Può parlarmi della creazione dei buchi neri?"}
]
)
In effetti, il modo in cui gli sviluppatori interagiranno con ChatGPT in futuro dovrebbe avvenire tramite il Chat Markup Language (opens in a new tab) (ChatML in breve).
Compiti a giro unico
Il formato della chat consente conversazioni a più turni, ma supporta anche compiti a turno singolo simili a quelli utilizzati con testo-davinci-003
. Questo significa che possiamo usare ChatGPT per eseguire compiti simili a quelli che abbiamo dimostrato per i modelli GPT originali. Per esempio, proviamo a eseguire il seguente compito di risposta alle domande utilizzando ChatGPT:
Input:
UTENTE: Rispondi alla domanda in base al contesto sottostante. Rispondi in modo breve e conciso. Rispondi "Incerto sulla risposta" se non si è sicuri della risposta.
Contesto: Il teplizumab affonda le sue radici in un'azienda farmaceutica del New Jersey, la Ortho Pharmaceutical. Qui gli scienziati hanno generato una prima versione dell'anticorpo, denominata OKT3. Originariamente ottenuta dai topi, la molecola era in grado di legarsi alla superficie delle cellule T e di limitarne il potenziale di uccisione. Nel 1986 è stato approvato per aiutare a prevenire il rigetto degli organi dopo il trapianto di rene, diventando così il primo anticorpo terapeutico autorizzato per uso umano.
Domanda: Da cosa è stato originariamente ricavato l'OKT3?
Risposta:
Output:
ASSISTENTE: Topi.
Tenete presente che sto aggiungendo le etichette UTENTE' e
ASSISTENTE' per dimostrare meglio come l'operazione possa essere eseguita utilizzando ChatGPT. Ecco l'esempio che utilizza l'area di gioco:
Più formalmente, questa è la chiamata API (ho incluso solo la componente messaggio della richiesta):
CONTENT = """Rispondi alla domanda in base al contesto sottostante. Rispondi in modo breve e conciso. Rispondi \"Incerto sulla risposta\" se non si è sicuri della risposta..
Contesto: Il teplizumab affonda le sue radici in un'azienda farmaceutica del New Jersey, la Ortho Pharmaceutical. Qui gli scienziati hanno generato una prima versione dell'anticorpo, denominata OKT3. Originariamente ottenuta dai topi, la molecola era in grado di legarsi alla superficie delle cellule T e di limitarne il potenziale di uccisione. Nel 1986 è stato approvato per aiutare a prevenire il rigetto degli organi dopo il trapianto di rene, diventando così il primo anticorpo terapeutico autorizzato per uso umano.
Domanda: Da cosa è stato originariamente ricavato l'OKT3?
Risposta:
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": CONTENT},
],
temperature=0,
)
Istruzione dei Modelli di Chat
Secondo i documenti ufficiali di OpenAI, saranno rese disponibili anche le istantanee del modello gpt-3.5-turbo
. Per esempio, possiamo accedere allo snapshot del 1 marzo gpt-3.5-turbo-0301
. Questo permette agli sviluppatori di optare per versioni specifiche del modello. Ciò significa anche che le migliori pratiche per l'istruzione dei modelli possono cambiare da una versione all'altra.
La raccomandazione attuale per gpt-3.5-turbo-0301
è di aggiungere le istruzioni nel messaggio user
rispetto al messaggio system
disponibile.
Referenze
- Large language models can rate news outlet credibility (opens in a new tab) (Aprile 2023)
- Can AI Chatbots Pass the Fundamentals of Engineering (FE) and Principles and Practice of Engineering (PE) Structural Exams? (opens in a new tab) (Aprile 2023)
- Can AI Put Gamma-Ray Astrophysicists Out of a Job? (opens in a new tab) (Marzo 2023)
- Comparing Abstractive Summaries Generated by ChatGPT to Real Summaries Through Blinded Reviewers and Text Classification Algorithms (opens in a new tab) (Marzo 2023)
- HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in HuggingFace (opens in a new tab) (Marzo 2023)
- WavCaps: A ChatGPT-Assisted Weakly-Labelled Audio Captioning Dataset for Audio-Language Multimodal Research (opens in a new tab) (Marzo 2023)
- Assessing Cross-Cultural Alignment between ChatGPT and Human Societies: An Empirical Study (opens in a new tab) (Marzo 2023)
- Yes but.. Can ChatGPT Identify Entities in Historical Documents? (opens in a new tab) (Marzo 2023)
- Evaluation of ChatGPT for NLP-based Mental Health Applications (opens in a new tab) (Marzo 2023)
- A Perspectival Mirror of the Elephant: Investigating Language Bias on Google, ChatGPT, Wikipedia, and YouTube (opens in a new tab) (Marzo 2023)
- ChatGPT or academic scientist? Distinguishing authorship with over 99% accuracy using off-the-shelf machine learning tools (opens in a new tab) (Marzo 2023)
- Zero-shot Clinical Entity Recognition using ChatGPT (opens in a new tab) (Marzo 2023)
- ChatGPT is a Knowledgeable but Inexperienced Solver: An Investigation of Commonsense Problem in Large Language Models (opens in a new tab) (Marzo 2023)
- ChatGPT4PCG Competition: Character-like Level Generation for Science Birds (opens in a new tab) (Marzo 2023)
- ChatGPT as a Factual Inconsistency Evaluator for Abstractive Text Summarization (opens in a new tab) (Marzo 2023)
- Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System (opens in a new tab) (Marzo 2023)
- A comprehensive evaluation of ChatGPT's zero-shot Text-to-SQL capability (opens in a new tab) (Marzo 2023)
- Towards Making the Most of ChatGPT for Machine Translation (opens in a new tab) (Marzo 2023)
- Error Analysis Prompting Enables Human-Like Translation Evaluation in Large Language Models: A Case Study on ChatGPT (opens in a new tab) (Marzo 2023)
- ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks (opens in a new tab) (Marzo 2023)
- ChatGPT or Grammarly? Evaluating ChatGPT on Grammatical Error Correction Benchmark (opens in a new tab) (Marzo 2023)
- ChatGPT and a New Academic Reality: AI-Written Research Papers and the Ethics of the Large Language Models in Scholarly Publishing (opens in a new tab) (Marzo 2023)
- Are LLMs the Master of All Trades? : Exploring Domain-Agnostic Reasoning Skills of LLMs (opens in a new tab) (Marzo 2023)
- Is ChatGPT A Good Keyphrase Generator? A Preliminary Study (opens in a new tab) (Marzo 2023)
- MM-REACT: Prompting ChatGPT for Multimodal Reasoning and Action (opens in a new tab) (Marzo 2023)
- Large Language Models Can Be Used to Estimate the Ideologies of Politicians in a Zero-Shot Learning Setting (opens in a new tab) (Marzo 2023)
- Chinese Intermediate English Learners outdid ChatGPT in deep cohesion: Evidence from English narrative writing (opens in a new tab) (Marzo 2023)
- A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models (opens in a new tab) (Marzo 2023)
- ChatGPT as the Transportation Equity Information Source for Scientific Writing (opens in a new tab) (Marzo 2023)
- Translating Radiology Reports into Plain Language using ChatGPT and GPT-4 with Prompt Learning: Promising Results, Limitations, and Potential (opens in a new tab) (Marzo 2023)
- ChatGPT Participates in a Computer Science Exam (opens in a new tab) (Marzo 2023)
- Consistency Analysis of ChatGPT (opens in a new tab) (Marzo 2023)
- Algorithmic Ghost in the Research Shell: Large Language Models and Academic Knowledge Creation in Management Research (opens in a new tab) (Marzo 2023)
- Large Language Models in the Workplace: A Case Study on Prompt Engineering for Job Type Classification (opens in a new tab) (Marzo 2023)
- Seeing ChatGPT Through Students' Eyes: An Analysis of TikTok Data (opens in a new tab) (Marzo 2023)
- Extracting Accurate Materials Data from Research Papers with Conversational Language Models and Prompt Engineering -- Example of ChatGPT (opens in a new tab) (Marzo 2023)
- ChatGPT is on the horizon: Could a large language model be all we need for Intelligent Transportation? (opens in a new tab) (Marzo 2023)
- Making a Computational Attorney (opens in a new tab) (Marzo 2023)
- Does Synthetic Data Generation of LLMs Help Clinical Text Mining? (opens in a new tab) (Marzo 2023)
- MenuCraft: Interactive Menu System Design with Large Language Models (opens in a new tab) (Marzo 2023)
- A Comprehensive Survey of AI-Generated Content (AIGC): A History of Generative AI from GAN to ChatGPT (opens in a new tab) (Marzo 2023)
- Exploring the Feasibility of ChatGPT for Event Extraction (opens in a new tab)
- ChatGPT: Beginning of an End of Manual Annotation? Use Case of Automatic Genre Identification (opens in a new tab) (Marzo 2023)
- Is ChatGPT a Good NLG Evaluator? A Preliminary Study (opens in a new tab) (Marzo 2023)
- Will Affective Computing Emerge from Foundation Models and General AI? A First Evaluation on ChatGPT (opens in a new tab) (Marzo 2023)
- UZH_CLyp at SemEval-2023 Task 9: Head-First Fine-Tuning and ChatGPT Data Generation for Cross-Lingual Learning in Tweet Intimacy Prediction (opens in a new tab) (Marzo 2023)
- How to format inputs to ChatGPT models (opens in a new tab) (Marzo 2023)
- Can ChatGPT Assess Human Personalities? A General Evaluation Framework (opens in a new tab) (Marzo 2023)
- Cross-Lingual Summarization via ChatGPT (opens in a new tab) (Febbraio 2023)
- ChatAug: Leveraging ChatGPT for Text Data Augmentation (opens in a new tab) (Febbraio 2023)
- Dr ChatGPT, tell me what I want to hear: How prompt knowledge impacts health answer correctness (opens in a new tab) (Febbraio 2023)
- An Independent Evaluation of ChatGPT on Mathematical Word Problems (MWP) (opens in a new tab) (Febbraio 2023)
- ChatGPT: A Meta-Analysis after 2.5 Months (opens in a new tab) (Febbraio 2023)
- Let's have a chat! A Conversation with ChatGPT: Technology, Applications, and Limitations (opens in a new tab) (Febbraio 2023)
- Check Your Facts and Try Again: Improving Large Language Models with External Knowledge and Automated Feedback (opens in a new tab) (Febbraio 2023)
- On the Robustness of ChatGPT: An Adversarial and Out-of-distribution Perspective (opens in a new tab) (Febbraio 2023)
- How Generative AI models such as ChatGPT can be (Mis)Used in SPC Practice, Education, and Research? An Exploratory Study (opens in a new tab) (Febbraio 2023)
- Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT (opens in a new tab) (Febbraio 2023)
- A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (opens in a new tab) (Febbraio 2023)
- Zero-Shot Information Extraction via Chatting with ChatGPT (opens in a new tab) (Febbraio 2023)
- ChatGPT: Jack of all trades, master of none (opens in a new tab) (Febbraio 2023)
- A Pilot Evaluation of ChatGPT and DALL-E 2 on Decision Making and Spatial Reasoning (opens in a new tab) (Febbraio 2023)
- Netizens, Academicians, and Information Professionals' Opinions About AI With Special Reference To ChatGPT (opens in a new tab) (Febbraio 2023)
- Linguistic ambiguity analysis in ChatGPT (opens in a new tab) (Febbraio 2023)
- ChatGPT versus Traditional Question Answering for Knowledge Graphs: Current Status and Future Directions Towards Knowledge Graph Chatbots (opens in a new tab) (Febbraio 2023)
- What ChatGPT and generative AI mean for science (opens in a new tab) (Febbraio 2023)
- Applying BERT and ChatGPT for Sentiment Analysis of Lyme Disease in Scientific Literature (opens in a new tab) (Febbraio 2023)
- Exploring AI Ethics of ChatGPT: A Diagnostic Analysis (opens in a new tab) (Gennaio 2023)
- ChatGPT for Good? On Opportunities and Challenges of Large Language Models for Education (opens in a new tab) (Gennaio 2023)
- The political ideology of conversational AI: Converging evidence on ChatGPT's pro-environmental, left-libertarian orientation (opens in a new tab) (Gennaio 2023)
- Techniques to improve reliability - OpenAI Cookbook (opens in a new tab)
- Awesome ChatGPT Prompts (opens in a new tab)
- Introducing ChatGPT (opens in a new tab) (Novembre 2022)