There are three different ways to integrate AI into intelligent applications:
- New development of provisioned infrastructure.
- Development within a framework that is specifically designed for machine learning.
- Outsourcing development by using AI services offered by cloud providers.
This post covers the third option with reference to AWS. However, similar offerings are also available from the other cloud providers.
What are AWS AI Services?
In sum, AWS AI services are a collection of APIs with AI functionality developed by AWS. Although there are minor differences between them, all are designed around the same basic principle: an application calls the respective API and it returns a response in JSON format.
Therefore, the developer only needs to take care about the call itself and how the response will be further used by the application. AWS takes care about further developments of the necessary algorithms, the coordination of the API calls and the provisioning of the computing resources.
This inherent scalability and modularization makes AWS AI services especially interesting for serverless architectures since they match the overall design philosophy.
When should you consider using AWS AI Services?
As with other cloud services, you should start with a thorough cost-benefit analysis. It is crucial to consider the complete lifecycle of an intelligent application here.
Figure 1: Both costs and benefits of intelligent applications are hard to estimate. That is why it is even more important to start with a clear analysis.
The main cost drivers when it comes to AI are initial development costs, followed by maintenance and further improvements. All AWS AI services work on a pay-per-use basis, that is they only create costs when they are called. However, pricing models between the different APIs can vary and it is worth calculating different usage scenarios during the estimation phase.
From a benefit perspective, the most important question is how central a functionality for the application is. More important functionalities probably justify additional investments in development since use case specific adaptations create high value. These adjustments are hard or even impossible to do by using the APIs provided by AWS.
Example 1: to standardize inputs, all incoming texts must be translated into English first. In this case, developing a new solution would create high costs and risks. The probability that the new approach outperforms AWS Translate is minimal. Therefore, the use of the AI service is clearly preferable.
Example 2: incoming images need to be sorted into business specific categories. In most cases, this cannot be done directly via the AWS service, since it probably missed the necessary categories. Since there are a lot of powerful open-source frameworks available, the new development is the better choice.
Both examples are simplifications of real-world applications. From experience, you should expect hard discussions and engaged proponents both for new development and direct use of AI services. Therefore, a calm comparison of all available options is essential.
What are the most important AWS AI Services?
The number and pricing of AI services can change as fast as other cloud services, too. The current state of affairs is documented here. To keep this post clear and concise, they are ordered by application area:
Figure 2: the three most important AWS AI services. From left to right: AWS Comprehend, AWS Rekognition and AWS Personalize.
Text and Language
From an analytical point of view, AWS Comprehend is the most important service here. It includes a variety of NLP modelling approaches, such as entity recognition or sentiment analysis.
Images and Videos
The main AI service concerning images and videos is AWS Rekognition. It includes tagging of videos, the classification of images as well as face detection capabilities.
AWS Personalize is especially suited for e-commerce contexts. This AI service promises to leverage personalization of web shops etc. based on the expertise Amazon accumulated over the years.
Using the AI services of AWS needs, especially compared to new developments, way less development effort. That is quite attractive, but it can also lead to a premature reduction of options. Just because the results of the APIs are impressive does not mean that they are the best solution for a specific use case. A deliberate decision of all possibilities is therefore crucial for the successful implementation of an intelligent application.