Certification Amazon AWS Machine Learning Speciality

Je viens de passer la nouvelle certification speciality Machine Learning d'Amazon Web Services (MLS-C01), disponible depuis avril 2019, et je vais partager avec vous à travers cet article mon retour d’expérience. Je vais aborder dans un premier temps le contenu de cette certification et je vous donnerai ensuite quelques conseils pour bien préparer et réussir l’examen.

Tout d’abord, la finalité de cette certification est de valider les compétences nécessaires pour mener à bien un projet de Machine Learning (ML) dans le Cloud d’Amazon. Ainsi devez-vous être capable de :

  • Transformer un problème business en un problème de Machine Learning; cela sous-entend que vous êtes déjà très à l’aise avec les concepts de base du ML. Par exemple, vous devez savoir quand il faut utiliser un modèle de régression, de classification ou du clustering ; savoir si vous êtes dans un cadre supervisé ou non supervisé ; si vous avez affaire à des données structurées ou non structurées, données temporelles ou vectorielles ; les démarches à suivre pour éviter le sur-apprentissage, etc.
  • Utiliser l’ensemble des services AWS, et surtout le service managé SageMaker, pour votre pipeline de Machine Learning, allant de l’ingestion et du traitement des données jusqu’au déploiement des modèles, en passant par les différentes phases d’apprentissage, de tunning des hyperparamètres et de l’évaluation.
  • Utiliser les services AWS pour mettre en place une solution sécurisée et scalable. Vous devez par exemple gérer le chiffrement des jeux de données, les VPC endpoints, connaître les bonnes pratiques à mettre en place pour mieux encadrer l’utilisation des services AWS.

L’examen dure 3 heures et comprend 65 questions (QCU et QCM) pondérées par leur niveau de difficulté. Tout au long de l’épreuve, vous avez le rôle de Data Scientist et vous devez répondre à des questions scénarisées. La difficulté réside principalement dans le fait que le texte de l’énoncé est souvent long et les réponses proposées sont pratiquement toutes cohérentes, mais vous devez toujours choisir la réponse (QCU) ou les réponses (QCM) les plus appropriées. Comme pour toutes les certifications type Speciality d’AWS, il faut un score minimum de 750 sur 1000 pour être certifié.

Selon le guide officiel, les questions portent généralement sur quatre domaines différents, à savoir le Data Engineering, Exploratory Data Analysis, Modeling et Machine Learning Implementation and Operations. Je vais maintenant décrire le contenu de chaque partie en mettant l’accent sur les sujets abordés dans l’examen.

1. Data Engineering

Cette partie concerne la stack Big Data d’AWS, notamment l’ingestion et le traitement des données en streaming. Vous devez savoir, à l’aide de services AWS, comment créer des dépôts de données pour l’apprentissage des modèles ML, identifier et implémenter tout un pipeline d’extraction et de transformation de données. Pour être à l’aise dans cette partie, je vous recommande de voir de près les services suivants :

  • Les services AWS pour le stream :

    • Kinesis Firehose (ingestion des données en quasi temps réel sans stockage intermédiaire, connaître les quatre outputs de Firehose, à savoir RedShift, S3, ELasticsearch Service et Splunk, transformation en format Parquet, couplage avec Lambda),
    • Kinesis Data Streams (ingestion des données en temps réel, KPL, Client Library, Kinesis agent, rétention de données, 24h jusqu’à 7 jours contrairement à Firehose),
    • Kinesis Video Stream (traitement des données vidéo en temps réel, voir aussi comment le combiner avec le service Rekognition),
    • Kinesis Data Analytics (un outil d’analyse en temps réel couplé avec des fonctionnalités de Machine Learning telles que la détection d’anomalies, Random Cut Forest, Hotspots. Vous pouvez faire des transformations en temps réel avec ce service).

  • Les services AWS pour le stockage et les bases de données :

    • S3 (connaître les différentes classes de stockage et savoir gérer le cycle de vie des objets stockés dans S3),
    • DynamoDB,
    • RDS, DMS (gestion des bases de données relationnelles et gestion de la migration des bases de données dans le Cloud),
    • Redshift ( un service d’entrepôt de données AWS).

  • Les services AWS pour l’Analytics :

    • Glue (ETL job, Crawler, Data Log et les différentes capacités ML intégrées dans ce service, notamment la fonctionnalité Find-Matches permettant de détecter des doublons dans les données),
    • Athena (un service de requêtes SQL interactif dans Amazon S3),
    • QuickSight (un service BI doté de plusieurs fonctionnalités ML comme par exemple la détection d’anomalies ou le forecasting).

Toutefois, le plus important n’est pas de maîtriser en détail l’ensemble de ces outils, mais plutôt de connaître comment ils fonctionnent et comment vous pouvez les combiner pour mettre en place une pipeline d’ingestion et de traitement de données efficace.

