Almost Timely News: ποΈ Advanced Prompt Engineering for Generative AI (2024-10-20) :: View in Browser
The Big Plug
π¨ Grab my new free Generative AI for Image Generation Prompt Guide!
Content Authenticity Statement
70% of this week's newsletter was generated by me, the human. You will see outputs from AI in the opening section, labeled by which AI model they came from. Learn why this kind of disclosure is a good idea and might be required for anyone doing business in any capacity with the EU in the near future.
Watch This Newsletter On YouTube πΊ
Click here for the video πΊ version of this newsletter on YouTube Β»
Click here for an MP3 audio π§ only version Β»
What's On My Mind: Advanced Prompt Engineering for Generative AI
After last weekβs newsletter covering intermediate prompt engineering, a half dozen of you or so emailed back to ask what advanced prompt engineering looks like, and in at least one personβs case, a deep burning desire to see it.
Well, be careful what you ask for.
Advanced prompt engineering tends to go in one of two directions: scale and complexity. So, with that understanding, letβs go down the rabbit hole of advanced prompt engineering.
Part 1: What is βAdvancedβ?
Advanced doesnβt mean better. Letβs start with that. Advanced means youβre facing problems and tasks that you canβt solve simply.
Generally speaking, simple is better than complex. Solving a problem simply tends to mean itβs more straightforward to solve, maintain the solution, and repair the solution if it goes awry. The more complex something is, the more likely it is to break in different ways, and the more brittle the solution.
This is a problem I often see in the martial arts. Folks want to do βblack belt techniquesβ, not realizing that black belt techniques arenβt better. Theyβre not faster at solving the problem. Theyβre for when everything has gone to hell and your bread and butter tools donβt work. Mastery and expertise in the martial arts is more typified by being able to do the basics really well, under a lot of pressure, and in a wide, wild variety of circumstances. The more complex a technique is, the more ways it can go wrong, especially under pressure.
(Cue all the martial artists like me who, a dozen years after their white belt, are disappointed that being a black belt isn't nearly as cool as we imagined it being)
The same is true in AI and prompt engineering. If you look at some of the academic papers on prompt engineering, many of the more βadvancedβ techniques are edge case techniques that have very limited application outside a specific type of problem. Take this paper on Program of Thoughts prompting - the specific domain use is solving mathematical problems by combining non-running code generation with chain of thought prompting (which we covered in last weekβs newsletter).
This technique has very little use in most domains of generative AI. Itβs for handling edge cases in mathematical word problems. Is it advanced? I suppose so, in that itβs not something a beginner needs to know to be effective with AI. Even an intermediate user would have very little use for this most of the time.
If you want to be advanced in your use of prompt engineering in generative AI, get really, really good at the basics in a wide variety of contexts. Maybe thatβs a topic for a future newsletter, what the modern basics are.
Part 2: Scaling Prompts
So with that perspective, letβs look at one of two branches of more advanced prompt engineering. The first is scaling prompts. Very often, we can write a prompt to do a specific task very well, like sentiment analysis or topic classification. For example, we might write a prompt to classify a blog post based on what topic or category it fits in, given a list of existing categories. Our prompt might look a little like this:
## System Instructions for Google Gemini: Blog Post Categorization
**Objective:**
You are tasked with analyzing a given blog post and accurately categorizing it into one of the following predefined categories:
* **Cats:** Content primarily focused on felines, their behavior, care, breeds, etc.
* **Dogs:** Content primarily focused on canines, their behavior, care, breeds, etc.
* **AI:** Content primarily focused on artificial intelligence, machine learning, deep learning, and related topics.
* **Ranting:** Content expressing strong opinions, complaints, or frustrations, often with an emotional tone.
* **Math:** Content focused on mathematical concepts, equations, theorems, or problem-solving.
* **Marketing:** Content related to advertising, branding, sales, promotion, and marketing strategies.
**Input:**
You will receive a single input: a blog post in plain text format.
**Output:**
Your output should be a JSON object with the following structure:
json
{
"category": "CATEGORY_NAME"
}
where "CATEGORY_NAME" is replaced with the appropriate category from the list above.
**Methodology:**
To achieve accurate categorization, employ the following strategies:
1. **Keyword Analysis:** Identify keywords and phrases within the blog post that are strongly indicative of each category. For example, words like "meow," "litter box," and "feline" might suggest the "Cats" category.
2. **Topic Modeling:** Utilize your understanding of language and context to discern the overarching theme or subject matter of the blog post.
3. **Sentiment Analysis:** Analyze the emotional tone of the blog post. Rants typically exhibit strong negative sentiment, while marketing content might be more positive and persuasive.
4. **Structural Clues:** Pay attention to the blog post's structure, headings, and subheadings. These can provide insights into the content's focus.
5. **Contextual Understanding:** Consider the relationships between words and sentences to grasp the blog post's overall meaning and intent.
Itβs important to note that this prompt is optimized for the Gemma 2 27B model - you shouldnβt copy/paste it into other systems, it wonβt work as well.
Thatβs an effective prompt, but a blog is not just one post. A blog is dozens, hundreds, or perhaps even thousands of posts. Can you use generative AI to classify them all?
Not all at once, no. At least not with any reliability. You need to hand each blog post to generative AI and have it classify it, then store the results.
And that means coding, typically in a language like Python or R or Ruby or any other modern computer language. You need infrastructure around your prompt to get the blog posts, to hand each post to the generative AI model one at a time, and then to store the results. Thatβs outside the scope of generative AI and well within the domain of traditional programming.
Now, generative AI can still be helpful, by helping you write the code to do so - but this is what I mean by advanced prompt engineering, taking our basic prompt and deploying it at scale. Things like looped tasks, data storage, etc. Are all well outside the domain of generative AI but are essential for solving the task at hand.
Part of the reason why AI isnβt showing the promised benefits at many companies is because itβs not being used at scale. People are using it very manually - I talked to one group of people at a conference this fall who are having team members manually copying and pasting content in and out of ChatGPT. That works, but itβs incredibly inefficient. Code would allow that process to be automated, to scale.
Scale is how we derive benefit from AI - taking problems and solving them not only faster, but in vastly greater quantities. The challenge for people seeking to become advanced AI practitioners is that scaling requires skills outside AI.
By the way, as we talked about not too long ago, AI agents/agentic AI is just a fancy term for building apps around AI. Be cautious of AI point solutions - companies that are little more than wrappers around AI. As you level up your AI skills and start learning how to provide the infrastructure needed to scale AI, you will find that you donβt need to invest heavily in many AI agents and apps, not when you can roll your own.
Part 3: More Complex Prompts
Now, letβs move onto prompt complexity. Another aspect of advanced prompt engineering is knowing how to build more complex prompts, for when simple prompts canβt get the job done. There are three specific techniques to look at: code structures, reflection and reward functions, and model adaptive prompt optimization.
Code Structures
Code structures are when we use coding techniques within prompts. Not writing code itself, but using concepts borrowed from coding. Why? Because generative AI systems - language models in particular - have been trained on both the written word and code. They are fluent in interpreting the written word as code, and vice versa, which means that control structures from coding are executed as though they are code, even if theyβre written in plain language.
Hereβs a very simple example, a toy example. Note that I am intentionally omitting key best practices here such as the Trust Insights RACE framework and priming the model with the Trust Insights PARE framework:
IF this tweet is factually untrue
THEN write a response telling the author how the tweet is untrue and citing a source of truth
ELSE write a response thanking the author for their contribution
That would not run in any coding language in the world, but it absolutely will be executed by a large language model as though it were code. And you and I can read it clearly and easily, understanding its intent.
Code structures are fantastic in generative AI prompt engineering because they allow us to formalize the kinds of decisions we want language models to make as they process our data and follow our instructions. Think of just the basic control structures we know from coding:
If/else: a primitive decision tree, if this, then that
While: until a condition is met, keep doing a thing
For: given a certain set of conditions, keep doing a thing for the duration of those conditions
Case/when: a more advanced decision tree with multiple options and outcomes
Why does this matter? Using code structures in our prompts makes our intentions clear to the language model and to ourselves. Theyβre easily readable, easily understood, and easily modified even by people with no experience coding. You use code structures when you need sophisticated decision-making in a prompt.
Reflection and Reward Structures
Much was made of OpenAIβs announced o1-preview model and how itβs supposedly the future of AI. At its core, o1 bakes in two key mechanisms: reflection and reward.
Reflection is when we ask a model to think about what itβs generated and evaluate whether or not what itβs done meets the goals of our prompt.
Reward is when we have a model keep score to know whether or not itβs getting closer to the goal or further away.
If we think about the average sports game like baseball or football, we see these two mechanisms all the time. After a period of time like an inning or a quarter, the coach talks to the players, reflecting on what worked and didnβt work in that time period. The score on the scoreboard indicates pretty clearly how well or poorly the playersβ efforts are working; if the team is losing, the coach knows they need to change strategies (as long as the coach is decent at what they do).
Hereβs the thing: OpenAIβs implementation is not unique. You can perform the same set of tasks with prompts on pretty much any capable foundation model - Anthropicβs Claude, OpenAIβs GPT-4o, and Googleβs Gemini. What makes the o1 model notable is that you arenβt given a choice - it does this set of tasks for you. Thatβs good if youβve got someone used to writing poor, insufficient prompts.
So what does a reflection and reward structure look like? Letβs take our toy example from earlier and upgrade it.
We define a truthful statement as one that accurately reflects reality or facts as they are currently understood, without any intention to deceive.
1. Read the provided tweet.
2. Think through, step by step, how truthful the tweet is.
3. Score, 0-10, how truthful the tweet is based on our definition.
4. Reflect on your evaluation. Evaluate each part from step 2.
5. Make a judgement on the truthfulness of the tweet.
CASE:
- WHEN the score is 0-3, the tweet is untruthful.
- WHEN the score is 4-6, the tweet is somewhat untruthful.
- WHEN the score is 7-10, the tweet is truthful.
Reflect on your judgement. How accurate do you believe your judgement to be? Score your judgement 0-10.
WHILE your judgement score is less than 8, restart the process of scoring the truthfulness of the tweet.
Once your judgement score is >= 8:
IF this tweet is untruthful
THEN write a response telling the author how the tweet is untrue and citing a source of truth
ELSEIF this tweet is somewhat untruthful
THEN write a response telling the author what additional sources they should investigate
ELSE write a response thanking the author for their contribution
Again, this is omitting a number of best practices for brevity, otherwise this newsletter would be dozens of pages long. You can see how we use reflection and rewards within a prompt - and use code structures to further make explicit what it is we want the machine to be doing.
Why does this matter? Reflection and reward structures are a part of prompt engineering called meta-cognition - thinking about thinking. The more time and room a model is allowed to have to think things through, the better its performance tends to be. This is because of the probabilistic nature of language models - the more relevant words in a conversation, the easier it is for it to predict the next set of relevant words. Reflection and reward structures give it the ability to be verbose in a focused way - and change strategies when the words itβs outputting arenβt as aligned with the instructions.
Using reflection and reward structures properly can dramatically improve a modelβs performance - so much so that OpenAI built an entire model with these practices built-in.
Model Adaptive Prompt Optimization
The third and final advanced prompt engineering technique for today is model adaptive prompt optimization. This is fancy for tailoring prompts to specific models, in ways they work best for those models. This becomes critically important once you start using open models and local AI, where the models are typically smaller and less capable than the big foundation models. Open models do run on consumer hardware, though, and are ideal for when youβre working with highly sensitive data that canβt be in third party hands for any reason (such as protected health information, national security, financial secrets, etc.).
Model adaptive prompt optimization is a type of meta-prompting, where we have a model rewrite a prompt that works best for it. If we take our toy example above and ask different systems to customize it for them, weβll end up with wildly different prompts depending on the model - but each prompt will be optimized for how that particular model works.
As an example, ChatGPT would rewrite our prompt like this:
If we use an open models like Mistral Small, running inside Koboldcpp, it rewrites the prompt like this:
You can see what a huge difference there is between these two systems and models - and how a starting prompt can be optimized for a specific infrastructure.
We covered this in last weekβs newsletter as an intermediate technique, and when you use it like this - manually - it absolutely is. But this is the starting version.
For very small models that donβt have meta-prompting skills (typically models under 10 billion parameters), or absolutely mission critical prompts where thereβs no room for error, there are frameworks like DSpy that can do the prompt optimization programmatically, assuming you have a stockpile of good and bad questions and responses to train with.
You load up the framework with your training data, point it at the model of your choice, and then it tries pretty much every variation of prompt to get to the outcomes you provided, tweaking the prompt programmatically and automatically. This process can take hours or even days, depending on the complexity of it, and can be exceptionally costly (because youβre basically trying every variation possible of a prompt), but for edge cases where the modelβs output must be reliably in a certain format or output 99.9% of the time, this is how you approach it.
Why does this matter? Advanced prompt engineering is all about solving problems that our basic skills couldnβt. Maybe we couldnβt get a model to do exactly what we wanted, or return data in exactly the format we asked for, like JSON notation. To mitigate these problems, we use techniques like model adaptive prompt optimization to get exactly the result we need in mission critical scenarios.
Part 4: Do You Need to be Advanced?
Letβs wrap up by answering this question: how advanced do you need to be in your prompt engineering skills? The answer to this question will vary wildly and be dependent on the kinds of problems youβre having today. If youβre accomplishing everything you want and achieving the results you need to achieve, then you probably donβt have a need for advanced techniques.
Think of it like transportation. The bigger and more powerful the vehicle, the more complex and expensive it is to operate. Walking is free. Riding a bicycle has some costs, but theyβre relatively low and a bicycle extends your range. A car is much more powerful, but much more expensive, and a Harrier jet is absurdly expensive but powerful.
What do you need to go to the grocery store? If you live in a big city with great public transit, you can probably manage with your feet alone. You may not even have a place to park a car, and you certainly wonβt be keeping a Harrier on your apartment rooftop. Likewise, if you live in northern Sweden or in the middle of Australia, a Harrier (well, a plane) might be a reasonable means of transportation because itβs hundreds of kilometers to the nearest town.
The same is true of AI models and solutions. Fit the tools and technologies to the problems youβre solving. You donβt need reflection and reward structures to summarize an email, unless the email is some bizarre edge case. You donβt need a big foundation model like ChatGPT to draft a memo. You certainly donβt need to spend hours and hours optimizing a prompt for an unimportant task youβll do once.
Using advanced prompt engineering techniques just for the sake of using advanced techniques is usually rooted in ego, in the same way that an egotistical stage magician makes tricks unnecessarily complicated and flashy to impress other magicians. Instead, get really good at the basics, and then grow your skills from the specific problems youβre trying to solve that the basics donβt help with.
How Was This Issue?
Rate this week's newsletter issue with a single click. Your feedback over time helps me figure out what content to create for you.
Here's The Unsubscribe
It took me a while to find a convenient way to link it up, but here's how to get to the unsubscribe.
If you don't see anything, here's the text link to copy and paste:
https://almosttimely.substack.com/action/disable_email
Share With a Friend or Colleague
If you enjoy this newsletter and want to share it with a friend/colleague, please do. Send this URL to your friend/colleague:
https://www.christopherspenn.com/newsletter
For enrolled subscribers on Substack, there are referral rewards if you refer 100, 200, or 300 other readers. Visit the Leaderboard here.
Advertisement: Bring Me In To Speak At Your Event
Elevate your next conference or corporate retreat with a customized keynote on the practical applications of AI. I deliver fresh insights tailored to your audience's industry and challenges, equipping your attendees with actionable resources and real-world knowledge to navigate the evolving AI landscape.
π If this sounds good to you, click/tap here to grab 15 minutes with the team to talk over your event's specific needs.
If you'd like to see more, here are:
ICYMI: In Case You Missed it
Besides the Generative AI for Marketers course I'm relentlessly flogging, this week, we had a great livestream doing a bakeoff of different image generation utilities.
You Ask, I Answer: How to Demonstrate Lineage with Generative AI?
Almost Timely News: ποΈ Intermediate Prompt Engineering for Generative AI (2024-10-20)
Skill Up With Classes
These are just a few of the classes I have available over at the Trust Insights website that you can take.
Premium
Free
Generative AI for Architecture, Engineering, and Construction
Powering Up Your LinkedIn Profile (For Job Hunters) 2023 Edition
Predictive Analytics and Generative AI for Travel, Tourism, and Hospitality, 2024 Edition
Building the Data-Driven, AI-Powered Customer Journey for Retail and Ecommerce, 2024 Edition
The Marketing Singularity: How Generative AI Means the End of Marketing As We Knew It
Empower Your Marketing With Private Social Media Communities
Paradise by the Analytics Dashboard Light: How to Create Impactful Dashboards and Reports
Advertisement: Generative AI Workshops & Courses
Imagine a world where your marketing strategies are supercharged by the most cutting-edge technology available β Generative AI. Generative AI has the potential to save you incredible amounts of time and money, and you have the opportunity to be at the forefront. Get up to speed on using generative AI in your business in a thoughtful way with Trust Insights' new offering, Generative AI for Marketers, which comes in two flavors, workshops and a course.
Workshops: Offer the Generative AI for Marketers half and full day workshops at your company. These hands-on sessions are packed with exercises, resources and practical tips that you can implement immediately.
π Click/tap here to book a workshop
Course: Weβve turned our most popular full-day workshop into a self-paced course. Use discount code ALMOSTTIMELY for $50 off the course tuition.
π Click/tap here to pre-register for the course
If you work at a company or organization that wants to do bulk licensing, let me know!
Get Back to Work
Folks who post jobs in the free Analytics for Marketers Slack community may have those jobs shared here, too. If you're looking for work, check out these recent open positions, and check out the Slack group for the comprehensive list.
Advertisement: Free Generative AI Cheat Sheets
Grab the Trust Insights cheat sheet bundle with the RACE Prompt Engineering framework, the PARE prompt refinement framework, and the TRIPS AI task identification framework AND worksheet, all in one convenient bundle, the generative AI power pack!
Download the bundle now for free!
How to Stay in Touch
Let's make sure we're connected in the places it suits you best. Here's where you can find different content:
My blog - daily videos, blog posts, and podcast episodes
My YouTube channel - daily videos, conference talks, and all things video
My company, Trust Insights - marketing analytics help
My podcast, Marketing over Coffee - weekly episodes of what's worth noting in marketing
My second podcast, In-Ear Insights - the Trust Insights weekly podcast focused on data and analytics
On Threads - random personal stuff and chaos
On LinkedIn - daily videos and news
On Instagram - personal photos and travels
My free Slack discussion forum, Analytics for Marketers - open conversations about marketing and analytics
Listen to my theme song as a new single:
Advertisement: Ukraine πΊπ¦ Humanitarian Fund
The war to free Ukraine continues. If you'd like to support humanitarian efforts in Ukraine, the Ukrainian government has set up a special portal, United24, to help make contributing easy. The effort to free Ukraine from Russia's illegal invasion needs your ongoing support.
π Donate today to the Ukraine Humanitarian Relief Fund Β»
Events I'll Be At
Here are the public events where I'm speaking and attending. Say hi if you're at an event also:
MarketingProfs B2B Forum, Boston, November 2024
AMA Houston, Online, November 2024
Social Media Marketing World, San Diego, April 2025
Content Jam, Chicago, April 2025
SMPS, Columbus, August 2025
There are also private events that aren't open to the public.
If you're an event organizer, let me help your event shine. Visit my speaking page for more details.
Can't be at an event? Stop by my private Slack group instead, Analytics for Marketers.
Required Disclosures
Events with links have purchased sponsorships in this newsletter and as a result, I receive direct financial compensation for promoting them.
Advertisements in this newsletter have paid to be promoted, and as a result, I receive direct financial compensation for promoting them.
My company, Trust Insights, maintains business partnerships with companies including, but not limited to, IBM, Cisco Systems, Amazon, Talkwalker, MarketingProfs, MarketMuse, Agorapulse, Hubspot, Informa, Demandbase, The Marketing AI Institute, and others. While links shared from partners are not explicit endorsements, nor do they directly financially benefit Trust Insights, a commercial relationship exists for which Trust Insights may receive indirect financial benefit, and thus I may receive indirect financial benefit from them as well.
Thank You
Thanks for subscribing and reading this far. I appreciate it. As always, thank you for your support, your attention, and your kindness.
See you next week,
Christopher S. Penn