HOW TO CHOOSE A CLOUD MACHINE LEARNING PLATFORM
Building effective machine learning and deep learning models requires large amounts of data, a way to perform data cleansing and feature engineering, and a way to train the model using the data in a reasonable amount of time. After that, you also need to implement the model, monitor model rotation over time, and retrain as needed.
Suppose you’ve invested in computing resources and accelerators like GPUs. In that case, you can do all of the above on-premises, but having sufficient resources also means those resources are down most of the time. Sometimes it is more cost-effective to run the entire pipeline in the cloud and then release it, using large amounts of computing resources and accelerators as needed.
Major cloud service providers (and some unconventional ones) have carefully built machine learning platforms to support the entire machine learning lifecycle, from project planning to maintain the production model. How do you determine which of these clouds suits your needs? Let’s take a look at the 12 features an end-to-end machine learning platform should offer.
BE CLOSE TO THE DATA
Even if you have a large amount of data you need to build an accurate model, it is less useful if you have to travel half the world to get it. The problem is not distance, but time. The maximum limit of the data transfer rate is the speed of light. Even a full network with infinite bandwidth cannot exceed that speed. Long-distance means delay.
When the data set is very large, the ideal is to build a model where the data resides so that there is no need to transfer large amounts of data. Several databases provide this service on a limited basis.The next best option is that the data is on the same high-speed network as the modeling software, usually in the same data center. If the data is larger than terabytes, there can be a long delay in transmitting data between data centers within a cloud availability area. Incremental updates can alleviate this problem.
ONLINE ENVIRONMENT SUPPORT FOR MODEL BUILDING
The conventional wisdom was that to build a model; you had to bring data to the desktop. However, it has changed due to the large amount of data required to build good machine learning and deep learning models. You can download small samples of the data to your desktop to explore data analysis and model building, but you need access to the full data for a production model.
Web-based development environments such as Jupyter Notebook, JupyterLab, and Apache Zeppelin are suitable for building models. If the data is in the same cloud as a laptop environment, it can be analyzed while minimizing the wasted time associated with moving data.
SUPPORT VERTICAL AND HORIZONTAL EXTENSION LEARNING
Except for model training, notebook memory and computing requirements are generally very low. It helps a lot if the laptop can create training tasks that run on multiple virtual machines or large containers. It is also very useful if the training has access to accelerators like GPU, TPU, and FPGA. This is because learning that will take days can be completed in hours.
AUTO-PROPERTY ENGINEERING AND AUTOML SUPPORT
Not everyone is used to choosing a machine learning model, choosing functions (variables used in the model), and designing new functions through observation. Also, even if you are proficient, it is time-consuming and can be highly automated.
In many cases, the AutoML system tests multiple models to find a model that produces an optimal objective function value (for example, the least-squares error of a regression problem). A good AutoML system can also perform function engineering and use resources efficiently to find the best possible model with the best possible set of functions.
SUPPORTS EXCELLENT MACHINE LEARNING AND DEEP LEARNING FRAMEWORKS
Most data scientists have their own preferred frameworks and programming languages for machine learning and deep learning. If you prefer Python, you often use Cykit-Run for machine learning, and TensorFlow, Pytorch, Keras, and MXNet are often used for deep learning.
In Scala’s case, Spark MLlib is widely used for machine learning. R has a lot of native machine learning packages and also a nice Python interface. In Java, H2O.ai, Java-ML, and deep Java libraries are highly rated.
Machine learning and deep learning platforms in the cloud often have their own set of algorithms. In many cases, they support external frameworks in at least one language or in the form of containers with specific entry points. In some cases, it can be conveniently used by integrating your own statistical algorithms and methods into the platform’s AutoML feature.
Some cloud platforms offer their own optimized versions of the main deep learning frameworks. For example, AWS claims to achieve near-linear scalability in deep neural network training while offering an optimized version of Tensor Flow.
SUPPORTS EXCELLENT MACHINE LEARNING AND DEEP LEARNING FRAMEWORKS
Not everyone wants to spend a lot of time and computing resources training their own models, and if a pre-trained model is provided, it doesn’t have to be. For example, training advanced deep neural networks for a large ImageNet database can take weeks, making sense to use pre-trained models when possible.
On the other hand, the previously trained model may not be able to identify the desired object. Pass-through learning helps to customize a neural network’s last layers to fit your specific data set without spending time and money training the entire neural network.
PROVIDE A TUNED AI SERVICE
The major cloud platforms offer powerful and optimized artificial intelligence services for many applications and image identification. Examples include language translation, speech to text, text to speech, prediction, and recommendations.
These services have already been trained and tested with more data than is generally available in the company. It is also already deployed in service endpoints with sufficient computational resources, including accelerators, to ensure excellent response times under global loads.
The only way to find the best model for your dataset is to test all the models manually or using AutoML. Here another problem arises. It is the management of experiments. A good cloud computing machine learning platform provides a way to view and compare each experiment’s objective function values and the model size and confusion matrix for both the training set and the test data. The ability to graph all of these elements is definitely useful.
Finally, you need a way to control the costs incurred by the model. The cost of implementing models for production inference represents 90% of the cost of deep learning in many cases and only 10% of the cost of training. The best way to control predictive cost depends on the load and complexity of the model. With a heavy load, you can avoid adding virtual machine instances by using accelerators.
When the load fluctuates, the size or number of instances or containers can be dynamically changed according to the load’s increase or decrease. If the load is low or intermittent, there is a way to process the prediction using a very small instance with partial throttle.
To create effective deep learning and machine learning models, you need copious amounts of data, a way to clean your data and perform feature engineering on it, and a way to train models on your data in a reasonable amount of time. Then you need a way to deploy your models, monitor them to see if they drift over time, and retrain them as needed; some of those things to watch out for have been properly explained.