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 3. Definir la canalización
En este paso se definen la secuencia y la lógica de las acciones que se llevarán a cabo en el proceso. Esto incluye pasos discretos, así como sus entradas y salidas lógicas. Por ejemplo, ¿cuál es el estado de los datos al principio del proceso? ¿Provienen de varios archivos con distintos niveles de detalle, o bien de un único archivo plano? Si los datos provienen de varios archivos, ¿necesita un solo paso para todos los archivos, o bien pasos separados para cada archivo a fin de definir la lógica de preprocesamiento? La decisión dependerá de la complejidad de los orígenes de datos y del grado en que estén preprocesados.
En nuestra implementación de referencia usamos AWS Step Functions
Uso del SDK de Step Functions
Para definir el proceso de ML, usaremos en primer lugar la API de alto nivel de Python, proporcionada por el SDK de AWS Step Functions Data Science (el SDK de Step Functions), para definir dos componentes clave del proceso: los pasos y los datos. Si consideramos el proceso como un gráfico acíclico dirigido (DAG), los pasos representan los nodos del gráfico y los datos se muestran como periferias dirigidas que conectan un nodo (paso) con el siguiente. Algunos ejemplos típicos de pasos de ML son el preprocesamiento, la formación y la evaluación. El SDK de Step Functions proporciona una serie de pasos integrados (como el TrainingStep
Los procesos de ML también requieren parámetros de configuración para controlar, de forma pormenorizada, el comportamiento de cada paso de ML. Estos marcadores de posición de datos especiales se denominan marcadores de posición de parámetros. Muchos de sus valores se desconocen al definir el proceso. Entre los ejemplos de marcadores de posición de parámetros se incluyen los parámetros relacionados con la infraestructura que se definen durante el diseño de la canalización (por ejemplo, Región de AWS la URL de la imagen del contenedor) y los parámetros relacionados con el modelado de aprendizaje automático (como los hiperparámetros) que se definen al ejecutar la canalización.
Ampliación del SDK de Step Functions
En nuestra implementación de referencia, uno de los requisitos era separar las definiciones de procesos de ML de la creación e implementación de procesos de ML concretos mediante ajustes de parámetros específicos. Sin embargo, algunos de los pasos integrados en el SDK de Step Functions no nos permitían introducir todos estos parámetros de marcador de posición. En cambio, se esperaba que los valores de los parámetros se obtuvieran directamente durante el diseño de la canalización mediante llamadas a la API de configuración de la IA. SageMaker Esto funciona bien si el entorno de tiempo de diseño de la SageMaker IA es idéntico al entorno de ejecución de la SageMaker IA, pero esto rara vez ocurre en entornos del mundo real. El acoplamiento ajustado entre el tiempo de diseño y el tiempo de ejecución del proceso, así como la suposición de que la infraestructura de la plataforma de ML se mantendrá constante, dificultan considerablemente la aplicabilidad del proceso diseñado. De hecho, el proceso de ML se interrumpe de inmediato cuando la plataforma de implementación subyacente sufre el más mínimo cambio.
Para superar este desafío y crear un proceso de aprendizaje automático sólido (que queríamos diseñar una vez y ejecutar en cualquier lugar), implementamos nuestros propios pasos personalizados ampliando algunos de los pasos integrados, incluidos TrainingStepModelStep, y. TransformerStep Estas extensiones se incluyen en el proyecto ML Max