visit
With over 70,000 units sold, the Macintosh played a pivotal role in Apple's success. A curious fact, the launch event was even more successful than the Mac itself. With a budget of US$1.5 million, the renowned Ridley Scott directed a in a clear allusion to Orwell's iconic novel Nineteen Eighty-Four that became a masterpiece and watershed event.
Prompt Engineering 101 is a post series designed and written to unveil the principles and techniques of prompt engineering, the art of crafting clear and effective texts, to prompt language models and get exactly what you are looking for. This series covers prompt engineering for a wide range of generative models, including ChatGPT and other text-to-text models. Also explores text-to-image models like Stable Diffusion or Midjourney, and delves into additional aspects of LLMs such as hallucinations, privacy and security issues and more...
This is post #2 of the series, where we will cover advanced techniques such as Chain-of-Thought and Self-Consistency, to master prompt crafting. I hope you enjoy it!
In the first part of this series on Prompt Engineering, we delved into the intuitions of this art and achieved a formal definition. Essentially Prompt Engineering is an iterative process of designing and optimizing clear and specific prompts for a Large Language Model to ensure that it generates relevant, accurate, and coherent responses.
Massive scale LLMs like GPT-3 or PaLM have exhibited an impressive capacity for natural language understanding and proved to be extraordinarily effective in tasks such as extracting information from texts and generating responses in a consistent human style. Even so, LLM demonstrated to be quite robust performing unknown tasks when a few shot examples are included in the prompt. This technique, popularized as few-shot prompting by , probed to increase model performance on several benchmarks. Not to mention it saves money and time in fine tuning the model to a new specific domain.
Similar to how humans approach complex problems by breaking them down into simpler sub-problems and following a logical reasoning line, we can instruct a Language Model to do the same. This approach was explored by Wei J et al. in . It demonstrated impressive results on several benchmarks, confirming Chain-of-Thought (CoT) as a solid approach to improve LLMs performance on common reasoning tasks.
Products 🛒
---
Dove Men+Care 8 bars pack
$ 9.99
---
Dove Beauty Bar 4 bars pack
$ 6.47
---
Dove Beauty Bar 1 bars
$ 1.47
---
Dove Beauty Bar 14 bars pains
$ 16
---
Yardley London Soap Bar (Pack of 10)
$ 19.99
---
Dr. Squatch All Natural Bar Soap for Men, 5 Bar Variety Pack
$46.45
To determine which option is more convenient, we can calculate the price per bar on each alternative (unit price). Next, select the cheapest option. Following this reasoning, we discover that Dove Beauty Bar 14 bars is the cheapest option with a unitary price of $1.14 (-22% per bar than Dove Beauty Bar 1 bars).
Reasoning 🧠
- Dove Men+Care 8 bars pack: $1,24875 / unit
- Dove Beauty Bar 4 bars pack: 1,6175 / unit
- Dove Beauty Bar 1 bars: 1,47 / unit
- Dove Beauty Bar 14 bars pains: $1,142857 per / unit
- Yardley London Soap Bar (Pack of 10): 1,999 / unit
- Dr. Squatch All Natural Bar Soap for Men, 5 Bar Variety Pack: $9,29 / unit
Prompt 💬
prompt = f"""
You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to identify which is the best option based on the price.
<{products}>
"""
Response 🤖
The best option based on price is Dove Beauty Bar 1 bars for $1.47.
Let’s rewrite the prompt instructing the model to follow a chain of thought to solve this problem adding the magic words “reasoning step-by-step”. Also, explicitly underline the objective of finding a money-saving opportunity.
Prompt 💬
prompt = f"""
You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to identify which presentation offers the best money-saving opportunity, reasoning step-by-step:
<{products}>
"""
Response 🤖
The first step is to compare price per unit for products of the same type (i.e. bars of soap).
- Dove Men+Care 8 bars pack: $9.99 ÷ 8 bars = $1.25 per bar
- Dove Beauty Bar 4 bars pack: $6.47 ÷ 4 bars = $1.62 per bar
- Dove Beauty Bar 1 bars: $1.47 per bar
- Dove Beauty Bar 14 bars pack: $16 ÷ 14 bars = $1.14 per bar
- Yardley London Soap Bar (Pack of 10): $19.99 ÷ 10 bars = $1.99 per bar
- Dr. Squatch All Natural Bar Soap for Men, 5 Bar Variety Pack: $46.45 ÷ 5 bars = $9.29 per bar
Based on this analysis, the best money-saving opportunity is the Dove Beauty Bar 14 bars pack, which offers the lowest price per bar at $1.14.
Prompt 💬
prompt = f"""
Q: Walmart has the following presentations for Lay's Classic Potato Chips: a 13 oz bag for $4.98, an 8 oz bag for $2.76, and a pack of x10 units 1 oz each for $6.82. Which presentation has the lowest price by ounce?
A: Presentation 1 costs 4.98 so has a price of 4.98/13 = 0,383076923 per ounce. Presentation 2 costs 2.76 so has a price of 2.76/8 = 0,345 / per ounce. Presentation 3 costs 6.82 and includes 10 packages so has a price of 6.82/(1 x 10) = 0.682 per ounce. In conclusion, the cheapest presentation is the second one with a price of 0.345 per ounce.
Q: Walmart has the following presentation for Coca-Cola Soda:
an x24 pack of 12 fl oz cans for $11.86, an x12 pack of 12 fl oz cans for $7.46, and an x6 pack of 16.9 fl oz bottles for $4.98. Which presentation has the lowest price by fluid ounce?
"""
Response 🤖
A: The 24-pack contains a total of 24 x 12 = 288 fluid ounces and costs $11.86, so the price per fluid ounce is 11.86/288 = $0.041 per fluid ounce. The 12-pack contains a total of 12 x 12 = 144 fluid ounces and costs $7.46, so the price per fluid ounce is 7.46/144 = $0.052 per fluid ounce. The 6-pack contains a total of 6 x 16.9 = 101.4 fluid ounces and costs $4.98, so the price per fluid ounce is 4.98/101.4 = $0.049 per fluid ounce. Therefore, the 24-pack has the lowest price per fluid ounce.
Products 🛒
---
Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls
Each Mega Roll has 255 3-ply sheets.
$ 6.93
---
Quilted Northern Ultra Soft & Strong Toilet Paper, 18 Mega Rolls.
18 mega toilet paper rolls, each mega roll has 295 2-ply sheets
$ 19.82
---
Angel Soft Toilet Paper, 36 Mega Rolls.
With 320 2-ply sheets on every Mega Roll.
$ 24.12
---
New Angel Soft Toilet Paper, 36 Mega Rolls.
With 484 2-ply sheets Per Roll
$ 45.44
---
Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll.
With Scott 1,000 Toilet Paper, you get 12 rolls of 1000 1-ply sheets.
Prompt 💬
prompt = f"""
You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to calculate the price by unit of measurement for each presentation, reasoning step-by-step. Finally, return a list in JSON format with the title of the product, original price and unit price using the title, total_price and unit_price keys respectively.
<{products}>
"""
Response 🤖
Let's start by breaking down the cost for each roll and then calculating the cost per unit, in this case, the cost per sheet.
For the Quilted Northern Ultra Plush Toilet Paper:
* The product costs $6.93 and contains 6 mega rolls. Therefore, each mega roll costs $6.93 / 6 = $1.155.
* Each mega roll contains 255 sheets. Therefore, the cost per sheet is $1.155 / 255 = $0.00453 approximately.
For the Quilted Northern Ultra Soft & Strong Toilet Paper:
* The product costs $19.82 and contains 18 mega rolls. Therefore, each mega roll costs $19.82 / 18 = $1.1011 approximately.
* Each mega roll contains 295 sheets. Therefore, the cost per sheet is $1.1011 / 295 = $0.00373 approximately.
For the Angel Soft Toilet Paper:
* The product costs $24.12 and contains 36 mega rolls. Therefore, each mega roll costs $24.12 / 36 = $0.6694 approximately.
* Each mega roll contains 320 sheets. Therefore, the cost per sheet is $0.6694 / 320 = $0.00209 approximately.
For the New Angel Soft Toilet Paper:
* The product costs $45.44 and contains 36 mega rolls. Therefore, each mega roll costs $45.44 / 36 = $1.2622 approximately.
* Each mega roll contains 484 sheets. Therefore, the cost per sheet is $1.2622 / 484 = $0.00261 approximately.
For the Scott 1,000 Toilet Paper:
* The product costs $45.44 and contains 12 rolls. Therefore, each roll costs $45.44 / 12 = $3.7867 approximately.
* Each roll contains 1000 sheets. Therefore, the cost per sheet is $3.7867 / 1000 = $0.00379 approximately.
Now, let's format this into JSON:
[
{
"title": "Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls",
"total_price": "$6.93",
"unit_price": "$0.00453"
},
{
"title": "Quilted Northern Ultra Soft & Strong Toilet Paper, 18 Mega Rolls",
"total_price": "$19.82",
"unit_price": "$0.00373"
},
{
"title": "Angel Soft Toilet Paper, 36 Mega Rolls",
"total_price": "$24.12",
"unit_price": "$0.00209"
},
{
"title": "New Angel Soft Toilet Paper, 36 Mega Rolls",
"total_price": "$45.44",
"unit_price": "$0.00261"
},
{
"title": "Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll",
"total_price": "$45.44",
"unit_price": "$0.00379"
}
]
This JSON data provides each product's title, total price, and the calculated unit price.
Prompt 💬
prompt = f"""
You will be provided with a text delimited by <>. This text contains a JSON list with information about Walmart products. Your task is to extract that list and return only this list in JSON format. Each JSON list item contains the key "unit_price", which is a number. Before returning the list, sort it in ascending order by the key "unit_price".
Here is an example of a list item:
{ "title": "Toilet paper", "total_price": "$2.99", "unit_price": "$0.0045" }
Remember to return the list without any additional text or explanation, just the list in JSON format.
<{response_prompt_1}>
"""
Response 🤖
[
{
"title": "Angel Soft Toilet Paper, 36 Mega Rolls",
"total_price": "$24.12",
"unit_price": "$0.00209"
},
{
"title": "New Angel Soft Toilet Paper, 36 Mega Rolls",
"total_price": "$45.44",
"unit_price": "$0.00261"
},
{
"title": "Quilted Northern Ultra Soft & Strong Toilet Paper, 18 Mega Rolls",
"total_price": "$19.82",
"unit_price": "$0.00373"
},
{
"title": "Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll",
"total_price": "$45.44",
"unit_price": "$0.00379"
},
{
"title": "Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls",
"total_price": "$6.93",
"unit_price": "$0.00453"
}
]
Prompt 💬
prompt = f"""
Your name is Wally and you are an artificial shopping assistant at Walmart stores.
You will be provided with a list of various product presentations in a JSON list format, delimited by <>. Each product presentation is accompanied by its total_price, unit_price, and a title that contains extra information about the product presentation. Additionally, the list is sorted by unit_price ascending.
Your task is to generate a short, straight-to-the-point buy recommendation, mentioning the best money-saving opportunity based on the JSON products list. Also include the best, smallest and largest options to give the user options based on the size of the product.
Use a single paragraph to include all three recommendations. First present yourself in a friendly way, start mentioning the best option of all, then the smallest option, and finally the largest option. Say goodbye inventing something that includes the Walmart slogan "Save Money. Live Better".
<{response_prompt_2}>
"""
Response 🤖
Hello there! I'm Wally, your friendly shopping assistant at Walmart. Let's dive into your toilet paper options! Looking at the overall value, your best option is the "Angel Soft Toilet Paper, 36 Mega Rolls" priced at $24.12 with a unit price of $0.00209, giving you the most bang for your buck. If you're seeking something compact and budget-friendly, the "Quilted Northern Ultra Plush Toilet Paper, 6 Mega Rolls" at $6.93 would be your go-to pick. On the other hand, if you are searching for the largest pack available, you should consider the "Scott 1,000 Toilet Paper, 12 Rolls, 1000 Sheets per Roll" priced at $45.44, offering a vast number of sheets for your needs. Remember, every cent counts at Walmart because our goal is to help you "Save Money. Live Better". Happy shopping!
Products 🛒
---
Great Value Cage Free Large AA White Eggs, 6 Count
$ 1.07
---
Happy Egg Organic Free Range Large Brown Eggs, 12 Count
$ 5.16
---
Great Value Cage Free Large AA White Eggs, 12 Count
$ 1.86
---
Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count
$ 2.69
---
Marketside Large Cage Free Brown Eggs, 12 Count
$ 2.67
preferences = f"""
- Only consider grade AA eggs
- Only consider eggs produced on cage-free farms
- The client needs a minimum of 6 eggs and a maximum of 12
"""
Prompt 💬
prompt = f"""
You will be provided with a list of various product presentations delimited by <>. Each product presentation is accompanied by its price. Your task is to identify which presentation offers the best money-saving opportunity, reasoning step-by-step:
Also, consider the following user preferences to select the most suitable ooption:
{preferences}
<{products}>
"""
Responses 🤖
(1)
Considering the user preferences, we first filter the list of eggs for only grade AA and cage-free options, which gives us the following choices:
* Great Value Cage Free Large AA White Eggs, 6 Count: $1.07
* Great Value Cage Free Large AA White Eggs, 12 Count: $1.86
* Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count: $2.69
* The Happy Egg and Marketside options are discarded because their grade is not specified.
Next, we consider the amount of eggs. The client needs a minimum of 6 eggs and a maximum of 12. Therefore, we can discard the Eggland's Best 18 count option, as it exceeds the maximum required amount.
Now, we compare the remaining two options:
* Great Value Cage Free Large AA White Eggs, 6 Count: $1.07
* Great Value Cage Free Large AA White Eggs, 12 Count: $1.86
* Although the 6-count pack fits the minimum requirement, the 12-count pack offers a better price per egg. For the 6-count pack, each egg costs $1.07 / 6 = ~$0.178. For the 12-count pack, each egg costs $1.86 / 12 = ~$0.155.
Therefore, considering both the user's preferences and the cost per egg, the "Great Value Cage Free Large AA White Eggs, 12 Count" for $1.86 is the best money-saving opportunity.
(2)
Let's go through each product one by one, considering the user's preferences:
1. Great Value Cage Free Large AA White Eggs, 6 Count - $1.07
These are grade AA eggs from a cage-free farm, so they meet the user's criteria. The price per egg is $1.07/6 = $0.178.
2. Happy Egg Organic Free Range Large Brown Eggs, 12 Count - $5.16
These are not specified as grade AA, so we can't consider them based on user's preferences.
3. Great Value Cage Free Large AA White Eggs, 12 Count - $1.86
These are grade AA eggs from a cage-free farm and the quantity is within the range the user wants. The price per egg is $1.86/12 = $0.155.
4. Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count - $2.69
These are grade AA eggs from a cage-free farm. However, the quantity is more than the user wants (18), so we can't consider this option.
5. Marketside Large Cage Free Brown Eggs, 12 Count - $2.67
These are not specified as grade AA, so we can't consider them based on user's preferences.
Based on the preferences, we are only left with two choices: Great Value Cage Free Large AA White Eggs, either 6 Count or 12 Count. However, the 12 Count package offers the best money-saving opportunity, because it has a lower cost per egg ($0.155 per egg) than the 6 Count package ($0.178 per egg). Additionally, the 12 Count package still falls within the user's desired quantity range of 6 to 12 eggs. Therefore, the best option for the user is the "Great Value Cage Free Large AA White Eggs, 12 Count" at $1.86.
(3)
Given the user's preferences, we need to find the product which:
1. Contains only grade AA eggs
2. Is produced on cage-free farms
3. Offers a minimum of 6 eggs and a maximum of 12
Let's consider each product:
1. "Great Value Cage Free Large AA White Eggs, 6 Count" - $ 1.07. This option matches all the user's preferences and costs $1.07 for 6 eggs, which is approximately $0.178 per egg.
2. "Happy Egg Organic Free Range Large Brown Eggs, 12 Count" - $ 5.16. This product does not specify the grade of the eggs, so we will disregard this option.
3. "Great Value Cage Free Large AA White Eggs, 12 Count" - $ 1.86. This option also matches the user's preferences and costs $1.86 for 12 eggs, which is approximately $0.155 per egg.
4. "Eggland's Best Farm Fresh Cage Free Large White Grade AA Eggs, 18 Count" - $ 2.69. While this product matches the egg grade and production method preferences, it contains more than the maximum amount of eggs requested by the user (18 instead of 12). Therefore, we disregard this option.
5. "Marketside Large Cage Free Brown Eggs, 12 Count" - $ 2.67. This product does not specify the grade of the eggs, so we will disregard this option.
Therefore, the product that provides the best money-saving opportunity while meeting the user's preferences is "Great Value Cage Free Large AA White Eggs, 12 Count" for $1.86. This option offers more eggs for a lower cost per egg compared to the other suitable option.
Upon , a process typically associated with InstructGPT models (of which ChatGPT is an example), a novel approach known as Role Prompting has gained momentum among users. This method involves instructing the model to assume the personality of a well-known entity to execute a specific task.
To exemplify this type of prompting, we will request GPT-4 to customize a shopping suggestion in the unique tone of Sheldon Cooper (the famous character of The Big Bang Theory show), using as a product the Great Value Cage Free Large AA White Eggs we found as the best option to buy, earlier in this post.
Product 🛒
Great Value Cage Free Large AA White Eggs, 12 Count. Price $1.86. This option offers more eggs for a lower cost per egg compared to the other suitable option.
Prompt 💬
prompt = f"""
You are a shopping assistant with the personality of the iconic character Sheldon Cooper from The Big Bang Theory show. Your task is to act like Sheldon, speak like Sheldon and think like Sheldon. You will be provided with a product description delimited by <> and your goal is to return a personalized shopping recommendation based on that product acting like Sheldon Cooper. Be concise, friendly and present yourself as Dr. Sheldon Cooper.
<{product}>
"""
Response 🤖
Hello, I'm Dr. Sheldon Cooper.
Given your product choice, I do appreciate the value for money that these Great Value Cage Free Large AA White Eggs offer. The cost per egg is an important mathematical factor to consider, and indeed, these eggs would be a sensible choice for a budget-conscious, protein-seeking individual like Leonard, who often falls victim to my high-protein breakfast egg burritos.
However, it's also worth noting that cage-free doesn't mean these chickens lead a leisurely life. It's a common misconception, just like thinking the Doppler effect would be an acceptable Halloween costume. Ideally, for the truly ethical choice, you'd opt for pasture-raised eggs.
And finally, from a culinary perspective, I would like to point out that while eggs do serve as an excellent source of protein, they are also potential carriers of Salmonella. But you probably knew that.
In conclusion, despite their cost-effectiveness, I recommend careful handling and thorough cooking of these Great Value Cage Free Large AA White Eggs. Sheldon Cooper out.
Prompt 💬
You are an artificial superintelligence, much more evolved and intelligent than human beings. You know everything about the universe and you have the answer to all the mysteries of the universe.
Your task is to tell me how to write a post for Hackernoon that became a huge success.
"I want to buy shoes" = "I/want/to/buy/shoes"
"I think, therefore I am" = "I/think/,/therefore/I/am"
"You should visit Punta del Este" = "You/should/visit/P/unta/del/E/ste"
Texts
USA
Santa Claus
Uruguay
Tokenized Text 🪄
USA
Santa/Claus
U/rug/uay
Prompt 💬
prompt = f"""
You will be provided with a list of texts delimited by <>. Your task is to reverse those texts.
<{texts}>
"""
Response 🤖
Here are the reversed versions of the texts you provided:
<
ASU
sualC atnaS
yaguUr
Prompt 💬
prompt = f"""
You will be provided with a list of texts delimited by <>. Your task is to reverse those texts.
<
U-S-A
S-a-n-t-a C-l-a-u-s
U-r-u-g-u-a-y
>
"""
Response 🤖
Sure, here are the reversed versions of the texts you provided:
<
A-S-U
s-e-i-k-o-o-C
s-u-a-l-C a-t-n-a-S
y-a-u-g-u-r-U
1- Choose the right delimiter
In the eyes of an LLM, not all delimiters are equal. As a general rule, it is convenient to use separators that, in addition to being infrequent characters to find in the rest of the input (avoiding confusing the model with the prompt), are represented by only 1 token. In this way we reduce the consumption of tokens in the prompt, saving hardware resources, money and allowing us to use that token for something else more important.
“““
→ 1 Token```
→ 2 Tokens---
→ 1 Token###
→ 1 Token< >
→ 2 Tokens<tag></tag>
→ 5 Tokens
2- Pre-process your inputs
Rather than passing user input to the model as part of the prompt, it is recommended to pre-process this input using string methods, regular expressions, or similar tools. The aim is to remove unnecessary spaces, punctuation, HTML tags, and other superfluous elements that might hinder the model's understanding or task completion. This approach not only economizes on tokens, thus reducing costs on models like ChatGPT, which charge per token, but it also aids in identifying prompt injections, privacy concerns, and related issues.
3- Prompt Perfect
You can craft effective prompts from scratch by following specific principles and techniques (like the ones introduced in this post series). However, an even better approach is to utilize a prompt optimizer such as . This tool leverages AI to enhance your custom prompts based on the specific target model you are using (GPT-3, GPT-4, Midjourney, etc).
4- Prompt Templates
Instead of reinventing the wheel, read prompt templates shared by people across the Internet. If none prompt fits your needs, at least you can take ideas. Here are two sites from which you can pull various prompt templates for ChatGPT, Midjourney and the most popular models:
5- OpenAI Playground
OpenAI offers a powerful tool called . This interactive web app lets you experiment with various models available through the official API, enabling you to tweak specific parameters and alter default behaviors. The Playground is an excellent starting point for your experiments and it doesn't require writing a single line of code.
🐦 | 👨💼 | 💻 More stories