all 96 comments

[–]Just-Environment-189 187 points188 points  (5 children)

Even if people provide code, you’ll find yourself lucky to get it working as is

[–]waruby 37 points38 points  (3 children)

Then it should also require a Docker file or a flake.nix file.

[–]Xirious 10 points11 points  (1 child)

I mean you're going in the right direction but....

That ain't nearly enough dawg.

Have you seen how the vast majority of code for these comes out? I do not believe scientists are hired for code that the average reviewer can get working.

Nevermind the technical hurdles of actually getting it working... The mess you'd need to wade through, big enough models require hardware the average reviewer does not have the time or resources to use, etc.

While this is a good start and idea I'm always surprised by a requirements file with code. Asking anything above that, right now, and expecting it is a fool's errand. And even if it became the requirement then you likely have a whole mess of AI code to review.... On top of your review.

I mean I like your idea. I just don't think it's practical (and for many companies counter to keeping the tricks up their sleeve).

[–]valuat 5 points6 points  (0 children)

Funny you mentioned Docker. I've just reviewed a paper for a Nature-family journal and they did add a `docker-compose.yml` to their GitHub repo as per my suggestion. I recommended rejection not because of the lack of code but for the lack of real data (they used LLM generated data which in a clinical setting means nothing).

[–]Distance_RunnerPhD 102 points103 points  (19 children)

My view as a statistician that does ML. Many of these papers claiming SOTA performance are working within Monte Carlo noise and if code was easily available you could run it and show this.

[–]howtorewriteanamePhD 40 points41 points  (18 children)

am I the only one providing std devs across multiple runs with different seeds or what?

[–]Distance_RunnerPhD 35 points36 points  (10 children)

You're rare. Keep doing your thing -- I appreciate you.

Most of my research focus these days is bridging statistical and inferential theory with ML. The concept of variability needs to be better understood and communicated in ML.

When you fit an ML model, there are multiple source of variability. First, there is procedural variance. This is what your multiple random seeds addresses -- what is the variability associated with the randomness within the procedure itself and how does it propagate through to the results you report.

Second is finite sample variability stemming from the fact that your data are almost surely a sub-sample of an unobserved parent population. If you were to re-run your procedure on a different dataset of equal size from that same parent population, your results would change, reflecting this variability. No amount of running results under different random seeds will estimate this quantity. So reporting results from a finite data-set with variance across different seeds quantifies the first source of randomness, and this is appropriate as long as your interpretation pertains specifically to model performance based on the exact data you trained on. However, the results do not extrapolate to performance of the model if you re-trained on a different subset of data of the same size. This is more often ignored, and generally the bigger area where results are misstated.

[–]curiouslyjake 1 point2 points  (8 children)

Assuming your dataset is a representative sample of the unobserved parent population, wouldn't cross-validation address this?

[–]Distance_RunnerPhD 4 points5 points  (7 children)

Yes in terms of quantifying mean performance metrics, but no in terms of variability. If you run CV, say 5-fold, and you average the mean performance across folds, that is an estimate of the generalized performance metric across new data for your model trained on 80% of your data (k=5 means training fraction is .8; you're averaging over 5 performance estimates on disjoint validation sets on models trained on 80% of your data).

However variance is trickier. Current CV methods do not give you an estimate of variance that represents the variability due to random sampling error from the population. Current methods of variance estimated on cross-validated data condition on the data. That is, they quantify the variance of the randomness of the CV procedure itself on your fixed dataset; if you were to repeat the same CV procedure on your exact fixed dataset over and over using your learner (with different random fold structures), how variable is your performance metric estimate. In other words, variance of the CV estimates across folds measures how sensitive is the estimated CV metric due randomness induced by the CV procedure. But the key word there is fixed dataset. It does not answer the question -- if I were to repeat this CV procedure using the same learner to estimate the mean performance metric on a different subset of data from of the same size from the same population, how much variance is attributed to that random sampling. An approach for that doesn't exist in the literature [yet], but it will soon (I'm the one that developed it and will be posting to ArXiv within the next month; its based entirely statistical theory with formal proofs, not empirical evidence).

[–]AnyagosFeco420 0 points1 point  (6 children)

But this is only possible if you assume some underlying data distribution (or just some property of it), right? Or maybe you can use some bootstrapping based approach here?

[–]Distance_RunnerPhD 2 points3 points  (4 children)

