Machine learning, and by extension most artificial intelligence, has grown from a niche idea to a tool that is being applied in multiple areas and industries.
At EE we have been involved in developing and deploying machine learning for a number of applications, including to:
- Assess cyber-risk
- Evaluate financial risk
- Improve search and recommendations in retail web sites
- Price used vehicles
- Improve logistics and supply chains
An ML solution depends on both the algorithm - which is code - and the data used to develop and train that algorithm. For this reason, developing and operating solutions that use ML components is different to standard software development.
This playbook brings together our experiences working with algorithm developers to make machine learning a normal part of operations. It won’t cover the algorithm development itself - that is the work of the data scientists. Instead it covers what you need to consider when providing the architecture, tools and infrastructure to support their work and integrate their outputs into the business.
It is a common mistake to focus on algorithms - after all they are very clever, require deep expertise and insight and in some cases seem to perform miracles. But in our experience, obtaining business value from algorithms requires engineering to support the algorithm development part of the process alongside integrating the machine learning solution into your daily operations. To unlock this value you need to:
- Collect the data that drives machine learning and make it available to the data scientists who develop machine learning algorithms
- Integrate these algorithms into your everyday business
- Configuration control, deploy and monitor the deployed algorithms
- Create fast feedback loops to algorithm developers
As with all of our playbooks we have written this guide in the spirit of providing helpful advice to fellow developers creating ML solutions. If you are starting on the ML journey we hope you are not daunted by all the things covered in this playbook. Starting small and being lean in your implementation choices at the start is perfectly fine and will probably help you to iterate quicker.