Ask HN: What does an ML Engineer do?
I have a few years of experience as an ML Engineer, however I recently changed jobs and I was shocked to learn that my new employer has a very different job definition for ML Engineer than the one I was familiar with. I thought that the standard definition of an ML Engineer is an engineer who specializes in building machine learning models, essentially a subtype of a data scientist. At my new company, an ML Engineer is someone who supports ML models but never works on machine learning directly. At this new company, ML Engineers are Data Engineers who support machine learning applications.
What is the generally accepted definition of an ML Engineer?
42 comments
[ 3.3 ms ] story [ 106 ms ] threadML Scientist and Data Scientist versus ML Engineer and Data Engineer.
Ex ML Engineer at a company.
Either its an expert at building and training ml models, or its an expert at putting ml models in production.
- Helping with feature engineering at scale
- Putting models into production
- All of the environmental stuff (Framework versions, security patching, etc)
- Monitoring models and model drift
- Supporting hot/swapping models with zero downtime
- Model persistence, A/B testing and evaluation in production
- Distributed hyperparameter tuning
Kind of interested how you got hired to a completely different role though and how that didn't come up in the interview.
Imo unless you are a rich company or have a well funded research arm, it mostly seems wasteful to make someone's job pure modeling.
More generally, in order to provide useful solutions, you need some domain and data expertise, which tends to come from engaging with product, the business and the data.
If you don't have that, you may as well replace your modelling team with a giant loop over the sklearn fit and predict API.
Job titles do not have consistent meaning across regions or industries. People use buzzwords and hype to recruit funding and talent.
You've learned an important lesson: use interviews to gather information about companies and teams. "Can you describe in broad strokes a typical project for this role?" is a perfectly reasonable question to ask a hiring manager.
I was an ML engineer, and to me it was far more about data management/cleaning than nitty gritty algorithms improvements, but that's definitely not industry standard.
I've also found "Product Engineer" job listings to range from essentially just a backend engineer to a product designer who codes.
What I am finding out is that this is a very large team of data engineers who are attempting to graduate to ML engineers, but I'm not sure how familiar they are with this space. The purpose of their organization seems to be to support an offshore data science team in Singapore.
Basically every company have their own definition. For some companies, a SRE is just a traditional software engineer who happens to know how to use Kubernetes, where for others, a SRE is a "modern systems guy", with focus on IaC and automation.
Guess you're experiencing the same but regarding ML.
The deployment of ML is still per-paradigmatic in that people today deploy products based on luck, blood, sweat and tears. Many projects fail and many more never get started.
I am sure that somebody somewhere had a team that gets results consistently, I can partially picture what it would take to do so, but that's not the usual condition. (That team is so productive that it doesn't need to hire more people!)
For instance, you might not want to do any of these things, but any of them could be essential to putting something in production:
Many teams fail at ML because there was an essential task that nobody wanted to do that didn't get done.People who do these things today will be able to say tomorrow that they were part of a successful team. Other people will expect great praise because they diddled around with Word2Vec for a summer.
Some day the social structures will be in place and they might have a role made for you that will make you productive but for now you must ask: who do you want to be?
If it were my business or my team I would want an ML Engineer to relentlessly knock down any barriers to getting models into production.
My favorite is when they knock down the question of whether a certain project even needs ML to focus on getting ML into production.
Many teams fail at ML because there was an essential task that nobody wanted to do that didn't get done.
Many teams fail at ML because there was a task that didn't need ML (or at least anything more than a linear model) that is made opaque to anyone but an ML engineer after they implement it.
Ah, the 50's era sweatshop mentality! Most excellent. I would fire a person who wasted days doing such a stupid operation. Take 10 minutes, do some research, find a better way. Spend some company money to get it done today. If you can't figure a good way, start asking up the chain.
In the end, ground truth data is almost always going to originate from humans putting in man-hours to create it, one after the other. Whether those humans need to be ones that are paid ML Engineer salaries for this is an important business question, but someone will have to do the work.
People complained about the cost of getting an expert to cough up secrets about their thought process in the 1970s.
The essential problem is not different in magnitude with ML because you need to design the classification to be solvable and then get the right answers for many hard cases.
From an academic perspective ML is advantaged in that multiple people can train algos on the same data, which leads to a certain kind of progress through competition.
When it comes to most projects where you need the model you have to supply your own training set. Sometimes there is a download or a weird trick, but that conversation that ‘we can’t afford you to make the training set’ leads to bad outcomes:
one ‘expensive’ person who could get over the stigma of doing what they think is menial, be 4x as productive as an imagined ‘cheap’ person and then the team can move on to other tasks that are necessary and unglamorous.The team can still win the game by default in 2021 because your competitor thinks it is too good to do those things.
On smaller teams, the titles mean less - but I rarely see ML engineer positions for small teams.
ML involves both science and engineering. ML engineer by definition sits on the engineering side of the fence, but how much of the science they are involved in will vary by company.
Meaning, does not push the train button and watch loss curves?
What's out of this role's scope at the new company?
I would also say the ease of implementing a forecasting solution on a given dataset is inversely proportional to the value it provides. They're mainly useful for situations in which there are either too many independent time series for a group of human business analysts to track, or for situations in which the target variable is unruly for some reason. For forecasting problems that are simple enough to be modeled by state space methods or BSTS, those methods won't be able to provide results that are all that superior to what an experienced analyst could produce, since the series data itself is already quite predictable.
Edit: Also, there is no one-size-fits-all approach when it comes to time series, and anyone who tells you differently is trying to sell you something. Time series is weird within ML because each dataset has unique properties that necessitates the use of potentially wildly different modeling techniques.
There's the classic "inspired from manufacturing" approach where you have production targets for your factory, and your planning tool decides how much to purchase from suppliers, and when. Transposed to retail sales, you obviously don't have production targets, so you use forecasting (usually average or median forecasts, daily or weekly), inflate the amounts a bit for "safety stock", and pretend that the forecasts are the targets. You'll usually notice this is the case if the retailer has a Forecasting department that is separate from its Purchasing department, and forecasts are judged on a metric that compares them to actual values (rather than on the outcomes of the decisions made based on them).
Once you allow your forecast method to return something other than time series, you can adapt it to the actual supply chain, and you have a lot more variety depending on how purchasing (and pricing!) decisions are made.
For instance, if you order every week from a given supplier, you instead want to forecast the total sales over the coming week, given as a probability distribution ("there is a P% chance of selling more than Q units). You can then use the actual dollar costs of not having enough units (the margin of a single sale) and of having too many units (storage, carrying and opportunity costs). This lets you optimize dollars instead of how close the forecast was to an actual observation.
There are many levers that can be driven by forecasts, such as raising prices if there isn't enough inventory to serve the demand before the supplier's next delivery, or lowering prices to make room in a warehouse for higher-margin products, or selecting which product appears on the front page of your e-commerce website or in the default position of a configurator drop-down.
There are also limitations, usually around data availability. I would say most companies _that can pay for forecasting development_ have an extensive history of sales data. However, you likely also need information about suppliers (how long do they take to deliver?), about historical stock levels (this product sold zero units over an entire month, was it because it was out-of-stock, or is this a relevant signal for our forecasts?), about price changes and promotional events (usually to explain a sudden jump in sales), and so on. These are not always available. And then, there are entire industries (such as fashion) where individual products never have more than a few months of historical data, because there's a new collection coming out every season.
If you're interested, my employer is producing a "Supply Chain Lectures" series on YouTube which deals with forecasts among other things (but really, the idea is to look at supply chains as a whole, instead of just forecasting): https://www.lokad.com/lectures
I've worked in environments where ML engineers were "data science plus", and those were really unhealthy work environments - it ended up feeling like a prestige war with lots of cookie licking and turfing. When you're at the point of needing differentiated roles, you really need someone to focus on infrastructure to deploy ML models and someone else to focus on managing stakeholders, wrangling data, and developing proof of concepts.
Without the PhD, I feel like you're just a data jockey. Just clean the data and create APIs for the PhDs and consumers to use.