Dieser Bereich kann Inhalte enthalten, die nicht für alle Nutzer geeignet sind. Dazu können unter anderem Texte, Medien oder Diskussionen gehören, die als beleidigend, extremistisch, gewaltbezogen oder anderweitig belastend empfunden werden. Wenn du solche Inhalte nicht sehen möchtest, nutze bitte die jeweiligen Filter- und Meldeoptionen der Plattform oder meide entsprechende Threads/Communities.
Except that a compiler is not a stochastic machine.
https://www.tabulamag.com/p/non-determinism-is-not-the-problem
A JIT compiler is not a usual compiler (also definitely does not apply to C or system programming).
Conveniently ignoring the rest of the text. People don’t know what a c compiler will generate either, a minimal code change can trigger a different optimization, generating completely different output.
Oh my god. No.
That’s not what this argument is about. The JIT is non-deterministic based on the hot path yes. But the way that code gets turned into code IS.
The compilation of instructions is deterministic. The control flow and WHEN it gets compiled may not be, and it may smartly choose not to compile certain things based on that hot path but that’s not the same.
A compiler and interpreter is a SYSTEM. a LLM is not.
Ok, how the fuck is that relevant to the argument?? LLMs write code, then deterministically it gets compiled, type checked, linted, etc. At that point you absolutely have deterministic code that is as valid as can be verified. EXACTLY like if a human wrote it. Unless you’re suggesting that programmers never made mistakes that don’t show up in tests…
The “problem” is that any standard compliant code uniquely defines the output for any given input. A bug-free compiler translates that execution path into the exact same behaviour, just in a different formulation.
An LLM translates a more or less vague natural language description of an execution path into a precise one formulated in code.
The difference is pretty fundamental: In one case you give an exact description of the inputs and outputs, and let a compiler translate that to a different but logically equivalent description. In the other you give a non-exact description and let a stochastic machine translate that into one of many possible exact descriptions.
That doesn’t mean it’s impossible to produce good code with an LLM. It means you need to inspect the output from the LLM with far more scrutiny than you would ever inspect the assembly output from a compiler.
You could set temperature to zero and it’d work less.
As with path-tracing, physics simulations, and even sorting algorithms, sometimes an element of randomness is demonstrably more useful than rigid if-then branching. Sometimes it just avoids hard-to-judge decisions between marginally different choices. Sometimes it converges toward a simply correct answer. Sometimes it’s chaotic - and many outcomes are equally valid.