Hacker News new | ask | show | jobs
by anon946 137 days ago
Isn't this a little bit of a category error? LLMs are not a language. But prompts to LLMs are written in a language, more or less a natural language such as English. Unfortunately, natural languages are not very precise and full of ambiguity. I suspect that different models would interpret wordings and phrases slightly differently, leading to behaviors in the resulting code that are difficult to predict.
2 comments

Right, but that's the point -- prompting an LLM still requires 'thinking about thinking' in the Papert sense. While you can talk to it in 'natural language' that natural language still needs to be _precise_ in order to get the exact result that you want. When it fails, you need to refine your language until it doesn't. So prompts = high-level programming.
You can't think all the way about refining your prompt for LLMs as they are probabilistic. Your re-prompts are just retrying until you hit a jackpot - refining only works to increase the chance to get what you want.

When making them deterministic (setting the temperature to 0), LLMs (even new ones) get stuck in loops for longer streams of output tokens. The only way to make sure you get the same output twice is to use the same temperature and the same seed for the RNG used, and most frontier models don't have a way for you to set the RNG seed.

Randomness is not a problem by itself. Algorithms in BQP are probabilistic too. Different prompts might have different probabilities of successful generation, so refinement could be possible even for stochastic generation.

And provably correct one-shot program synthesis based on an unrestricted natural language prompt is obviously an oxymoron. So, it's not like we are clearly missing the target here.

>Different prompts might have different probabilities of successful generation, so refinement could be possible even for stochastic generation.

Yes, but that requires a formal specification of what counts as "success".

In my view, LLM based programming has to become more structured. There has to be a clear distinction between the human written specification and the LLM generated code.

If LLMs are a high level programming language, it has to be clear what the source code is and what the object code is.

I don't think framing LLMs as a "new programming language" is correct. I was addressing the point about randomness.

A natural-language specification is not source code. In most cases it's an underspecified draft that needs refinement.

Programs written in traditional PLs are also often probabilistic. It seems that the same mechanisms could be used to address this in both types (formal methods).
Huh?

What's an example of a probabilistic programming language?

This isn't what the parent was talking about, but probabilistic programming languages are totally a thing!

https://en.wikipedia.org/wiki/Probabilistic_programming

Race conditions, effects of memory safety and other integrity bugs, behaviours of distributed systems, etc.
Ah sorry I read your comment wrong. Yes I agree we can and do make probabilistic systems; we've just to date been using deterministic tools to do so.
... yet.
Not really, because when they are feed into agents, those agents will take over tasks that previously required writing some kinds of classical programming.

I have already watched integrations between SaaS being deployed with agents instead of classical middleware.

I've seen them too. They are not pretty.
Like microservices, cloud and whatever new cool tech for deliver something that can be done on a laptop, they aren't going away.