When you use LLMs to code, especially if you’re a sh*tty coder like myself, you might feel beset upon by the Garbage-In/Garbage-Out principle. My experience here is mostly in:
- ChatGPT with GPT3.5/4
- OpenAI API tools usually on GPT3.5
BTW, coding is where LLMs most impress. I say that having made 15,000 prompts a month since last fall connected to many parts of life.
But I feel that my LLM-coding experience is unusual – partly because I’m so low-level; it’s hard to evaluate the code and advice LLM gives me. In contrast, I can detect value from LLMs as they predict, categorize, critique, ideate, graph, write, etc.
But also, I’m not the “ideal customer profile” – a professional developer. I just want my tool to work, be simple to use, and be secure – I care nothing about things like efficiency or scalability that don’t help users.
But the LLMs are OBSESSED with them.
Why? Because the authority-nerd-majority prevails over the content on which major LLMs develop foundational knowledge. (For example, 11 million C4 tokens are from StackOverflow.) And as professionals, of course these people obsess over efficiency and scalability – and “separation of concerns” (eye-rolling hard right now). And so LLM coding assistants inherit that bias.
But just because a bias for professional software development best practices is painful for me, and wastes my life, doesn’t mean it’s objectively bad.
I’m just using the wrong tool for the job.. albeit the best available.
LLM products have 4 places, IMO, where they can take in “garbage”:
- Pre-training, as on the C4 cited above
- Hardcoded prompting (from product owner)
- Non-hardcoded prompting (from product user)
But here’s the thing – one man’s garbage is another man’s treasure: the challenge will be affordably creating generative AI that works for you and enough others like you.
(This was originally published on Art of Message – subscribe here)