3 ms·
I've made use of a ton of open source tools and have not paid any attribution or compensation. By made use of, I mean I used them as their intended purposes and
by tiborsaas 4y ago
I've made use of a ton of open source tools and have not paid any attribution or compensation. By made use of, I mean I used them as their intended purposes and not their source code. I have a FOSS OS, server, CMD tools and libraries powering my ideas, it's part of the deal that I don't have to pay.
If I modify them I know what I have to do, but Co-pilot is somewhere in-between the two, it's abstracting knowledge from these codebases. We don't yet know how to deal with it properly, but this will change with time, that's why having these conversations are important.
I think that AI models will gain a new legal state, whatever they learn will be considered original work if it's not repeating non-trivial work 1:1.
- moffkalast 4y ago> it's not repeating non-trivial work 1:1 But that's basically all copilot does? It's just a fancy compression system with a search function.
- tiborsaas 4y agoNo, it customizes the snippets to your context, the code is synthesized and not looked up in a db like a web search engine.
- moffkalast 4y agoBut it kind of is when you think about it. Network weights are just a db written in an incomprehensible format and the synthesis part is searching and converting it back to readable data. Even if it changes the var names and formatting a bit, it's still at best highly derivative. And at worst it spits out the exact code verbatim.
- tiborsaas 4y ago> Network weights are just a db written in an incomprehensible format That makes all the difference IMHO, its complexity makes it much more than "just a DB". The synthesis part takes into account the context also, so it does intelligent things automatically, a smart SQL query does not. My brain also works kinda like this. My knowledge is encoded in an incomprehensible format and I convert my knowledge into code based on the problem at hand.
- ay 4y agoI tried it for the first time today, so treat this with a grain of salt. https://twitter.com/ayourtch/status/1539928018138931200 https://twitter.com/ayourtch/status/1539928018138931200 is my experiment. The code in question has a very specific format - it’s C with a lot macro sauce. I described the intent in the comment and pasted the includes lines. Then I started the #define of a unique looking token, and it added the lines with the correct boilerplate. What you see in gray is more boilerplate that it suggests when prompted. I would dare to assert that “xxxayourtchtestxxx” is not going to be in anyone else’s code than mine. So you can see the example of copilot generating completely new code. Not saying it’s 100% of what it does - but this side looks very useful. I also did a test with Rust: described a function canonicalizing MAC address, and then when it saw ![test] prompts, it started to make very passable unit tests for the function which was not even written yet - it was only the comment of what it would do. Also a massively useful lever to have, if it can do so consistently. My attempts to make it generate a bug-free canonicalization function didn’t work - but it was interesting to see it try different approaches based on the existing test code (and no, they didn’t always satisfy the tests, unlike one would expect :) So this angle is “pair programming with a creative novice”, which also can be useful - it can give ideas to explore that you didn’t think of. Of course this was all fairly trivial code, I do not know yet how it will behave in a more tricky situation.