Challenges in Building a Scalable AI BusinessEero Laaksonen
I see the quote “AI is the new electricity” thrown around in about every other blog post. I think there is truth in it, but I also think most people don’t go to the bottom of what it really means for their business. Let’s first define what we mean by AI: in this context, I’m referring to new advances in machine learning and deep learning.
The big thing here is new business types becoming scalable due to new technology. The shift is comparable to the industrial revolution, electricity, or the Internet. Things like driving that used to be capped by human resources become entirely scalable. It’s the same kind of change that allowed Amazon to take over retail: There was no need to build large brick and mortar stores and hire as much staff to cover large geographical areas. Or similar to industrialization where optimizations in factories made it possible to produce goods faster and cheaper with less staff.
In the same way, deep learning and machine learning will soon make several industries scalable in ways that have not been possible before. I already mentioned self-driving vehicles, but there are also many other verticals that will be disrupted. Other industries we see racing forward are those with use cases for machine vision, such as medical diagnosis, security, or natural language processing (NLP) for translation and understanding of document contents.
Every single successful use case for machine learning or deep learning I have seen is, in the end, making laborious problems scalable.
What does it mean to your business then?
First off, most of the enterprise ML teams should be thinking about their business case a lot more. Developing and maintaining a suitable ML or DL solution costs a lot in resources, e.g.getting data, cleaning data, developer cost, computational resources, etc. This means that you should think big and truly understand the problem domain. The excellent machine learning applications have the potential for real-world domination. In the startup world, one learns to think world domination, but I feel like enterprises sometimes lose sight of how significant the impact of scalable business can be.
Focus on something that moves the needle on a global scale when it works. You will realize that the potential for your business case is so significant that it makes almost any investment in money, time, and other resources worthwhile. This is why technological giants like Google, Uber, Amazon, and others are pouring incredible amounts of money into deep learning research. They see and feel it better than anyone else. We are at the verge of a huge paradigm shift in many traditional businesses.
We are dealing the cards for the future. Self-driving vehicles to this company, brain cancer detection go to this company, automatic claim fraud detection to that one, and so on. The one with the best solution and that can deploy it on a global scale dominates the market. The best solutions spread like wildfire since limitations like human resources do not cap them. In most cases, it’s just a few lines of code and maybe some simple hardware like cameras.
Even large investments are justified in today’s landscape and the more important thing you should focus on is time to market. This is the technological race of the millennium and you really should be feeling a sense of urgency. When new businesses turn scalable, change happens fast, and the first company to market has an unfair advantage. So how do you get there first?
How to be the first in the market?
The ability to scale operations and execute fast in the technological world is mostly infrastructure work, in which you should be focusing on cutting down bottlenecks. Here are a few things you should ask yourself:
- You are going to need more people. How can a new recruit be productive faster?
- Some of those people are going to leave at some point. How standardized are your tools and documentation? Can someone else continue the work, or is it all lost when someone leaves your team?
- What is taking the most time for your data scientists? Are they waiting for models to train? Are they waiting for someone to deploy a model they already trained ages ago?
This is where it gets more technical, but there are numerous ways to help out with these issues including:
- Documentation of your model pipeline, all the way from raw data to features and models, should first exist, and then be standardized.
- Use standard libraries like PyTorch, TensorFlow, or Caffe 2 to help recruits be productive faster. No one is just simply going to be productive very fast with an obscure C++ framework someone cooked up on a Ballmer peak over the weekend.
- Use data parallelism and tools like Horovod to speed up large runs
- Always parallelize hyperparameter optimization runs. (No more nested for loops and weeks of waiting.)
- If you are using Jupyter Notebooks or other Notebooks think of ways to include that in testable, documented and production ready ways. For instance, things like version control for Jupyter Notebooks or repeatability for notebooks can significantly improve iteration speed and help with scaling the team in the long run.
I hope this post gives you some ideas on how you can focus better when thinking about Deep Learning from a business perspective.