Transformación por lotes para inferencias con Amazon SageMaker - 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.

Transformación por lotes para inferencias con Amazon SageMaker

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.

  • Asocie los registros de entrada con las inferencias para facilitar la interpretación de 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.

Utilice la transformación por lotes para obtener inferencias a partir de conjuntos de datos de gran tamaño

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, tener un archivo de conjunto de datos almacenado en un bucket de S3. input1.csv 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 inicia 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 procesamiento, solo una instancia procesa el archivo de entrada. El resto de las instancias está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 .

Para dividir los archivos de entrada en minilotes al crear un trabajo de transformación por lotes, defina el valor del SplitTypeparámetro en. Line SageMaker utiliza todo el archivo de entrada en una sola solicitud cuando:

  • SplitType toma el valor de None.

  • Un archivo de entrada no se puede dividir en minilotes.

. Tenga en cuenta que Batch Transform no admite entradas CSV con formato 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 de un archivo de entrada, crea un archivo de salida. El archivo de salida tiene el mismo nombre y la misma extensión de .out archivo. 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://amzn-s3-demo-bucket/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 AssembleWith parámetro, los registros de salida se concatenan en formato binario de forma predeterminada.

Cuando los datos de entrada son muy grandes y se transmiten mediante codificación HTTP fragmentada, para transmitir los datos al algoritmo, se establece en. MaxPayloadInMB0 Los algoritmos SageMaker integrados de Amazon no admiten esta función.

Para obtener información sobre el uso de API para crear un trabajo de transformación por lotes, consulte la CreateTransformJobAPI. Para obtener más información sobre la relación entre los objetos de entrada y salida de la 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.

Acelere un trabajo de transformación por lotes

Si utiliza el CreateTransformJobAPI, puede reducir el tiempo que se tarda en completar los trabajos de transformación por lotes utilizando valores óptimos para los parámetros. Esto incluye parámetros como MaxPayloadInMBMaxConcurrentTransforms, 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, especifique 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.

Utilice la transformación por lotes para probar las variantes de producción

Para probar distintos modelos o ajustes de hiperparámetros, cree un trabajo de transformación independiente para cada nueva variante del modelo y utilice 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.

Cuadernos de muestra con transformación por lotes

Para ver un ejemplo de bloc de notas que utiliza la transformación por lotes, consulte Transformación por lotes con PCA clústeres de DBSCAN películas. Este cuaderno utiliza la transformación por lotes con un modelo de análisis de componentes principales (PCA) para reducir los datos en una matriz de revisión de elementos de usuario. A continuación, muestra la aplicación de una agrupación espacial de aplicaciones basada en la densidad con el algoritmo noise (DBSCAN) para agrupar películas.

Para obtener instrucciones sobre cómo crear instancias de Jupyter Notebook y acceder a ellas con las que puede ejecutar el ejemplo, consulte. SageMaker Instancias de Amazon SageMaker Notebook Tras crear y abrir una instancia de bloc de notas, selecciona la pestaña SageMakerEjemplos para ver una lista de todos los SageMaker ejemplos. El tema sobre el modelado de cuadernos de ejemplo que utilizan los NTM algoritmos se encuentra en la sección Funcionalidad avanzada. Para abrir un bloc de notas, elija su pestaña Usar y, a continuación, elija Crear copia.