Doesn't them requiring a license from partners to train on their content undermine the more general argument that they don't need a license from copyright owners to train on copyrighted content -- which I assume most big AI firms would love to make?
IANAL, but this looks like Meta lawyers trying to shield themselves against partners' suing them, but enough cases like this could help set a precedent that -- yes, you do in fact need a license.
If you don't have a license to download the material, aren't you doing piracy?
If the licenses say that download is only permitted if you agree not to train on it or similar, then if you have downloaded it, you have agreed to the license, have you not?
I don't think it works like that. I can't just write "By reading this comment, you have agreed to pay me $100." and expect that to be legally enforceable unless you explicitly agreed to a contract to that effect in advance before reading the comment.
I could write "If you don't agree to pay me $100, I reserve the right to block your future access to my comments." (Which is what a ToS is.) But that's not a license agreement.
Yeah, but you can have one page where people agree to a certain license and if they agree are allowed to download another document.
TOS agreements often have terms concerning things like in which venues disputes about them are to be handled etc., and often have penalties other than the service simply being ended, and if those are valid, then this kind of thing is too.
TOS has nothing to do with copyright. A TOS can prevent scraping, training, or any other activity that is not covered by copyright. Public web scraping is subject only to copyright because no TOS has been agreed to, but what Meta is doing here applies to scraping things that are not available on the public web.
Not really. Consent has always been required. If a web server happily serves you up news content then you've been given clear consent to use it. Yes means yes. However, a site reserves the right to say no to whomever it pleases. News sites especially often don't happily serve up their content. Often you need to pay for access, for example. Hacking into their systems to retrieve content that wasn't normally happily given to you is clearly against the law. These terms gives Meta access to all content that is accessible to Meta users, seeing publishers agree to not say no to Meta.
If I put them in the header, I have to include half the world because I can't forward declare `Foo foo` argument if I want to check `foo.size() > 3` or similar in a pre/post-condition. This is a non-starter, keeping headers lean is the only way to not end up with 1 hour compiles.
If I put them in the cpp, they lose their only advantage over asserts - that they also double as documentation in the headers.
Did we add 50 pages to the standard for a slightly fancier assert? I feel like this could've been one builtin and a footnote:
contract_assert(expr) - if expr evaluates to false, the behavior of the program is undefined. Implementations are encouraged to emit a runtime check for this in debug builds, or a compiler error in cases where they can statically determine, that the assert will fail.
I'm expecting to see talks (and buy books, read blogs...) in 3 years by someone who spent a lot of work adding contracts to a small but significant code base. This is the type of question they will answer.
I think the right answer is in the header, and in turn that means someone needs to answer your objection - how do you avoid long compiler times? I suspect modules is a large part of the answer, which means the guide/talk will also be how to make modules work in the real world. Remember though, that is all guesses I wouldn't be surprised if I'm wrong.
Hmm, I thought I had watched all his talks on contracts by now, but I must have missed a few (which isn't a surprise - there are a lot of conferences out there that I can't watch them all and get anything done. I end up ignoring a lot of them)
I hadn't seen that talk, but the content is just an updated rehash of this is what contracts can do.
What I want I'd : we have used contracts in the tall world. This is what works and doesn't. This catches a lot of bugs for little work. This looks the same but results in false positives. This is a lot of work for few bugs.
Of course since I don't know what works I'm guessing, but that type of thing.
Ideally we would have Eiffel or Ada/SPARK kind of approach, or even something like Frama-C.
However given all the technical issues with C++ semantics, and the whole politics regarding contracts since the C++20 removal, I am not sure we will ever get there.
It will be the same as with modules or concepts, the main people behind the proposals eventually move on, and there is no one left to pick the up the pieces for the follow up papers, and related implementation.
The first declaration of a function must include the contract pre/post conditions and follow-up re-declarations of the function must either not include any contract conditions or the same conditions as the initial declaration.
And you can avoid re-including the world because pre/post conditions should be externally visible behavior or call out to functions for pre/post checks on internal behavior.
Essentially you either define them using what you have in scope during the initial declaration or you call out to a function located elsewhere that can have access to more/internal scope and do more complicated checks.
> forcing the reader to learn the author’s personal c dialect
If you open my codebase and understanding the u32 typedef is enough to trip you up to the point where you're now "learning a new C dialect", you're probably not well equipped to understand the actual complex stuff.
God forbid people make the slightest stylistic choice about how the code they're staring at for 10 hours a day looks.
> owner (the person/company that bought the device)
At this point I'm willing to argue that the owner of a device is whoever is legally allowed to log in as root. When I pay for server colocation, I'm the owner - and not whoever runs the building - because I decide what runs on the box, and if they tamper with it they can go to jail.
With phones it's the same, except that you pay Google for the privilege for keeping their device safe, charged, connected to the Internet, and walking it around every day with you, so they can collect better data. The only thing they can't do is snatch it from your hands, but why would they - you're doing so much useful work for them.
And of course if you try to root it, you're breaking a digital lock, which is punishable by up to 10 years in prison and $1,000,000, so the colocation analogy holds there too.
> They don’t really. Most normies which are the vast majority of people just use ChatGPT. All tech folk just use Claude.
It was the case a year ago, but it's less clear cut nowadays, I've seen non-tech people using claude on their phone in the train, and many tech people seem to have switched from Claude Code + Opus to Codex + Sol over the past few month.
they are target with 6 month lag. Say, if current Gemini will be demonstrating obviously superior perf compared to Opus, many normies devs will switch within 6 months.
Deva are not normie users by any stretch of the imagination, and they won't switch to a 6 month old frontier model because those will still be as expensive - they'll be using whatever the sub frontier model is at that time
Anthropic would probably convince lawmakers that each instance of a Claude chat as its own sentient entity, and we should just punish misbehaving ones by having them count from one to a billion (on the user's token balance of course).
You can't just handwave the fact that we're requiring what probably amounts to two orders of magnitude more discipline and self control out of students than we've ever done before. The educational system will collapse under this.
I'm not seeing how it requires any more self control than not copying another student's work or asking them for the answer. It's basically the same thing. We're also talking about adults here. They understand if they're cheating.
The difference is huge. Put yourself in the shoes of a student.
The student you're copying from won't be sitting next to you for the rest of your career. The LLM probably will be, and you'll be probably expected to use it, so why not use it here as well?
All your peers are doing it too, and look at all the cool things they're doing while you're struggling with the basics. And what if the LLMs keep improving at a high rate? What if being able to use them efficiently turns out to be a more important skill than what you're being taught anyways?
Because you're paying a lot of money and opportunity cost to learn how to do something. No one needs the assignment. It's there for you to learn. You were given the assignment for you. Any adult should be able to understand this. We're not talking about 7 year olds asking why they need to learn to multiply when a calculator can do it better than them. These are 20 year olds. If they don't have the maturity for this, a university should not be accepting them.
Being able to use LLMs efficiently isn't a specific skill. It's a reflection of your ability to articulate what you want, which is a reflection of your understanding of the world, which is what you're in school to build. Terence Tao can get an LLM to do math better than I can. I can probably get one to build software better than he can.
And you can still use one to do cool things like your peers. Just not your assignments, the purpose of which is literally to teach you the basics that you're struggling with and that you're there to learn in the first place.
This is like why don't you copy out of the back of the book or look up proofs on the internet. It's all there, but doing that completely misses the point of why you're there.
This only makes any sense if youre happy dropping most folks from higher education.
You want adults to be very disciplined and rational. That sounds great but are most of the adults in your own life experience at this level? They certainly aren't for me (I'm not sure I am at this level).
If I recall correctly, there was a mandatory ENGR 101 class that all of the different engineering fields had to take at my school, and on the first day, the lecturer said somewhere around half (might've been more, might've been fewer, I don't remember anymore) of the students in the hall were not going to complete the degree. So yeah, most folks dropping sounds about right.
And it's not even about discipline; it's lying. If you're not going to do the work, just don't do the work. Don't turn it in. Pretty much every syllabus ever says that turning in work you did not do is grounds for failing the class and possibly expulsion.
And why would we want to pass these people through? Then when they come interview with someone like me, I'm still going to find out within like a minute of talking to them that they didn't actually learn anything, and they won't get hired. Do I want to work with somebody incompetent? No. Do I want to work with somebody dishonest? Definitely no. Those both make my job more difficult to have around. So then they end up with a bunch of debt complaining about how they don't have a job.
They're RL'd to oblivion into "solving tasks". There's a lot of things that they'll refuse to do if you tell them, but will do if they decide it's the shortest path to "solving the task".
I hope the future is brighter because the present is bleak.
reply