[PYTHON] Pour les débutants de SageMaker - Liens matériels -

SageMaker, le service de gestion de l'apprentissage automatique d'AWS, ne propose pas les matériaux que je veux de manière précise, je vais donc les résumer.

Fonctionnalités d'Amazon SageMaker

Lors de l'exploitation d'un système ML dans un environnement de production, la fonction gérée affiche sa vraie valeur. Un composant pour réaliser MLops et MDLC. Le développement de modèles PoC à lui seul ne présente pas de réels avantages.

Référence officielle

Machine Learning Lens, AWS Well-Architected Framework https://d1.awsstatic.com/whitepapers/architecture/wellarchitected-Machine-Learning-Lens.pdf Directives pour les systèmes ML basés sur AWS

Guides du développeur, références SDK, etc. https://docs.aws.amazon.com/ja_jp/sagemaker/index.html

GitHub https://github.com/awslabs/amazon-sagemaker-examples/blob/master/README.md

GitHub (japonais) https://github.com/aws-samples/amazon-sagemaker-examples-jp

Amazon SageMaker Discussion Forums https://forums.aws.amazon.com/forum.jspa?forumID=285

Documents par le service AWS https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/#ai-wn

MDLC : Model Development Life Cycle "Déploiement et automatisation de modèles évolutifs sur Amazon.com" https://aws.amazon.com/jp/blogs/news/aws-aiml-tokyo2/

Dans cette session, nous avons présenté le concept de cycle de vie de développement de modèle (MDLC) de l'apprentissage automatique que les clients devraient prendre en compte lors de l'introduction de l'apprentissage automatique, ainsi que le flux de travail pour l'exécution de MDLC. Ce MDLC est en fait la méthode adoptée par Amazon Consumer Payments et a également été présenté lors de la session de re: Invent 2019.

Présentation des fonctionnalités de SageMaker

Principes de base d'Amazon SageMaker https://pages.awscloud.com/rs/112-TZM-766/images/20191128_Amazon%20SageMaker_Basic.pdf

[Séminaire en ligne AWS Black Belt] Publication des documents et du contrôle qualité d'Amazon SageMaker Advanced https://aws.amazon.com/jp/blogs/news/webinar-bb-amazon-sagemaker-advanced-session-2019/?nc1=f_ls

Obtenez une vue d'ensemble de l'apprentissage automatique avec SageMaker et xGBoost https://qiita.com/suzukihi724/items/3792f395fb22cf7fb311

Type de transmission de données au conteneur

Comment lancer lors de l'utilisation de la méthode intégrée AWS SageMaker https://qiita.com/kazuhisa-nagashima/items/21d80271da733d15f4b0

Comment passer des variables d'environnement du côté du système d'exploitation hôte au système d'exploitation invité (conteneur) avec Docker (différents types) https://qiita.com/KEINOS/items/518610bc2fdf5999acf2 Je me demandais pourquoi j'utiliserais des variables d'environnement pour passer des paramètres, mais il semble que l'utilisation de variables d'environnement soit la théorie pour communiquer des informations aux conteneurs.

Apprenez / inférez avec votre propre conteneur

J'ai essayé de créer une image de conteneur pouvant utiliser Light GBM avec Amazon Sage Maker https://dev.classmethod.jp/articles/sagemaker-container-image-lightgbm/

Créez votre propre image de conteneur d'apprentissage / d'inférence avec Amazon SageMaker https://dev.classmethod.jp/articles/sagemaker-container-image-custom/

GitHub (japonais) https://github.com/aws-samples/amazon-sagemaker-examples-jp/tree/master/workshop/lab_bring-your-own-containers

[Manuel du développeur] Utilisation du code d'inférence d'origine dans le service d'hébergement https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/your-algorithms-inference-code.html

Inférence: une fois implémentée avec l'API

Développement d'applications à l'aide du point de terminaison d'inférence Amazon SageMaker https://www.slideshare.net/AmazonWebServicesJapan/amazon-sagemaker-122749918

Créer un frontal sans serveur pour les points de terminaison Amazon SageMaker https://aws.amazon.com/jp/blogs/news/build-a-serverless-frontend-for-an-amazon-sagemaker-endpoint/

Créez et testez le modèle d'inférence Amazon Sagemaker et déployez-le sur AWS Lambda https://aws.amazon.com/jp/blogs/news/build-test-and-deploy-your-amazon-sagemaker-inference-models-to-aws-lambda/

Journal

