5 ms·
What I hate about the current ML space is that half the time is spent trying to get dependencies installed and set up correctly to match whatever project you're
by matsemann 4y ago
What I hate about the current ML space is that half the time is spent trying to get dependencies installed and set up correctly to match whatever project you're trying to run expects. Everything is just so brittle. Following tutorials like these never work out of the box.
- 8f2ab37a-ed6c 4y agoWhat is the solution? Is there a reason why things are not better? Can all of the deps be loaded in a Docker image and be done with it?
- Kuinox 4y ago> What is the solution? There are languages ecosystem that solved these issues and never have a problem with it. Look at it, and copy their tooling.
- dismantlethesun 4y agoWhat are some of those ecosystems?
- mattkrause 4y agoJulia's package manager has basically never failed on me.
- dismantlethesun 4y agoThanks. That’s something to look into then.
- adgjlsfhk1 4y agoNote that the Julia package manager (while very good) is very similar to (and largely inspired by) the rust package manager.
- obert 4y agobasically never, or never? ;-)
- Kuinox 4y ago.NET with nuget works flawlessly, compared to bad package managers.
- wizofaus 4y agoIt's pretty good but certainly not flawless. Admittedly I probably don't have high standards. Cocoapods is one of the few I'd consider objectively "bad", though apparently among iOS developers it's considered one of the better ones (!).
- Kuinox 4y agoThat's why I said "compared to bad package managers." NuGet works, have flaws, sometimes doesn't works, but is usually reliable. On the other hands, I lost a lot of time with npm, and also a lot with pip.
- matsemann 4y agoOne thing is python's dependency management is just insane in itself. When you then additionally have to have it install basically drivers for the gpu, compile loads of native code etc it becomes a hot mess. And half the ML things you want to try are academic experiments not really made for distribution, so they were made to work and that's it. So if you have some different computer setup, minor version mismatch of a dependency etc it will just break. Datasets or models excist on some url that only works for a month. It's a shame, I think the field is one where reproduction of results should be really welcome and feasible. Yeah, a docker image would be nice. Even a Dockerfile, even though that in itself may not guarantee reproducibility if you try to build it later. (And may have issues with gpu drivers etc). But at least it documents all assumptions about the setup.
- dicknuckle 4y agoThat's the cool thing about publishing the Dockerfile and an image, one is an example that may or may not break, and the other is a functional snapshot of a working config at that point in time.
- cellis 4y agoNo. This would take a very long post to explain why, but in short, it depends heavily on which NVIDIA Cards / CUDA drivers / versions of Linux you're using. Or you're running on AWS GPUs or TPUs and paying a lot more either in the form of straight up dollars or optionality.
- jollybean 4y agoCloud services. Someone sets it up, leases out instances etc.. Or someone works to ensure that everything gels together and provides support etc.. Or in other words: 'products'
- zionic 4y agoWhat I can’t stand is the incessant paternalism that seems to surround AI from big tech, I got access to DALL-E a few weeks back (after a waitlist… come on) and tried it out. They want all this personal info to even access it, and then they have this oppressive “content policy” that removes anything remotely fun. For example I tried “Trump riding a velociraptor on mars fighting aliens” because why not? Sounds hilarious. Turns out any query with the word Trump is banned and I got a warning about “repeated violations might remove my access”. It’s not just trump, anything remotely non-corporate-friendly is heavily filtered. Don’t you want to just make images of a cute teddy bear made of pizza instead?! I’m just so tired of it all. It’s like the puritans of the 1990’s won, but they’re corporations now. Personally I think they can shove that nonsense up their ass.
- dismantlethesun 4y agoI think they have a blanket no celebrities or real living people policy for their engine. I think that’s fine since they don’t want to be called out for helping produce defamatory content. They just want to avoid bad PR. That’s sound safe.
- Miraste 4y agoIt is to avoid bad PR, but in the name of marketing they've produced the worst content policy I've ever seen: https://labs.openai.com/policies/content-policy https://labs.openai.com/policies/content-policy Highlights include: -All images must be "G-rated" >Any prompt referencing politics, violence, sexuality, or even the concept of "health" is banned >This does occasionally include the very same LGBT themes their "hate" rule ostensibly protects, although not consistently, so there's no way to know whether an LGBT prompt will cause an account strike >In practice the list of bannable offenses is much longer than this, and includes everything from the concept of death to anything violence or politics-adjacent (e.g. nothing about war, conflict, or any kind of weapon) >OpenAI refuses to share this list because it's part of a "contextual" filter, even though it demonstrably bans words They advertise DALL-E 2 as artistic, but it can't make art with restrictions like this. The best it can do is corporate content farming, and even then there's no way I'd make part of my marketing pipeline depend on a service this fickle.
- breakds 4y agoWhich is why I am using Nix to maintain my development for each machine learning research project.
- substation13 4y agoI'm interested in how this works with hardware specific code? Can Nix detect host hardware and build for that?
- dicknuckle 4y agoWould also like to know. I'm playing around with 32 bit x86 stuff again.
- dvh 4y agoIt was exactly the same with voice recognition and synthesis software. Those are complex apps, often born in academia with obscure dependencies.
- travbrack 4y agoI recently went through this and conda handled the python deps pretty well, but the nvidia cuda stuff was a massive pain to get the right things installed. I think it’s safe to blame nvidia.
- tbalsam 4y ago> conda
- tbalsam 4y agoIt seems I may have stepped on a few toes here. For a lot of ML engineers I've talked to, conda is a living nightmare if one tries to go beyond one project (or maybe multienvironment) on one machine. Sometimes even one is a problem. I don't think I've talked to a career ML engineer yet that has had a positive work experience with conda, that I can recall. Usually the question has been a good way to trauma bond, which is always good. It seems like this is more an academic kind of thing?
- tbalsam 4y agoI'm not so sure about this...I guess maybe there's some project specific stuff, but the good projects are semi stable and oftentimes it's just PyTorch code that you can pull and use elsewhere if needed. Other people's infrastructure always seems bad to me, as I'm sure mine does to others. The cycle and circle of life! :D
- jimbob45 4y agoWhat I hate about the current ML space… You’re implying it isn’t like that for every language/framework. I’d love to know what you’re working in where the dependencies aren’t always a problem. Even Carmack has complained about this.
- matsemann 4y agoNever had an issue running a random java project, for instance. Either because people package all dependencies. Or because maven, while not popular, mostly just works. Of course, ML is a bit different in that it often needs more drivers/gpu setup. But there are loads of ecosystems that don't assume you have package X installed on your system, like python's does.
- ralusek 4y agoNode has such an easier ecosystem than python IMO. I really hope the move of ML from python to JS continues.
- QuadmasterXLII 4y agoWhat's node's GPU acceleration story?
- ralusek 4y agohttps://www.tensorflow.org/js/guide/nodejs https://www.tensorflow.org/js/guide/nodejs Tensorflow JS running on GPU/CUDA in Node.
- curiousgal 4y agoDoes npm still create 10000 directories?
- ralusek 4y agonpm downloads the dependencies that you install.
- speedgoose 4y agoNo. Only 1000 these days.
- Sohcahtoa82 4y agoEasy? Maybe. Sane? Absolutely not. Though I suppose it's not really Node's fault that developers are importing modules like "leftpad". What's really fucking insane though is that there are modules like "trim-newlines" [0] that exist merely to trim \r and \n from the beginning and end of a string...and that this is such a hard task to get right that it's in version 4.0.2...and that a previous version had a security vulnerability [1]. [0] https://www.npmjs.com/package/trim-newlines https://www.npmjs.com/package/trim-newlines [1] https://www.cve.org/CVERecord?id=CVE-2021-33623 https://www.cve.org/CVERecord?id=CVE-2021-33623
- tiborsaas 4y agoNot sure if this is unique to ML, I had the same experience with C++, Rust, Linux tutorials and and a bunch of other technologies.
- phaedrus 4y agoI definitely have the same experience trying to get C++ game dev libraries running. Trying to wrangle a bunch of open-source library dependencies into mutually acceptable versions whilst also keeping up with (intentional, or unintentional) operating system breaking changes is a never ending steeple chase.
- whywhywhywhy 4y agoI feel like this is getting way worse the past 3 years and I also feel that's intentional.
- divan 4y agoThat's the reason why I avoid using Python as much as possible (while I really like the language). Another reason is massive stacktraces everywhere instead of a meaninful user-facing error messages, but that's a smaller cultural thing than dependencies hell.