Con los componentes de SageMaker para canalizaciones de Kubeflow, puede crear y supervisar trabajos nativos de SageMaker de entrenamiento, ajuste, implementación de puntos de conexión y transformación por lotes desde sus canalizaciones de Kubeflow. Al ejecutar los trabajos de canalizaciones de Kubeflow en SageMaker, traslada los trabajos de procesamiento de datos y entrenamiento del clúster de Kubernetes al servicio administrado optimizado para machine learning de SageMaker. En este documento se presupone tener conocimientos previos de Kubernetes y Kubeflow.
Contenido
- ¿Qué son las canalizaciones de Kubeflow?
- ¿Qué son los componentes de una canalización de Kubeflow?
- ¿Por qué usar los componentes de SageMaker para las canalizaciones de Kubeflow?
- Versiones de los componentes de SageMaker para canalizaciones de Kubeflow
- Lista de componentes de SageMaker para canalizaciones de Kubeflow
- Permisos de IAM
- Conversión de canalizaciones para usar SageMaker
- Instalar canalizaciones de Kubeflow
- Uso de los componentes de SageMaker
¿Qué son las canalizaciones de Kubeflow?
Las canalizaciones de Kubeflow (KFP) son una plataforma para crear e implementar flujos de trabajo de machine learning (ML) portátiles y escalables basados en contenedores de Docker. La plataforma de canalizaciones de Kubeflow consta de lo siguiente:
-
Una interfaz de usuario (UI) para administrar y rastrear experimentos, trabajos y ejecuciones.
-
Un motor (Argo) para programar flujos de trabajo de ML de varios pasos.
-
Un SDK para definir y manipular canalizaciones y componentes.
-
Cuadernos para interactuar con el sistema mediante el SDK.
Una canalización es una descripción de un flujo de trabajo de ML que se expresa como un gráfico acíclico dirigido
Para obtener más información sobre las canalizaciones de Kubeflow, consulte la documentación de las canalizaciones de Kubeflow
¿Qué son los componentes de una canalización de Kubeflow?
Un componente de canalización de Kubeflow es un conjunto de códigos que se utiliza para ejecutar un paso de una canalización de Kubeflow. Los componentes se representan mediante un módulo de Python integrado en una imagen de Docker. Cuando se ejecuta la canalización, se crea una instancia del contenedor del componente en uno de los nodos de trabajo del clúster de Kubernetes que ejecuta Kubeflow, y se ejecuta su lógica. Los componentes de la canalización pueden leer las salidas de los componentes anteriores y crear salidas que el siguiente componente de la canalización puede consumir. Estos componentes facilitan y agilizan la creación de canalizaciones para entornos de experimentación y producción sin tener que interactuar con la infraestructura subyacente de Kubernetes.
Puede utilizar los componentes de SageMaker en su canalización de Kubeflow. En lugar de encapsular la lógica en un contenedor personalizado, basta con cargar los componentes y describir la canalización mediante el SDK de las canalizaciones de Kubeflow. Cuando se ejecuta la canalización, sus instrucciones se traducen en un trabajo o implementación de SageMaker. A continuación, la carga de trabajo se ejecuta en la infraestructura totalmente administrada de SageMaker.
¿Por qué usar los componentes de SageMaker para las canalizaciones de Kubeflow?
Los componentes de SageMaker para las canalizaciones de Kubeflow ofrecen una alternativa al lanzamiento de sus trabajos con un uso intensivo de cómputo desde SageMaker. Los componentes integran SageMaker con la portabilidad y la orquestación de las canalizaciones de Kubeflow. Con los componentes de SageMaker para las canalizaciones de Kubeflow, puede crear y supervisar sus recursos de SageMaker como parte de un flujo de trabajo de canalizaciones de Kubeflow. Cada uno de los trabajos de sus canalizaciones se ejecuta en SageMaker en lugar de en el clúster local de Kubernetes, lo que le permite aprovechar las características clave de SageMaker, como el etiquetado de datos, el ajuste de hiperparámetros a gran escala y los trabajos de entrenamiento distribuidos, o la implementación de modelos escalables y seguros con un solo clic. Es posible acceder a los parámetros, el estado, los registros y las salidas del trabajo de SageMaker desde la interfaz de usuario de las canalizaciones de Kubeflow.
Los componentes de SageMaker integran las características clave de SageMaker en sus flujos de trabajo de ML, desde la preparación de datos hasta la creación, el entrenamiento y la implementación de modelos de ML. Puede crear una canalización de Kubeflow creada íntegramente con estos componentes o integrar componentes individuales en su flujo de trabajo según sea necesario. Los componentes están disponibles en una o dos versiones. Cada versión de un componente utiliza un backend diferente. Para obtener más información acerca de las versiones, consulte Versiones de los componentes de SageMaker para canalizaciones de Kubeflow.
El uso de los componentes de SageMaker para las canalizaciones de Kubeflow no supone ningún cargo adicional. Se le cobrará por cualquier recurso de SageMaker que utilice a través de estos componentes.
Versiones de los componentes de SageMaker para canalizaciones de Kubeflow
Los componentes de SageMaker para canalizaciones de Kubeflow vienen en dos versiones. Cada versión utiliza un backend diferente para crear y administrar recursos en SageMaker.
-
La versión 1 de los componentes de SageMaker para canalizaciones de Kubeflow (v1.x o inferior) utiliza Boto3
(AWS SDK for Python (Boto3)) como backend. -
La versión 2 (v2.0.0-alfa2 y superior) de los componentes de SageMaker para canalizaciones de Kubeflow usa operadores de SageMaker para Kubernetes (ACK)
. AWS introdujo ACK
para facilitar una forma nativa de Kubernetes de administrar los recursos de la nube de AWS. ACK incluye un conjunto de controladores de AWS específicos del servicio, uno de los cuales es el controlador de SageMaker. El controlador de SageMaker facilita que los desarrolladores de machine learning y los científicos de datos utilicen Kubernetes como plano de control para entrenar, ajustar e implementar modelos de machine learning (ML) en SageMaker. Para obtener más información, consulte SageMaker Operators for Kubernetes
Se admiten ambas versiones de los componentes de SageMaker para las canalizaciones de Kubeflow. Sin embargo, la versión 2 ofrece algunas ventajas adicionales. En concreto, ofrece:
-
Una experiencia coherente para administrar los recursos de SageMaker desde cualquier aplicación, ya sean canalizaciones de Kubeflow, la CLI (
kubectl
) de Kubernetes u otras aplicaciones de Kubeflow, como los cuadernos. -
La flexibilidad de administrar y supervisar sus recursos de SageMaker fuera del flujo de trabajo de la canalización de Kubeflow.
-
No hay tiempo de configuración para usar los componentes de SageMaker si implementa la versión completa de Kubeflow en AWS
en el momento del lanzamiento, ya que el operador SageMaker forma parte de su implementación.
Lista de componentes de SageMaker para canalizaciones de Kubeflow
La siguiente es una lista de todos los componentes de SageMaker para canalizaciones de Kubeflow y sus versiones disponibles. Como alternativa, encontrará todos los componentes de SageMaker para canalizaciones de Kubeflow en GitHub
nota
Recomendamos a los usuarios que utilicen la versión 2 de un componente de SageMaker siempre que esté disponible.
-
Ground Truth
El componente Ground Truth le permite enviar trabajos de etiquetado de SageMaker Ground Truth directamente desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente Versión 1 del componente canalizaciones de Kubeflow de SageMaker Ground Truth
X
-
Workteam
El componente Workteam le permite crear trabajos para equipos de trabajo privados de SageMaker directamente desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente X
-
Procesando
El componente Processing le permite enviar trabajos de procesamiento de SageMaker directamente desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente Versión 1 del componente de canalizaciones de procesamiento de SageMaker
X
-
Entrenamiento
El componente Training le permite enviar trabajos de entrenamiento de SageMaker directamente desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente Versión 1 del componente de canalizaciones de Kubeflow de entrenamiento de SageMaker
Versión 2 del componente de canalizaciones de Kubeflow de entrenamiento de SageMaker
-
Optimización de hiperparámetros
El componente de optimización de hiperparámetros le permite enviar trabajos de ajuste de hiperparámetros a SageMaker directamente desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente X
-
Implementación de alojamiento
Los componentes de alojamiento le permiten implementar un modelo mediante los servicios de alojamiento de SageMaker desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente La versión 2 de los componentes de alojamiento consta de los tres subcomponentes necesarios para crear una implementación de alojamiento en SageMaker.
-
Un componente de canalizaciones de Kubeflow de modelos de SageMaker, versión 2
, responsable de los artefactos del modelo y de la ruta de registro de la imagen del modelo que contiene el código de inferencia. -
Un componente de canalizaciones de Kubeflow de configuración de puntos de conexión de SageMaker, versión 2
, responsable de definir la configuración del punto de conexión, como el tipo de instancia, los modelos, el número de instancias y la opción de inferencia sin servidor. -
Un componente de canalizaciones de Kubeflow de punto de conexión de SageMaker, versión 2
, responsable de crear o actualizar el punto de conexión en SageMaker, tal y como se especifica en la configuración del punto de conexión.
-
-
Transformación por lotes
El componente de transformación por lotes le permite ejecutar trabajos de inferencia para un conjunto de datos completo en SageMaker desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente Versión 1 del componente de canalización de Kubeflow de transformación por lotes de SageMaker
X
-
Monitor de modelos
Los componentes del monitor de modelos le permiten supervisar la calidad de los modelos de machine learning de SageMaker en producción desde un flujo de trabajo de canalizaciones de Kubeflow.
Versión 1 del componente Versión 2 del componente X
Los componentes del monitor de modelos constan de cuatro subcomponentes para supervisar la desviación en un modelo.
-
Un componente de canalizaciones de Kubeflow de definición de trabajo de calidad de datos de SageMaker, versión 2
, responsable de supervisar las desviaciones en la calidad de los datos. -
Un componente de canalizaciones de Kubeflow de definición de trabajo de calidad del modelo de SageMaker, versión 2
, responsable de supervisar las desviaciones en las métricas de calidad del modelo. -
Un componente de canalizaciones de Kubeflow de definición de trabajo de sesgo del modelo de SageMaker, versión 2
, responsable de supervisar el sesgo en las predicciones del modelo. -
Un componente de canalizaciones de Kubeflow de definición de trabajo de explicabilidad del modelo de SageMaker, versión 2
, responsable de supervisar las desviaciones en la atribución de características.
Además, para la supervisión programada con una frecuencia específica, un quinto componente, un componente de canalizaciones de Kubeflow de programación de supervisión de SageMaker, versión 2
, se encarga de supervisar los datos recopilados desde un punto de conexión en tiempo real según una programación. Para obtener más información sobre el monitor de modelos de Amazon SageMaker, consulte Supervisión de la calidad de datos y modelos con el Monitor de modelos de Amazon SageMaker.
-
Permisos de IAM
La implementación de las canalizaciones de Kubeflow con componentes de SageMaker requiere los siguientes tres niveles de autenticación:
-
Un rol de IAM que otorga a su nodo de puerta de enlace (que puede ser su equipo local o una instancia remota) acceso al clúster de Amazon Elastic Kubernetes Service (Amazon EKS).
El usuario que accede al nodo de puerta de enlace asume este rol para:
-
Crear un clúster de Amazon EKS e instalar KFP.
-
Crear roles de IAM.
-
Crear buckets de Amazon S3 para sus datos de entrada de muestra.
El rol requiere los siguientes permisos:
-
CloudWatchLogsFullAccess
-
IAMFullAccess
-
AmazonS3FullAccess
-
AmazonEC2FullAccess
-
AmazonEKSAdminPolicy (cree esta política con el esquema de los ejemplos de políticas basadas en identidades de Amazon EKS)
-
-
Un rol de ejecución de IAM de Kubernetes que asumen los pods de canalización de Kubernetes (kfp-example-pod-role) o el pod del controlador del operador de SageMaker para Kubernetes para acceder a SageMaker. Este rol se utiliza para crear y supervisar los trabajos de SageMaker desde Kubernetes.
El rol requiere el siguiente permiso:
-
AmazonSageMakerFullAccess
Puede limitar los permisos a los pods de control y KFP creando y asociando su propia política personalizada.
-
-
Un rol de ejecución de IAM de SageMaker que asumen los trabajos de SageMaker para acceder a recursos de AWS como Amazon S3 o Amazon ECR (kfp-example-sagemaker-execution-role).
Los trabajos de SageMaker utilizan este rol para:
-
Acceder a recursos de SageMaker.
-
Ingresar datos desde Amazon S3.
-
Guardar su modelo de salida en Amazon S3.
El rol requiere los siguientes permisos:
-
AmazonSageMakerFullAccess
-
AmazonS3FullAccess
-
Conversión de canalizaciones para usar SageMaker
Puede convertir una canalización existente para que use SageMaker si porta sus contenedores de procesamiento y sus contenedores de entrenamiento genéricos de Python. Si utiliza SageMaker para realizar inferencias, también debe asociar permisos de IAM a su clúster y convertir un artefacto en un modelo.