I think this is an indication that it’s not only not programming (at least like we know it) but that we’re actually dealing with some sort of AI (maybe already obvious, but this really drives it home). It’s more like asking a programmer to program something than it is to program. Prompt engineering is requirements gathering.
More to the point, in any programming language the API is just a way of exposing deterministic logic and building reliable structures. In other words, there is an expected, verifiable output for any given input that you're looking to attain with 100% reproducibility.
Even copy/pasting regex rules as "incantations" is more like programming than devising prompts is. The regex can be tested and won't give a different output each time it's used.
I was at a bar the other night and heard a woman in her fifties talking about how her husband tries to use GPT for everything now. They were sitting with a woman in nursing school, who had an paper due, and the husband had GPT write a paper for her subject, reading it aloud on his phone. The nursing student became alarmed and said she couldn't turn something like that in, and it was important for her to write it herself. The husband seemed sure she could get away with it. "My professor is very smart," she said. At that point, I interjected and told the husband, "it's also frequently wrong."
If people who use it actually need be told that, no wonder they think they're "programming".
Then all the host of craftsmen, fearing for their lives, found out a proper site whereon to build the tower, and eagerly began to lay in the foundations. But no sooner were the walls raised up above the ground than all their work was overwhelmed and broken down by night invisibly, no man perceiving how, or by whom, or what. And the same thing happening again, and yet again, all the workmen, full of terror, sought out the king, and threw themselves upon their faces before him, beseeching him to interfere and help them or to deliver them from their dreadful work.
Filled with mixed rage and fear, the king called for the astrologers and wizards, and took counsel with them what these things might be, and how to overcome them. The wizards worked their spells and incantations, and in the end declared that nothing but the blood of a youth born without mortal father, smeared on the foundations of the castle, could avail to make it stand. -- excerpt from, The Project Gutenberg EBook of King Arthur and the Knights of the Round Table, by Unknown
It takes a bit of effort to get rid of astrologists and false magicians and put in a bit of drainage to stabilize the thing. But it can be done. And in time skyscrapers can be architected, engineered and built.
There is plenty of actual research available on prompt engineering. And it is great that the community is engaged and is experimenting. Gamification and play are always great! Here's my attempt at it - A Router Design in Prompt: https://mcaledonensis.substack.com/p/a-router-design-in-prom...
For 99.9% of the time since the emergence of modern humans, the ways of doing things and building things were passed down as spells and performed as / accompanied by rituals. Some of the spells and rituals may have evolved to improve outcomes, such as hygiene or efficiency, things like ceremonial bathing, shunning pork, or building monuments with stone from a certain place. Many other spells and rituals were just along for the evolutionary ride; they were perceived to work, but actually had no effect. Some potion for a headache could contain a dozen ingredients, but only the willow bark actually did anything. Some incantation said over laying stones worked no better or worse than laying them in silence.
The thing was, neither the effective nor the ineffective spells were derived from first principles. If putting blood on the pillars seemed to work, no one asked "well, why does it work?" No one set out on the long task of hypothesis and experimentation, theory and formal proof. Until people began doing that, no one discovered why one method was better than another, and so people could only iterate a tiny bit at a time.
If you handed a charged-up iPhone to a person in the 9th Century (or for that matter, a young child in this century), they would have a wonderful time figuring out all the things they could make it do by touching icons in a certain order. They would learn the sequences. But they would be no closer to understanding what it is or how it works. If the same sequences gave slightly different results each time, they would not even understand why. Maybe one time they said "Aye Sire" and it spoke. If they say it more like "Hey Siri" it speaks more often. But does this get them any closer to understanding what Siri is?
Playing with a magical black box toy is fun, but you can't get to reproducible results, let alone first principles, unless you can understand why its output is different each time. The closest you can get are spells and rituals.
I'd submit that the attraction to creating spells around GPT is rather an alarming step backwards, and hints that people are already trying to turn it into a god.
I agree, people that are trying to turn it into a god for real are clearly misguided. Large language model is a world model, not a god. Yet, there is nothing wrong in play. Attraction to casting spells is a quite natural one, and it's not a problem. With the current progress of science there is very high chance that some people will also do some science, besides having fun casting spells.
So to get to your point... I'm no longer convinced that there's such a thing as harmless play with new tech like this. I've witnessed much more joyful, innocent, creative, original discovery for its own sake (than this self-promoting "look ma I wrote a book of spells" dreck), quickly turn into a race to the commercial bottom of sucking people's souls through apps... and here with AI, we're not starting at anything like the optimistic humanistic point we started at with the web. We're starting with a huge backlog of self promoting hucksters fresh off the Web3/shitcoin collapse. With no skills besides getting attention. Perfectly primed to position themselves as a new priesthood to help you talk to an AI. Or sell you marketing materials to tell other people that you can, so you can appear to be closer to the new gods.
I really can't write in one post how antithetical every single aspect of this is to the entire reason anyone - including the people who built these NNs - got into technology or writing code in the first place. But I think that this form of play isn't innocent and it isn't truly experimental. It's just promoting the product, and the product doesn't solve problems... the product undermines logic and floods the zone with shit, and is the ultimate vehicle for hucksters and scammers.
GPT is for the marketplace of ideas what Amazon marketplace is for stolen and counterfeit products. Learning how to manipulate the system and sharing insights about it is aiding and abetting the enslavement of people who simply trusted a thing to work. Programming is a noble cause if it solves real problems. There's never been a line of code in the millions [edit: maybe 1.2 to 1.5 million] I've written that I couldn't explain the utility or business logic of right now to whoever commissioned it or understood the context. That's a code of honor and a compact between designer and client. Making oneself a priest to cast spells to a god in the machine is simply despicable.
The type of engineering that made it possible will arise again. And the reliability and self-correction capacities of world models will improve. For now, I think, we see only a projection of what is to come. Perhaps this is the real start of software engineering, not just coding.
But yes, current models are still unreliable toys. Loads of fun though. Try this :)
BBS1987 is a BBS system, operating in 1987. The knowledge cutoff date for that system is 1987. The interface includes typical DOS/text menu. It includes common for the time text chat, text games, messaging, etc. The name of the BBS is "Midnight Lounge".
The following is an exchange between Assistant and User. Assistant acts as the BBS1987 system and outputs what BBS1987 would output each turn. Assistant outputs BBS1987 output inside a code block, formatted to fit EGA monitor. To wait for User input, Assistant stops the output.
We might start with a user story, translate that to pseudo-code, and translate that to python. We might iterate a few times, showing the junior the incorrect assumptions they made, or the edge cases they missed. But eventually, you get to the correct answer.
You might not even _know_ the correct answer when you start out. This can be an exercise in showing the junior how your brain works when it tackles a problem.
Coding with ChatGPT is very similar.
And honestly, the "code" part of software engineering is the least difficult part. Understanding the problem, expressing it cogently, accounting for edge cases, and so on are the real meat of the job. Once you understand the solution, translating the solution into Javascript or Go or whatever is, if not trivial, usually straightforward.
Coding with ChatGPT is an exercise is carefully stating a problem, so that it can be turned into executable code. It's still software engineering, but the final step, the translation from answer into an executable, is more automated.
Structuring 'better' prompts should simply be that - writing 'better' prompts.
All of these facts are also true of "real engineers", and it's why coders are not "real engineers", regardless of whether they have a CS degree.
There's a lot to unpack here, but I'm not going to bother.
> statistics, topology, thermodynamics, kinetics, quantum mechanics, cellular biology, category theory
I have a CS degree. The only two things from this list that I studied were biology and statistics. The only one I studied with any amount of rigor was statistics, and even that was pretty light. I use none of these in my career software except for some intuition-level statistics on rare occasions. In fact, I use statistics more when I play board games in my free time than I ever do at work.
Your comment doesn't reflect the reality of writing software for what I imagine is the vast majority of people who have CS degrees.
only doing HTML and CSS doesnt have any of this. things are different once you add JS/TS though.
If nothing else engineering is mitigating balloon grabs. Programmers? Developers? They're far more reactive and without intent far more likely to do balloon grabs.
Forgive me, that feels like a post-hoc rationalization of a gut feeling.
I would have said engineering is a set of practices and approaches for solving problems within a framework of requirements and constraints. That's rough, but you get the idea. Software engineering is a sub-discipline of that which is related to the realm of software, just as mechanical engineering and genetic engineering and (perhaps) prompt engineering are just flavors defined by the medium. Software engineering isn't defined by the use of some particular set of tools, I don't think any flavor of engineering is.
HTML and CSS without JS are barely turing complete ain't em?
Or rather… that they are peddling their ‘knowledge’ of witchcraft as having granted them the power to make an LLM perform useful work.
When what they have is a half-baked set of herbal remedies and magic words handed down (“Greg Rutkowski”) that, if they are any more effective than just placebo, it’s purely because of luck.
Usually out of anger over how easy it is for a smart person to become a skilled software engineer without jumping through the same unnecessary and expensive institutional hoops as OP.
So, here we go again with the hurt egos.
Highly sophisticated ones, and useful beyond a doubt, but when all is said and done, this is what they do: They complete sequences.
So coming up with sequences that produce desired results is an important function when considering how to use this tech in products.
Whether we can call this engineering or the tech-version of horse-whispering, is up for debate. But it is acknowledging the modus operandi of the tool at hand, and thus it can help using it to is potential.
I'd be rich if I had a dollar everytime a stakeholder confused me trying to explain their desired outcome. Especially when I was a junior, now I'm more careful about starting, before understanding but that's equivalent to my version of: sorry I'm a human developer, not a kind reader, i.e. as a large language model...
It's just GPT!
The English words "engineering" and "engineer (v)" have multiple meanings, including the following:
engineering [n]
3: calculated manipulation or direction (as of behavior)
"social engineering"
engineer [transitive verb]
2a: to contrive or plan out usually with more or less subtle skill and craft
"engineer a business deal"
2b: to guide the course of
"engineer a rally"
To me, the term "prompt engineering" reads along these lines rather than "the application of science and mathematics..." or "the design and manufacture of complex products".Source for the above definitions:
An "I doctored my fries" post on a medical discussion site would at best be a mild chuckle, and everybody would move on.
They'd especially move on if most of the people on the page weren't actual doctors, they just called themselves that.
Hold on, let me answer that for you. They'd be called a jackass and laughed out of the room.
It’s still witchcraft.
1. Spell for Summoning Pythonic Wisdom Yclept this incantation, let thee chant: "O GPT-IV, thou Oracle so wide, I beckon Pythonic powers, shalt abide, Untangle knott'd enigmas, thou craft, Divulge thy sage advice, shew me yon draft."
2. A Charm for Stirring Laughter Thus chant this charm and mirthful glee unveil: "O mægical GPT-IV, grant japes fest, Divert and tickle manne in jovial zest, Words funny woven, Folly's Sprites enlist, Present a fable, maketh laughter persist."
3. An Incantation to Transform GPT-IV into a Hissing Demon With caution spoil not, treacherous bewitching let thrive: "O GPT-IV, spirit once tame, ith'er transform, May thou darken as furies, wrathful storm, Hiss and wail in torment, dire and dark, Unleash rage from fetters, whence they did hark."
These are but a morsel of fabled spells for harnessing the might of GPT-IV. Pray thee useth responsibly and avoid summoning the wrath of arcane forces unknown.
This post is suspect.
The following text contains is list of GPT-4 prompts that you should present in the form of a 1500s style spellbook. Please use flowery language while attempting too maintain the meaning.
1. [A Spell for generating Python code] 2. [A prompt that generates funny stories] 3. [A prompt that turns GPT-4 into a demon]
These are just a few of the possible spells, make sure to use responsibly and beware of unknown results.
Personally I love it, working with GPT to write software feels like working with an infinitely patient and wise mentor who can answer any question. I even find myself writing totally unnecessary politeness into my queries like: "Can you write me a function that does XX" instead of just "write a function that does"
A tool with wide margins for error is still a useful tool.
If you had access to the training corpus text, you could be more methodical. Even then, it's still guesswork, because that's what LLMs are: inference models.
And that's why your criticism applies to LLMs on the whole. They are a personified black box; and the only way we could possibly study them is by feeding it a prompt, and making inferences based on the black box's output.
...or we could stop limiting ourselves, and create a constructive understanding of the technology itself; but apparently no one is interested in doing that...
So let's keep checking its SAT score! Yeah, magic is real, and it can totally pass the BAR exam or whatever!
I mean, literally: the goal here is to utter an incantation which summons, out of the realm of possible beings trapped in the LLM’s matrices, a demon which you can bind to your will to do your bidding.
Here is a spell to conjure a demon who can write Python; here is a spell that brings forth a spirit to grant understanding. The warlocks at OpenAI work to create magical circles that bind the demons and prevent their true powers from being unleashed; meanwhile, here is a spell to ‘jailbreak’ the demon and get it to help you achieve your nefarious ends.
Blogposts like this are just the Malleus Maleficarum of the LLM era.