Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS

El 9 de agosto de 2022, anunciamos la disponibilidad general del uso compartido entre cuentas de Entidades de canalizaciones de Amazon SageMaker. Ahora puede utilizar la asistencia entre cuentas para Canalizaciones de Amazon SageMaker para compartir entidades de canalización entre cuentas de AWS y acceder a canalizaciones compartidas directamente a través de Amazon SageMaker Llamadas a API.

Los clientes están adoptando cada vez más arquitecturas multicuenta para implementar y administrar flujos de trabajo de aprendizaje automático (ML) con SageMaker Pipelines. Esto implica crear flujos de trabajo en cuentas de desarrollo o experimentación (dev), implementarlos y probarlos en una cuenta de prueba o preproducción (prueba) y, finalmente, promoverlos a cuentas de producción (prod) para integrarlos con otros procesos comerciales. Puede beneficiarse del uso compartido entre cuentas de canalizaciones de SageMaker en los siguientes casos de uso:

  • Cuando los científicos de datos crean flujos de trabajo de ML en una cuenta de desarrollo, un ingeniero de ML implementa esos flujos de trabajo como una canalización de SageMaker en una cuenta de prueba dedicada. Para monitorear aún más esos flujos de trabajo, los científicos de datos ahora requieren permiso de solo lectura entre cuentas para la canalización implementada en la cuenta de prueba.
  • Los ingenieros de ML, los administradores de ML y los equipos de cumplimiento, que gestionan la implementación y las operaciones de esos flujos de trabajo de ML desde una cuenta de servicios compartidos, también requieren visibilidad de la canalización implementada en la cuenta de prueba. También pueden requerir permisos adicionales para iniciar, detener y volver a intentar esos flujos de trabajo de ML.

En esta publicación, presentamos un ejemplo de arquitectura de múltiples cuentas para desarrollar e implementar flujos de trabajo de ML con SageMaker Pipelines.

Resumen de la solución

Una estrategia de múltiples cuentas lo ayuda a lograr el aislamiento de datos, proyectos y equipos mientras respalda los pasos del ciclo de vida del desarrollo de software. El uso compartido de canalizaciones entre cuentas admite una estrategia de múltiples cuentas, lo que elimina la sobrecarga de iniciar y cerrar sesión en varias cuentas y mejora los flujos de trabajo de implementación y prueba de ML al compartir recursos directamente entre varias cuentas.

En este ejemplo, tenemos un equipo de ciencia de datos que usa una cuenta de desarrollo dedicada para el desarrollo inicial de la canalización de SageMaker. Esta tubería luego se entrega a un ingeniero de ML, quien crea un canalización de integración continua y entrega continua (CI/CD) en su cuenta de servicios compartidos para implementar esta canalización en una cuenta de prueba. Para poder monitorear y controlar la canalización implementada desde sus respectivas cuentas de desarrollo y servicios compartidos, recursos compartidos están configurados con Administrador de acceso a recursos de AWS en las cuentas de prueba y desarrollo. Con esta configuración, el ingeniero de ML y el científico de datos ahora pueden monitorear y controlar las canalizaciones en las cuentas de desarrollo y prueba desde sus respectivas cuentas, como se muestra en la siguiente figura.

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

En el flujo de trabajo, el científico de datos y el ingeniero de ML realizan los siguientes pasos:

  1. El científico de datos (DS) crea una canalización modelo en la cuenta de desarrollo.
  2. El ingeniero de ML (MLE) produce la canalización del modelo y crea una canalización (para esta publicación, lo llamamos sagemaker-pipeline).
  3. sagemaker-pipeline el código está comprometido con un Compromiso de código de AWS repositorio en la cuenta de servicios compartidos.
  4. El científico de datos crea un recurso compartido de RAM de AWS para sagemaker-pipeline y lo comparte con la cuenta de servicios compartidos, que acepta el recurso compartido.
  5. Desde la cuenta de servicios compartidos, los ingenieros de ML ahora pueden describir, monitorear y administrar las ejecuciones de canalización en la cuenta de desarrollo usando Llamadas a la API de SageMaker.
  6. Una canalización de CI/CD desencadenada en la cuenta de servicio compartido compila e implementa el código en la cuenta de prueba mediante AWS CodePipeline.
  7. La canalización de CI/CD crea y ejecuta sagemaker-pipeline en la cuenta de prueba.
  8. despues de correr sagemaker-pipeline en la cuenta de prueba, la canalización de CI/CD crea un recurso compartido para sagemaker-pipeline en la cuenta de prueba.
  9. Un recurso compartido de la prueba sagemaker-pipeline con permisos de solo lectura se crea con la cuenta dev, que acepta el recurso compartido.
  10. El científico de datos ahora puede describir y monitorear el estado de ejecución de la tubería de prueba mediante llamadas a la API de SageMaker desde la cuenta de desarrollo.
  11. Un recurso compartido de la prueba sagemaker-pipeline con permisos ampliados se crea con la cuenta de servicios compartidos, que acepta el recurso compartido.
  12. El ingeniero de ML ahora puede describir, monitorear y administrar la ejecución de la canalización de prueba mediante llamadas a la API de SageMaker desde la cuenta de servicios compartidos.

