logoalt Hacker News

emtel • today at 4:45 AM • 2 replies • view on HN

This debate conflates two senses of the word deterministic:

1. Repeatable: the same inputs always lead to the same outputs 2. Algorithmic: the answer is arrived at by a set of steps that can clearly be shown to produce output with some desired property.

(2 is not a textbook definition of deterministic that I’ve ever heard, but I think it’s what people mean here)

LLMs don’t usually satisfy definition 1. They could, in principle, but it wouldn’t matter if they did. It wouldn’t tell you anything about whether the outputs are trustworthy.

What people seem to want is 2, but 2 is, I think, a contradiction. There cannot be an algorithmic process that can turns a natural language prompt into a working program, because natural language is too ambiguous to specify an output.

Nevertheless I agree with the main point of the article. Non-algorithmic processes (like intelligence) can produce algorithmic processes (like software). After all that’s what human programmers do!


Replies

orbital-decay • today at 10:04 AM

Moreover, 1 is already guaranteed by a few providers and local stacks, for example DeepSeek v4 has batch-invariant inference. It actually could matter for reproducibility in certain workflows and I'm sure more providers will give these guarantees if there's actual demand. Keeping it reproducible beyond model/snapshot lifetime is harder, though.

omnicognate • today at 5:28 AM

Yeah, 1, while the correct meaning of "determinism", is just not an interesting property. It's unfortunate that people use the word to mean 2.

2 is an interesting property and I agree that it's not possible for LLMs to possess it because it's a property of natural language itself, not the model. Not possessing it doesn't mean that LLMs can't be used to write software (obviously), but it does mean that using them isn't like using a compiler, which does have property 2. This is usually brought up in response to people claiming using LLMs is just another step in the process of increasing abstraction that led from punch cards to assembler to low level languages to high level languages*. That point stands: LLM use is qualitatively different to those steps because LLMs aren't "deterministic" in the sense of property 2.

There must be a better word for this, but I can't think of one right now.

* Even Linus Torvalds used that cockamamie framing just now: https://lore.kernel.org/lkml/CAHk-=whTs09_ozN+e09GU68N1wPP56...