Ihor Radchenko <[email protected]> writes:
> David Masterson <[email protected]> writes:
>> Ihor Radchenko <[email protected]> writes:
>>> David Masterson <[email protected]> writes:
>>>> The issue, though, that I think Ihor has raised elsewhere is that the
>>>> code (patch) generated by the LLM, copyrighted or not, may be so "dense"
>>>> as to be beyond easy human understanding.
>>> I did not say that.
>>> LLM-generated code is nowhere beyond human understanding.
>> I did say "easy".  I'm sure you understand that, over time, LLM
>> generated could become more complicated and the ability of free software
>> users may not keep up.  My wording, though, was bad.
>
> Not really. Why would it become more complicated? If the code solving
> the problem do not need to be complicated, I see no reason why LLMs
> should make it complicated.
>
> Of course, if LLMs can (successfully) solve more complex problems, they
> will naturally produce more complex code, if that complexity is
> necessary to solve a given problem. But that's exactly the same for
> human-contributed patches - difficult problems require non-trivial
> patches.

A difference is that LLMs can cope with other complexity in the code.


For context: humans have a rough mental limit of handling 4 elements at
the same time. Though we’re able to raise that by building longlived
models we can lean on and don’t have to think about consciously.

Those few elements are a limit of our brains.

We have to limit the number of function arguments, the sources of input,
and so forth, to keep code manageable for humans.¹

But LLMs have different limits. While current LLMs copy the structures
we use, those aren’t actually required for LLMs. An LLM doesn’t need
files named by context. It doesn’t need to extract code snippets into
library functions.


We do.


So if we accept code that the submitting human does not understand, we
can reach a state that’s unmaintainable for humans.

This includes problems that aren’t inherently complex: LLM’s don’t need
to suffer from incidental complexity as we do. Their context may be much
smaller than the context of experienced humans, but it’s all accessible
at the same time.


So tradeoffs are different there. Code I’ve seen includes unmaintainable
pages and pages of test code -- with errors -- that won’t be
maintainable by humans, because changes in requirements -- even bugfixes
-- will require huge swaths of changes all over the place.


And usual methods to conquer complexity like extracting solvers that
apply rules to large amounts of data² or generating code from a concise
actual source of truth don’t translate, because LLMs aren’t
deterministic: we can’t know what exactly will be the result of a given
prompt or whether it will have the same result after an update.


Best wishes,
Arne


¹ https://www.draketo.de/software/programs-you-can-still-hack-when-dumb
² i.e. SQL :-)
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
https://www.draketo.de

Attachment: signature.asc
Description: PGP signature

Reply via email to