In recent days, I have come across many questions from various individuals regarding MLOps (Machine Learning Operations). From recruitment agencies, customers, engineers and many more.
You are part of an AI / ML Company, do you practice MLOps? It’s the next cool thing in the industry. How many dedicated MLOps engineers does your company have? I want to join your company as a DataOps Engineer! Do ML-Engineers and MLOps Engineers perform the same tasks? Is it just the DevOps team in an ML project?
These questions strike to me as seeing the industry needing more awareness regarding MLOps, and in general DevOps (Development Operations). In General, the computer science field is attributed with vague job titles, primarily carried away by the market trends and bandwagons. This is not all a negative aspect of the industry, rather a rapidly changing industry means new job opportunities are being created more frequently.
Before anything, I would like to brief you about other existing job titles common in an ML / AI engineering team but not limited to.
Data engineers deal mostly with the infrastructure and architecture that stores and organizes data. They are strong coders who like learning and using modern technologies and enjoy discovering new ways to make software and systems more efficient, Because of this, many data engineers get their start in software engineering or business intelligence systems analytics roles that give them exposure to the systems and infrastructure that are crucial to the field of data science.
The data scientist solves business problems by translating them into science problems which can be addressed using statistics and mathematics. Generally, will be good at ML Algorithms, Mathematics, Statistics, and Probability with programming skills.
A machine learning engineer is someone who specifically implements a particular class of tools like deep learning neural networks. Good ML Engineers will be good at ML Algorithms, Data Structures and Algorithms, Object Oriented Programming, Software Architecture and Design principles.
Additionally, they carry out tasks like building inference systems, integrating ml systems with other products and adding security, performance, scalability, and maintainability aspects to the models created.
Again, I would like to stress the fact the titles and job descriptions can vary from one organization to other, depending on the industry being served, expertise, project attributes and other parameters.
A company building AI / ML-based automation systems for clients might have more responsibilities covered under “ML Engineer,” and at the same time a company using AI/ML as a tool to create business opportunities themselves will have more responsibilities under the role of a “Data Scientist.”
Let us bring DevOps into perspective:
DevOps combines the concepts of development and operations to describe a collaborative approach to performing the tasks, usually associated with separate application development and IT operations teams. DevOps, in its broadest sense, is a philosophy that encourages improved communication and cooperation between these (and other) teams within an organization.
MLOps focuses on streamlining the process of taking machine learning models to production and then maintaining and monitoring them. MLOps is a collaborative function, often comprising data scientists, DevOps engineers, and IT.
DevOps is a success story in the Software Engineering space. MLOps is an emerging trend in the ML / AI Space. Before speaking about MLOps let us take a page or two out of the DevOps success story.
The success of DevOps is due to cultural adoption within an organization. I have come across many examples where organizations without a single DevOps engineer are succeeding, whilst some organizations failed despite having multiple DevOps departments. The difficult part is inculcating a culture where people contribute, and the responsibilities are shared across the members. When an organization adopts DevOps as a mantra without realizing its cultural consequences, they might end up in an isolated set of small teams each working like a part of a massive production line. Keep in mind, Software is not a built-in factory.
The introduction of teams, processes, or anything else to an organization should not hinder the existing workflow, instead, it should add value to the organization, especially to the people of the organization. Anything that adds value to an ecosystem gets adopted automatically (Survival of the fittest, Darwinian evolutionary theory), eliminating the need for a technology/process evangelist.
It’s not just MLOps and DevOps
DataOps is a collaborative data management practice focused on improving the communication, integration, and automation of data flows between data managers and data consumers across an organization.
Any system that works with data can adopt DataOps practices.
Wait! One more thing! What about CloudOps, InfraOps, GitOps, DataSecOps, DevSecOps, ChatOps, AIOps, RevOps, SalesOps, MarketingOps and NoOps?
Most individuals who emphasize any specific *Ops culture tend to miss the fact that there are much more Ops practices that exist, or in general miss the fact that any process automation and collaboration practice should not be viewed as a set of templated diagrams that can be adopted to increase efficiency. Whether it's Technology, Process, Practice, Products, Business or anything we consume or live with it, - it is all about people. Not job positions, roles, or title descriptions.
It's all about PEOPLE.
Back to the Questions
Is it just the DevOps team in an ML project? Do ML-Engineers and MLOps Engineers do the same tasks?
The answer is Yes and No.
Think of cross-functional teams inculcated with a culture where everyone works together to deliver great products. As an organization building ML AI Products you must have experts who can do development, machine learning, data science, cloud, security, Testing, Deployment, and Operations. that might include teams with people specializing in product, dev, test, ops, security, even marketing and sales to build a good *Ops culture.
However, it should not be taken vice versa. Just having an MLOps team does not automatically translate to having a good “MLOps practice” in place.
This does not mean I am discouraging the concept of “MLOps or DevOps Teams,” all the dedicated *Ops teams should not be there to take tasks and execute on behalf of the others, it should be a team which promotes enablement and help the organization with tooling, knowledge, and appropriate skills contributed towards the product or project teams.