Paso 6. Ampliar la canalización - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 6. Ampliar la canalización

En esta guía, se explica cómo puede empezar a crear canalizaciones de ML en AWS de forma rápida y con una arquitectura concreta. Existen consideraciones adicionales para mejorar la canalización, como la gestión de metadatos, el seguimiento de los experimentos y la monitorización. Estos son temas importantes que quedan fuera del alcance de estas recomendaciones. En las siguientes secciones se analiza otro aspecto de la gestión de canalizaciones, que es la automatización de las canalizaciones.

Diferentes niveles de automatización

Aunque puede configurar un proceso de entrenamiento manualmente en la consola de SageMaker AI, en la práctica, le recomendamos minimizar los puntos de contacto manuales en la implementación de los procesos de ML para garantizar que los modelos de ML se implementen de forma coherente y repetida. En función de sus requisitos y de los problemas empresariales a los que se dirija, puede determinar e implementar una estrategia de implementación en tres niveles: semiautomática, totalmente automatizada y totalmente gestionada.

  • Semiautomática: de forma predeterminada, los pasos descritos en la sección anterior siguen un enfoque semiautomatizado, ya que implementan el proceso de entrenamiento e inferencia mediante plantillas de CloudFormation. Esto ayuda a garantizar la reproducibilidad de la canalización y permite cambiarla y actualizarla fácilmente.

  • Totalmente automatizada: una opción más avanzada es utilizar la integración y la implementación continuas (CI/CD) en los entornos de desarrollo, puesta en escena y producción. La incorporación de las prácticas de CI/CD a la implementación de la canalización de entrenamiento puede garantizar que la automatización incluya la trazabilidad y las puertas de calidad.

  • Totalmente gestionado: en última instancia, puede desarrollar un sistema totalmente gestionado para poder implementar un proceso de entrenamiento en ML con un conjunto de sencillos manifiestos, y el sistema podrá autoconfigurar y coordinar los servicios necesarios de AWS.

En estas recomendaciones elegimos presentar una arquitectura concreta. Sin embargo, hay tecnologías alternativas que puede considerar. En las dos secciones siguientes se analizan algunas opciones alternativas para la plataforma y el motor de orquestación.

Diferentes plataformas para cargas de trabajo de ML

Amazon SageMaker AI es el servicio de AWS gestionado para el entrenamiento y el suministro de modelos de ML. Muchos usuarios aprecian su amplia gama de características integradas y las numerosas opciones que ofrece para ejecutar cargas de trabajo de ML. SageMaker AIresulta especialmente útil si acaba de empezar a implementar el ML en la nube. Las principales características de SageMaker AI incluyen:

  • Trazabilidad integrada (que incluye el etiquetado, el entrenamiento, el seguimiento de modelos, la optimización y la inferencia).

  • Opciones integradas de un solo clic para entrenamiento e inferencia con una experiencia mínima en Python y ML.

  • Ajuste avanzado de hiperparámetros.

  • Soporte para los principales marcos de inteligencia artificial y machine learning (ML/AI) y contenedores Docker personalizados.

  • Capacidades de monitorización integradas.

  • Seguimiento integrado de los historiales, incluidos los trabajos de entrenamiento, los trabajos de procesamiento, los trabajos de transformación por lotes, los modelos, los puntos de conexión y la capacidad de búsqueda. Algunos historiales, como los de entrenamiento, procesamiento y transformación por lotes, son inmutables y solo se pueden adjuntar.

Una de las alternativas al uso de SageMaker AI es AWS Batch. AWS Batch proporciona un nivel inferior de control sobre el procesamiento y la orquestación de su entorno, pero no está diseñado a medida para el machine learning. Algunas de sus características principales incluyen:

  • Escalado automático diferente de los recursos informáticos para usar en función de la carga de trabajo.

  • Soporte diferente para la prioridad de las tareas, los reintentos y las dependencias entre las tareas.

  • Enfoque basado en colas que permite crear trabajos recurrentes y según demanda.

  • Soporte para cargas de trabajo de CPU y GPU. La capacidad de usar la GPU para crear modelos de ML es fundamental, ya que la GPU puede acelerar el proceso de entrenamiento de manera significativa, especialmente en el caso de los modelos de aprendizaje profundo.

  • Capacidad de definir una imagen de máquina de Amazon (AMI) personalizada para el entorno informático.

Diferentes motores para la orquestación de canalizaciones

El segundo componente principal es la capa de orquestación de canalizaciones. AWSproporciona Step Functions (funciones de paso) para una experiencia de orquestación totalmente gestionada. Una alternativa popular a Step Functions es Apache Airflow. Cuando tome una decisión entre los dos, tenga en cuenta los siguientes factores:

  • Infraestructura requerida: AWS Step Functions es un servicio totalmente gestionado y no tiene servidores, mientras que Airflow requiere la administración de su propia infraestructura y se basa en un software de código abierto. Como resultado, Step Functions proporciona una alta disponibilidad desde el primer momento, mientras que la administración de Apache Airflow requiere pasos adicionales.

  • Capacidades de programación: tanto Step Functions como Airflow ofrecen funcionalidades comparables.

  • Capacidades de visualización e interfaz de usuario: tanto Step Functions como Airflow ofrecen funcionalidades comparables.

  • Pasar variables dentro del gráfico computacional: Step Functions proporciona una funcionalidad limitada para el uso de AWS Lambda funciones, mientras que Airflow proporciona interfaces XCom.

  • Uso: Step Functions es muy popular entre AWS los clientes y Airflow ha sido ampliamente adoptado por la comunidad de ingenieros de datos.