Ask HN: Is making a self taught transition to AI/ML related fields possible?
Graduate school looks to be like way to much of a time and money commitment right now. A ton of this academic content seems to be free online anyway. I got into software with free content and classes online.
I'm wondering if anyone has had success moving into this field, for a generalist engineer? I'd imagine advanced degrees aren't required for everything? ML infra and stuff, perf/optimization work etc... Maybe learning materials, resume and interview advice etc? Thanks in advance if you have an interesting answer!
64 comments
[ 3.1 ms ] story [ 135 ms ] threadEasiest way to get into that work, in my opinion, would be to take a data engineering job on a team that has an AI/ML capacity and then start learning from that team and taking on some of the AI/ML tasks directly. Alternatively, you could take a role at a smaller business that needs a generalist but also wants to invest in AI/ML (though in this case you will be more on your own to self-learn and it won't work quite as well for stepping stone into a more pure AI/ML role).
One thing to watch out for is being too far from ML at an ML-heavy company. Those places often have plenty of devs doing frontend work, integrations, etc. but those roles are not so different from similar roles at non-ML companies. Being awesome at typescript isn't going to help you shift to ML work. You want to be as close to the ML folks as possible: data engineering, data science, ML platform, etc. A common theme there is python, so get very comfortable with the language and ecosystem.
https://www.edx.org/course/columbia-engineering-machine-lear...
Software engineers by and large, can make great AI/ML practitioners - the specialization is a smaller leap than say from business analysts or any folks who're less likely to be able to install their own OS or automate task with scripting.
What a great use of that term.
[1] https://en.wikipedia.org/wiki/MacGuffin
So, what not to do - provide some 50-slide online project presentation with a complex summary description.
In the absence of professional experience, what I'd suggest is to build some impressive ML/AI projects, ideally something with a running data pipeline in the background, and put them up online along with their source code. Something like this (below) would really catch my eye on any resume, and would definitely generate some click-throughs and interest. If you could then go on to explain how you single-handedly built out the data pipeline, handled and parsed LARGE volumes of data and what you used to generate the output that would be a great step.
You could even game it, by doing a later public analysis of all the click-throughs and interactions, which would be really impressive.
"May - Aug. 2023 - Built out MyStockForecast.com, which delivers a daily forecast for 500 tech stocks using an XGBoost model, and a continued retrospective analysis.
Url: MyStockForecast.com Repo: GitHub/blah/MyStockForecast "
The issue isn't that it can't be done -- in fact, the greatest need right now is for engineers who can come in and build rock solid real world applications on top of commodified neural network architectures and weights, not PhD scientists. Your business might not even use its own ML model! You might just be calling an API.
The challenge is that for a few reasons, it's a very crowded market right now. A lot of people want to make a move into AI, yet for all the hype, the space of viable commercial applications that will survive without indefinite VC funding remains kinda small. Look how AVs are doing after billions and billions in funding chasing one of the most lucrative commercial possibilities imaginable. There's really cool stuff happening industry-wide, and commercial potential is growing, but nowhere near as fast as the cultural hype that has infected certain parts of tech space these past 12 months or so. Plus, many experienced ML engineers and scientists have been dumped back into the job market due to layoffs. So from the hiring side right now, for every AI posting there are tons of applications that have the cool portfolio, and then also a relevant degree and/or prior experience.
That's what you're competing against, so if you're going on portfolio alone it's got to be really outstanding. Way beyond doing the homework for a free course. Learning how to build an ML service that solves an actual problem in the real world reliably enough that you can actually use it should be the goal.
If you happen to be employed at a company where there is a need for an ML engineer in some capacity but no availability (hiring is expensive!), you can try stepping up to help out. Hiring challenges aside, it is absolutely possible to learn on the job the engineering skills needed to, say, build ML infra or work as part of an MLOps team. I recognize that's sort of just up to circumstance though. If you look for a new job, be a little wary of any that want to hire you for a more mundane task (like data entry/cleaning/labeling) with a promise of getting to do the ML engineering stuff, too, "eventually". Such roles do exist but it's also a bait-and-switch tactic.
Anyway, that's what I've got as someone who has been thinking about how to help people looking to do what you're doing, but i hope this thread turns up more ideas too.
That's because the field of ideas on how to use ML looks like a desert with a lonely oasis of chatbots.
This, all day, everyday.
Actually coming up with a new model? I am not sure, maybe not.
I'd say someone with a decent background in that could make the transition easily, especially if they brush up on a few of the hot topics, "feature stores", "model repositories" and of course wandb.com - which in many people's mind is mlops.
I don't know if that's how you get the big bucks, I don't work in that type of world. But having the skills or inclination to actually deploy an LLM as a working system much in the same way you would, say a normal web service, does seem to be in high demand right now.
When you train small models on small datasets you get very bad out-of-distribution results, but when you use these LLMs they have already seen everything on the web so they are not as often OOD.
Even though I'm not a formal researcher, I've been able to contribute to research projects and be included in papers because the field is so new.
The most important criteria I look for when I interview applicants is what they have built. Github repos, papers even cool Product Hunt projects can have impact.
How do you know the extent of their contribution? Maybe the project was cool but the applicant only had a marginal participation.
I prefer to ask a few comprehension questions that focus on concepts we use every day on the job, like what's the cost of doubling the sequence length for GPT models, or what is cosine similarity and its applications. They should demonstrate they can operate in this space and have a good grasp on the basics.
Yes, absolutely doable. Immerse yourself into learning things well. Learn the basics. Don't do course hopping & book hopping - pick a rock solid book or lecture series, devour it & get building. The last part is the most important part.
People with ML MS/PhD only have an additional (1) degree & (2) networking. If you invest time, you can overcome (2) by asking good questions in Twitter/Reddit & making connections. I still do it after finished my degree. Twitter is the Linkedin for ML.
As for (1), YSK that most advisees are getting advised by professors who made it big before deep learning took off. So everyone is still on the learning curve of sorts - advisors, advisees and your peers. Sometimes student's intuitions could be better than the professor's. Don't sweat over it. Focus on building.
I was working in the web and infra and feel a lot of it is solved in a way.
> machine learning that are not related to advertising, consumption, back office efficiency,
Im kind of at the point where most companies I think have products ill never be thrilled about (as long as its not a negative on the world/unethical), technical problems are interesting though so I look for that
But if you, like me, are happy to be an “understand and implement the paper” person instead of a “co-author the paper” person, that is eminently achievable via self-study and/or adjacent industrial experience. In fact, it’s never been easier as world-class education is more available on YouTube every day.
3Blue1Brown covers all the linear algebra, calculus, information theory, and basic analysis you need to get started. Ng and Karpathy have fantastic stuff. Hotz is writing a credible threat to PyTorch on stream/YT for the nuts and bolts accelerated computing stuff. Kilcher does accessible reviews of modern stuff. The fast.ai stuff is great.
This is all a lot easier if you can get a generalist/infrastructure role that’s ML-adjacent at a serious shop (that’s how I got exposed), but there’s enough momentum in open source now that even this isn’t a prerequisite.
I say fucking go for it, and if you want any recommendations on books or need someone to ping when you get stuck, feel free to email.
Thanks for the encouragement, yeah books would be interesting too.
In the loop of voice -> agent -> voice, the cartel left only one edge out.
Voice to text/latent? Whisper is good.
LLMs? They’re everywhere. LLaMA 2 is practically state of the art and it’s licensed for commercial use.
Latent/Text -> voice? Best you can get open is T5, which is ok, but it’s no Voicebox or whatever. They launch new SOTA’s every month or two, but no weights, no code.
Stay dangerous. You want to work on that? I’ll do it with you.
On books, to get up and rolling I’d recommend Raschka, Liu, and Mirjalili.
The one even the PhDs should re-read is MacKay.
It’s all very cool and you definitely don’t need anything at all to do any of it.
That being said, let's not fool ourselves that going from knowing nothing to being pretty good at the stuff requires some formal, structured education. Programming is much more of a craft than it is either an art or a science and the field of AI is no exception.
I think of it like the gym. You could get in there and start something tomorrow, but unless you've been taught good form there's a good chance you'll injure yourself.
1. Find the best 1,2 courses for AI/ML At the time the Udacity self driving course was a great course from a basic Udacity ML intro course to a full system that
2. Allocate 2-4 hours a day for this. This is a heavy course and a lot to learn so you have to work really hard to get this done.
3. Final project should be impressive to people int he field. So for example I implemented a YOLO alternative from their paper. You’ll have to do something similar and show results.
Then getting a job is a completely different skill and you’ll be looking at a job on the margins. Keep backup options in lower pay jobs in startups or in non tech companies if your dream jobs don’t pan out.
It could take 6 months to 9 months to understand the content and then 6-9 months to get a job. IF you are okay with that … then do it.
Having ML + software eng background is really good spot to be in.
ML Infra is just Infra, with a different set of needs and issues than say, Spring Boot infrastructure or something. Self taught here is fine, and honestly I'd trust a software engineer with basically no experience to handle ML infra better than an ML researcher.