AI code bans may be impossible to enforce in the first place
I hate this attitude that if a rule or standard can’t be enforced perfectly, we shouldn’t strive for it. We can’t (reasonably) run an OS free of proprietary software, does that mean the free software movement should just give up?
I’m very critical of AI, but complete bans on AI use are, at the moment, pretty much unenforcable. Not hard to enforce, not impossible to enforce 100%, impossible to enforce. There currently is no reliable way to verify if and how much someone used AI, except maybe if you monitor people’s systems.
Obviously, if someone who has no clue about coding uses it to write the entire code, you notice. But that’s simply not how most coders use AI…
I hate this attitude that if a rule or standard can’t be enforced perfectly, we shouldn’t strive for it.
This is the entire basis for the War on (some) Drugs. Guess what? Drugs won.
Power is nothing without enforceability, and purposely implementing rules or laws that can’t be enforceable is a form of malice and discrimination through selective enforcement.
In terms of murder, not every person is caught. But, enough of them are to deter the crime.
In terms of “no AI” enforcement, it’s not even a matter of perfection. It’s not possible to enforce except for the dumbest attempts, especially without also using AI to detect it. And if that enforcement comes about, then the evasion starts, and it’s hidden even further.
This isn’t a case where something can’t be enforced perfectly, it is a case of something that can’t be enforced at all going into the future. Every tool that can reliably detect LLM code is at the same time the tool used for adversarial training, making the generated code look more and more human. We are already at the point where for plain english the false positives and false negatives go through the roof, making these tools very unreliable and when applied automatically a liability. Code is a lot more formalized, with a lot less personal variance (spelling, vocabulary and grammar are basically fixed - only the used logic and how it is implemented is variable), making detection harder by default than in natural languages.
If LLM code can’t be detected anymore by automated means - and that state of things is approaching fast - then any policy about allowing or restricting LLM code is not worth the paper you would use to print it out. But that’s not so much of a problem. The more important policy to set, that can also be enforced, is that everyone submitting code has to take personal responsibility regarding the quality of the submission. Delivering bad code - when not happening while training to become a better coder and looking for feedback - has to lead to consequences based on the seriousness of the case and if it’s a repeat offender. Anyone using an LLM to spit out bullshit LQ code will run into that kind of rule very fast.
I think of it like age verification. Slipperly slope to a proprietary kernel-level “security compliance module” on all devices, aka the end of general computation.
As another person stated in another comment, that’s a false equivalence fallacy, but not only that, it’s a false dilemma fallacy, and a strawman fallacy.
It’s like trying to prove an author didn’t use a ghostwriter. You might be able to find some clues, but the smaller the sample and the more cleanup the author did, the less chance there is to detect it.
Now what if they’re using AI for debugging? Code from the AI may not even make it into the project, but that doesn’t mean AI wasn’t used. So how do you enforce a “no AI” policy in that scenario?
If there’s no practical way to enforce a rule or tell if it has been broken, it’s a pointless rule. Better programmers than me have settled on the policy of “If you track in shit on your shoes, you will be the one cleaning it up, and may well be told to not come back if you do.” Make people responsible for the code they submit, and if they can’t do it right, however they do it, don’t merge their code and kick them out.
I think one way is to make people realize that there is a concept in copyright called Threshold of Originality, meaning that because machine generated output in itself is not creative work, it’s not copyrightable. You can do literally anything with it, the licenses attached don’t matter. The GPL is not enforceable and no proprietary EULA is enforceable.
The reason is that it’s based in copyright law but uses it for the community instead of the individual. Without copyright, copyleft has no power.
I have many problems with copyright as it’s currently implemented, but with copyleft it usefully creates a social contract: if you want to be involved for the benefits, you must also uphold the rule of contributing back.
I hate this attitude that if a rule or standard can’t be enforced perfectly, we shouldn’t strive for it. We can’t (reasonably) run an OS free of proprietary software, does that mean the free software movement should just give up?
So how would one enforce this?
It is not that it is very difficult, it is impossible.
I’m very critical of AI, but complete bans on AI use are, at the moment, pretty much unenforcable. Not hard to enforce, not impossible to enforce 100%, impossible to enforce. There currently is no reliable way to verify if and how much someone used AI, except maybe if you monitor people’s systems.
Obviously, if someone who has no clue about coding uses it to write the entire code, you notice. But that’s simply not how most coders use AI…
This is the entire basis for the War on (some) Drugs. Guess what? Drugs won.
Power is nothing without enforceability, and purposely implementing rules or laws that can’t be enforceable is a form of malice and discrimination through selective enforcement.
I agree, we should absolutely toss out all those laws against murder because they can’t be enforced perfectly or equitably.
In terms of murder, not every person is caught. But, enough of them are to deter the crime.
In terms of “no AI” enforcement, it’s not even a matter of perfection. It’s not possible to enforce except for the dumbest attempts, especially without also using AI to detect it. And if that enforcement comes about, then the evasion starts, and it’s hidden even further.
People are begging to regulate “AI” when it doesn’t even exist and there’s not even an objective definition.
Absolute recipe for failure or worse.
“People are going to murder anyway, so why even make murder illegal?”
You are correct, you should make rules even understanding that they will be broken by some.
You can enforce consequences for murder. You can investigate and differentiate a murder from an accidental death. Don’t be disingenuous.
A death is a death.
I can quote from memory a case in my country, in the 80’s, where a man assaulted a couple, killed the woman and was about to kill the man.
The killer got tackled and beat to death by the widower. The sole survivor was sent to trial for murder regardless being under mortal peril.
Got acquited on the appeal. First instance deemed it an excessive act, regardless self defence.
Yes, debugging with an LLM is absolutely as bad as murder. Probably worse! \s
Not even remotely what I suggested.
“Murder bans may be impossible to enforce in the first place”
But they aren’t impossible to enforce and you know that.
This isn’t a case where something can’t be enforced perfectly, it is a case of something that can’t be enforced at all going into the future. Every tool that can reliably detect LLM code is at the same time the tool used for adversarial training, making the generated code look more and more human. We are already at the point where for plain english the false positives and false negatives go through the roof, making these tools very unreliable and when applied automatically a liability. Code is a lot more formalized, with a lot less personal variance (spelling, vocabulary and grammar are basically fixed - only the used logic and how it is implemented is variable), making detection harder by default than in natural languages.
If LLM code can’t be detected anymore by automated means - and that state of things is approaching fast - then any policy about allowing or restricting LLM code is not worth the paper you would use to print it out. But that’s not so much of a problem. The more important policy to set, that can also be enforced, is that everyone submitting code has to take personal responsibility regarding the quality of the submission. Delivering bad code - when not happening while training to become a better coder and looking for feedback - has to lead to consequences based on the seriousness of the case and if it’s a repeat offender. Anyone using an LLM to spit out bullshit LQ code will run into that kind of rule very fast.
Exactly. There are too many knee jerk responses to this position. Just banning LLM generated code is a useless gesture.
Changing the way merges and reviews are handled, as well as responsibility for them, is the actual way to address this.
I think of it like age verification. Slipperly slope to a proprietary kernel-level “security compliance module” on all devices, aka the end of general computation.
AI code ban makes as much sense as code written in IDE ban. That’s why it is impossible to enforce. It makes no sense.
You’re getting a lot of down votes not for being wrong, but for being right.
No, he gets them for being wrong.
As another person stated in another comment, that’s a false equivalence fallacy, but not only that, it’s a false dilemma fallacy, and a strawman fallacy.
It’s like trying to prove an author didn’t use a ghostwriter. You might be able to find some clues, but the smaller the sample and the more cleanup the author did, the less chance there is to detect it.
Now what if they’re using AI for debugging? Code from the AI may not even make it into the project, but that doesn’t mean AI wasn’t used. So how do you enforce a “no AI” policy in that scenario?
If there’s no practical way to enforce a rule or tell if it has been broken, it’s a pointless rule. Better programmers than me have settled on the policy of “If you track in shit on your shoes, you will be the one cleaning it up, and may well be told to not come back if you do.” Make people responsible for the code they submit, and if they can’t do it right, however they do it, don’t merge their code and kick them out.
I think one way is to make people realize that there is a concept in copyright called Threshold of Originality, meaning that because machine generated output in itself is not creative work, it’s not copyrightable. You can do literally anything with it, the licenses attached don’t matter. The GPL is not enforceable and no proprietary EULA is enforceable.
The entire point of GPL is to forcefully extract copyright out of the code in the first place.
No? The point of the GPL is to leverage such a copyright.
It’s called “copyleft” for a reason.
The reason is that it’s based in copyright law but uses it for the community instead of the individual. Without copyright, copyleft has no power.
I have many problems with copyright as it’s currently implemented, but with copyleft it usefully creates a social contract: if you want to be involved for the benefits, you must also uphold the rule of contributing back.