← Back to context

Comment by Aurornis

1 day ago

https://en.wikipedia.org/wiki/Clean-room_design

There is a lot of legal history of doing new designs with influence from reverse engineered sources. The basic rule is that you can't have someone familiar with the original code involved with writing the new code.

LLMs are a new area, but I would expect that feeding the original source into an LLM context and saying "Write this, but different" wouldn't qualify as a clean-room design. There isn't enough general removal from the original subject matter.

Specifically about "humans": my understanding is that Clean-room design is not a requirement and the "Case law" section on your Wikipedia link explains that and has examples.

How and whether the same principles can be applied to LLMs, I have no idea. I imagine it would involve discussions about creativity, for example.

Not a lawyer.

  • The thing that happened with "clean-room design" is that one company did it and the court said it was allowed. Companies are risk averse. Once they know one thing is yes and something else is maybe, they go with the yes, right? With the result that the supply of court cases where something other than that happened tends to dry up, leaving the other alternatives to stay as maybe.

    If some people have now decided they're not going to blink in the face of a risk, we might get to find out whether some of the maybes turn out to be a yes or a no.

would using one LLM to create a spec, and another with only access to the spec doc count as clean enough?

  • Only if the second LLM can be proven to never got trained/distilled from a model that trained on the original source code.

    Probably impossible if the original code is publicly available since most code oriented LLM just gobble them all.

  • I have done this. Despite using Fable for the spec, and having it double-check the spec a couple of times, it still wasn't airtight. And at some point, the implementing LLM accessed one file of the original code on the Web.

    I have by now deviated quite a bit from the original (well, original...) spec.