2. Exploration et analyse des données

Les sujets abordés dans cette partie ne sont pas forcément liés à AWS. Vous devez être familiarisé avec les concepts de base de l’analyse et de l’exploration des données tels que :

Vous pouvez avoir éventuellement du code Pandas à déchiffrer ou des questions sur des fonctions très classiques de cette librairie.

3. Modélisation

Cette section est la plus importante de l’examen et sans doute la plus difficile pour ceux qui n’ont pas un background en Machine Learning. La finalité de cette partie est de valider vos connaissances en Statistiques et en Machine learning. Les questions que vous aurez dans cette section concernent en grande partie :

Les connaissances générales en Machine Learning :

Les connaissances Machine Learning liées à AWS :

4. Industrialisation du Machine Learning

Le sujet principal de cette dernière partie est le déploiement et l'industrialisation des modèles de Machine Learning dans AWS. Plusieurs sujets sont abordés tels que la sécurité, le monitoring des modèles, l’edge computing, l’optimisation des coûts et les différents types de déploiements. Ainsi, je vous recommande de regarder de près les sujets suivants :

  • Comment déployer efficacement un modèle avec SageMaker ? (l’intérêt du batch transform dans le cas où une publication du modèle n’est pas nécessaire, l’intérêt du déploiement d’une pipeline SageMaker) ;
  • Savoir comment ajouter de l’IA dans une application sans passer par SageMaker via les services de Machine Learning managés comme : Forecast, Rekognition, Comprehend, Textract, Polly, Lex, Translate, Transcribe, etc. ;
  • Le service Step Function qui permet de coordonner plusieurs services AWS ;
  • Le service AWS Batch qui permet d'allouer dynamiquement les ressources nécessaires pour tout type de calcul ;
  • Savoir comment utiliser le tout nouveau IDE d’Amazon SageMaker Studio pour augmenter votre productivité ;
  • Le service Elastic inference qui permet d’accélérer, à faible coût, la partie inférence (phase de prédiction) des modèles de deep learning sur des instances GPU ;
  • Savoir comment utiliser les Spot Instances pour réduire les coûts liés à des jobs de tuning (ou d’apprentissage) importants ;
  • L’intégration des jobs Spark dans une pipeline Data de SageMaker ;
  • Les différents types d’instances recommandés pour les algorithmes de SageMaker, notamment les P3, P2, C5, C4, M4 ;
  • L’utilisation du CloudWatch pour observer les modèles en se basant sur les métriques envoyées par SageMaker ;
  • L’utilisation du CloudTrail pour le contrôle d’accès et la surveillance de l’utilisation de SageMaker (par exemple, contrôler les accès et les appels aux API) ;
  • La possibilité de déployer, avec Neo les modèles ML dans d’autres appareils que les instances AWS, ce qui permet de faire de l’edge computing. Par exemple, entraîner un modèle de Vision par Ordinateur et le déployer dans une voiture.

Comment se préparer à l’examen ?

Tout d’abord, je vous conseille d’aller regarder ce cours de L’INRIA sur le langage Python et l’écosystème data science. Ensuite, vous pouvez aller voir Le cours d’Andrew Ng sur les concepts de base de machine learning. Vous pouvez vous familiariser alors avec l’apprentissage supervisé (régression, classification), l’apprentissage non-supervisé (clustering, détection des anomalies, la réduction de la dimensionnalité) et les systèmes de recommandation. Pour mettre en pratique tous ces concepts, je vous recommande de jouer un peu avec le framework scikit-learn en regardant par exemple cette conférence (Part 1 & Part 2) de Olivier Grisel et Guillaume Lemaître de l’INRIA.

Cela fait, vous pouvez commencer le cours d'Andrew Ng, sur le deep-learning. Vous y apprendrez l’implémentation de vos propres réseaux de neurones avant de passer à l’utilisation du framework Tensor Flow. Vous apprendrez aussi les différentes techniques de régularisation pour éviter le sur-apprentissage, le traitement des données complexes telles que les images, le texte, les séries temporelles et les flux vidéo.

Pour monter en compétence sur la partie AWS, je vous recommande de suivre les cours suivants :

Je vous recommande aussi de voir l’ensemble des vidéos de ce deep-dive sur SageMaker (et celui du re:Invent 2019) et de tester le maximum de notebooks disponibles gratuitement sur le github d’aws lab.

Pour la partie data, vous pouvez regarder ces vidéos :

Pour tester vos compétences et savoir si vous êtes prêts pour le passage de l’examen, vous pouvez vous tester avec les practices exam proposés par WhizLabs.

