← Back to context

Comment by delis-thumbs-7e

18 hours ago

Calculators and computers are deterministic, they give the same output to the same output every time. Language models specifically are not. So it might give you are function that is correct, or a function that is not, or worse yet a function that behaves correctly, but introduces some god-awful bug down the line that can cause serious havoc. It is obvious that they need supervision, not only for output, but also sandboxing and various harnesses for them to not do any “oops, I deleted your codebase sry” kind of nonsense people post to Reddit.

So I think the problem is to determine which problems under what instructions we can safely give to a model application to solve and how we test the output for safety and functionality. This would create more usable and safe, albeit a bit more boring, AI-based applications alin to a calculator or general computer. Whether this is posswith current model architecture is another thing.

If you set the temperature 0, an LLM is also deterministic (same prompt -> same output every single time). We just don't do this because the LLM is not so smart in that mode. But "LLM is not so smart" is changing at Moore's law speeds.

Non-determinism is not an essential property of LLMs. It's an optimization that we've added intentionally.

  • Ehm, no! The same prompt does not always lead to the same output.

    Have you ever tried to achieve consistently deterministic output from an LLM? I have, and it's not easy.

    That means output differs between machines and architectures. Running inference on CPU vs GPU also affects output. Even running the same prompt twice in a row on the same machine can lead to different outputs because a prompt that was partially stored in the kv cache will result in different output than an uncached prompt.

    LLM output is very much not deterministic!

    • It's not deterministic due to implementation details in floating point numbers and order of execution.

      If you ran an LLM with infinite precision and guaranteed order of execution, it would be deterministic.

      (I think determinism is overrated. Being deterministic does not make LLMs more reliable or correct.)

      1 reply →

    • These are all implementation details.

      At the end of the day, an LLM is just a very big mathematical function. That is, by definition, deterministic. A particular implementation might give up on determinism for the sake of higher efficiency, but it you want a deterministic LLM, it can absolutely be done.

    • Yes, yes, assuming the same CPU and stuff. There is some randomness due to floating point math differences between CPUs (and sometimes on the same CPU), but I don't think that fundamentally changes my point.

      Put another way: if you could have a virtualization layer that guarantees deterministic floating point operations then a LLM set to 0.0 temp would produce deterministic output.

Humans (IQ of X, non deterministic) can write deterministic code.

AI (IQ of Y, non deterministic) can write deterministic code.

Y is going to keep increasing, while X will not.

  • Why will X not keep increasing? It’s been increasing, albeit very slowly, since the start of the 20th century as the disease burden declines and nutrition improves. I see no reason to think that future health interventions couldn’t further juice those numbers.

    Will it keep up with Y? Probably not, unless people are willing to accept pretty radical interventions to their biology. But it almost certainly is not static

    • IQ hasn't been increasing in developed countries for about three decades now. In fact, it has been declining in most.

      The increases still happen globally but mostly driven by developing countries.

      1 reply →

> Calculators and computers are deterministic

How do you know?

Memory bits flip randomly. It's not a super rare thing either. You and me have experienced that many times without knowing. The only reason that computers feel deterministic is that we have error-correcting code to fix that. But in the most extreme cases, when multiple bits flip together, once "deterministic" program can generate unexpected output.

So why do you trust computers? Because statistically the case is just very unlikely. Therefore if AI is statistically unlikely to make mistakes there is no reason to not trust them.

  • You are confusing hardware noise and whether the algorithm itself is verifiable as if parity bits were not a thing. We don’t trust computers because the medium itself is infallible, but because the logic is sound.

    With statistical models - such as LLM’s - there is no logic as such, but statistical assumptions based on given data. The output can ge very good or very bad, but you are fool to trust it blindly. Therefore you need a deterministic way to verify, whether meat- or software-based.

Calculators aren't deterministic if you go all the way down, the electron "harness" introduces that consistency via error correction.