Building a viable machine learning (ML) system for any need typically involves many steps and resources. Let’s briefly examine the key requirements involved from both a process and infrastructure perspective, starting with the processes, and then discuss a much easier way to do it.
Processes Required for Building an ML System
1. Clearly establishing the problem
The first and most obvious process requirement for building an ML system is to determine the problem you’re solving:
- Are you trying to predict traffic patterns in the greater New York Metropolitan area 40 years from now?
- Are you attempting to program a robotic arm to react in just the right way when a ping pong ball comes flying in at a certain velocity and angle?
- Are you needing to calculate the amount of energy a solar grid will need at a certain time of day to power a certain type of building at a specific geographical location?
- Do you need to predict the probability of someone faulting on a loan or missing rental or mortgage payment?
Once you know the problem you’re trying to solve, you need to know the specific outcome you are hoping to achieve with implementation of the ML system. You can’t make creating the system itself the goal—you must make solving the specific problem the goal and your ML system the central tool for solving it.
2. Cleaning the data
Unfortunately, data preparation still takes up about 45%1 of most data scientists’ time, and that’s because, despite huge advances in data hygiene and automation of data hygiene, there’s more data than ever to prepare (ie, to clean.)
One of the major advantages of any ML system is its ability to incorporate massive amounts of unstructured data. But an ML system using inaccurate, incomplete, inconsistent, or duplicated data is very likely going to spit out inaccurate or incomplete models.
As such, data cleansing is a key part of putting together any type of ML system. Remember: garbage in, garbage out. Gold in, gold out.
3. Choosing the algorithm
The next step is to choose the type of algorithm you want to use, which of course means you’ve already done numbers 1 and 2: clearly defined your problem and prepared your data.
Choosing the algorithm isn’t necessarily easy or quick: within the three main ML algorithm types (Classification, Regression, and Clustering), are numerous subtypes, including Naive Bayes, Random Forest, Linear Regression, Lasso Regression, K-Means Clustering, Fuzzy C-Means Algorithm, etc…).
You may also start out with one algorithm and find it doesn’t work as well as you’d hoped or expected and have to shift to another, leading to many hours spent on trial and error.
4. Training the algorithm
After selecting the algorithm, you need to train it—ie, create the model for your data input. A key element here, of course, is model accuracy, or the measurement by which you determine which model is best at identifying relationships and patterns between variables in a dataset. Often you will have to retrain or fine-tune the model.
And remember: ML requires quite a lot of power to be trained. Per Open AI, since 2012 the amount of model training (measured in petaflops/day) has been doubling every 3.4 months2.
5. Choosing the programming language
There are many different programming languages to use for ML systems, with your choice depending on the particular problem you’re trying to solve and various other factors. Python is the most commonly used language for ML projects because it’s a powerful data analysis tool, but it may not necessarily be right for your project. There’s also Lisp, Java, R, Julia. and of course, C++, each with its own advantages and disadvantages, depending on what you’re trying to achieve.
The list goes on. Other issues to be ware of are described in this post.
Infrastructure Requirements for Building a Machine Learning System
In addition to the process requirements, there are also a number of infrastructure requirements for building an ML system. Let’s briefly review them here.
ML typically involves large data sets that often include personal and/or otherwise sensitive data such as financial information or patient records. With the average cost of a data breach now at well over $4 million3, you simply can’t afford to have a leaky ML system. It must have end-to-end enterprise-grade security.
You will need to figure out your ML system’s data storage needs. All ML systems require some type of storage to function, but some will require significantly more than others. ML algorithms, however, generally work better the more data they have, so in many if not most cases, your data storage system will need to be robust to support the use case for which you are deploying your ML model. Choosing the right data storage strategy should not be difficult.
Also—keep in mind that projects based on unstructured data such as images and video involve large single files, and ML applications involving surveillance or facial recognition software, or geological, scientific, and medical research, also use large files requiring petabyte-scale storage.
In 2016 Cisco estimated that we have passed one zettabyte4 in total annual Internet traffic (ie, all data uploaded and shared on the world wide web, most of it being file sharing.) But Internet traffic is only one part of the total data storage, which, when you include personal and business devices, is expected to grow to the range of 150–200 zettabytes5 by 2025.
3. Computing capacity
The computational capacity required to train ML models is increasing rapidly, with compute usage for ML projects increasing 300,000-fold6 over the last seven years.
Case in point: To take full advantage of ML at an organizational or enterprise level, you will need serious computing capacity, including CPUs and GPUs. While a CPU-based environment may be sufficient for handling basic ML workloads, it probably won’t be enough for deploying the scalable neural network algorithms required for deep learning.
4. Networking capacity
Finally, since successful ML algorithms depend heavily on communications, you will need increasingly large networking to keep scaling your ML system. Hence, you will need to be running your ML system on a platform that can guarantee easy scalability and low latency.
The Easiest Way to Build an ML System: ForePaas
ForePaas is an easy-to-use, ML orchestration platform-as-as-service that makes it easy and affordable to set up ML systems. Our scalable, low-code, multi-cloud, automated system empowers you with a unified platform to deliver ML-based applications.
We offer a turn-key production environment that frees you to build your cloud environment however you like and depending on your strategic and technical priorities, whether it’s on-premise, hybrid, or in the cloud. Pick and switch to any cloud provider instantly and join the multi-cloud movement.
Capture data from anywhere and quickly analyze it for use in your ML system. Access system-level and real-time infrastructure information all in one place and easily visualize your data pipeline, applications, and data connectors to collect metrics, monitor performance, and trigger alerts when issues arise, at no additional cost. You can also fine-tune and control access rights management all from a unique, simple interface.
In short: we do all of the processes above—help you establish the problem, clean the data, choose and train the algorithm, and pick the best programming language—and provide all of the above: storage, security, compute capacity, networking capacity. We also make it very simple for first-time uses to start a project. Your ML project just got a lot easier.
- Data Prep Still Dominates Data Scientists’ Time, Survey Finds (Datanami)
- AI and Compute (OpenAI)
- How much does a data breach cost? (IBM)
- The Zettabyte Era Officially Begins (Cisco)
- Expect 175 zettabytes of data worldwide by 2025 (IDC)
- The computing power needed to train AI is now rising seven times faster than ever before (MIT Technology Review)