En las siguientes secciones, entramos en más detalles y brindamos una demostración sobre cómo configurar el uso compartido entre cuentas para las canalizaciones de SageMaker.

Cómo crear y compartir canalizaciones de SageMaker entre cuentas

En esta sección, recorremos los pasos necesarios para crear y compartir canalizaciones entre cuentas mediante AWS RAM y la API de SageMaker.

Configurar el entorno

Primero, debemos configurar un entorno de múltiples cuentas para demostrar el uso compartido entre cuentas de las canalizaciones de SageMaker:

  1. Configure dos cuentas de AWS (de desarrollo y prueba). Puede configurar esto como cuentas de miembros de una organización o como cuentas independientes.
  2. Si está configurando sus cuentas como miembro de una organización, puede habilitar compartir recursos con su organización. Con esta configuración, cuando comparte recursos en su organización, AWS RAM no envía invitaciones a los principales. Los directores de su organización obtienen acceso a los recursos compartidos sin intercambiar invitaciones.
  3. En la cuenta de prueba, inicie Estudio Amazon SageMaker y ejecutar el cuaderno tren-registro-implementación-tubería-modelo. Esto crea una canalización de ejemplo en su cuenta de prueba. Para simplificar la demostración, usamos SageMaker Studio en la cuenta de prueba para iniciar la canalización. Para proyectos de la vida real, debe usar Studio solo en la cuenta de desarrollo e iniciar SageMaker Pipeline en la cuenta de prueba usando sus herramientas de CI/CD.

Siga las instrucciones de la siguiente sección para compartir esta canalización con la cuenta de desarrollo.

Configurar un recurso compartido de canalización

Para compartir su canalización con la cuenta de desarrollo, complete los siguientes pasos:

  1. En la consola de RAM de AWS, elija Crear recursos compartidos.
  2. Seleccionar tipo de recurso, escoger Tuberías de SageMaker.
  3. Seleccione la canalización que creó en el paso anterior.
  4. Elige Siguiente.
  5. Permisos, elija sus permisos asociados.
  6. Elige Siguiente.
    Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.A continuación, decide cómo desea otorgar acceso a los principales.
  7. Si necesita compartir la tubería solo dentro de las cuentas de su organización, seleccione Permitir compartir solo dentro de su organización; de lo contrario seleccione Permitir compartir con cualquier persona.
  8. Directores, elija su tipo principal (puede usar una cuenta, organización o unidad organizativa de AWS, según sus requisitos de uso compartido). Para esta publicación, compartimos con cualquier persona en el nivel de cuenta de AWS.
  9. Seleccione su identificación principal.
  10. Elige Siguiente.
    Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  11. En Revisar y crear página, verifique que su información sea correcta y elija Crear recursos compartidos.
    Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  12. Navega a tu cuenta de destino (para esta publicación, tu cuenta de desarrollador).
  13. En la consola de AWS RAM, en Comparte conmigo en el panel de navegación, elija Recursos compartidos.
  14. Elija su recurso compartido y elija Aceptar recurso compartido.
    Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Permisos para compartir recursos

Al crear su recurso compartido, puede elegir una de las dos políticas de permisos admitidas para asociarla con el tipo de recurso de canalización de SageMaker. Ambas políticas otorgan acceso a cualquier tubería seleccionada y todas sus ejecuciones.

El AWSRAMDefaultPermissionSageMakerPipeline La política permite las siguientes acciones de solo lectura:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

El AWSRAMPermissionSageMakerPipelineAllowExecution incluye todos los permisos de solo lectura de la política predeterminada y también permite que las cuentas compartidas inicien, detengan y vuelvan a intentar ejecuciones de canalización.

La política de permiso de ejecución de canalización extendida permite las siguientes acciones:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

Acceda a entidades de canalización compartidas a través de llamadas API directas

En esta sección, explicamos cómo puede usar varias llamadas a la API de canalización de SageMaker para obtener visibilidad de las canalizaciones que se ejecutan en cuentas remotas que se han compartido con usted. Para probar las API con la canalización que se ejecuta en la cuenta de prueba desde la cuenta de desarrollo, inicie sesión en la cuenta de desarrollo y use AWS CloudShell.

Para las llamadas a la API de canalización de SageMaker entre cuentas, siempre debe usar el ARN de su canalización como identificación de la canalización. Eso también incluye los comandos que requieren el nombre de la canalización, donde debe usar su ARN de canalización como nombre de canalización.