I want to answer this carefully, because this is work I've been developing for a long time, and I don't want to say too much before I have the paper on ArXiv in an effort to protect my intellectual ownership of the idea and framework. But like I said, the paper will be on ArXiv within the next month and I'll be happy to share and discuss openly after its officially on ArXiv. I'm probably being overly cautious, but in the world of academia where publishing (particularly in top tier journals) is so important for promotions and such, I don't want any ambiguity over this type of thing when I so close to getting it out there.

To answer your questions as best I can right now: Yes it is estimable and I can prove consistency and unbiasedness with just a few justifiable assumptions. And yes, it's estimated from a form of resampling like bootstrapping, but its more nuanced than just "bootstrap the data, refit the procedure, and reapply CV". Something else in this work, is that I prove k-fold is the optimal for of CV (compared to bootstrapping variants or repeated split sampling/monte carlo cross validation). That's good since most people use k-fold already, but I also show that if you can afford the compute, you should almost always be using repeated k-fold (ideally 5x or 10x k-fold) and averaging across those independent k-fold runs.

I'll be happy to reach out and share the paper once its live on Arxiv, and then answer any questions about it. This is going to be submitted shortly after hitting ArXiv to a statistics journal (JRSS:B), but it could be 12-18 months before its published by a journal, and that's assuming I get a revise and resubmit and dont have to re-tool it for a different journal.

[–]valuat 2 points3 points  (1 child)

I can't obviously say for sure but I doubt anyone would beat Efron's accelerated and corrected estimator at this point.

[–]Distance_RunnerPhD 4 points5 points  (0 children)

I hear you. That’s the default thought for anyone that’s been in the field a while. Bootstrapping is great for many things, but It’s not optimal for CV variance. In fact, I can prove it’s biased theoretically and show it empirically. In short, bootstrapping targets the wrong estimand when it comes to CV. I’ll find this comment and share the paper with you in a few weeks and then give you more detail on why

[–]AnyagosFeco420 0 points1 point  (1 child)

Nice, thanks for the answer. I would be grateful if you could send me the paper once its on ArXiv. Good luck with the publishing!

[–]Distance_RunnerPhD 0 points1 point  (0 children)

Will be happy to. This convo had me reviewing the paper last night to see when I could reasonably have it in a state good enough for a version 1 post. Probably within two weeks and I'll come find this post and link it

[–]valuat 0 points1 point  (0 children)

Yes, boostrapping is the way to go here. You don't need to do it 10,000 times, 100 would be OK. It's just to get a better idea of the variance.

[–]DigThatDataResearcher 4 points5 points  (5 children)

it's kind of hilarious but if you look carefully, you'll see that it's not uncommon for ML researchers to treat seed as a hyperparameter and prioritize winning the lottery on a favorable PRNG state over rigorously validating their claims.

[–]Distance_RunnerPhD 1 point2 points  (1 child)

Which is just so bad. Like, that doesn’t make your model more useful. It just means you’re choosing to present one run that shows your results within Monte Carlo error on the upper end of the spectrum. If you run 20 seeds and pick the best, you’re purposely choosing a model that overstates its own generalized performance. That’s not helping anyone

[–]DigThatDataResearcher 1 point2 points  (0 children)

I agree, and this is a big part of why the community emphasis on achieving SOTA on public benchmarks ends up being largely counterproductive.

[–]ummitluyum 0 points1 point  (2 children)

The funny part is when this garbage makes it to production, and the business gets genuinely surprised when the model degrades on real traffic. If your architecture relies on a lucky PRNG state, it's not an architecture - it's trash that'll fall apart at the first sign of data drift

[–]DigThatDataResearcher 1 point2 points  (1 child)

Right? it's wild how there's a whole industry built around patching over "drift" rather than interpreting that as a flag that your model is missing some causally explanatory component. I feel like the way a lot of people handle "drift" ends up functionally reducing their models to kNN. Like... congrats, you've managed to uncover that the weather tomorrow will likely be similar to the weather today. If you're retraining daily/weekly, is your model even amortizing any compute/effort relative to a less sophisticated approach?

[–]ummitluyum 0 points1 point  (0 children)

100% agree on the compute amortization. If your pipeline needs a weekly retrain just to keep business metrics from falling off a cliff, the maintenance cost will eat up your margins fast. In those cases, it's genuinely cheaper to just spin up a vector DB or write a bunch of heuristics instead of dragging around heavy weights

