Prompts are Programs
blog.sigplan.org
blog.sigplan.org
It’s deliberate antagonistic widening of a word’s imprecise meaning, possibly to get some notoriety. Academic clickbait.
> every instruction specifies the probability with which it should be executed
Is this still precise, in a way that prompting llms isn't? I'd need to explore the language in more depth to answer that, but if it does what I assume which is basically a string of instructions like do x with probability y, then it's still precise, except we're using probability theory in addition to/instead of standard programming logic.
For example, if you use c in Wolfram Alpha, sometimes it is interpreted as the speed of light, sometimes as centigrade, sometimes as a constant and sometimes as an error. And sometimes minor changes in other part of the question changes the interpretation of c.
It’s provocative to claim that prompts are more like code than like data. Feels to me more like they sit in that gray area alongside things like HTML, config files, regular expressions, and spreadsheets.
In practical terms the more pressing question is what kind of tools are needed to manage prompt bits. Is it beneficial to manage prompts using traditional software engineering tooling? This post says yes. Maybe, but I can see traditional data management tooling being equally applicable.
Prompts fit that description very well so I don't find that provocative or controversial at all.
The fact that traditionally the execution unit was very rigid and that the language used to express instructions was distant from human natural language is more of a consequence of an implementation rather than a fundamental distinction between code and data
To instruct is akin to providing an input. Where do we input to? The program. The program is programmed; but most importantly, the input is not programmed in the sense the program is programmed. It is, perhaps, thoughfully designed (or not). This role is best described as Prompt Designing or Prompt Engineering, not Prompt "Programming". In any case, it is indeed very important. But in my respectful opinion, it is not programming.
It's kind of like thinking that entering a query into a search engine is programming - a host of techniques can be utilized to optimize how that input effects the output (tomes can be written on this just as they can for LLM prompt design by now).
I can kind of defend that premise but it breaks the meaning of conventional usages, and creates more confusion than it brings clarity.
But it turns out that a) it's useful to know how to write prompts effectively b) it's time consuming c) it requires skill
So it became more and more an actual thing (discipline?) worth to be taken setiously
I thought this was called a query, and a prompt was text / symbols written by the system to prompt the user to enter a command or query.
Is this meaning only used by AI folks?
One makes a (sort of) internally consistent infinite world generator with RAG + Outlines:
https://github.com/dottxt-ai/demos/tree/main/lore-generator
This one makes two characters up and then builds a simple combat loop where they fight each other:
https://github.com/dottxt-ai/demos/tree/main/nouscon-24
Both are simple examples of basic programming with language model outputs.
I am beginning to write a blog post in rebuttal, because it's so fascinating.
I'd consider it a program, but surely not a deterministic one.