Utilice la transformación por lotes - Amazon SageMaker

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.

Utilice la transformación por lotes

Use la transformación por lotes cuando tenga que hacer lo siguiente:

  • Procesar previamente los conjuntos de datos para acabar con el ruido o la compensación que interfiere con el entrenamiento o la inferencia del conjunto de datos.

  • Obtener inferencias de los conjuntos de datos grandes.

  • Ejecutar la inferencia cuando no sea necesario un punto de enlace persistente.

  • Asociar registros de entrada con inferencias para ayudar a interpretar los resultados.

Para filtrar los datos de entrada antes de realizar inferencias o asociar los registros de entrada con inferencias sobre estos registros, consulte Asociar los resultados de la predicción con registros de entrada. Por ejemplo, puede filtrar los datos de entrada para proporcionar contexto para crear e interpretar informes acerca de los datos de salida.

Usar la transformación por lotes para obtener inferencias de conjuntos de datos grandes

La transformación por lotes administra automáticamente el procesamiento de conjuntos de datos de gran tamaño dentro de los límites de los parámetros especificados. Por ejemplo, supongamos que tiene un archivo del conjunto de datos, input1.csv, almacenado en un bucket de S3. El contenido del archivo de entrada podría tener un aspecto similar al del siguiente ejemplo.

Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM ... RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM

Cuando se inicia un trabajo de transformación por lotes, SageMaker inicializa las instancias de cómputo y distribuye la carga de trabajo de inferencia o preprocesamiento entre ellas. Batch Transform divide los objetos de Amazon S3 en la entrada por clave y asigna objetos de Amazon S3 a instancias. Si tiene varios archivos, una instancia podría procesar input1.csv, mientras que otra instancia podría procesar el archivo llamado input2.csv. Si tiene un archivo de entrada, pero inicializa varias instancias de computación, solo una instancia procesará el archivo de entrada; las demás instancias estarán inactivas.

También puede dividir los archivos de entrada en minilotes. Por ejemplo, puede crear un minilote a partir de input1.csv incluyendo solo dos de los registros.

Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
nota

SageMaker procesa cada archivo de entrada por separado. No combina minilotes de diferentes archivos de entrada para cumplir con el límite MaxPayloadInMB .

A fin de dividir los archivos de entrada en minilotes cuando crea un trabajo de transformación por lotes, establezca el valor del parámetro SplitType en Line. Si SplitType está configurado como None o si un archivo de entrada no se puede dividir en minilotes, SageMaker utiliza todo el archivo de entrada en una sola solicitud. Tenga en cuenta que Batch Transform no admite entradas con formato CSV que contengan caracteres de nueva línea incrustados. Puede controlar el tamaño de los minilotes mediante los parámetros BatchStrategy y MaxPayloadInMB. MaxPayloadInMB no debe ser superior a 100 MB. Si especifica el parámetro MaxConcurrentTransforms opcional, el valor de (MaxConcurrentTransforms * MaxPayloadInMB) tampoco debe superar los 100 MB.

Si el trabajo de transformación por lotes procesa correctamente todos los registros en un archivo de entrada, crea un archivo de salida con el mismo nombre y la extensión de archivo .out. Para varios archivos de entrada, como, por ejemplo, input1.csv e input2.csv, los archivos de salida se denominan input1.csv.out e input2.csv.out. El trabajo de transformación por lotes almacena los archivos de salida en la ubicación especificada en Amazon S3, como s3://awsexamplebucket/output/.

La predicciones en un archivo de salida se enumeran en el mismo orden que los registros correspondientes en el archivo de entrada. El archivo de salida input1.csv.out, basado en el archivo de entrada mostrado anteriormente, tendría un aspecto similar al siguiente.

Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM ... InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM

Si establece SplitType en Line, puede establecer el parámetro AssembleWith en Line para concatenar los registros de salida con un delimitador de línea. De este modo, no se modifica el número de archivos de salida. El número de archivos de salida es igual al número de archivos de entrada, y el uso de AssembleWith no combina los archivos. Si no especifica el parámetro AssembleWith, los registros de salida se concatenan de forma predeterminada en formato binario.

Si el volumen de los datos de entrada es muy grande y se transmiten mediante codificación fragmentada HTTP, para transmitir los datos al algoritmo, establezca MaxPayloadInMB en 0. Los algoritmos SageMaker integrados de Amazon no admiten esta función.

Para obtener información acerca de cómo utilizar la API para crear un trabajo de transformación por lotes, consulte la API CreateTransformJob. Para obtener más información acerca de la correlación entre los objetos de entrada y salida de transformación por lotes, consulte OutputDataConfig. Para ver un ejemplo de cómo utilizar una transformación por lotes, consulte (Opcional) Predicciones con la transformación por lotes.

Acelerar un trabajo de transformación por lotes

Si está utilizando la API de CreateTransformJob, puede reducir el tiempo necesario para completar los trabajos de transformación por lotes utilizando valores óptimos para parámetros como MaxPayloadInMB, MaxConcurrentTransforms o BatchStrategy. El valor ideal para MaxConcurrentTransforms es igual al número de procesos de computación en el trabajo de transformación por lotes. Si utiliza la SageMaker consola, puede especificar estos valores de parámetros óptimos en la sección Configuración adicional de la página de configuración del trabajo de transformación por lotes. SageMaker busca automáticamente los ajustes de parámetros óptimos para los algoritmos integrados. Para los algoritmos personalizados, proporcione estos valores a través de un punto de conexión execution-parameters.

Utilizar la transformación por lotes para probar variantes de producción

Para probar diferentes modelos o varios valores de configuración de hiperparámetros, cree un trabajo de transformación independiente para cada nueva variante de modelo y use un conjunto de datos de validación. Para cada trabajo de transformación, especifique un nombre de modelo único y la ubicación en Amazon S3 para el archivo de salida. Para analizar los resultados, utilice Registros y métricas de canalización de inferencias.

Blocs de notas de muestra de la transformación por lotes

Para ver un bloc de notas de muestra que use la transformación por lotes con un modelo de análisis de componente principal (PCA) para reducir datos en una matriz de revisión de elementos de usuarios, seguido de la aplicación de un algoritmo de agrupación espacial basada en densidad de aplicaciones con ruido (DBSCAN) para agrupar películas, consulte Transformación por lotes con clústeres PCA y DBSCAN de películas. Para obtener instrucciones sobre cómo crear instancias de Jupyter Notebook y acceder a ellas con las que puede ejecutar el ejemplo SageMaker, consulte. Instancias de Amazon SageMaker Notebook Tras crear y abrir una instancia de bloc de notas, selecciona la pestaña SageMaker Ejemplos para ver una lista de todos los SageMaker ejemplos. Los blocs de notas de muestra de modelado de temas que utilizan los algoritmos NTM se encuentran en la sección Funcionalidad avanzada. Para abrir un bloc de notas, elija su pestaña Usar y, a continuación, elija Crear copia.