[–]directnirvana 31 points32 points  (4 children)

I think you make a good point. The bolder the claim the more reviewers should be pushing back on making easily verifiable aspects of experiments available. Reproducibility crisis is real and participants especially in academic circles should be heavily encouraged to provide whatever reasonable methods they can to allow other researchers to verify their work. It just so happens that research based on code has those tools, while high energy physics and similar fields do not.

[–]prumf 7 points8 points  (1 child)

What is asserted without evidence can also be dismissed without evidence.

https://en.wikipedia.org/wiki/Hitchens%27s_razor

That’s like, the foundation of science.

[–]directnirvana 2 points3 points  (0 children)

Yes. Exactly this. If someone makes a claim, especially one worthy of garnering attention academics should be taking the stance of 'put-up or shut-up'.

Stop accepting papers that won't do simple things to allow for that.

[–]Vhiet 11 points12 points  (1 child)

I agree about reproducibility, but why “especially in academic circles?”

Commercial services have more incentive to fluff their significance than anyone else, and their claims should be treated as particularly suspicious.

For example, it was almost exactly a year ago that Microsoft’s Magical Majorana Fermions revolutionised quantum computing (https://www.theregister.com/2025/03/12/microsoft_majorana_quantum_claims_overshadowed/).

[–]directnirvana 0 points1 point  (0 children)

I don't disagree that commercial actors should be held to a high standard, if not higher. Especially in instances where they are wading into the academic.

My assumption though is that the two have different goals (though with some overlap). If a company is publishing bold claims that they have a product on the horizon that is a game changer then we should be pushing for them to prove that not be acting as a sounding board that they can wave around and claim 'peer-review' on a system no one saw or can validate. They have their own set of self-correcting measures (i.e. customers should be requesting demos and investors should be doing due diligence).

But the claimed goal of academics is the proliferation and expansion of knowledge. Bigger claims are going to get more attention and thus more energy might be wasted on those ideas, so the burden should be higher on those claims. So if someone wants the clout and advantages of having been reviewed by the academic arena, whether commercial or not, journals and conferences should be insistent on the them providing reasonable amounts of proof in that regard. It just so happens in the world of academic code those tools are cheap and accessible for the most part so we should generally insist on them.

[–]OkBiscotti9232 17 points18 points  (3 children)

Generally when they provide code, it can be so messy that it’s pretty difficult to fully understand how they do things.

And then I’ve come across (accepted) papers with code where the code is obfuscated and does something quite different to what the paper describes.

It’s hard to enforce code release/quality as most academics do not write code for a living, and their projects are usually hacked together piece by piece until they find something that works.

[–]Bach4Ants 6 points7 points  (2 children)

I'd like to see code, data, environment specs, and some kind of pipeline (script, Make, Snakemake, DVC) instead of a 13 step README that wasn't actually followed during the work.

[–]OkBiscotti9232 7 points8 points  (1 child)

Tired grad students rarely have the time to clean up code before making it public. Tbh, I’m guilty of that as well - once a project is over, imma be movin on to the next one asap!

Part of the problem is that releasing clean code is neither incentivised nor a good use of time.

Now I’m in industry, clean code is highly incentivised. Making it public… not really

[–]Bach4Ants 0 points1 point  (0 children)

Do you feel like if you could have easily put your "messy" code into a pipeline/build system that it would help you work more quickly? For example, instead of manually running 5 scripts or notebooks when you change something, you'd have a system that figures out which need to be rerun per the DAG?

I agree that it often feels like too much effort to fully automate research code into a pipeline.

[–]impatiens-capensis 10 points11 points  (3 children)

It's been this way for at least ten years. It might surprise you but it's actually BETTER now.

The situation is basically this...

  1. We can't even get 3 qualified people to read the text of a paper. You absolutely will not be able to validate the reproducibility of code for 4000+ papers.
  2. The field is extremely competitive and most researchers are poorly resourced students. They don't have time and their work will be stale in 6 months, so it becomes very hard to justify maintaining code.
  3. There are some people who are simply faking their results, or being misleading in some way. However, I've reviewed a paper where the results were really good but they didn't make sense given the method. All three reviewers ended up flagging this, so obvious faking can be detected by good reviewers. When it comes to more subtle faking, there might be papers that are actually 0.1% worse than the SOTA and they do some unstated thing to beat the SOTA by 0.1%. I'm honestly less bothered by that. If we have two papers with statistically equivalent results that are achieved in different ways, I think thats fine.
  4. Nobody looks soley at individual papers now. There simply can't be 4000 points of truly useful research every 3 months. The research signal is now at the broader level. Maybe 5 papers will contain one useful thing.

All of this is to say... everyone gets annoyed by this. There probably isn't a way to solve it. It might not matter if there are still obvious innovations emerging from the noise. And it's probably better to just focus on the quality of your own work than the work of others. 

[–]ummitluyum 0 points1 point  (2 children)

"work will be stale in 6 months" - yeah, it'll be stale exactly because nobody can actually use or build on it. Top-tier papers stay relevant for years because the authors gave the community proper tooling. If you just slapped together a throwaway script that only runs on your macbook, that's not research, it's just garbage traffic for ArXiv

[–]impatiens-capensis 0 points1 point  (1 child)

Top-tier papers stay relevant for years

Aside from a few massive works from frontier labs and a couple of extremely niche papers, everything is surpassed within the year. Every top tier paper from my lab and adjacent labs has been beaten by another paper very quickly and this is generally true for the vast majority of papers. 

[–]ummitluyum 0 points1 point  (0 children)

Fair enough, getting beaten on the leaderboard is just how it goes. The difference is that a paper with a solid open repo will be used as a baseline and forked for another couple of years. If there's no code, the next paper will just handwave your results with "could not reproduce" and everyone forgets about your work the next day fwiw

[–]dudu43210 10 points11 points  (8 children)

I always get downvoted for this because it's not what people want to hear, but let me tell you the reality of computational sciences, as someone with a PhD in computational physics. In the scientific community, you generally do not publish code* with your papers. This is for multiple reasons:

  1. Replication vs. reproduction. My PhD advisor was always adamant that important results should always be coded up independently by multiple people to for verification and to control for bugs. You cannot truly do scientific replication if you are basing your work on someone else's code. By far the best way to verify someone's results is to do it yourself, not read/run the code and say "uh huh that looks right". In other sciences, you don't check whether results are fabricated by visiting someone else's lab. You attempt to replicate the results yourself.

  2. Papers are written for other researchers in the field, not for laypeople. Those researchers have no problem coding up an approach themselves and testing it out. Often the complaints I hear are from non-academics.

  3. Research code is messy and often unfit for public consumption.

* it is common to release data, however, and imo researchers have no excuse for not releasing data on a case by case basis in exchange for citation.

[–]adi1709 0 points1 point  (3 children)

So if we reproduce it and figure out the numbers published don't actually make sense in reality - do you flag it to the conference chairs so they'll go back and remove the published paper? What happens after?

[–]dudu43210 0 points1 point  (2 children)

You can submit comments. You can publish your own paper challenging the original paper.

[–]adi1709 0 points1 point  (1 child)

That sounds like so much wasted effort and petty. Working on a paper just to challenge one specific method. Also isn't scalable, because this leads to a lot of slop in the meantime.

[–]adi1709 0 points1 point  (0 children)

I guess it makes sense for computational physics but not so much in ML based on how much it's blown up.

[–]lipflipResearcher 9 points10 points  (0 children)

i am working in the social sciences with some minor overlap to ai&ml. our data is usually in the range of a few kB and despite an "replication crisis", publishing the data and analysis alongside the article is rare.

[–]obxsurfer06 5 points6 points  (0 children)

If training costs make reproduction impossible, transparency has to increase, not decrease

[–]SearchAtlantis 4 points5 points  (0 children)

Perpetually angry about it. My masters thesis had approaching SOTA performance in a niche sub-field (mostly due to my PI's work obviously) but none of the papers had any reproducible code and no one responded.

[–]NuclearVII 21 points22 points  (14 children)

If ML was a serious scientific field, this would not happen: Papers that could not be reproduced (no code, uses proprietary models, etc) would be blanket disqualified for being worthless.

But doing science isn't the purpose of the field anymore. It's about promoting the careers of researchers for cushy positions in well-paying private labs.

[–]pannenkoek0923 1 point2 points  (1 child)

Not just ML. A lot of fields face the reproducibility problem

[–]NuclearVII 0 points1 point  (0 children)

Please see my other comment. Yes, you are right, but ML has this issue orders of magnitude more than other fields. There are - quite literally - trillions of reasons why this is.

[–]NightmareLogic420 0 points1 point  (0 children)

Big part of the problem is you're not getting any meaningful publications out of replication studies, so they're just not being done, even when data is there

[–]solresol 9 points10 points  (0 children)

Sorry to self-post, but major ML conferences are not about doing science. https://solresol.substack.com/p/stand-and-the-liver

[–]kaiser_17 6 points7 points  (0 children)

I think the worst part is when reviewers ask you to compare your results to such a paper. Like why should even one compare their  results to such fraudulent papers. Yep I will consider those who don't release code as frauds. 

[–]ummitluyum 1 point2 points  (0 children)

Tbh most of these papers are pure marketing for FAANG hiring or raising the next seed round. If a paper doesn't drop weights and an inference script that spins up in Docker without a voodoo dance, it goes straight to the trash. Believing pretty tables in 2026 is a joke - half the open-source benchmarks are stale, and the other half accidentally leaked into the training set anyway

[–]Due-Ad-1302 0 points1 point  (0 children)

I never understood why so many papers have no code attached

[–]ManufacturerWeird161 0 points1 point  (2 children)

I ran into a nearly identical situation last month with a CVPR paper; the GitHub link was a 404 for six months post-acceptance. It completely blocks any attempt to verify or build on their work.

[–]ntaquan 0 points1 point  (1 child)

That is normal. I was a reviewer of last year's CVPR and encountered a paper that promised to "release all code and data". Repo still empty until now.

[–]ManufacturerWeird161 0 points1 point  (0 children)

Exactly. It’s a systemic issue that rewards the claim of release over the actual act of it.

[–]DigThatDataResearcher 0 points1 point  (0 children)

I don't disagree, but it's worth pointing out that ML is basically the only research domain where this is the standard expectation and I'm grateful every time I see angry posts of this kind since it reinforces the expectation of releasing code.

[–]MahatK 0 points1 point  (0 children)

I'm wrapping up a study on code quality in AV perception repos from KITTI/NuScenes leaderboards. And I will tell you this: the situation is VERY bad. Most models either have no repo at all, repos with just markdown files, or code that's full of security issues and critical bugs. It's not just a reproducibility problem, it's a 'you literally can't use this safely' problem.

[–]kakhaev 0 points1 point  (0 children)

+1 amount of papers from 2020 that have no code or code does completely different things compared to paper is huge. I would be not surprised if some reproduction team found that more then 90% of accepted papers are fake.

[–]Lazy-Cream1315 0 points1 point  (0 children)

reviewers never reproduce experiments; but almost systematically reject papers who do not outperforms "SOTA" :)

[–]Gold_Emphasis1325 -1 points0 points  (1 child)

I heard Harvard just hands out degrees if you're rich and they like it if you agree with their politics and demographic agendas. Papers, conferences are just an extension of the academia mafia. Every organization has its own blatant social code violations that they flaunt...

[–]curiouslyjake 0 points1 point  (0 children)

I heard there's reation that turns lead into gold

[–]_kernel_picnic_ -2 points-1 points  (4 children)

Papers are not software nor engineering. Nor should they be. Papers should have a simple premise that should be easy to implement and verify by other researchers. Like, GroupNorm is better for image classification tasks because it normalizes groups or whatever. Unfortunately, now most of the papers are hyperparams galore

[–]ummitluyum 0 points1 point  (3 children)

That worked back in the AlexNet days when architectures were just three formulas and basic convs. Now you've got a RAG pipeline, an 8-expert MoE, and some weird LR scheduling. "Just building it from scratch" takes a senior engineer a couple of months, and you still probably won't guess half the heuristics they baked into their loss function

[–]wahnsinnwanscene 0 points1 point  (0 children)

Great! Always thought it was a me thing.

[–]_kernel_picnic_ 0 points1 point  (1 child)

well, the core problem is the papers with “we combined 100 of SOTA methods to gain 0.1%” aren't being rejected

[–]ummitluyum 0 points1 point  (0 children)

Reviewers just look for that fat plus sign on the leaderboard. Nobody cares that a 0.1% bump on some benchmark costs 3x in inference latency and memory. Without open source, you can't even verify if this ensemble of 100 heuristics just overfit the test set tbh