Article | OneFlow community

After the AI/ML boom, many engineers follow the trend of learning new technologies, coupled with the lure of high salary, many of them jump into the pit of machine learning research/engineering positions, but after entering the pit, they realize that it is not as good as they imagined. Do you feel the same way?

Recently, a Reddit user named @hedy-M, who has been working as an ML engineer for a year, joked that he thought ML was his dream job because so many people were rushing into the field because they were “cool”, “smart” and “highly paid”. But now, he’s decided that money can’t buy me happiness and is ready to leave.

Is the reason that he gave to see loss curve, characteristics and parameters adjustment of work was too expend energy, too boring, especially the production of the model, when they did not produce the desired effect, he will can’t help but think of themselves as long as enough effort, the model will become effective, but often backfire, the ML model effect is subtle, project delivery difficulty virtually let him pressure, He now hates machine learning jobs where he spends hours banging his head against “junk data.”

However, he is working on the idea of being a software engineer and feels he will have more fun working on purer programming and engineering tasks.

After he complained, there were ML “abandon pit” group, MLOps “true sweet” group and technical more not pressure body group gave their opinions, some advised him to give up this idea, it must be crazy to do so, some advised him to jump pit to do their own interested in software engineering, and some people suggested to use MLOps tools to help him reduce the current work pressure.

For a time, the three groups each express their views, a meal output, it seems that the engineer at a loss……

1

Machine learning “pits”

In fact, @hedy-M’s complaint is common in the ML world. Netizens from the “Ditch pit” group expressed sympathy and urged him to pursue a career in software engineering.

Basically, many machine learning projects require a lot of running around to get resources and data, and you need to do time-consuming data processing, but ultimately the success of ML projects depends on the data you have and even luck. It’s always frustrating when models don’t work as expected, and you take full responsibility for that.

According to Reddit user @Knighttoken1, if you’re starting to solve an impossible or very difficult problem, trying different ML models doesn’t work no matter what (at least ML isn’t the solution). In a project like this, it is hard not to relate personal values to model performance.

“It’s easy to work 14 hours in ML, lose friendships, social life and health, and still end up with nothing” 🙂

In addition, most ML engineers use well-known models or reproduce other papers on a daily basis, so the creative space is limited and it is difficult to obtain a sense of accomplishment. Some people believe that Phd is still necessary to do research in order to make good achievements in machine learning. Life is great when you’re a milllion, easily churning out relevant papers, but there’s also pressure to be influential and innovative.

Even in big factories, cutting-edge ML research is used in very few places, and business comes first. @Ternaryjimbo mentioned that after leading the Dachang ML team, he now hates all about ML and has moved to more standardized back end work, just treating ML as a hobby.

Others mentioned, machine learning engineers try to show some business KPI related business value directly, while the model improvement need not be a direct impact on the business KPI, because there are many other factors contribute to data products succeed, because of the uncertainty of the involved so much, they often had to use too flashy things, therefore, Old tricks are constantly being reused.

Software engineering is relatively less uncertain, good software engineers invest the necessary time to achieve positive results, and software engineering projects are a more mature core business for any tech company.

2

MLOps “Really fragrant” pie

One of the most frustrating aspects of machine learning is that it has to deal with mixed data and no programming tools to be desired. If we could change those two things, the productivity of machine learning engineers would be greatly improved.

The response from @curiousronin was the most liked. He believes that in many cases, when you’re going to put code into production, you can save a lot of time only by using a higher-level framework, rather than spending time on code and documentation, bug analysis, and a lot of other work after you’ve trained the model.

But using a higher-level framework like PyTorch Lightning or fast.ai can be tricky. It was mentioned that deploying the PyTorch model from Fastai was a pain because one had to know about Docker, PyTorch, WebAPI/ Flask and cloud container services, monitor……

Therefore, he recommends using the MLOps tool. Without a good infrastructure, system quality and development experience can be a mess, and MLOps is like an IDE or Git for programming, which is the most valuable thing in the industry.

It was added that the job of the machine learning engineer is to figure out how to productize the model and extend it to the Serving platform built by the software engineer, which also needs to be monitored and adjusted if model drift occurs, and the MLOps platform can do that.

@Chief167 is more direct. I don’t like Azure, Snowflake or Databricks deployment at all. Now when the model is ready, you can deploy the model in 15 minutes using MLOps. Throwing the interface and doing the whole thing really takes all the pain out of it.

In his opinion, Google GCP and AWS are much better than traditional players, but far from dedicated platforms, he recommends Using MLOps platforms such as Datarobot, H2O, Teradata Vantage, etc.

Currently, MLOps is primarily used in ai-driven organizations, typically built by data engineers or application engineers, although in some organizations, machine learning engineers also work on MLOps tools.

3

More skills do not pressure the body

Moderate moderates have also made comments. As the saying goes, we should not be so decisive in pursuing multiple skills and multiple paths.

Many companies don’t make a clear distinction between the software engineering and ML roles, and in fact, you’re more valuable if you have proven experience in both.

@Modernzen revealed that he currently works as a machine learning engineer, but mostly works in software engineering + MLOps/DevOps, with occasional data science assignments. Although he loved math/statistics/theoretical machine learning, he always loved writing code more than anything else.

He spends most of his time immersed in coding and never complains, spending less than 10% of his working time on fine-tuning or tuning ML/DS tasks so as not to get bored. He recommends getting a job as a software engineer on a team that uses machine learning, so you can still work on machine learning even if you don’t use ML models directly most of the time.

Another, who has 20 years of experience as a software engineer, reassured that boredom or stress may not be a technical problem, but more related to the team or project. It’s satisfying to see software running or delivering business insights that bring value to users and organizations, and development projects don’t always go well.

After listening to the views of the above three schools, would you choose to abandon pit ML? Go on fooling? Or is there another option?

OneFlow v0.7.0: github.com/Oneflow-Inc…