When it comes to machine learning (ML) and artificial intelligence (AI), AWS has the broadest and deepest set of services for users.
Remember the three levels of AI/ML services? We'll go through all the AI services first, before diving into ML services and then ML frameworks and infrastructure services.
Artificial intelligence services
AWS offers a variety of services powered by artificial intelligence (AI).
Here are the key AI services in AWS:
Amazon Comprehend is a natural language processing (NLP) service, which means it analyses text to find insights and relationships.
Understands and analyses text data, extracting sentiments, entities, and key phrases.
Sentiments: Comprehend can determine the emotional tone behind a piece of text i.e. whether the tone is positive, negative, neutral, or mixed.
Entities: Key information in a sentence, like people, locations, dates, and more.
Useful for analysing customer feedback, content categorisation, and document indexing (which is like mapping out all the key words in a book and which page to find them).
Amazon Forecast is a fully managed service for time-series forecasting, which means making accurate predictions about the future based on past data.
Predicts future trends and patterns based on historical data.
Forecast is often used for demand forecasting, financial planning, and resource allocation.
Amazon Personalize makes it easy for you to create personalised recommendations for people using your app.
Creates custom recommendation models based on your users' behaviour without requiring machine learning expertise.
With Amazon Personalize, you create a trigger from your application – like page views, signups, purchases – and a collection of things you want to recommend, like articles, products, videos, or music. You can also add demographic information about your users, like their age or location. Amazon Personalize processes all this data data, identifies what is meaningful, selects the right machine learning algorithms, and trains a personalisation model that is customised for your data.
Personalize can also adapt its recommendations in real time for new customer users, or products.
Amazon Kendra provides accurate and efficient search capabilities.
Kendra uses machine learning to understand natural language queries (i.e. you can say what information you need in a conversational way) and retrieves relevant information from documents, making search more straightforward and effective.
Kendra can search across different file systems like S3, DropBox, Salesforce, Microsoft SharePoint, even relational databases.
Let's say you are want to search "Where can I get tested for COVID-19?" from all the documents you've stored in your file systems.
A traditional search engine would probably pop out something like this - even the least relevant words in the sentence, like "can" and "get", will be used to find a long list of documents.
Amazon Kendra uses machine learning to directly extract the most relevant answers so you won't have to search through documents for the answer:
Amazon Lex is a service for building conversational responses using voice and text.
This means you can use Lex to create chatbots and voice-enabled apps without deep machine learning knowledge!
Integrates with Amazon Connect for building customer service chatbots.
Fun fact: Lex was a key service for creating Alexa, Amazon's voice assistant.
Amazon Polly turns text into lifelike speech.
Generates realistic and customisable speech for various apps.
Useful for voiceovers, accessibility features, and automated customer service.
Amazon Rekognition is an image and video analysis service, identifying objects, people, text, scenes, and activities.
Social media and dating apps use Rekognition to automatically detect and filter out inappropriate content from images and videos too!
Amazon Textract is a fully managed OCR (Optical Character Recognition) service, which means it extracts text and data from documents.
This is super helpful when it comes to finding text from scanned documents, PDFs, and images - our computers usually can't recognise text from scanned files!
Amazon Transcribe converts speech into text, making it easy to transcribe audio and video files.
Provides accurate and time-stamped transcriptions of spoken words.
Useful for transcription services (e.g. captions in meetings or live streams), content indexing (for example, making timestamps in your videos), and accessibility features.
Amazon Translate translates text between languages.
It can translate text in real-time (just like Google Translate) or in big batches (e.g. entire documents and articles).
Useful for creating multilingual apps and documents.
For example, BMW reduced their translation time by 75% by using Amazon Translate to create international versions of customer help documents and communicate with suppliers and retailers.
Amazon CodeGuru is a developer tool that reviews your code using machine language. It comes in three parts:
CodeGuru Reviewer finds potential errors in your code and makes recommendations on how to fix them.
CodeGuru Profiler finds where your code is contributing to compute power usage, and makes recommendation on how to improve your application's performance.
CodeGuru Security finds potential security issues in your code, provides recommendations on fixing them, and even tracks the status of the issue until it's been resolved.
Amazon CodeWhisperer is a code generator, which means it writes code for you in real time!
By understanding the what developers write as comments in their code, CodeWhisperer can create new code that align with their descriptions.
CodeWhisperer also analyses the generated code to make sure it matches the developer's coding style.
Other CodeWhisperer features
Security checks: CodeWhisperer has a built-in security checker that reviews your code against various standards and AWS' security recommendations. It regularly updates to protect your applications from new security issues.
Safeguarding ideas: CodeWhisperer comes with a tool called the open source* reference tracker. This tool keeps a list of the open source apps you're using in your software and makes sure you're following the rules. It also safeguards your intellectual property** from any accidental exposure, which can happen if you're using open source code.
*Open source = sharing software with everyone for free. People can see, change, and share the code, promoting teamwork. Fun fact: Kubernetes, Docker, Linux and MySQL, which are some technologies we've learnt so far in the course, are all open-source! Yup, they're all free.
**Intellectual property (IP) = original, creative things that people create, like inventions or ideas. IP can also mean documents that protect these creations from being copied or used without permission. Be sure not to confuse this IP with IP addresses from the networking topic!
Machine learning services
Traditional machine learning development is complex, expensive, time consuming, and error prone. Amazon SageMaker lets developers and data scientists to quickly and easily build, train, and deploy machine learning models at any scale.
You can tailor SageMaker for a wide range of applications, from forecasting to image recognition!
SageMaker splits off into 10+ sub-services that cover different parts of the machine learning development process and use cases, like Data Wrangler for preparing your data and Autopilot for selecting the best model for your needs.
Machine learning frameworks and infrastructure
TensorFlow, PyTorch, Apache MXNet
These are popular deep learning frameworks used to build and train machine learning models.
TensorFlow and PyTorch are widely used open-source frameworks, while Apache MXNet is known for its efficiency.
Each provides tools for building and training machine learning models, with a broad community and extensive documentation.
These frameworks are pre-installed in Deep Learning AMI and Deep Learning Containers that you can access in EC2 and container services, so you won't need to install and set them up yourself. There are also EC2 instance types tailored to machine learning frameworks to boost speed and efficiency!