NOTE: Find an updated version here
Few of years ago, writing a software application that performs any sort of ”intelligence” was not the easiest task to do. Considerable know-how around certain frameworks and libraries need to be established, which means learning curve, dollars money, and a risk that many were unwilling to take. I remember 8 years ago, when I was planning to implement some object tracking algorithm for a university project, I had to read around optical flows, Lucas-Kanade (LK) algorithm, dense tracking techniques, etc. That was not the funniest thing I have done, given that I had a particular specific business need. Unfortunately, I could not even deliver optimally with my naïve sloppy implementation. Such a solution will be even more time consuming if we dig down further to mathematical/algorithmic levels behind image processing theory.
And things became a little bit easier .. ?
A few years later, we had to implement a face recognition in our graduation project, we decided to find something easier to use (given that we were using Silverlight – I know shame on us!). We managed to find SkyBiometry an online REST API for face detection and recognition, not the cheapest neither the best. But worked for us, even though we had to fix a bug in their SDK.
BOOOM! .. tech giants place their cards!
The last couple of years, there has been a stiff competition among tech giants; Microsoft, IBM, Amazon, and Google in their cloud offerings. Each of them trying their best to attract developers and generate more cloud revenue, through IaaS, PaaS and SaaS offerings.
As the competition became tougher, the software leaders decided to seek strategies to differentiate themselves, and they started releasing their internal AI solutions to their cloud portfolio, making it handy for developers to utilize their industry-proven AI, machine learning and deep learning into their applications. That step was called (democratizing AI or AI as a Service) in the IT community, and the companies announced their services offerings in their respective conferences.
So … What do they provide me?
In short, an API. Literally, you do not need to care about the underlying machine learning algorithms and statistics, data cleansing, models training, and validation, etc. All latest and greatest speech recognition, image analysis, content detection, sentiment analysis, etc. algorithms are just packaged for you, and you only need an API key to be up and running. Simply, the entry barrier to AI for developers has been significantly lowered.
The following table summarizes some offerings as of the date of post writing.
As Table 1 shows, some cloud offerings for AI as a Service (AIaaS). As you see the options are vast, and each provider has their own strengths and weaknesses (e.g., IBM Excels in Arabic language support, Microsoft has comprehensive vision APIs). You will need to do a bit of due diligence and research to make sure that the particular API meets your business need. Exploring each API is a tutorial itself, and outside the scope of our post, I just wanted to give you a feeling of what we have in the landscape; AI Services typically span vision, speech, language, and knowledge areas. You might see different categorization dimensions in other resources.
Well, as you can easily deduce there is a wide range of business applications that can utilize those APIs. For example, Microsoft Computer Vision API has an OCR (Optical Character Recognition); OCR can be used for vehicle plate recognition to detect parking time, red signal crossings, etc. Another commonly used AI Service is the chatbot service (all giants have their own flavor of it), it can be used to automate ticket support tasks, FAQ and menu orders.
The amount of applications is just infinite, and you can browse any vendor page to see some applications examples, examples that work in the real world and used by world-class customers.
You do not only enjoy that …
Aside from the functional business requirements AIaaS provides, there are other non-functional requirements make you application reliable, accurate and trust-worthy. Let us discuss some of these non-functional requirements:
Proven and Tested: The APIs from tech giants rely on backend services which have matured and stabilized. The deep learning and machine learning algorithms behind them have been used over the years, and the companies are putting and willing to put millions of dollars to ensure their accuracy and reliability.
Community Support: Unlike a mysterious ML library your ex-ML engineer developed and left, and you stuck struggling supporting it, just like a mainframe legacy system running a critical business and all those who know it are on a pension, AI services are highly supported by the community, and it is easy to find solutions if you face any issue.
High Availability: Naturally, as the AIaaS services run on the cloud, they enjoy all availability promises from the respective vendor, some of them go to up 4 nines in availability. This way, you can walk confidently to your clients and communicate availability promises relying on trusted vendors.
Latest and Greatest: AIaaS vendors are always working on optimizing and improving their algorithms and solutions, backed up by huge R&D budgets, you are ensured that your AI solutions will be targeting the bleeding edge algorithms with no intervention from your side.
Cheap: Any who studied economics 101, knows that large corporates enjoy economies of scale, making it cheaper for them to deliver goods and services. For example, Microsoft charges around 1$ for 1000 computer vision API usage, which means a single cent will allow you to perform ten AI operations. The prices may vary slightly based on the cloud region but is still on the same range.
Interoperability: Unlike an ugly embedded DLL that is locked to particular programming language or framework, AIaaS is based on APIs standards such as REST that is widely supported by the community, making it platform agnostic and easy to port.
SDKs: To make developers life easier, AIaaS vendors have implemented SDKs for several programming languages such as C# and Java, making it is for you to have your application up and running without much boilerplate code.
Containers Support: Containers are booming technology nowadays, superseding virtual machines and some AIaaS vendors started to release their services as containers so that you can host it in your infrastructure if you have any networking/connectivity/legal concerns. However, the containers typically require an internet connection to report back your quota usage to the cloud.
But be careful … Simplicity always comes at a price!
Well, I know I might have drawn a utopia around AIaaS and made you feel as if it is a complete replacement for Machine Learning and Deep Learning. No, this is not accurate. AIaaS helps you best when you have a repeated common business problem, such as image feature recognition or sentiment analysis. However, I have learned in my career, simplicity comes at a price, which is a lack of control. The fact that the APIs are abstracting away lots of technical details such as optimization parameters and neural networks activation functions means that you do not have much control over the algorithms.
What we will do in this blog?
After we developed a background around what AIaaS is and value and limitation it has, we will take several tutorials in the next few months on how to use those services. I will do my best to make the tutorials precise, and to the point, also, we focus on developing something that has an actual value.
So, let me know what you feel about those AIaaS! Leave a comment.
See you later, and be safe ?