mickael-kerjean
3 days ago
Genuine question: how reproducible / usable / verifiable are these architectures from the published documentation? Are they similar to PDF/DWG/PSD specifications, where the format look like an open spec at first sight until you attempt to implement it and realize the crucial implementation details are undocumented?
nl
3 days ago
It's entirely reproducible from the available documentation (which is why you see vLLM, SGLang, MLX etc all racing to produce optimized implementations).
(As an aside, this is why the "open weights are not open source" thing is a complete misunderstanding. The weights themselves along with the documentation give you enough to fine tune the LLM. You can't rebuild it from scratch, but you can't do this even with the data anyway (because of randomness!))
spider-mario
3 days ago
Isn’t this a bit like saying “ ‘open object files are not open source’ is a complete misunderstanding” because “You can’t rebuild the executable from scratch, but you can’t do this even with the source code anyway (because of build nondeterminism / compiler versions / etc.)”?
desterothx
3 days ago
not really, compiling isnt a heuristic problem, it has a lot less randomness involved
NooneAtAll3
2 days ago
there's a reason reproducible builds are a thing and most compilations aren't
eru
3 days ago
Depends on your compiler. You could have a compiler that deliberately uses randomised algorithms. They are often faster and easier to understand and write.
Though in practice you can get all the benefits of both determinism and (that kind of) randomisation by using a PRNG and saving the seed you are using.
It's an open question roughly on par with P vs NP whether true randomisation is ever necessary, or whether PRNGs are enough. So far we haven't found any problem or algorithm where true RNG is necessary and good PRNG ain't enough.
pcmasterr
2 days ago
Also, most (optimizing) compilers ”optimize” the code for a fixed amount of time, leading to better optimized binaries on faster computers. That’s why developers should have as fast computers money can buy!
eru
2 days ago
> That’s why developers should have as fast computers money can buy!
I don't see the connection? Most local builds are done with debugging on and optimisation turned off anyway.
And what you deliver to your customers is usually something you produce on your CI/CD server, not what's on any developer's machine.
(And if you want reproducible builds https://en.wikipedia.org/wiki/Reproducible_builds you can't optimise for a specific wall clock time.)
> Also, most (optimizing) compilers ”optimize” the code for a fixed amount of time, leading to better optimized binaries on faster computers.
That’s why you should give your developers computers that have slow clocks!
FinchNova12
3 days ago
I agree that if you have the weights you can use/train a model with the same architecture, and that you won't get the exact weights on your own due to randomness. But isn't data an extremely important part of your ability to effectively train/finetune? It might be much harder to get close to the level of the open weight model if you don't have the data that made it, which is why I think the open weights vs open source distinction is useful.
monocasa
2 days ago
There's more to open source than reproducibility. For instance introspection which is even more important with weights since detection of backdoors in models is NP hard IIRC.
eru
3 days ago
> (As an aside, this is why the "open weights are not open source" thing is a complete misunderstanding. The weights themselves along with the documentation give you enough to fine tune the LLM. You can't rebuild it from scratch, but you can't do this even with the data anyway (because of randomness!))
They could give you the random seeds? (Assuming you carefully train in such a way to remove other sources of randomness, like concurrent execution.)
alightsoul
3 days ago
Do AI labs even keep track of seeds? They don't even keep the checkpoints most of the time.
eru
2 days ago
It's moot in practice, because there's additional sources of randomness from executing in parallel.
Though in principle saving random seeds is a lot less hassle than keeping entire checkpoints around: your random seeds would fit on a floppy disk or even a tweet. The checkpoint is basically as big as the model.
esperent
3 days ago
> open weights are not open source" thing is a complete misunderstanding
> You can't rebuild it from scratch
There's is extremely clear and misunderstanding-free.
Open weights is not open source.
embedding-shape
3 days ago
> You can't rebuild it from scratch
> It's entirely reproducible from the available documentation
You have a very interesting understanding of "reproducibility", I'll give you that :)
But even with that, there are plenty of technical details (especially in regards to the training process) missing from the tech report that leads to these weights not being reproducible in any sense of that word.
nvme0n1p1
3 days ago
> You have a very interesting understanding of "reproducibility", I'll give you that :)
He was talking about two different things, hence the parentheses. The architecture is reproducible, not the model weights.
embedding-shape
3 days ago
> The architecture is reproducible
But what's the point of even saying that? Of course it is, otherwise how is it supposed to run in the runtimes? You cannot release model weights that others can run, without also releasing the model architecture, it's in the code at the very least...
nvme0n1p1
2 days ago
Because for other specs it's not the case.
The K3 arch can be implemented from the spec.
A PDF reader can not be implemented from the spec.
davidguetta
2 days ago
the beginning of the arguments was good but the "because of randomness" is wild
calebkaiser
3 days ago
Implementing models directly from papers is typically pretty doable (and is of course more straightforward when the full implementation is open sourced). Often there is some amount of specific knowledge, like particular hyperparameters, that is missing and has to be trial and errored by the community, but generally speaking, getting the core model architecture implemented is a reasonable task for most well documented models.
Reproducing the exact training run, however, is basically impossible without the original dataset and training pipeline (here meaning all of the code + infra involved in actually executing the pre and post training loops). Also, it would be exorbitantly expensive to do if you weren't also a lab trying to train a similar model.
But you can still scale the architecture down and experiment as a solo researcher using the published research. There are probably some open source implementations already on GitHub for any given big open model release.
marcyb5st
3 days ago
The exact training run is basically impossible anyway. Randomness plays a role. Even if you fix your RNG seed, in a distributed training scenario like this one some weight updates might come at different times and be included in different update steps. Should have minimal impact on the final outcome, but would still be a different model as some of the weights will differ in the end.
eru
3 days ago
> Should have minimal impact on the final outcome, [...]
I share this expectation. But this is an interesting empiric question that deserves study; even if just to confirm what 'everyone knows'.
pcmasterr
2 days ago
Reproducibility isn’t something that has been considered desirable in many pipelines until recent years.
Heck even ffmpeg introduce randomness when stitching together downloaded chunks from youtube. By design.
eru
2 days ago
Reproducing a stationary probability distribution that subsequent runs draw from is also a kind of reproduction. And presumably for ffmpeg you can fix the random seed? Tell me more about that design, please.
dannyw
3 days ago
The architectures are high level concepts and the mechanics usually have enough detail for you to try and implement.
Transformers are very "mendable" in that you can permute the architecture in crazy or random ways, and still basically always end up with get a coherent LLM. The difference comes down to training efficiency, inference efficiency, and usually minor differences in performance.
Hyperparams and stuff, I mean it's standard to do a sweep anyway.
ModelForge
2 days ago
Good question, it's 100%. I.e., the developers usually share a reference implementation with e.g., Hugging Face transformers to load their weights, and from there on you can read the code and, if you have time, reimplement and check everything. It's actually a great learning exercise where you can self-check whether you reimplemented it correctly by comparing the LLM outputs to the reference implementation. Made a video about that workflow a while back here: https://www.youtube.com/watch?v=TXzQ7PGpO6w
GaggiX
3 days ago
The code is open source, and there probably several different implementations.
pepinal
3 days ago
[flagged]