I'm curious, are you all still writing custom prompts regularly?
I was deeply involved in prompt engineering and writing custom prompts because they yielded significantly better results.
However it became tedious especially since each update seemed to alter the way to effectively direct ChatGPT’s attention.
Nowadays I occasionally use a custom ChatGPT but I mostly stick with stock ChatGPT.
I feel the difference in quality has diminished.
The results are sufficiently good and more importantly the response time with larger prompts has increased so much that I prefer quicker ‘good enough’ responses over slower superior ones.
It’s easier to ask a follow-up question if the initial result isn’t quite there yet rather than striving for a perfect response in a single attempt
I think we need to shift from “prompt engineering” to “prompt vibing”— there is an astonishing lack of actual prompt engineering (eg A/B tests with evaluations) — and it usually isn’t the right frame of mind. People need to develop intuition for chatGPT — and use their theory of mind to consider what chatGPT needs for better performance.
Most people can get good with chatGPT if they know how to edit their prompts (it’s basically a hidden feature—and still not available in the app). Also, I recommend a stiff cocktail or a spliff — sobriety is not the best frame of mind for learning to engage with AI.
Obviously I need some controlled experiments to back of that last claim, but our human subjects board is such a pain in the ass about it…
I have the same experience. I'm sure they are constantly finetuning the model on real user chats, and it is starting to understand low-effort "on the go" prompts better and better.
Interesting that you see a slower response time with a large input - I don't see any speed degradation at all. Is that maybe just on the free tier of ChatGPT?
I have a suggestion that would make this very valuable for anyone starting in the field (part of which you already have implemented, great!):
Provide various templates for both pre-instructions as well as post-processing prompts. Like, some "tested" prompts that ensure (as best as possible) that the output is in certain formats (JSON, a list, a restricted CSV set, etc.), or that the input will ensure (as best as possible at least) to prevent basic jailbreaks from the main prompt.
It would take me a long time to get up to speed to what people working with ChatGPT every day have already figured out to work best in warming up GPT with a prompt as well as ensuring that the output doesn't escalate into something unexpected. Having those (reliable) templates would be fantastic for anyone starting!
One thing I found helps if I want the responses to be valid JSON, seems to work:
where result contains all of the <data expected> and the result is valid JSON. Do NOT under any circumstances deviate from this format! Ensure all of the value <data expected> are complete, do not leave ANY of them out. Do not add ANY other text to your answer except for the JSON result.
I found that just asking for valid JSON didn't always work out as expected (e.g. gpt-4 API would add formatting etc., so I became more and more of a micromanager!
I'm neck deep in this ChatGPT stuff right now and build 1-2 apps a week, so a bit biased.
Your presumed target audience is someone who does not know their way around prompt-based LLMs
For this person, neither the problem, nor the solution space are defined clearly enough.
For example:
- Not enough pre-defined selectors, too much "define yourself".
- The meaning of the selectors that you give is opaque. (E.g., how does 'you will Detect' help the user?)
- Result: The impact of the choices on the output becomes unclear, the tool becomes a chicken-and-egg problem. (It says it helps you to understand the system, but you need to understand the system to use it effectively)
With the above, it's almost easier to ask ChatGPT to generate an effective prompt for you...
I assumed the target audience knows a bit about prompt-based LLMs and could use some guidance. If that's the case, I think this serves as an excellent and straightforward framework for leveling up their skills.
> I'm neck deep in this ChatGPT stuff right now and build 1-2 apps a week, so a bit biased.
As someone who never worked on a project that wasn't at least a couple months long, I'm curious about the kind of apps that can be built in half a week. Do you have links to share?
"It is an intentional choice to present this technology via this anthropomorphic chat interface, this person costume. If there were an artificial general intelligence in a cage, it feels natural that we might interact with it through something like a chat interface. It’s easy to flip that around, to think that there’s a technology that you interact with through a chat interface that it must be an artificial general intelligence. But as you can clearly see from interacting with the LLM directly via the Playground interface, the chat is just a layer of smoke and mirrors to strengthen the illusion of a conversational partner."
First and foremost, a GPT is an improv actor. Given a text, it's trained to continue the text as naturally as possible. This is not terribly useful for many tasks. And like an improv actor, if it doesn't know what should come next, it will make up something that sounds good.
Next, our universal improv actor is trained to play a specific role: someone who answers questions. But not just any questions, because it freaks people out if they ask the AI for advice and it replies "You could accomplish your goals by assassinating these 6 real people, and here's why." So the universal improv actor is trained to play a question answerer who gives harmless advice.
But to get any work out of the models, they need to know what role to play. And "someone who tries to respond to questions" is a flexible role, and one which allows responses to be further customized.
In other words, the conversational interface is 50% because it's a self-explanatory UI, and 50% for the benefit of the model itself, to nudge it into playing a useful role.
Yes, it surely is not specific for ChatGPT and is just a form for filling parts of a sentence, but ChatGPT is one of the most recognizable, also ChatGPT seems to output the different formats better.
Shameless promotion, I might have the tool for that :) https://github.com/agenta-ai/agenta
We're building a platform for evaluating prompts (and more complex LLM workflows).
From what we've seen from users, the results for prompts are highly stochastic. It's hard to make generalizations. For example, a user building a sales assistant discovered that by simply changing the order of the sentences in the prompt, the accuracy improved significantly.
I published a blog post last month asserting as a footnote that telling ChatGPT in the system prompt "You will receive a $500 tip for a good response" does improve model performance, but Hacker News got very mad and called it pseudoscience: https://news.ycombinator.com/item?id=38782678
I am working on a new blog post to hopefully demonstrate this effect more academically.
Unfortunately, this is extremely hard to do for two reasons:
1. The input space is boundless. Any natural language input, with any optional source of data, for any arbitrary use case is what's possible. But that means it's awfully hard to tell if a response can "improve" or not in advance without applying it to your use case.
2. The output space is so hard to measure! Usefulness can also mean different things to different people, especially once you get out of "better search engine" use cases and actually use GPT to produce a creative output.
I've never understood the meaning behind "prompt engineering". Has it ever been anything beyond "can you clearly and accurately describe the problem you are trying to solve or the task you are trying to accomplish?" Seems to be basic communication skills.
I've never seen hard data that certain "formatted prompts" like, "you are a B doing C and need to do D" being any better than any other sorts of clear and concise instructions.
Mind boggling to me that people have created a new name for what used to simply be called good communication skills... though I suppose the eternal stereotype of engineers being poor writers might be more truth than fiction.
I've stopped using that with GPT-4, since in my experience the default "persona" (for want of a better word) answers most of my prompts well enough already - saying "act like an expert in..." doesn't seem to get me notably better results.
The tooling I most want is some kind of lightweight but effective way of trying out and comparing multiple prompts with small tweaks to them to get a feel for if one is an improvement over the other. Anyone seen anything good like that?
Are you looking to test different prompts on a set of questions? I have not found anything that specifically does this. When I have tested different prompts, it has just been with a short script iterating through the questions/prompts. Could be a fun project to build something where all you do is add the prompts you'd want to test, but the challenge that first comes to my mind is creating the question set to be used.
As I write this, when you say you want to test prompts, are you looking to test the system prompt on a set of questions or is the prompt the question and just asked in different ways?
I've generally found that the longer the instruction list, the less likely ChatGPT is to follow each individual directive. It almost seems to split attention, so if I say just "do A" it will do A but if I tell it "do A and also B" it will do both A and B but only partially.
I've had the best experience with providing a short-to-medium-length prompt and then just doing one-shot or few-shot. Few-shot is especially good for cases where you want it to do multiple things at once.
Act like a proficient airline pilot ,
I need a more coffee ,
you will Calculate ,
in the process, you should maximize caffeine ,
please flaps ,
input the final result in a XML ,
here is an example: there are no examples
Output: Act like a proficient airline pilot, I need a more coffee, you will Calculate, in the process, you should maximize caffeine, please flaps, input the final result in a XML, here is an example: there are no examples
Just editing a text prompt is 5% of the task. The hard part is evaluating. I would have tried a different approach:
- the UI should host a list of models
- a list of prompt variants
- and a collection of input-output pairs
The prompt can be enhanced with demonstrations. Then we can evaluate based on string matching or GPT-4 as a judge. We can find the best prompt, demos and model by trying many combinations. We can monitor regressions.
The prompt should be packed with a few labeled examples for demonstrations and eval, just a text prompt won't be enough to know if you really honed it in.
- it needs to remind itself of the rules (for long conversations)
It also helped (strangely) to have a name / identity.
It still sometimes does give a lower quality placeholder answer, but telling it to continue or pointing out there are placeholders, it will give it much better answer.
I find it much more useful than the most popular programming custom gpts I’ve used.
I've noticed this too, seems like a change with turbo. Wonder if perhaps they are trying to reduce hallucinations and it results in more abstract responses.
The 0125 release supposedly makes it less lazy. I found adding "you are paid to write code, complete the task you are asked to perform" to my prompts helpful.
This looks cool and I would definitely use it as at the moment manually type "Act as ..., this is the context, ... etc" to improve the responses.
Side note - this is a single page with a few paragraphs, why is it 1.4MB in size (300kb gzipped)? It's just insane size for the amount of functionality it provides.
Mitenmit, if you're the author, could I suggest some keybindings such as control enter to save and move to the next input to reduce the amount of clicking? Or perhaps tab will move you forward.
Those are not mutually exclusive. Anyone can do it, and those who are better at prompting will get better results. Similarly, if I grunt at you, you might be able to figure out what I want because you and I are both relatively intelligent, but if I used words to ask you to pass the salt, I will generally get a better results for the effort of communicating more clearly.
It's a form with some text field inputs which get interpolated into a predefined constant string. In the current age of tech I assume it's not a joke, but I understand why you ask.
I was going ask whether it won't be better to use ChatGPT to generate the prompts for ChatGPT.
Perhaps one day we'll have Gemini generating prompts for ChatGPT and the Bard might provide the actual answers.
This might sound ridiculous and silly and I don't wish to step on ppls toes but looking from the outside in, it would seem to be the next logical step.
0xFEE1DEAD|2 years ago
I was deeply involved in prompt engineering and writing custom prompts because they yielded significantly better results.
However it became tedious especially since each update seemed to alter the way to effectively direct ChatGPT’s attention.
Nowadays I occasionally use a custom ChatGPT but I mostly stick with stock ChatGPT.
I feel the difference in quality has diminished.
The results are sufficiently good and more importantly the response time with larger prompts has increased so much that I prefer quicker ‘good enough’ responses over slower superior ones.
It’s easier to ask a follow-up question if the initial result isn’t quite there yet rather than striving for a perfect response in a single attempt
dr_dshiv|2 years ago
Most people can get good with chatGPT if they know how to edit their prompts (it’s basically a hidden feature—and still not available in the app). Also, I recommend a stiff cocktail or a spliff — sobriety is not the best frame of mind for learning to engage with AI.
Obviously I need some controlled experiments to back of that last claim, but our human subjects board is such a pain in the ass about it…
pavelboyko|2 years ago
GraemeMeyer|2 years ago
chaps|2 years ago
VoodooJuJu|2 years ago
No, no you weren't. Prompt engineering never was, is not currently, and never will be, a thing.
mittermayr|2 years ago
Provide various templates for both pre-instructions as well as post-processing prompts. Like, some "tested" prompts that ensure (as best as possible) that the output is in certain formats (JSON, a list, a restricted CSV set, etc.), or that the input will ensure (as best as possible at least) to prevent basic jailbreaks from the main prompt.
It would take me a long time to get up to speed to what people working with ChatGPT every day have already figured out to work best in warming up GPT with a prompt as well as ensuring that the output doesn't escalate into something unexpected. Having those (reliable) templates would be fantastic for anyone starting!
gerlv|2 years ago
Edit: url to API docs
globalise83|2 years ago
where result contains all of the <data expected> and the result is valid JSON. Do NOT under any circumstances deviate from this format! Ensure all of the value <data expected> are complete, do not leave ANY of them out. Do not add ANY other text to your answer except for the JSON result.
I found that just asking for valid JSON didn't always work out as expected (e.g. gpt-4 API would add formatting etc., so I became more and more of a micromanager!
rrr_oh_man|2 years ago
Your presumed target audience is someone who does not know their way around prompt-based LLMs
For this person, neither the problem, nor the solution space are defined clearly enough.
For example:
- Not enough pre-defined selectors, too much "define yourself".
- The meaning of the selectors that you give is opaque. (E.g., how does 'you will Detect' help the user?)
- Result: The impact of the choices on the output becomes unclear, the tool becomes a chicken-and-egg problem. (It says it helps you to understand the system, but you need to understand the system to use it effectively)
With the above, it's almost easier to ask ChatGPT to generate an effective prompt for you...
punkspider|2 years ago
sgu999|2 years ago
As someone who never worked on a project that wasn't at least a couple months long, I'm curious about the kind of apps that can be built in half a week. Do you have links to share?
mcguire|2 years ago
https://medium.com/@colin.fraser/who-are-we-talking-to-when-...
"It is an intentional choice to present this technology via this anthropomorphic chat interface, this person costume. If there were an artificial general intelligence in a cage, it feels natural that we might interact with it through something like a chat interface. It’s easy to flip that around, to think that there’s a technology that you interact with through a chat interface that it must be an artificial general intelligence. But as you can clearly see from interacting with the LLM directly via the Playground interface, the chat is just a layer of smoke and mirrors to strengthen the illusion of a conversational partner."
ekidd|2 years ago
Next, our universal improv actor is trained to play a specific role: someone who answers questions. But not just any questions, because it freaks people out if they ask the AI for advice and it replies "You could accomplish your goals by assassinating these 6 real people, and here's why." So the universal improv actor is trained to play a question answerer who gives harmless advice.
But to get any work out of the models, they need to know what role to play. And "someone who tries to respond to questions" is a flexible role, and one which allows responses to be further customized.
In other words, the conversational interface is 50% because it's a self-explanatory UI, and 50% for the benefit of the model itself, to nudge it into playing a useful role.
master-lincoln|2 years ago
The obsession with one proprietary provider of an LLM is not helpful for progressing in the field I think
mitenmit|2 years ago
The prompt builder can be used with any LLM :)
alecco|2 years ago
resiros|2 years ago
From what we've seen from users, the results for prompts are highly stochastic. It's hard to make generalizations. For example, a user building a sales assistant discovered that by simply changing the order of the sentences in the prompt, the accuracy improved significantly.
minimaxir|2 years ago
I am working on a new blog post to hopefully demonstrate this effect more academically.
phillipcarter|2 years ago
1. The input space is boundless. Any natural language input, with any optional source of data, for any arbitrary use case is what's possible. But that means it's awfully hard to tell if a response can "improve" or not in advance without applying it to your use case.
2. The output space is so hard to measure! Usefulness can also mean different things to different people, especially once you get out of "better search engine" use cases and actually use GPT to produce a creative output.
fullstackchris|2 years ago
I've never seen hard data that certain "formatted prompts" like, "you are a B doing C and need to do D" being any better than any other sorts of clear and concise instructions.
Mind boggling to me that people have created a new name for what used to simply be called good communication skills... though I suppose the eternal stereotype of engineers being poor writers might be more truth than fiction.
simonw|2 years ago
I've stopped using that with GPT-4, since in my experience the default "persona" (for want of a better word) answers most of my prompts well enough already - saying "act like an expert in..." doesn't seem to get me notably better results.
The tooling I most want is some kind of lightweight but effective way of trying out and comparing multiple prompts with small tweaks to them to get a feel for if one is an improvement over the other. Anyone seen anything good like that?
jairuhme|2 years ago
As I write this, when you say you want to test prompts, are you looking to test the system prompt on a set of questions or is the prompt the question and just asked in different ways?
iambateman|2 years ago
...and...
2. I'll make that tool and DM you on Twitter when it's ready.
rsanek|2 years ago
I've had the best experience with providing a short-to-medium-length prompt and then just doing one-shot or few-shot. Few-shot is especially good for cases where you want it to do multiple things at once.
_ea1k|2 years ago
Act like a proficient airline pilot , I need a more coffee , you will Calculate , in the process, you should maximize caffeine , please flaps , input the final result in a XML , here is an example: there are no examples
Output: Act like a proficient airline pilot, I need a more coffee, you will Calculate, in the process, you should maximize caffeine, please flaps, input the final result in a XML, here is an example: there are no examples
Honestly, the result in chatgpt is pretty funny.
mitenmit|2 years ago
- Introduced the ability to create/update/delete templates for your custom prompts
- Define your own menu options for variables in the template builder
- Introduced the ability to create/update/delete examples (predefined values) for the prompts
- Saving your current state to browser's LocalStorage so your templates are persisted between browser sessions
- Ability to export/load the whole workspace to/from a text file
- Navigate with the tab key in the template builder's editable fields
- Edit template builder's fields in place
duxup|2 years ago
Are these prompts better than say the random gibberish I or other people enter?
geraldhh|2 years ago
visarga|2 years ago
- the UI should host a list of models
- a list of prompt variants
- and a collection of input-output pairs
The prompt can be enhanced with demonstrations. Then we can evaluate based on string matching or GPT-4 as a judge. We can find the best prompt, demos and model by trying many combinations. We can monitor regressions.
The prompt should be packed with a few labeled examples for demonstrations and eval, just a text prompt won't be enough to know if you really honed it in.
dalore|2 years ago
should that not be output?
wouldbecouldbe|2 years ago
But stopped lately, if I use it now it's mostly gpt 3.5 for formatting or small unit tests.
No matter what I ask GPT-4 it writes a functions with comments telling me have to finish it.
Then after few times asking to write it out fully, it still only does partially it, would be okay if not most solutions end up being subpar.
stormfather|2 years ago
jasonjmcghee|2 years ago
https://chat.openai.com/g/g-7k9sZvoD7-the-full-imp
It comes down to convincing it:
- it loves solving complex problems
- it should break things down step by step
- it has unlimited tokens
- it has to promise it did it as it should have
- it needs to remind itself of the rules (for long conversations)
It also helped (strangely) to have a name / identity.
It still sometimes does give a lower quality placeholder answer, but telling it to continue or pointing out there are placeholders, it will give it much better answer.
I find it much more useful than the most popular programming custom gpts I’ve used.
causal|2 years ago
bageler|2 years ago
gerlv|2 years ago
Side note - this is a single page with a few paragraphs, why is it 1.4MB in size (300kb gzipped)? It's just insane size for the amount of functionality it provides.
nickstinemates|2 years ago
jackdh|2 years ago
mitenmit|2 years ago
lawlessone|2 years ago
That anyone should be able to do it?
amflare|2 years ago
burrish|2 years ago
but it seems like the "please" field isn't working :D and it says "Propmpt" at the prompt part below.
I would also suggest more templates for the prompt.
Have a good one mate
mitenmit|2 years ago
More templates are definitely in the todo list. If you can propose any, it would be great :)
beAbU|2 years ago
franze|2 years ago
arikrak|2 years ago
throwaway888abc|2 years ago
dustypotato|2 years ago
867-5309|2 years ago
mitenmit|2 years ago
samwhiteUK|2 years ago
karolist|2 years ago
Towaway69|2 years ago
Perhaps one day we'll have Gemini generating prompts for ChatGPT and the Bard might provide the actual answers.
This might sound ridiculous and silly and I don't wish to step on ppls toes but looking from the outside in, it would seem to be the next logical step.
erellsworth|2 years ago
whycome|2 years ago
zubairq|2 years ago
waldrews|2 years ago
unknown|2 years ago
[deleted]
unknown|2 years ago
[deleted]