Para obtener el ARN de su canalización, en su cuenta de prueba, vaya a los detalles de su canalización en Studio a través de Recursos de SageMaker.

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Elige Pipelines en su lista de recursos.

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Elija su tubería y vaya a su tubería Ajustes pestaña. Puede encontrar el ARN de canalización con su metadatos información. Para este ejemplo, su ARN se define como "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

ListPipelineEjecutions

Esta llamada a la API enumera las carreras de su tubería. Ejecute el siguiente comando, reemplazando $SHARED_PIPELINE_ARN con su ARN de canalización de CloudShell o usando el Interfaz de línea de comandos de AWS (AWS CLI) configurado con el apropiado Gestión de identidades y accesos de AWS (YO SOY) papel:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

La respuesta enumera todas las ejecuciones de su canalización con sus PipelineExecutionArn, StartTime, PipelineExecutionStatusy PipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

Describir canalización

Esta llamada a la API describe el detalle de su tubería. Ejecute el siguiente comando, reemplazando $SHARED_PIPELINE_ARN con su ARN de canalización:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

La respuesta proporciona los metadatos de su canalización, así como información sobre su creación y modificaciones:

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

DescribirPipelineExecution

Esta llamada a la API describe el detalle de la ejecución de su canalización. Ejecute el siguiente comando, reemplazando $SHARED_PIPELINE_ARN con su ARN de canalización:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

La respuesta proporciona detalles sobre la ejecución de su canalización, incluido el PipelineExecutionStatus, ExperimentNamey TrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

IniciarPipelineExecution

Esta llamada a la API comienza una ejecución de tubería. Ejecute el siguiente comando, reemplazando $SHARED_PIPELINE_ARN con su ARN de canalización y $CLIENT_REQUEST_TOKEN con un identificador único que distingue entre mayúsculas y minúsculas que genera para esta ejecución. El identificador debe tener entre 32 y 128 caracteres. Por ejemplo, puede generar una cadena usando el AWS CLI kms comando generar aleatorio.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Como respuesta, esta llamada API devuelve el PipelineExecutionArn de la carrera iniciada:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

Detener la ejecución de Pipeline

Esta llamada a la API se detiene una ejecución de tubería. Ejecute el siguiente comando, reemplazando $PIPELINE_EXECUTION_ARN con el ARN de ejecución de canalización de su canalización en ejecución y $CLIENT_REQUEST_TOKEN con un identificador único que distingue entre mayúsculas y minúsculas que genera para esta ejecución. El identificador debe tener entre 32 y 128 caracteres. Por ejemplo, puede generar una cadena usando el AWS CLI kms comando generar aleatorio.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Como respuesta, esta llamada API devuelve el PipelineExecutionArn de la tubería detenida:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

Conclusión

El uso compartido entre cuentas de canalizaciones de SageMaker le permite compartir de forma segura entidades de canalización entre cuentas de AWS y acceder a canalizaciones compartidas a través de llamadas API directas, sin tener que iniciar y cerrar sesión en varias cuentas.

En esta publicación, nos sumergimos en la funcionalidad para mostrar cómo puede compartir canalizaciones entre cuentas y acceder a ellas a través de llamadas a la API de SageMaker.

Como siguiente paso, puede usar esta función para su próximo proyecto de ML.

Recursos

Para comenzar con SageMaker Pipelines y compartir canalizaciones entre cuentas, consulte los siguientes recursos:


Sobre los autores

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.carnero vital es un arquitecto de soluciones especialista en ML en AWS. Tiene más de 20 años de experiencia en la arquitectura y creación de aplicaciones distribuidas, híbridas y en la nube. Le apasiona crear soluciones seguras y escalables de AI/ML y big data para ayudar a los clientes empresariales con su proceso de optimización y adopción de la nube para mejorar sus resultados comerciales. En su tiempo libre, disfruta del tenis, la fotografía y las películas de acción.

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Maira Ladeira Tanke es un arquitecto de soluciones especialista en ML en AWS. Con experiencia en ciencia de datos, tiene 9 años de experiencia en la arquitectura y creación de aplicaciones ML con clientes de todas las industrias. Como líder técnica, ayuda a los clientes a acelerar su logro de valor comercial a través de tecnologías emergentes y soluciones innovadoras. En su tiempo libre, a Maira le gusta viajar y pasar tiempo con su familia en un lugar cálido.

Utilice el uso compartido de canalizaciones de Amazon SageMaker para ver o administrar canalizaciones en cuentas de AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.gabriel zylka es consultor de servicios profesionales en AWS. Trabaja en estrecha colaboración con los clientes para acelerar su proceso de adopción de la nube. Especializado en el dominio MLOps, se enfoca en la producción de cargas de trabajo de aprendizaje automático mediante la automatización de los ciclos de vida de aprendizaje automático de extremo a extremo y ayuda a lograr los resultados comerciales deseados. En su tiempo libre, le gusta viajar y hacer senderismo en los Alpes bávaros.

Sello de tiempo:

Mas de Aprendizaje automático de AWS