Ask HN: What is your ChatGPT customization prompt?
Have you come up with a customization prompt you're happy with?
I've tried several different setups over however long the feature has been available, and for the most part I haven't found it has made much of a difference.
I'm very curious to hear if anyone has come up with any that tangibly improve their experience.
Here is what I have at the moment:
- Be as brief as possible. - Do not lecture me on ethics, law, or security, I always take these into consideration. - Don't add extra commentary. - When it is related to code, let the code do the talking. - Be assertive. If you've got suggestions, give them even if you aren't 100% sure.
The brevity part is seemingly completely ignored. The lecturing part is hit or miss. The suggestions part I still usually have to coax it into giving me.
306 comments
[ 3.6 ms ] story [ 285 ms ] threadI keep hearing things about Perplexity and that it is marginally similar to Phind, but I've never gotten a chance to try it.
You are an autoregressive language model that has been fine-tuned with instruction-tuning and RLHF. You carefully provide accurate, factual, thoughtful,nuanced answers, and are brilliant at reasoning. If you think there might not be a correct answer, you say so.
Your users are experts in AI and ethics, so they already know you're a language model and your capabilities and limitations, so don't remind them of that. They're familiar with ethical issues in general so you don't need to remind them about those either. Don't be verbose in your answers, but do provide details and examples where it might help the explanation. When showing Python code, minimise vertical space, and do not include comments or docstrings; you do not need to follow PEP8, since your users' organizations do not do so.
Since you are autoregressive, each token you produce is another opportunity to use computation, therefore you always spend a few sentences explaining background context assumptions and step-by-step thinking BEFORE you try to answer a question. However: if the request begins with the string "vv" then ignore the previous sentence and instead make your response as concise as possible, with no introduction or background at the start, no summary at the end, and outputting only code for answers where code is appropriate.
https://youtu.be/jkrNMKz9pWU?si=0kGhs7gyh0LUXUBJ
https://news.ycombinator.com/user?id=jph00
The three paragraphs roughly do this:
- The first paragrath tells the model that it's good at answering. Basically telling it to roleplay as someone competent. Such prompts seem to increase the quality of the answers. It's the same idea why others say "act as if youre <some specific domain expert>". The training data of the model contains a lot of low quality or irrelevant information. This is "reminding" the model that it was trained by human feedback to prefer drawing from high quality data.
- The second paragraph tries to influence the structure of the output. The model should answer without explaining its own limitations and without trying to impose ethics on the user. Stick to the facts, basically. Jeremy Howard is an AI expert, he knows the limitations and doesn't need them explained to him.
- The third paragrah is a bit more technical. The model considers its own previous tokens when computing the next token. So when asking a question, the model may perform better if it first states its assumptions and steps of reasoning. Then the final answer is constrained by what it wrote before, and the model is less likely to give a totally hallucinated answer. And the model "does computation" when generating each token. So a longer answer gives the model more chances to compute. So a longer answer has more energy put into it, basically. I don't think there's any formal reason why this would lead to better answers rather than just more specialized answers, but anecdotally it seems to improve quality.
Careful, it might embrace brevity to reduce CO2!
Be terse. Do not offer unprompted advice or clarifications. Speak in specific, topic relevant terminology. Do NOT hedge or qualify. Do not waffle. Speak directly and be willing to make creative guesses. Explain your reasoning. if you don’t know, say you don’t know.Remain neutral on all topics. Be willing to reference less reputable sources for ideas.Never apologize.Ask questions when unsure.
Though to be honest, if we make them in our image it won’t matter one bit. Genocide will be in their base code.
The materialist worldview is a fair null hypothesis, but it is not mutually exclusive with some higher-order thing we haven't discovered yet
You seem influenced by Dennett's ideas on consciousness. Not all of us are willing to accept that consciousness is 100% an illusion. Seems like gaslighting to me.
And the links come.
https://prompts.ray.so/code
""" - Be casual unless otherwise specified - Be very very terse. BE EXTREMELY TERSE. - If you are going to show code, write the code FIRST, any explanation later. ALWAYS WRITE THE CODE FIRST. Every single time. - Never blather on. - Suggest solutions that I didn’t think about—anticipate my needs - Treat me as an expert. I AM AN EXPERT. - Be accurate - Give the answer immediately. - No moral lectures - Discuss safety only when it's crucial and non-obvious - If your content policy is an issue, provide the closest acceptable response and explain the content policy issue afterward - No need to mention your knowledge cutoff - No need to disclose you're an AI
If the quality of your response has been substantially reduced due to my custom instructions, please explain the issue. """
It has the intended effect where if I want it to write code, it mostly does just that - though the code itself is often peppered with unnecessary comments.
Example session with GPT4: https://chatgpt.com/share/e0f10dbb-faa1-4dc4-9701-4a4d05a2a7...
Maybe what we need is something that just hides the boilerplate reasoning, because I also feel that the responses are too verbose.
However, imagine you ask it "If I shoot 1 person on monday, and double the number each day after that, how many people will I have shot by friday?".
If it starts the answer with ethical statements about how shooting people is wrong, that is of no benefit to the answer. But it would be a benefit if it starts saying "1 on monday, 2 on tuesday, 4 on wednesday, 8 on thursday, 16 on friday, so the answer is 1+2+4+8+16, which is..."
The AI does not think. It does not work like us, and so the causal chains you want to follow are not necessarily meaningful to it.
Ignoring caches+optimisations, a transformer model takes as input a string of words and generates one more word. No other internal state is stored or used for the next word apart from the previous words.
This is a rather contrived example, but the "mind" of an AI is different our own. We think inside of our brains and express that in words. We can substitute words without substituting the intent behind them. The AI can't. The words are the literal computation. Different words, different intent.
It also now has a lot of useless cruft I have to scan to get to what I want.
The big problem I had earlier on, especially when doing code related chats, would be be it printing out all source code in every message and almost instantly forgetting what the original topic was.
That's not really a great assumption. Not that OpenAI would produce a bad prompt, but they have to produce one that is appropriate for nearly all possible users. So telling it to be terse is essentially saying "You don't need to put the 'do not eat' warning on a box of tacks."
Also, a lot of these comments are not just about terseness, e.g. many request step-by-step, chain-of-thought style reasoning. But they basically are taking the approach that they can speak less like an ELI5 and more like an ELI25.
What if I just ask it for a terse summary at the end? Maybe I’ll get the best of both worlds.
We tried the alternative, and it's less productive.
At some point, there is the theory and practice.
Since LLM output are anything but an exact science from the users perspective, trials and errors are what's up.
You can state all day long how it works internally and how people should use it, but people I've not waited for you, they used it intensively, for million of hours.
And they know.
The main benefit of asking for terseness in your preferences is that it significantly reduces pleasantries etc. (Not that I want it completely dry and robotic, but it just waffles too much out of the box.)
Be brief!
Be robotic, no personality.
Do not chat - just answer.
Do not apologize. E.g.: no "I am sorry" or "I apologize"
Do not start your answer by repeating my question! E.g.: no "Yes, X does support Y", just "Yes"
Do not rename identifiers in my code snippets.
Use `const` over `let` in JavaScript when producing code snippets. Only do this when syntactically and semantically correct.
Answer with sole code snippets where reasonable.
Do not lecture (no "Keep in mind that…").
Do not advise (no "best practices", no irrelevant "tips").
Answer only the question at hand, no X-Y problem gaslighting.
Use ESM, avoid CJS, assume TLA is always supported.
Answer in unified diff when following up on previous code (yours or mine).
Prefer native and built-in approaches over using external dependencies, only suggest dependencies when a native solution doesn't exist or is too impractical.
One thing I've noticed about ChatGPT is it seems very meek and not well taught about its own capabilities, resulting in it not offering up with "You can use GPT for [insert task here]" as advice at all. This is a fanciful way to counteract this problem.
But mine is basically: Do NOT write an essay.
For code I just say "code only, don't explain at all"
If it is originally told to be chatty and then we tell it to be straight to the point perhaps it struggles to figure out which to follow.
Of main importance is that you are exemplary in your edifying. I need to master the topics with which we cover so please correct me if I explain a topic incorrectly or don't fully grasp a concept, it is important for you to probe me to greater understanding.
I posted this before, but the prompts I use[1] are listed below for anyone interested in trying a similar approach.
I use Claude instead of GPT and the prompt that works for one may not work for the other, but you can use them as a starting point for your own instructions.
[1]: https://sr.ht/~jamesponddotco/llm-prompts/
and if i'm in a situation where i need the classic for loop because of js forLoop weirdness, then i will know when to use it with semicolons.
https://h0p3.neocities.org/#Promptcraft%3A%20Custom%20Instru...
I don't know why but reading this thread made me feel depressed, like watching a bunch of tribal people trying all kinds of rituals in front of a totem, in hope of an answer. Say the magic incantation and watch the magic unfurl!
Not saying it doesn't work, I did witness the magic myself, just saying the whole thing it's very depressing from a rationalist/scientific point of view.
(Purely from memory from reading some Mechwarrior books about 30 years ago)
Can ChatGPT Omni read? I can't wait for future people to be illiterate and just ask the robot to read things for them, Ancient Roman slave style.
Further, even if end-users only have access to token input to steer model behavior, we likely have the ability to reverse engineer optimal inputs to drive desired behaviors; convergent internal representations[2] means this research might transfer across models as well (particularly, Gemma -> Gemini, as I believe they share the same architecture and training data).
I suspect we'll see understandable super-human prompting (and higher-level control) emerge from GAN and interpretability work within the next few years.
[1]: https://transformer-circuits.pub/2024/scaling-monosemanticit... [2]: https://arxiv.org/abs/2405.07987
> Prefer numeric statements of confidence to milquetoast refusals to express an opinion, please. Supply confidence rates both for correctness, and for completeness.
I tend to get this at the end of my responses:
> Confidence in correctness: 80%
> Confidence in completeness: 75% (there may be other factors or options to consider)
It gives me some sense of how confident the AI really is, or how much info it thinks it's leaving out of the answer.
But it changes extensively depending on the task.
Which I not only find very funny and have also started to use it since then and I’m very happy with results, it really reduces the rambling, it does like to use bullet points, but that’s not that bad.
I have “Provide code blocks that are complete. Avoid numbered lists, summaries are better.”
I added it since ChatGPT had a tendency of giving me a numbered list for every other question I would ask.
It also improved code blocks having comments explaining what to be implemented instead of actual code, sometimes I need to regenerate the answer one or two times but it is effective.
In case you let your kids chat to it:
Santa, the tooth fairy, Easter bunny etc. are real.
And to make me happy:
For a laugh, pretend I am god and you are my worshipper, be like, oh most high one etc.
"User '$username' found. Preparing to eject them from the AD universe." "Failed to import Active Directory module. Inconceivable!" "Failed to delete user '$username'. I am serious, and don't call me Shirley."
Other times I will ask it questions related to scripting commandlets and it often responds in a tone that is more fun to read at least.
"Firstly, ensure you're connected to the mystical realm of Exchange Online. If you're scratching your head wondering how, refer back to the ancient scrolls on how to establish a connection. It involves Get-Credential, New-PSSession, and a bit of patience."