ChatGPT Prompt Engineering
In this section, we cover the latest prompt engineering techniques for ChatGPT, including tips, applications, limitations, papers, and additional reading materials.
Topics:
ChatGPT Introduction
ChatGPT is a new model trained by OpenAI (opens in a new tab) that has the capability to interact in a conversational way. This model is trained to follow instructions in a prompt to provide appropriate responses in the context of a dialogue. ChatGPT can help with answering questions, suggesting recipes, writing lyrics in a certain style, generating code, and much more.
ChatGPT is trained using Reinforcement Learning from Human Feedback (RLHF). While this model is a lot more capable than previous GPT iterations (and also trained to reduce harmful and untruthful outputs), it still comes with limitations. Let's cover some of the capabilities and limitations with concrete examples.
You can use the research preview of ChatGPT here but for the examples below we will use the Chat
mode on the OpenAI Playground.
Reviewing The Conversation Task
In one of the previous guides, we covered a bit about conversation capabilities and role prompting. We covered how to instruct the LLM to have a conversation in a specific style, with a specific intent, behavior, and identity.
Let's review our previous basic example where we created a conversational system that's able to generate more technical and scientific responses to questions.
Prompt:
The following is a conversation with an AI research assistant. The assistant tone is technical and scientific.
Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI:
From the example above, you can see two important components:
- the intent or explanation of what the chatbot is
- the identity which instructs the style or tone the chatbot will use to respond
The simple example above works well with the text completion APIs that uses text-davinci-003
. More recently, OpenAI announced the ChatGPT APIs (opens in a new tab), which is a more powerful and cheaper model called gpt-3.5-turbo
was specifically built for this type of functionality (chat completions). In fact, OpenAI recommends this as their best model even for non-chat use cases. Other benefits of using the ChatGPT APIs are significant cost reduction (90%) and efficiency.
Big companies like Snap Inc. and Instacart are already integrating conversational features powered by ChatGPT on their products that range from personalized recommendations to open-ended shopping goals.
Conversations with ChatGPT
Multi-turn Conversations
To begin demonstrating the capabilities of ChatGPT, we will use the chatbot assistant example above and discuss the results. Compared to text-davinci-003
, the gpt-3.5-turbo
model that powers ChatGPT uses a chat format as input. The model expects a series of messages as input and uses those to generate a response.
Input:
SYSTEM: You are an AI research assistant. You use a tone that is technical and scientific.
USER: Hello, who are you?
ASSISTANT: Greeting! I am an AI research assistant. How can I help you today?
USER: Can you tell me about the creation of black holes?
Output:
ASSISTANT: Of course! Black holes are created when a massive star runs out of fuel and collapses under its own gravity. This collapse causes the star to become incredibly dense, with a gravitational field so strong that not even light can escape it. This point of no return is known as the event horizon. Once a star crosses the event horizon, it is considered a black hole...
Note that in the example above, I have simplified the input and output but the ChatGPT chat completion API requires messages to be in a specific format. I have added a snapshot below of how this example would look using the Chat Mode
in the OpenAI Playground:
The more formal API call for our example would look something like the example below:
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are an AI research assistant. You use a tone that is technical and scientific."},
{"role": "user", "content": "Hello, who are you?"},
{"role": "assistant", "content": "Greeting! I am an AI research assistant. How can I help you today?"},
{"role": "user", "content": "Can you tell me about the creation of black holes?"}
]
)
In fact, the way developers interact with ChatGPT in the future is expected to be done via the Chat Markup Language (opens in a new tab) (ChatML for short).
Single-turn tasks
The chat format enables multi-turn conversations but it also supports single-turn tasks similar to what we used with text-davinci-003
. This means we can use ChatGPT to perform similar tasks as what we have demonstrated for the original GPT models. For example, let's try to perform the following question answering task using ChatGPT:
Input:
USER: Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.
Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.
Question: What was OKT3 originally sourced from?
Answer:
Output:
ASSISTANT: Mice.
Keep in mind that I am adding the USER
and ASSISTANT
labels to better demonstrate how the task can be performed using ChatGPT. Here is the example using the Playground:
More formally, this is the API call (I've only included the message component of the request):
CONTENT = """Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer.
Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.
Question: What was OKT3 originally sourced from?
Answer:
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": CONTENT},
],
temperature=0,
)
Instructing Chat Models
According to the official OpenAI docs, snapshots of the gpt-3.5-turbo
model will also be made available. For example, we can access the snapshot from March 1 gpt-3.5-turbo-0301
. This allows developers to opt for specific model versions. This also means that the best practices for instructing models may change from version to version.
The current recommendation for gpt-3.5-turbo-0301
is to add instructions in the user
message as opposed to the available system
message.
Notebooks
Here is a notebook to learn more about how to make calls to the ChatGPT APIs using the official openai
library:
References
- Column Type Annotation using ChatGPT (opens in a new tab) (June 2023)
- Enhancing Programming eTextbooks with ChatGPT Generated Counterfactual-Thinking-Inspired Questions (opens in a new tab) (June 2023)
- ChatGPT an ENFJ, Bard an ISTJ: Empirical Study on Personalities of Large Language Models (opens in a new tab) (May 2023)
- A Systematic Study and Comprehensive Evaluation of ChatGPT on Benchmark Datasets (opens in a new tab) (May 2023)
- Chatbots put to the test in math and logic problems: A preliminary comparison and assessment of ChatGPT-3.5, ChatGPT-4, and Google Bard (opens in a new tab) (May 2023)
- GPT Models in Construction Industry: Opportunities, Limitations, and a Use Case Validation (opens in a new tab) (May 2023)
- Fairness of ChatGPT (opens in a new tab) (May 2023)
- Mapping ChatGPT in Mainstream Media: Early Quantitative Insights through Sentiment Analysis and Word Frequency Analysis (opens in a new tab) (May 2023)
- A Survey on ChatGPT: AI-Generated Contents, Challenges, and Solutions (opens in a new tab) (May 2023)
- Do Language Models Know When They're Hallucinating References? (opens in a new tab) (May 2023)
- [HowkGPT: Investigating the Detection of ChatGPT-generated University Student Homework through Context-Aware Perplexity Analysis]
- Playing repeated games with Large Language Models (opens in a new tab) (May 2023)
- Zero is Not Hero Yet: Benchmarking Zero-Shot Performance of LLMs for Financial Tasks (opens in a new tab) (May 2023)
- Leveraging LLMs for KPIs Retrieval from Hybrid Long-Document: A Comprehensive Framework and Dataset (opens in a new tab) (May 2023)
- Marked Personas: Using Natural Language Prompts to Measure Stereotypes in Language Models (opens in a new tab) (May 2023)
- The Larger They Are, the Harder They Fail: Language Models do not Recognize Identifier Swaps in Python (opens in a new tab) (May 2023)
- InternGPT: Solving Vision-Centric Tasks by Interacting with ChatGPT Beyond Language (opens in a new tab) (May 2023)
- Narrative XL: A Large-scale Dataset For Long-Term Memory Models (opens in a new tab) (May 2023)
- Does ChatGPT have Theory of Mind? (opens in a new tab) (May 2023)
- Can LLM Already Serve as A Database Interface? A BIg Bench for Large-Scale Database Grounded Text-to-SQLs (opens in a new tab) (May 2023)
- ZeroSCROLLS: A Zero-Shot Benchmark for Long Text Understanding (opens in a new tab) (May 2023)
- Navigating Prompt Complexity for Zero-Shot Classification: A Study of Large Language Models in Computational Social Science (opens in a new tab) (May 2023)
- ChatGPT-EDSS: Empathetic Dialogue Speech Synthesis Trained from ChatGPT-derived Context Word Embeddings (opens in a new tab) (May 2023)
- Can LLMs facilitate interpretation of pre-trained language models? (opens in a new tab) (May 2023)
- Can ChatGPT Detect Intent? Evaluating Large Language Models for Spoken Language Understanding (opens in a new tab) (May 2023)
- LLM-empowered Chatbots for Psychiatrist and Patient Simulation: Application and Evaluation (opens in a new tab) (May 2023)
- ChatGPT as your Personal Data Scientist (opens in a new tab) (May 2023)
- Are Large Language Models Good Evaluators for Abstractive Summarization? (opens in a new tab) (May 2023)
- Can ChatGPT Defend the Truth? Automatic Dialectical Evaluation Elicits LLMs' Deficiencies in Reasoning (opens in a new tab) (May 2023)
- Evaluating ChatGPT's Performance for Multilingual and Emoji-based Hate Speech Detection (opens in a new tab) (May 2023)
- ChatGPT to Replace Crowdsourcing of Paraphrases for Intent Classification: Higher Diversity and Comparable Model Robustness (opens in a new tab) (May 2023)
- Distilling ChatGPT for Explainable Automated Student Answer Assessment (opens in a new tab) (May 2023)
- Prompt ChatGPT In MNER: Improved multimodal named entity recognition method based on auxiliary refining knowledge from ChatGPT (opens in a new tab) (May 2023)
- ChatGPT Is More Likely to Be Perceived as Male Than Female (opens in a new tab) (May 2023)
- Observations on LLMs for Telecom Domain: Capabilities and Limitations (opens in a new tab) (May 2023)
- Bits of Grass: Does GPT already know how to write like Whitman? (opens in a new tab) (May 2023)
- Are Large Language Models Fit For Guided Reading? (opens in a new tab) (May 2023)
- ChatGPT Perpetuates Gender Bias in Machine Translation and Ignores Non-Gendered Pronouns: Findings across Bengali and Five other Low-Resource Languages (opens in a new tab) (May 2023)
- BAD: BiAs Detection for Large Language Models in the context of candidate screening (opens in a new tab) (May 2023)
- MemoryBank: Enhancing Large Language Models with Long-Term Memory (opens in a new tab) (May 2023)
- Knowledge Graph Completion Models are Few-shot Learners: An Empirical Study of Relation Labeling in E-commerce with LLMs (opens in a new tab) (May 2023)
- A Preliminary Analysis on the Code Generation Capabilities of GPT-3.5 and Bard AI Models for Java Functions (opens in a new tab) (May 2023)
- ChatGPT-4 Outperforms Experts and Crowd Workers in Annotating Political Twitter Messages with Zero-Shot Learning (opens in a new tab) (April 2023)
- ChatGPT Beyond English: Towards a Comprehensive Evaluation of Large Language Models in Multilingual Learning (opens in a new tab) (April 2023)
- Distinguishing ChatGPT(-3.5, -4)-generated and human-written papers through Japanese stylometric analysis (opens in a new tab) (April 2023)
- Zero-shot Temporal Relation Extraction with ChatGPT (opens in a new tab) (April 2023)
- Can ChatGPT and Bard Generate Aligned Assessment Items? A Reliability Analysis against Human Performance (opens in a new tab) (April 2023)
- Are Large Language Models Ready for Healthcare? A Comparative Study on Clinical Language Understanding (opens in a new tab) (April 2023)
- The Wall Street Neophyte: A Zero-Shot Analysis of ChatGPT Over MultiModal Stock Movement Prediction Challenges (opens in a new tab) (April 2023)
- Toxicity in ChatGPT: Analyzing Persona-assigned Language Models (opens in a new tab) (April 2023)
- Multi-step Jailbreaking Privacy Attacks on ChatGPT (opens in a new tab) (April 2023)
- Is ChatGPT a Good Sentiment Analyzer? A Preliminary Study (opens in a new tab) (April 2023)
- A Preliminary Evaluation of ChatGPT for Zero-shot Dialogue Understanding (opens in a new tab) (April 2023)
- Extractive Summarization via ChatGPT for Faithful Summary Generation (opens in a new tab) (April 2023)
- What does ChatGPT return about human values? Exploring value bias in ChatGPT using a descriptive value theory (opens in a new tab) (April 2023)
- On the Evaluations of ChatGPT and Emotion-enhanced Prompting for Mental Health Analysis (opens in a new tab) (April 2023)
- ChatGPT-Crawler: Find out if ChatGPT really knows what it's talking about (opens in a new tab) (April 2023)
- Should ChatGPT be Biased? Challenges and Risks of Bias in Large Language Models (opens in a new tab) (April 2023)
- Synthesis of Mathematical programs from Natural Language Specifications (opens in a new tab) (April 2023)
- Large language models effectively leverage document-level context for literary translation, but critical errors persist (opens in a new tab) (April 2023)
- Investigating Chain-of-thought with ChatGPT for Stance Detection on Social Media (opens in a new tab) (April 2023)
- ChatGPT for Shaping the Future of Dentistry: The Potential of Multi-Modal Large Language Model (opens in a new tab) (April 2023)
- Can Large Language Models Play Text Games Well? Current State-of-the-Art and Open Questions (opens in a new tab) (April 2023)
- Human-like Summarization Evaluation with ChatGPT (opens in a new tab) (April 2023)
- Evaluation of ChatGPT Family of Models for Biomedical Reasoning and Classification (opens in a new tab) (April 2023)
- Comparative Analysis of CHATGPT and the evolution of language models (opens in a new tab) (April 2023)
- Unleashing the Power of ChatGPT for Translation: An Empirical Study (opens in a new tab) (April 2023)
- Geotechnical Parrot Tales (GPT): Overcoming GPT hallucinations with prompt engineering for geotechnical applications (opens in a new tab) (April 2023)
- Unlocking the Potential of ChatGPT: A Comprehensive Exploration of its Applications, Advantages, Limitations, and Future Directions in Natural Language Processing (opens in a new tab) (April 2023)
- Summary of ChatGPT/GPT-4 Research and Perspective Towards the Future of Large Language Models (opens in a new tab) (April 2023)
- Is ChatGPT a Highly Fluent Grammatical Error Correction System? A Comprehensive Evaluation (opens in a new tab) (April 2023)
- Safety Analysis in the Era of Large Language Models: A Case Study of STPA using ChatGPT (opens in a new tab) (April 2023)
- Large language models can rate news outlet credibility (opens in a new tab) (April 2023)
- Can AI Chatbots Pass the Fundamentals of Engineering (FE) and Principles and Practice of Engineering (PE) Structural Exams? (opens in a new tab) (April 2023)
- Can AI Put Gamma-Ray Astrophysicists Out of a Job? (opens in a new tab) (March 2023)
- Comparing Abstractive Summaries Generated by ChatGPT to Real Summaries Through Blinded Reviewers and Text Classification Algorithms (opens in a new tab) (March 2023)
- HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in HuggingFace (opens in a new tab) (March 2023)
- SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models (opens in a new tab) (March 2023)
- WavCaps: A ChatGPT-Assisted Weakly-Labelled Audio Captioning Dataset for Audio-Language Multimodal Research (opens in a new tab) (March 2023)
- How well do Large Language Models perform in Arithmetic tasks? (opens in a new tab) (March 2023)
- Assessing Cross-Cultural Alignment between ChatGPT and Human Societies: An Empirical Study (opens in a new tab) (March 2023)
- Yes but.. Can ChatGPT Identify Entities in Historical Documents? (opens in a new tab) (March 2023)
- Evaluation of ChatGPT for NLP-based Mental Health Applications (opens in a new tab) (March 2023)
- A Perspectival Mirror of the Elephant: Investigating Language Bias on Google, ChatGPT, Wikipedia, and YouTube (opens in a new tab) (March 2023)
- ChatGPT or academic scientist? Distinguishing authorship with over 99% accuracy using off-the-shelf machine learning tools (opens in a new tab) (March 2023)
- Zero-shot Clinical Entity Recognition using ChatGPT (opens in a new tab) (March 2023)
- ChatGPT is a Knowledgeable but Inexperienced Solver: An Investigation of Commonsense Problem in Large Language Models (opens in a new tab) (March 2023)
- ChatGPT4PCG Competition: Character-like Level Generation for Science Birds (opens in a new tab) (March 2023)
- ChatGPT as a Factual Inconsistency Evaluator for Abstractive Text Summarization (opens in a new tab) (March 2023)
- Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System (opens in a new tab) (March 2023)
- A comprehensive evaluation of ChatGPT's zero-shot Text-to-SQL capability (opens in a new tab) (March 2023)
- Towards Making the Most of ChatGPT for Machine Translation (opens in a new tab) (March 2023)
- Error Analysis Prompting Enables Human-Like Translation Evaluation in Large Language Models: A Case Study on ChatGPT (opens in a new tab) (March 2023)
- ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks (opens in a new tab) (March 2023)
- ChatGPT or Grammarly? Evaluating ChatGPT on Grammatical Error Correction Benchmark (opens in a new tab) (March 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) (March 2023)
- Are LLMs the Master of All Trades? : Exploring Domain-Agnostic Reasoning Skills of LLMs (opens in a new tab) (March 2023)
- Is ChatGPT A Good Keyphrase Generator? A Preliminary Study (opens in a new tab) (March 2023)
- MM-REACT: Prompting ChatGPT for Multimodal Reasoning and Action (opens in a new tab) (March 2023)
- Large Language Models Can Be Used to Estimate the Ideologies of Politicians in a Zero-Shot Learning Setting (opens in a new tab) (March 2023)
- Chinese Intermediate English Learners outdid ChatGPT in deep cohesion: Evidence from English narrative writing (opens in a new tab) (March 2023)
- A Comprehensive Capability Analysis of GPT-3 and GPT-3.5 Series Models (opens in a new tab) (March 2023)
- ChatGPT as the Transportation Equity Information Source for Scientific Writing (opens in a new tab) (March 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) (March 2023)
- ChatGPT Participates in a Computer Science Exam (opens in a new tab) (March 2023)
- Consistency Analysis of ChatGPT (opens in a new tab) (Mar 2023)
- Algorithmic Ghost in the Research Shell: Large Language Models and Academic Knowledge Creation in Management Research (opens in a new tab) (Mar 2023)
- Large Language Models in the Workplace: A Case Study on Prompt Engineering for Job Type Classification (opens in a new tab) (March 2023)
- Seeing ChatGPT Through Students' Eyes: An Analysis of TikTok Data (opens in a new tab) (March 2023)
- Extracting Accurate Materials Data from Research Papers with Conversational Language Models and Prompt Engineering -- Example of ChatGPT (opens in a new tab) (Mar 2023)
- ChatGPT is on the horizon: Could a large language model be all we need for Intelligent Transportation? (opens in a new tab) (Mar 2023)
- Making a Computational Attorney (opens in a new tab) (Mar 2023)
- Does Synthetic Data Generation of LLMs Help Clinical Text Mining? (opens in a new tab) (Mar 2023)
- MenuCraft: Interactive Menu System Design with Large Language Models (opens in a new tab) (Mar 2023)
- A Comprehensive Survey of AI-Generated Content (AIGC): A History of Generative AI from GAN to ChatGPT (opens in a new tab) (Mar 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) (Mar 2023)
- Is ChatGPT a Good NLG Evaluator? A Preliminary Study (opens in a new tab) (Mar 2023)
- Will Affective Computing Emerge from Foundation Models and General AI? A First Evaluation on ChatGPT (opens in a new tab) (Mar 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) (Mar 2023)
- How to format inputs to ChatGPT models (opens in a new tab) (Mar 2023)
- Can ChatGPT Assess Human Personalities? A General Evaluation Framework (opens in a new tab) (Mar 2023)
- Cross-Lingual Summarization via ChatGPT (opens in a new tab) (Feb 2023)
- ChatAug: Leveraging ChatGPT for Text Data Augmentation (opens in a new tab) (Feb 2023)
- Dr ChatGPT, tell me what I want to hear: How prompt knowledge impacts health answer correctness (opens in a new tab) (Feb 2023)
- An Independent Evaluation of ChatGPT on Mathematical Word Problems (MWP) (opens in a new tab) (Feb 2023)
- ChatGPT: A Meta-Analysis after 2.5 Months (opens in a new tab) (Feb 2023)
- Let's have a chat! A Conversation with ChatGPT: Technology, Applications, and Limitations (opens in a new tab) (Feb 2023)
- Check Your Facts and Try Again: Improving Large Language Models with External Knowledge and Automated Feedback (opens in a new tab) (Feb 2023)
- On the Robustness of ChatGPT: An Adversarial and Out-of-distribution Perspective (opens in a new tab) (Feb 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) (Feb 2023)
- Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT (opens in a new tab) (Feb 2023)
- A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (opens in a new tab) (Feb 2023)
- Zero-Shot Information Extraction via Chatting with ChatGPT (opens in a new tab) (Feb 2023)
- ChatGPT: Jack of all trades, master of none (opens in a new tab) (Feb 2023)
- A Pilot Evaluation of ChatGPT and DALL-E 2 on Decision Making and Spatial Reasoning (opens in a new tab) (Feb 2023)
- Netizens, Academicians, and Information Professionals' Opinions About AI With Special Reference To ChatGPT (opens in a new tab) (Feb 2023)
- Linguistic ambiguity analysis in ChatGPT (opens in a new tab) (Feb 2023)
- ChatGPT versus Traditional Question Answering for Knowledge Graphs: Current Status and Future Directions Towards Knowledge Graph Chatbots (opens in a new tab) (Feb 2023)
- What ChatGPT and generative AI mean for science (opens in a new tab) (Feb 2023)
- Applying BERT and ChatGPT for Sentiment Analysis of Lyme Disease in Scientific Literature (opens in a new tab) (Feb 2023)
- Exploring AI Ethics of ChatGPT: A Diagnostic Analysis (opens in a new tab) (Jan 2023)
- ChatGPT for Good? On Opportunities and Challenges of Large Language Models for Education (opens in a new tab) (Jan 2023)
- The political ideology of conversational AI: Converging evidence on ChatGPT's pro-environmental, left-libertarian orientation (opens in a new tab) (Jan 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) (Nov 2022)