Machine learning is quickly changing the world as we know it. Slowly turning every application we use into a more intelligent one. However, it can still be a formidable task for any developer looking to build their first ML-powered App. This is because there are wide variety of tools out there, most of which are built for Data Scientists, rather than specifically for developers. Today, we'll explore some of the top machine learning tools made for developers to get value out of ML today!
Scikit-learn is a library for machine learning developed by the Python community. Scikit-learn can be used to perform a wide range of tasks such as:
Scikit-learn is filled with enough features today that you can more or less do any machine learning task with it. Unfortunately, with this level of flexibility comes challenges. For most developers, attempting to do anything basic can lead into multiple day or month long projects of tinkering with multiple settings before getting something that works decently.
Our recommendation with scikit-learn for developers looking to get into machine learning is to limit experimentation to exactly the task at hand. Time box yourself to a few guides to customize ML models that are close to matching your use case. In a future post, we'll explore scikit-learn in much greater detail and provide an example with sample code of a common ML task that developers can do.
TensorFlow is a machine learning library developed by Google. Unlike Scikit-learn which aims to be a full fledged tool kit for complete ML activities, tensorflow focuses more thoroughly on deep learning problems.
Given the amount of support the community and Google provides to tensorflow, it can be a good place to go for pre-built models such as:
TensorFlow is quite robust with the amount of use cases that can be done on it. However, developers should be prepared to spend the time to learn the supporting tooling required to properly clean and prepare training data, evaluate results, and serve the trained model via a scalable API. To limit the amount of work this will take, we suggest sticking to one of the pre-built models as closely as possible. A future blog post will go into detail on how we can use TensorFlow for common ML tasks in greater detail.
PyTorch is a library for machine learning developed by Facebook. It provides a similar set of functionality and features as TensorFlow, however it's made to feel a lot more pythonic. Developers comfortable with python will feel themselves get up to speed more quickly with common tasks such as TensorFlow. Similar to Tensorflow, it is a full fledged framework that allows you to handle the most sophisticated of ML use cases. PyTorch tutorials are a good starting point - visit them here. A future blog post will explore how a developer can better make use of PyTorch for common cases they might encounter.
Cloud ML APIs allow developers to access various machine learning models directly from the cloud. The benefit of this option is that in most cases it is a pre-trained model already trained on a massive dataset and tuned to be performant to use. Examples here are:
Computer Vision - Useful for extracting information from pictures
Text - Useful for extraction information from text and documents
Audio - Useful for working with audio formats
These APIs can be a great start into ML for developers. As developers, we often care about the problem at hand. We would recommend you try the API that fits your use case the closest, and engineer on top of it. Expect the following things to take up your time:
Tools like Butler can help save a lot of time. Butler provides a fast and easy way to get started with machine learning, without having to go into an endless deep dive in miscellaneous ML concepts. Butler also offers a number of pre-built models that are already trained on a large dataset you can use right away. Click the "Get Started Button" at the top to try it out!
Overall, These are just some of the common ways in which developers today can use tools that exist to customize, embed and ship ML in their applications. We hope you got some insight into the common tools developers use to build ML Apps today, along with tips and tricks needed to get efficient quickly.