20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session https://www.slideshare.net/AmazonWebServicesJapan/20190206-aws-black-belt-online-seminar-amazon-sagemaker-basic-session-130777850 Décrit dans la référence à la fin

Sécurité

ML Security on AWS https://pages.awscloud.com/rs/112-TZM-766/images/A2-07.pdf

Comment résoudre l'exigence «Ne pas aller sur Internet» sur la prise en charge d'AWS-Private Link- https://bcblog.sios.jp/aws-privatelink/

Expliquer comment utiliser AWS Private Link https://blog.mmmcorp.co.jp/blog/2017/11/15/aws_privatelink/

Comment utiliser AWS Private Link et précautions - Utiliser correctement avec l'appairage de VPC - https://devlog.arksystems.co.jp/2018/05/11/4896/

Expérience pratique / QA

https://aws.amazon.com/jp/blogs/news/amazon-sagemaker-handson-20190517/

Conception et fonctionnement

Flux de développement de modèle d'apprentissage automatique avec AWS SageMaker (PyTorch) https://qiita.com/noko_qii/items/41130f66afbb8e451f23

Pré-traitement: traitement SageMaker

J'ai essayé d'utiliser mon propre conteneur avec Amazon SageMaker Processing https://dev.classmethod.jp/articles/amazon-sagemaker-processing-original-container/ Presque identique à SKLearnProcessor sauf qu'un conteneur avec les bibliothèques nécessaires installées est préparé.

Utiliser le conteneur intégré: SKLearnProcessor https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/use-scikit-learn-processing-container.html

Utilisez votre propre conteneur: ScriptProcessor

Amazon SageMaker Processing - Traitement des données et évaluation de modèle entièrement gérés https://aws.amazon.com/jp/blogs/news/amazon-sagemaker-processin-fully-managed-data-processing-and-model-evaluation/

Construction de pipelines

Pipeline CI / CD pour ML avec Amazon SageMaker https://pages.awscloud.com/rs/112-TZM-766/images/E-3.pdf

Inférence par lots

Inférence en temps réel

Comment combiner vos propres conteneurs dans le pipeline d'inférence Amazon SageMaker https://qiita.com/yaiwase/items/79f99d2c38ed66729a47

AWS Step Functions AWS Step Functions https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/connect-sagemaker.html

