Traitement de fonctionnalité avec Spark ML et Scikit-learn - Amazon SageMaker

Traitement de fonctionnalité avec Spark ML et Scikit-learn

Avant d'entraîner un modèle avec des algorithmes Amazon SageMaker intégrés ou des algorithmes personnalisés, vous pouvez utiliser les préprocesseurs Spark et Scikit-learn pour transformer vos données et concevoir des fonctions.

Traitement de fonctionnalité avec Spark ML

Vous pouvez exécuter vos tâches Spark ML avec AWS Glue, un service ETL (extraction, transformation, chargement) sans serveur, depuis votre bloc-notes SageMaker. Vous pouvez également vous connecter à des clusters EMR existants pour exécuter des tâches Spark ML avec Amazon EMR. Pour ce faire, vous avez besoin d'un rôle AWS Identity and Access Management (IAM) qui accorde l'autorisation d'effectuer des appels de votre bloc-notes SageMaker vers AWS Glue.

Note

Pour savoir quelles versions Python et Spark sont prises en charge par AWS Glue, veuillez consulter les Notes de mise à jour AWS Glue.

Après avoir conçu les fonctionnalités, vous devez empaqueter et sérialiser les tâches Spark ML avec MLeap dans des conteneurs MLeap que vous pouvez ajouter à un pipeline d'inférence. Vous n'avez pas besoin d'utiliser des clusters Spark gérés de façon externe. Avec cette approche, vous pouvez passer aisément de quelques lignes à plusieurs téraoctets de données. Les mêmes outils de transformation fonctionnent pour l'entraînement et l'inférence. Vous n'avez donc pas besoin de dupliquer la logique de prétraitement ni d'ingénierie de fonctionnalité, ni de développer une solution unique pour conserver ces modèles. Avec les pipelines d'inférence, vous n'avez pas besoin de gérer d'infrastructure extérieure et vous pouvez effectuer des prédictions directement à partir des entrées de données.

Lorsque vous exécutez une tâche Spark ML sur AWS Glue, un pipeline Spark ML est sérialisé au format MLeap. Ensuite, vous pouvez utiliser la tâche avec le conteneur de service de modèle Spark ML dans un pipeline d'inférence SageMaker. MLeap est un format de sérialisation et un moteur d'exécution pour les pipelines de machine learning. Il prend en charge Spark, Scikit-learn et TensorFlow pour entraîner les pipelines et les exporter vers un pipeline sérialisé appelé bundle MLeap. Vous pouvez désérialiser les bundles dans Spark pour une évaluation en mode de traitement par lots ou dans l'exécution MLeap afin d'alimenter les services d'API en temps réel.

Traitement de fonction avec Scikit-Learn

Vous pouvez exécuter et empaqueter des tâches Scikit-learn dans des conteneurs, directement dans Amazon SageMaker. Pour obtenir un exemple de code Python permettant de générer un modèle de description scikit-learn qui s'entraîne sur l'ensemble de données d'iris de Fisher et prédit les espèces d'iris selon les mesures morphologiques, veuillez consulter la page relative à l'entraînement et à la prédiction d'iris avec Sagemaker Scikit-learn.