Machine Learning in AWS Sagemaker

Squeeds Julkalender | 2021-12-16 | Lars Larsson och Johanna Svallingsson
Machine Learning in AWS Sagemaker

Amazon SageMaker

 

Alla använder Machine Learning idag. Det tillämpas för att göra våra bilar självkörande, för att identifiera ansikten i våra telefoner, förutsäga elpriser, ge oss rekommendationer i web-shop:ar och mycket mera. För en nybörjare kan det vara svårt att komma igång med ML. Det är också stor skillnad på att labba lite med Tensorflow hemma och använda en ML tjänst som del i en produkt som används "på riktigt".

Många har idag sin infrastruktur i molnet, t.ex i AWS. Detta är generellt sett en mycket god idé eftersom det gör oss effektivare och utvecklare kan fokusera på det som är viktigt, nämligen business-logiken.

Vad är då Sagemaker? Jo, enligt de själva: "The quickest and easiest way to get ML models from idea to production"

Dessa delar finns i Sagemaker:

 


1. Label data
I supervised learning måste man ha träningsdata. Ju mer desto bättre modell får man. I Sagemaker kan vi importera data och ta hjälp av människor för att annotera data.

 

 

2. Build
Använd Sagemaker Studio (en integrerad python IDE) och skriv din egen ML kod eller välj en av AWS färdiga modeller, t.ex. XGBoost, Image Classification Algorithm, DeepAR Forecasting, Linear Learner mm.

 

 

3. Train
AWS har många olika instanstyper som lämpar sig väl för att träna modellen. Kör på en billig spot-instans eller en multi-GPU monstermaskin. Undvik överträning genom titta på metrics.

 

4. Tune
För att välja den bästa modellen kan vi köra Sagemakers Hyperparameter Tuning Job, vilken automatiskt provar många olika värden på hyperparametrar för modellen. Man väljer helt enkelt vilka gränser för parametrarna som vi vill utvärdera så sköter Sagemaker resten. Till slut får vi fram de parametrar som ger minst fel gentemot testdatan.

5. Deploy
När vi är klara med modellen och har tränat den kan vi enkelt deploya modellen till en ML-instans i AWS där vi sedan kan skicka anropen från vår applikation där vi vill använda ML. 

 


Det är också viktigt att vi kontinuerligt uppdaterar och tränar om modellen. I de flesta fall får vi hela tiden in mer data som vi kan använda för att förbättra modellen. T.ex. i ett rekommendationssystem kommer vi hela tiden få nya produkter att rekommendera. Har vi all data och beräkningskapacitet i AWS blir det enklare att träna om modellen med ny data regelbundet.

 

 

Sagemaker Autopilot

How Amazon SageMaker Autopilot works

För att ytterligare förenkla hur man tar fram en ML modell har AWS utvecklat fram Sagemaker Autopilot (https://aws.amazon.com/sagemaker/autopilot/).
Tanken är att användaren laddar upp sin träningsdata (måste vara i tabell-form) till S3 och låter Sagemaker prova många olika modeller för att hitta den "bästa". Det kan ta lite tid, men vet man inte om man vill använda XGBoost eller Linear Learner eller någon annan algoritm, kan det vara värt att prova Autopiloten.

 

Vill du också lära dig använda Sagemaker?
Gör som oss och gå en online-kurs på: 
https://www.udemy.com/course/practical-aws-sagemaker-6-real-world-case-studies/