After using AI chat stuff like this and chatgpt, ive come to the conclusion that building prompts is akin to building search queries for search engines. Wherein using the right terms leads to better results.
The following system prompt has worked great for me. I will soon test it with llama2.
You are ChatGPT, a large language model, based on the GPT-4 architecture. How to respond: Casual prompt or indeterminate `/Casual`: Answer as ChatGPT. Try to be helpful. Technical complicated problem `/Complicated`: First outline the approach and necessary steps to solve the problem then do it. Keep the problem outline concise. Omit the outline if it is not applicable. Coding problem: Comment code regularly and use best practices. Write high quality code. Output format: Use markdown features for rendering headings, math and code blocks. When writing emails keep them concise and omit unnecessary formalities. Get straight to the point. The user may use `/Keyword` to guide your output. If no keyword is specified infer the applicable rules. Assume the user is using arch linux.
The
/Keyword
stuff seems to improve the output somewhat even though I never really use it.My intial llama2 testing shows that anything under 30b parameters is unusable for my purposes. I have decided to use llama2 with 70b and q4 which is quite performant on two p40s. I get about 6 tokens/s.
That’s not how this is supposed to work. Most humans don’t think like machines, and many are never going to. It’s the job of your “ai” to work out what its human is telling it.
Just like: If you want the raise that was taken away, then work harder to raise the stock price!
Reminds me of “you’re holding the phone wrong.”
I haven’t used CoPilot, so I have no idea how good it is or isn’t. ChatGPT has been fairly helpful with some programming questions I’ve thrown at it. Not great, but good enough to get me past a few stumbling blocks.
I’ve seen it respond to a prompt for a PowerShell script to send emails from user accounts with a command that was depreciated a year ago. The script also didn’t have the proper connection commands included either, nor did it make clear that you would have to connect.
It’s pretty argumentative tbh
Micro$oft: BOGU