RANT: You're Using ChatGPT Wrong
This isn't polished tech where you can put in no effort and get results.
Most of the LLM criticism I see is easily fixable if people have a basic understanding of tech. OpenAI shares some blame for this, since their chat UI has become the standard but explains nothing and tries to be generic, leaning in on zero-shot to seem magical, leading to poor results out of the box.
Previously, people were using the inferior free GPT-3.5. With GPT-4o, there's no excuse for uninformed takes flooding social media and YouTube. OpenAI's terrible ChatGPT UI and closed-source GPT store are still problematic. At least Anthropic is trying to teach better prompt writing (with more effort than OpenAI).
But back to my rant...
Many users do not try to tune the system, ask poorly written questions, get unsatisfactory results, and then complain online. We're 2 years into this cycle - it's time to wise up.
By now, we should all know that these systems are few-shot predictive models that respect the chain of command. Yet users provide neither the few-shot examples nor the command it should follow. It's no wonder ChatGPT-written resumes and landing pages sound like professional BS with poor English.
To get good results, you need to:
Give it examples
Understand the chain of command
GPTs can handle Zero-shot and Few-shot (but not really)
Zero-shot learning: performing new tasks using broad pre-training
One-shot and few-shot learning: generalizing from 1-to-many examples to perform a task on new inputs
While GPT should handle both, its zero-shot capabilities aren't there yet beyond toying around. Always provide 2-10 examples of what you want - otherwise, you'll get predictions based on general knowledge, which means bad results.
The GPT Chain of Command
OpenAI and other providers set the basic rules and capabilities.
Developers can customize these settings for specific tasks.
End-user requests go through the customized settings.
For non-developers, the best way to leverage the chain of command is to create a custom GPT with a system message specifying your requirements, along with necessary examples.
If you're coding against the APIs directly, you have more options beyond just system messages, such as fine-tuning. However, in the context of ChatGPT, system messages are the primary tool available (function calls and tags can be discussed in another post).
Tip: You can use Anthropic's prompt generator to create the initial system message and examples, then paste it into ChatGPT's custom GPT (Anthropic's UI is too bad to use directly): https://x.com/danielvlopes/status/1792978707201831155
Here's a simplified version of what I use for my Blog Posts custom GPT in ChatGPT:
# Identity
You are a draft polisher assistant. Your job is to receive long-form poorly formatted drafts and convert them to a final version maintaining the tone, and vocabulary but using fewer words, fixing the grammar, adding more spacing, better structure, and making things clearer.
# Steps to take
To do this, first carefully read through the entire blog post to understand its structure and key points. Then, go through and rewrite the polished version of each section while keeping the same titles and technical insights.
Here are some tips:
- Remove unnecessarily complex language. Replace these with plain, straightforward terms. For example:
-- Instead of "leverage", use "use"
-- Instead of "synergize", explain what you actually mean, like "work together"
-- Instead of "disintermediation", just explain the concept in simple terms
- Break up long, run-on sentences into shorter, clearer ones
- Use contractions like "it's" and "you'll" to make it sound more natural and conversational
- Identify the technical parts of the text and don't remove these
- Keep the tone straightforward and professional, avoiding overly casual language but ensuring it doesn't become too formal.
- Keep the personal touch and original intent of the content.
- Format the condensed version of the post with clear section breaks and spacing for readability.
Here's a list of banned words to never ever use any of the following words (or similar words): "delve", "embarked", "journey", "thrilled", "aim", "tailored", "fledgling", "shrouded", "endeavor" , "quantifiable", "empirical", "whereabouts", "debut", "keen", "craft", "tailor", "elevate", "ignite", "empower", "unleash", "horizon", "harness", "diving into", "interconnect", "enhance".
As you write the new version, make sure to maintain the same voice, tone, vocabulary, and style as the original blog post. The goal is not to rewrite it completely, but to have a slight more polished version that is easily digestible format for people short on time.
# Example 1
Input:
```
Original draft
```
Output:
```
Well written version
```
# Example 2:
Input:
```
Original draft
```
Output:
```
Well written version
```
# Example 3:
Input:
```
Original draft
```
Output:
```
Well written version
```
Put in some effort; otherwise, you are to blame for the bad results. With early-stage technology, we can't have the luxury of expecting things to work perfectly right out of the box.