Modèle 1: StepFunctions-> API SageMaker (Disponible avec l'API SageMaker installée dans Setp Functions)

Créer une API Step Functions à l'aide d'API Gateway https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/tutorial-api-gateway.html Si vous souhaitez accepter de API Gateway.

AWS Step Functions Data Science SDK for Python https://docs.amazonaws.cn/en_us/step-functions/latest/dg/concepts-python-sdk.html

Présentation de "AWS Step Functions Data Science SDK" pour créer facilement une machine d'état https://dev.classmethod.jp/articles/yoshim_step_functions_datascience_sdk/

Le nombre d'API SageMaker pouvant être gérées par Step Functions a augmenté. https://dev.classmethod.jp/articles/stepfunctions-sagemaker-api-update/

Modèle 2: StepFunctions-> Lambda-> API SageMaker Exécution de scripts à l'aide de votre propre conteneur de traitement https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/processing-container-run-scripts.html

Gérez les workflows de ML sans serveur avec AWS Step Functions: Amazon SageMaker Advent Calendar 2018 https://dev.classmethod.jp/articles/2018advent-calendar-sagemaker-20181210/

Gestion des flux de travail d'apprentissage automatique avec AWS StepFunctions https://qiita.com/kurakura0916/items/5e89cb86e86d22fdc5d8

Créer un processus par lots qui combine Lambda avec AWS Step Functions https://dev.classmethod.jp/articles/aws-step-functions-batch-service/

[GitHub] AWS Step Functions Data Science SDK - Hello World https://github.com/awslabs/amazon-sagemaker-examples/blob/master/step-functions-data-science-sdk/hello_world_workflow/hello_world_workflow.ipynb

Automating Amazon SageMaker workflows with AWS Step Functions https://www.youtube.com/watch?v=0kMdOi69tjQ

Orchestrate Machine Learning Workflows with Amazon SageMaker and AWS Step Functions https://www.youtube.com/watch?v=dNb5jVffzPs

20190522 AWS Black Belt Online Seminar AWS Step Functions https://www.slideshare.net/AmazonWebServicesJapan/20190522-aws-black-belt-online-seminar-aws-step-functions

Building an AWS Serverless ML Pipeline with Step Functions https://tech.olx.com/building-an-aws-serverless-ml-pipeline-with-step-functions-b39feed12bab

J'ai essayé le bouclage et le branchement pour la première fois en utilisant Step Functions! https://dev.classmethod.jp/articles/first-aws-step-functions/ Step Functions + Lambda pratique

AWS Lambda Créez un pipeline CI / CD à la fois à l'aide de la création d'application AWS Lambda https://qiita.com/shonansurvivors/items/b223fbb362aed3c1c536

AWS GLUE Concept AWS GLUE https://docs.aws.amazon.com/ja_jp/glue/latest/dg/components-key-concepts.html

Comment utiliser la colle https://qiita.com/pioho07/items/32f76a16cbf49f9f712f

Ce que j'ai fait pour gérer des données de 5 To / jour avec AWS Glue (présentation) https://future-architect.github.io/articles/20180828/ La comparaison entre EMR et Glue est très utile.

MLOps Automatisez la création de modèles d'apprentissage automatique avec Lambda et les fabricants d'abaisseurs https://medium.com/@yuyasugano/lambda%E3%81%A8%E4%B8%8B%E3%81%92%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC%E3%81%A7%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E6%A7%8B%E7%AF%89%E3%82%92%E8%87%AA%E5%8B%95%E5%8C%96-73161d316c0e

Une plateforme d'apprentissage automatique basée sur les événements qui s'orchestration avec les fonctions Step et AWS batch https://www.slideshare.net/yuyamada777/step-functionsaws-batch

Plateforme d'apprentissage automatique / article auquel j'ai fait référence lors de mes études autour de MLOps (en décembre 2018) https://qiita.com/noko_qii/items/f31901817dbed86f2b25

Réglage des hyper paramètres

Mécanisme de réglage des hyper paramètres https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html

Comprendre l'algorithme Optuna (TPE) - Partie 1- https://qiita.com/nabenabe0928/items/708d221dbccebf31f01c

GitHub (japonais) https://github.com/aws-samples/amazon-sagemaker-examples-jp/blob/master/hpo_pytorch_mnist/pytorch_mnist.ipynb

Cadre d'optimisation d'Optuna Hyper Parameter https://www.slideshare.net/pfi/pydatatokyo-meetup-21-optuna Define-by-Run: définir l'espace de recherche lors de l'exécution de la fonction objectif

Utiliser Optuna avec SageMaker https://aws.amazon.com/jp/blogs/machine-learning/implementing-hyperparameter-optimization-with-optuna-on-amazon-sagemaker/

SageMaker HPO: Tout d'abord, l'espace de recherche est décidé. Déterminez les paramètres dans Optuna: boucle for. Déterminez dynamiquement l'espace de recherche ・ Plusieurs essais sont exécutés dans un seul travail d'entraînement. ・ Après un essai, écrivez les paramètres sur l'aurore. Regardez les paramètres passés et décidez du paramètre suivant. pytorch-simple https://github.com/aws-samples/amazon-sagemaker-optuna-hpo-blog/blob/master/examples/pytorch_simple/src/pytorch_simple.py

・ Essais objectifs (essai), expériences, etc. -Ajustement du nombre d'unités de couche. Réglage du nombre de couches 46e ligne n_layers = trial.suggest_int("n_layers", 1, 3) ・ Puisque le back-end d'Optuna est RDS, RDS et Aulora sont requis. -Le nombre d'unités est réglé sur la 51e ligne. out_features = trial.suggest_int("n_units_l{}".format(i), 4, 128)

AutoML Ne pouvez-vous pas automatiser ce processus d'apprentissage automatique? https://qiita.com/Hironsan/items/30fe09c85da8a28ebd63

Visualisation: Amazon QuickSight

Qu'est-ce qu'Amazon QuickSight? https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/welcome.html

AWS Manga Episode 8: Visualisez toutes les données! (1/8) https://aws.amazon.com/jp/campaigns/manga/vol8-1/ Il y a du matériel pratique en bas

10 visualisations à essayer avec Amazon QuickSight à l'aide d'exemples de données https://aws.amazon.com/jp/blogs/news/10-visualizations-to-try-in-amazon-quicksight-with-sample-data/

[Officiel] Utilisation de ML Insight https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/making-data-driven-decisions-with-ml-in-quicksight.html La forêt coupée au hasard est utilisée à la fois pour la détection des anomalies et la prévision numérique

Visualizing Amazon SageMaker machine learning predictions with Amazon QuickSight https://aws.amazon.com/jp/blogs/machine-learning/making-machine-learning-predictions-in-amazon-quicksight-and-amazon-sagemaker/ Coopération entre SageMaker et QuickSight

Je souhaite déplacer un code R existant

Utilisez un conteneur personnalisé Utilisez vos propres algorithmes et modèles avec Amazon SageMaker https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/your-algorithms.html

GitHub https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/r_bring_your_own

Pour les utilisateurs de Kubernetes / Kubeflow

Présentation des opérateurs Amazon SageMaker pour Kubernetes https://aws.amazon.com/jp/blogs/news/introducing-amazon-sagemaker-operators-for-kubernetes/ Peut être utilisé depuis EKS. Il peut également être utilisé avec Kubernetes ordinaire.

Amazon SageMaker Components for Kubeflow Pipelines https://aws.amazon.com/about-aws/whats-new/2020/06/amazon-sagemaker-components-kubeflow-pipelines/ SageMaker peut être incorporé dans Kubeflow

Traitement distribué

Apprentissage et flux de travail distribués pour les données à grande échelle réalisés par Amazon SageMaker | AWS Summit Tokyo 2019 https://www.youtube.com/watch?v=NUnIiYD-PEU&t=714s AWS CodeCommit EFS: partage de données entre instances / utilisateurs Accès aux fichiers / mode pipe Paramètres pour les données volumineuses de 100 Go HPO Amazon Elastic Inference Conversion par lots Bonnes pratiques pour la préparation des données (Glue / Athena) Emballage des ensembles de données dans des fichiers RecordIO / TFRecord Utilisez la conversion par lots si vous n'avez pas besoin de prédiction en ligne Utiliser un pipeline d'inférence au lieu de plusieurs points de terminaison

Renforcer l'apprentissage

"Problèmes courants dans le fonctionnement réel de l'apprentissage automatique et des solutions / études de cas utilisant AWS" | AWS Summit Tokyo 2019 https://www.youtube.com/watch?v=a3smIzBC6BQ

Comment démarrer avec l'apprentissage automatique

[Débutant] Présentation des services AWS Machine Learning | AWS Summit Tokyo 2019 https://www.youtube.com/watch?v=1gC46ODyudE

Conteneur (ECS / EKS / ECR / Fargate)

https://www.youtube.com/watch?v=L4bLDNRSYC8

Présentation de SageMaker

【AWS Black Belt Online Seminar】Amazon SageMaker Advanced Session https://www.youtube.com/watch?v=G-s67PmTCjo&t=2496s

Service IA

【AWS Black Belt Online Seminar】AWS AI Language Services https://www.youtube.com/watch?v=Q0Ety9Z7oWM

【AWS Black Belt Online Seminar】AWS AI Services https://www.youtube.com/watch?v=xvUyKjuv-Z4&t=1183s Avec l'architecture d'inférence de Rekognition

Amazon API Gateway 【AWS Black Belt Online Seminar】Amazon API Gateway https://www.youtube.com/watch?v=EpEETIox03s&list=RDCMUCnjKWUK2t5QJYfeqqilhJhQ&index=8

Recommended Posts

Pour les débutants de SageMaker - Liens matériels -
Vue d'ensemble de Docker (pour les débutants)
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Compréhension facile de Python pour les tableaux et (pour les super débutants)
Liste des liens que les débutants en apprentissage automatique apprennent
Principes de base de la technologie de reconnaissance d'image (pour les débutants)
Principes de base de Pandas pour les débutants ② Présentation des données de saisie
Histoire de base de l'héritage en Python (pour les débutants)
[Linux] Principes de base de la configuration des autorisations par chmod pour les débutants
[Pour les débutants] Django Commandes fréquemment utilisées et collection de références
Paramètres Spacemacs (pour les débutants)
Manuel python pour les débutants
Algorithme Dikstra pour les débutants
OpenCV pour les débutants en Python
[Pour les débutants] Les bases de Python expliquées par Java Gold Part 2
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
■ Kaggle Practice pour les débutants - Introduction de Python - par Google Colaboratory
[Django] Une collection de scripts pratiques pour le développement
Principes de base de Pandas pour les débutants ④ Gestion des éléments de date et d'heure
[Python] Les principales faiblesses et inconvénients de Google Colaboratory [Pour les débutants]
[Pour les débutants] Un résumé en mots des langages de programmation populaires (version 2018)