Enfin, je vous ai préparé la table ci-dessous pour vous donner une vue d’ensemble sur les algorithmes de SageMaker. Ainsi, pour chaque algorithme, vous y trouverez un lien vers sa documentation technique, une brève description de sa tâche principale et son paradigme, un lien vers un notebook Jupyter pour pratiquer, et quelques mots clés à regarder de près (paramètres, type de l’input, type d’instance, mesures d’évaluation, etc.).

Algorithmes Tâches Mots clés
Linear Learner Apprentissage supervisé :

Classification binaire, multi-classes et régression.

feature_dim, predictor_type, validation : objective_loss, wd, L1. CSV et Protobuf.
Blazing Text Apprentissage sur des données textuelles :

Mode Classification (supervisé),

Mode Word2Vec (non supervisé).

batch_skipgram, skipgram, cbow, mean_rho, validation:accuracy, vector_dim, learning_rate. Fichier avec une phrase par ligne ( si classification alors __label__ phrase).
DeepAR Apprentissage supervisé :

Prédiction dans les séries temporelles.

context_length, dropout_rate, mini_batch, embedding_dimension. json lines gzip ou parquet. GPU pour train CPU pour inférence.
Factorization Machines Apprentissage supervisé :

Classification binaire et régression.

predictor_type, test:rmse, test:binary_classif_accuracy, factor, lr,wd. Input : recordIO-protobuf float32 tensor.
K-Means Apprentissage non supervisé : Clustering. feature_dim, k, test:msd, test:ssd, init_method, cluster_closest, distance.
KNN Apprentissage supervisé :

Classification et régression.

feature_dim, k, sample_size, predictor_type, test:mse, test:accuracy.
LDA Apprentissage non supervisé :

Clustering des données textuelles.

num_topic,feature_dim, test:pwll.
NTM Apprentissage non supervisé :

Clustering des données textuelles (basé sur les réseaux de neurones.

num_topic, feature_dim, validation : total_loss, encoder_layers, optimizer.
Object2vec Apprentissage supervisé : Object embedding (trouver une représentation vectorielle pour les objets). enco_max_seq_len, enco0_vocab_size, validation : accuracy ou mean_squared_error.
PCA Apprentissage non supervisé :

Projeter les données un nouvel espace, et réduire éventuellement la dimension.

regular vs ramdomized mode, num_components, feature_dim, mini_batch_size.
Random_Cut_Forest Apprentissage non supervisé :

Méthode ensembliste pour la détection d'anomlies (inspirée d'IsolationForest).

feature_dim, test:f1, num_samples_per_tree, num_trees.
XGboost Apprentissage supervisé :

Classification binaire, multi-classes, régression.

num_rounds, num_class, alpha, objective : reg/logistic, validation : accuracy, mse, rmse, ndcg. Alpha, eta, colsample_by_*, gamma . Uniquement CPU.
Sequence to Sequence Apprentissage supervisé : Mapping d'une séquence de token vers une autre (audio vers texte, texte vers texte, etc.). num_layer_encode/decoder, batch_size, optimizer_type, clip_gradient. Uniquement GPU. Les tokens sont des integers.
Images Classification Apprentissage supervisé : Classification multi-classes des images. num_class, validation : accuracy, optimizer, weight_decay, GPU (P2/P3). Input :Apache Mxnet RecordIO, JPG/PNG, Augmented Manifest Image Format.
Semantic Segmentation Apprentissage supervisé : Segmentation sémantique (avec contours) des images. Gluon Framework, Algorithm : FCN, PSP, DeepLabV3. GPU.

Input : train+validation+train_annotation+ validation_annotation. Files : train_label_map.json +validation_annotation_label_map.json

Object Detection Apprentissage supervisé : Détection des objets dans une images (bounding box). num_class, validation : MAP, optimizer, mini_batch_size, GPU, recordIO (pipe), jpg, png.
IP Insights Apprentissage non supervisé : Spécifique aux données IP. vector_dim, num_entity_vector, validation : discriminator_auc.

Vous avez trouvé cette publication utile? Cliquer sur
Ippon
Ippon est un cabinet de conseil en technologies, créé en 2002 par un sportif de Haut Niveau et un polytechnicien, avec pour ambition de devenir leader sur les solutions Digitales, Cloud et BigData.

Ippon accompagne les entreprises dans le développement et la transformation de leur système d’information avec des applications performantes et des solutions robustes.

Ippon propose une offre de services à 360° pour répondre à l’ensemble des besoins en innovation technologique : Conseil, Design, Développement, Hébergement et Formation.

Nous avons réalisé, en 2019, un chiffre d’affaires de 42 M€. Nous sommes aujourd’hui un groupe international riche de plus de 400 consultants répartis en France, aux USA, en Australie et en Russie.
FRANCE Website LinkedIn