¿Qué es la inferencia por lotes?

Una vez que se entrena un modelo de aprendizaje automático, el siguiente paso es usarlo para hacer predicciones sobre datos nuevos. Este proceso, conocido como inferencia, requiere una estrategia que depende en gran medida de los requisitos de latencia y capacidad de procesamiento de tu aplicación. La inferencia por lotes, también conocida como inferencia sin conexión o procesamiento asíncrono, es un método potente y altamente eficiente para generar predicciones sobre un gran volumen de datos cuando no se requieren respuestas inmediatas en tiempo real.

Definición de la inferencia por lotes

La inferencia por lotes es el proceso de usar un modelo de aprendizaje automático entrenado para generar predicciones en un gran conjunto de observaciones, o un "lote", todo a la vez.

A diferencia de la inferencia en línea, en la que las predicciones se realizan con base en datos individuales a medida que llegan, la inferencia por lotes opera con datos que se recopilaron durante un período. Este enfoque prioriza la alta capacidad de procesamiento y la eficiencia computacional por sobre la baja latencia. Como el procesamiento se realiza sin conexión y no en respuesta directa a una solicitud del usuario, también se conoce como inferencia estática: las predicciones se generan y almacenan para su uso posterior.

Características clave de la inferencia por lotes

  • Procesamiento asíncrono: Las predicciones se generan según un programa predefinido (por ejemplo, cada hora o cada día) o a pedido, no en tiempo real a medida que llegan los datos nuevos.
  • Alta capacidad de procesamiento: El sistema está optimizado para procesar una gran cantidad de datos en una sola ejecución, lo que lo hace muy eficiente.
  • Rentabilidad: Si ejecutas las cargas de trabajo según una programación, puedes usar los recursos de procesamiento cuando están más disponibles o son menos costosos, lo que reduce significativamente los costos operativos.
  • Tolerancia a la latencia: La suposición principal es que la aplicación que consume las predicciones no necesita una respuesta inmediata; se acepta un retraso de minutos o horas entre la recopilación de datos y la generación de predicciones.

Inferencia por lotes frente a inferencia en línea

Elegir entre la inferencia por lotes y la inferencia en línea es una decisión arquitectónica fundamental en el diseño de un sistema de aprendizaje automático. Cada enfoque tiene un propósito diferente y está optimizado para distintas características de rendimiento.

Función

Inferencia por lotes

Inferencia en línea 

Procesamiento de datos

Procesa una gran colección de datos en un solo trabajo.

Procesa un único dato o un grupo muy pequeño de datos a medida que llegan.

Optimización principal

Alto rendimiento y rentabilidad.

Baja latencia y capacidad de respuesta inmediata.

Latencia

Latencia alta; las predicciones no están disponibles de inmediato (de minutos a horas).

Latencia muy baja; las predicciones se devuelven en milisegundos

Invocación

Se activan según un programa (por ejemplo, un trabajo cron) o a pedido

Se activa con una solicitud directa del usuario o un evento en el sistema

Uso de procesamiento

Puede usar recursos de procesamiento potentes por un período corto y, luego, reducir la escala verticalmente a cero

Requiere que un servidor o extremo se ejecute constantemente y esté listo para aceptar solicitudes.

Ejemplo de caso de uso

Generar recomendaciones diarias de productos para todos los usuarios de un sitio de comercio electrónico

Predecir si una transacción con tarjeta de crédito es fraudulenta en el momento en que se realiza

Términos sinónimos

Inferencia sin conexión, inferencia estática y procesamiento asíncrono

Inferencia en tiempo real, inferencia dinámica y procesamiento síncrono

Función

Inferencia por lotes

Inferencia en línea 

Procesamiento de datos

Procesa una gran colección de datos en un solo trabajo.

Procesa un único dato o un grupo muy pequeño de datos a medida que llegan.

Optimización principal

Alto rendimiento y rentabilidad.

Baja latencia y capacidad de respuesta inmediata.

Latencia

Latencia alta; las predicciones no están disponibles de inmediato (de minutos a horas).

Latencia muy baja; las predicciones se devuelven en milisegundos

Invocación

Se activan según un programa (por ejemplo, un trabajo cron) o a pedido

Se activa con una solicitud directa del usuario o un evento en el sistema

Uso de procesamiento

Puede usar recursos de procesamiento potentes por un período corto y, luego, reducir la escala verticalmente a cero

Requiere que un servidor o extremo se ejecute constantemente y esté listo para aceptar solicitudes.

Ejemplo de caso de uso

Generar recomendaciones diarias de productos para todos los usuarios de un sitio de comercio electrónico

Predecir si una transacción con tarjeta de crédito es fraudulenta en el momento en que se realiza

Términos sinónimos

Inferencia sin conexión, inferencia estática y procesamiento asíncrono

Inferencia en tiempo real, inferencia dinámica y procesamiento síncrono

¿Cómo funciona la inferencia por lotes?

Una canalización de inferencia por lotes es un flujo de trabajo estructurado y automatizado que mueve los datos desde su estado sin procesar hasta predicciones prácticas. El proceso se puede dividir en estos pasos clave, que suelen estar organizados por un administrador de flujo de trabajo o un sistema de programación.

Paso 1: Recopilación y almacenamiento de datos

El proceso comienza con la acumulación de datos con el paso del tiempo. Estos datos de entrada, que pueden incluir registros de actividad del usuario, registros de transacciones o lecturas de sensores, se recopilan de varias fuentes y se almacenan en una ubicación centralizada. A menudo, se trata de un data lake creado en un servicio como Google Cloud Storage o un almacén de datos como BigQuery.

Paso 2: Activa el trabajo por lotes

La canalización de inferencia se inicia con un activador. Este activador puede ser de estas maneras:

  • Basado en tiempo: Un programador (como un trabajo cron) inicia el trabajo a un intervalo regular, como todas las noches a la 1 a.m.
  • Basado en eventos: El trabajo comienza en respuesta a un evento específico, como la llegada de un nuevo archivo de datos en un bucket de Cloud Storage.

Paso 3: Preprocesamiento de los datos

Una vez que se activa, el trabajo carga todo el lote de datos de entrada sin procesar. Luego, realiza los pasos necesarios de procesamiento previo y de ingeniería de atributos para transformar los datos en el formato preciso que espera el modelo de aprendizaje automático. Esto puede incluir tareas como limpiar valores faltantes, escalar atributos numéricos y codificar variables categóricas.

Paso 4: Genera predicciones

El sistema recupera el modelo de aprendizaje automático entrenado de un repositorio central, como Vertex AI Model Registry. Luego, el lote de datos preprocesados se envía al modelo, que ejecuta la inferencia en cada observación del conjunto para generar una predicción correspondiente.

Paso 5: Almacena los resultados

El resultado del modelo, la colección de predicciones, se escribe en un sistema de almacenamiento. Este destino se elige en función de cómo se usarán las predicciones. Los destinos comunes incluyen cargar los resultados en una tabla de BigQuery para su análisis, una base de datos de Cloud SQL para búsquedas rápidas por parte de una aplicación o guardarlos como archivos en Cloud Storage.

Paso 6: Consume las predicciones

Ahora que las predicciones están almacenadas y listas, los sistemas downstream pueden usarlas. Una herramienta de inteligencia empresarial podría consultar los resultados para crear un panel del comportamiento previsto de los clientes. El backend de una aplicación web podría cargar las recomendaciones de productos previamente calculadas para mostrárselas a los usuarios, o una plataforma de automatización de marketing podría extraer una lista de clientes que se prevé que desertarán para segmentarlos con una nueva campaña.

Beneficios de la inferencia por lotes

Para muchos casos de uso empresariales, la inferencia por lotes puede ofrecer ventajas significativas en comparación con el procesamiento en tiempo real.

Rentabilidad

El procesamiento por lotes te permite optimizar el uso de los recursos de procesamiento. Puedes ejecutar trabajos grandes en hardware potente durante un período corto y, luego, apagar los recursos, lo que evita el costo de mantener un servidor en ejecución continua.

Alta capacidad de procesamiento y escalabilidad

Los sistemas por lotes están diseñados para escalar y procesar terabytes de datos de manera eficiente. Esto permite aplicar modelos complejos a conjuntos de datos muy grandes, algo que podría ser demasiado lento o costoso para un sistema en línea.

Simplicidad de las operaciones

Las canalizaciones de inferencia por lotes pueden ser más fáciles de crear y mantener que los sistemas de inferencia en línea con alta disponibilidad y baja latencia. Por lo general, son más resilientes a las fallas transitorias y se pueden volver a ejecutar fácilmente si un trabajo falla.

Permite la ingeniería de atributos compleja

Como la inferencia por lotes no está limitada por requisitos de baja latencia, puedes realizar una ingeniería de atributos más compleja y con mayor uso de recursos informáticos en tus datos de entrada, lo que a menudo puede generar modelos más precisos.

Mejor uso de recursos

Puedes programar trabajos por lotes para que se ejecuten durante las horas de menor actividad, lo que te permite aprovechar la capacidad de procesamiento inactiva y, posiblemente, precios spot más bajos para las máquinas virtuales.

Casos de uso de la inferencia por lotes

La inferencia por lotes es el método preferido para muchos procesos empresariales centrales en los que las predicciones mejoran un producto o servicio sin necesidad de generarse en tiempo real. Este enfoque puede ser muy eficaz en diversas industrias para resolver problemas de datos a gran escala.

Sector

Problema que se debe resolver

Solución de ejemplo

Comercio electrónico y venta minorista


Generar recomendaciones de productos personalizadas para toda la base de usuarios a diario para garantizar que estén listas para una recuperación rápida cuando los usuarios visiten el sitio

Las predicciones por lotes de Vertex AI pueden ejecutar un modelo de recomendación y cargar los resultados en una base de datos de búsqueda rápida como Cloud SQL o Bigtable.

Telecomunicaciones y SaaS

Identificar qué clientes tienen un alto riesgo de deserción el próximo mes analizando los patrones de uso en toda la base de datos relacionada

BigQuery ML te permite ejecutar un modelo de clasificación directamente en los datos de los clientes almacenados en el almacén de datos, con los resultados escritos en una nueva tabla para el equipo de retención.

Finanzas y seguros

Prever tendencias del mercado financiero o calcular puntuaciones de riesgo para toda una cartera de activos, que es una tarea de procesamiento intensivo que se realiza periódicamente

Las predicciones por lotes de Vertex AI pueden ejecutar modelos complejos de series temporales según una programación, lo que proporciona los datos necesarios para elaborar informes y paneles estratégicos.

Logística y cadena de suministro

Optimizar los niveles de inventario en cientos de almacenes ejecutando una simulación compleja de previsión de la demanda basada en datos semanales de ventas y logística

Google Kubernetes Engine (GKE) proporciona el entorno personalizado y de alto rendimiento necesario para ejecutar modelos de simulación especializados con requisitos específicos de biblioteca y hardware.

Salud

Analizar un gran lote diario de imágenes médicas (como radiografías o tomografías computarizadas) para detectar posibles anomalías que un radiólogo revisará más tarde

GKE con aceleradores de GPU es ideal para ejecutar modelos de visión artificial de aprendizaje profundo en grandes conjuntos de imágenes, ya que ofrece el máximo control y rendimiento.

Asuntos legales y cumplimiento

Procesar y clasificar millones de documentos existentes para extraer entidades clave, evaluar opiniones y hacer que todo el corpus se pueda buscar y analizar

Dataflow se puede usar para crear una canalización de PLN escalable que procese el texto previamente y ejecute la inferencia, mientras que GKE se puede usar para requisitos de modelos más personalizados.

Sector

Problema que se debe resolver

Solución de ejemplo

Comercio electrónico y venta minorista


Generar recomendaciones de productos personalizadas para toda la base de usuarios a diario para garantizar que estén listas para una recuperación rápida cuando los usuarios visiten el sitio

Las predicciones por lotes de Vertex AI pueden ejecutar un modelo de recomendación y cargar los resultados en una base de datos de búsqueda rápida como Cloud SQL o Bigtable.

Telecomunicaciones y SaaS

Identificar qué clientes tienen un alto riesgo de deserción el próximo mes analizando los patrones de uso en toda la base de datos relacionada

BigQuery ML te permite ejecutar un modelo de clasificación directamente en los datos de los clientes almacenados en el almacén de datos, con los resultados escritos en una nueva tabla para el equipo de retención.

Finanzas y seguros

Prever tendencias del mercado financiero o calcular puntuaciones de riesgo para toda una cartera de activos, que es una tarea de procesamiento intensivo que se realiza periódicamente

Las predicciones por lotes de Vertex AI pueden ejecutar modelos complejos de series temporales según una programación, lo que proporciona los datos necesarios para elaborar informes y paneles estratégicos.

Logística y cadena de suministro

Optimizar los niveles de inventario en cientos de almacenes ejecutando una simulación compleja de previsión de la demanda basada en datos semanales de ventas y logística

Google Kubernetes Engine (GKE) proporciona el entorno personalizado y de alto rendimiento necesario para ejecutar modelos de simulación especializados con requisitos específicos de biblioteca y hardware.

Salud

Analizar un gran lote diario de imágenes médicas (como radiografías o tomografías computarizadas) para detectar posibles anomalías que un radiólogo revisará más tarde

GKE con aceleradores de GPU es ideal para ejecutar modelos de visión artificial de aprendizaje profundo en grandes conjuntos de imágenes, ya que ofrece el máximo control y rendimiento.

Asuntos legales y cumplimiento

Procesar y clasificar millones de documentos existentes para extraer entidades clave, evaluar opiniones y hacer que todo el corpus se pueda buscar y analizar

Dataflow se puede usar para crear una canalización de PLN escalable que procese el texto previamente y ejecute la inferencia, mientras que GKE se puede usar para requisitos de modelos más personalizados.

Cómo configurar la inferencia por lotes en Vertex AI

Vertex AI es la plataforma de aprendizaje automático administrada de Google Cloud y proporciona un enfoque optimizado y sin servidores para la inferencia por lotes. El proceso se enfoca en configurar un trabajo y dejar que la plataforma se encargue de la infraestructura subyacente.

Prepara tus recursos.

Antes de comenzar, necesitas tres elementos clave:

  • Un modelo entrenado que se debe subir a Vertex AI Model Registry
  • Tus datos de entrada, con el formato que requiere tu modelo; estos datos deben estar ubicados en Google Cloud Storage (por ejemplo, como archivos JSON o CSV) o en una tabla de BigQuery
  • Una ubicación de destino para el resultado, que también será un bucket de Cloud Storage o una tabla de BigQuery

Crea un trabajo de predicción por lotes.

Puedes iniciar el trabajo a través de la consola de Google Cloud, la herramienta de línea de comandos de gcloud o de forma programática con el SDK de Vertex AI. Cuando crees el trabajo, proporcionarás la siguiente configuración:

  • El modelo específico del Model Registry que quieres usar
  • La ruta de acceso a tus datos de entrada y la ubicación de tus resultados de salida
  • El tipo de máquina y el acelerador (por ejemplo, GPU) que quieres usar para el trabajo; esto te permite equilibrar el costo y el rendimiento

Ejecuta y supervisa el trabajo.

Una vez que envías el trabajo, Vertex AI se hace cargo. Aprovisiona automáticamente los recursos de procesamiento que especificaste, ejecuta tus datos de entrada a través del modelo, genera las predicciones y las guarda en la ubicación de salida designada. Una vez que se completa el trabajo, Vertex AI reduce automáticamente todos los recursos a cero, por lo que solo pagas por el tiempo de procesamiento que usas. Puedes supervisar el progreso del trabajo y ver los registros directamente en la consola de Google Cloud.

Acceder a las predicciones y usarlas

Una vez que el estado del trabajo se muestre como "Finalizado correctamente", tus predicciones estarán listas. Ahora, tus aplicaciones downstream, herramientas de análisis o paneles de IE pueden acceder a los archivos de salida en Cloud Storage o a la nueva tabla en BigQuery.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.

Cómo configurar la inferencia por lotes en GKE

Usar Google Kubernetes Engine (GKE) para la inferencia por lotes ofrece el máximo control y portabilidad, lo que lo hace ideal para equipos con experiencia en Kubernetes o requisitos especializados. La configuración implica alojar tu lógica de inferencia en contenedores y administrar su ejecución con recursos de Kubernetes.

Paso 1: Crea un contenedor para la aplicación de inferencia. El primer paso es empaquetar tu código de predicción en una imagen de contenedor.

  • Escribe una secuencia de comandos (por ejemplo, en Python) que cargue tu modelo entrenado, lea datos de una fuente, realice la inferencia y escriba los resultados en un destino.
  • Crea un Dockerfile. Este archivo define los pasos para crear tu contenedor, lo que incluye especificar una imagen base, instalar dependencias (como TensorFlow o Pandas) y copiar tu archivo de modelo y la secuencia de comandos de inferencia en la imagen.
  • Compila la imagen y envíala a un registro de contenedores como Artifact Registry

Paso 2: Define un trabajo de Kubernetes. En lugar de una implementación de larga duración, defines la tarea por lotes con un manifiesto de Job o CronJob de Kubernetes (un archivo YAML). Este archivo especifica lo siguiente:

  • La imagen de contenedor que se usará de Artifact Registry
  • Los recursos de procesamiento necesarios (CPU, memoria, GPU)
  • Cualquier configuración necesaria, como variables de entorno para rutas de archivos o secretos para credenciales de bases de datos

Paso 3: Ejecuta el trabajo en el clúster de GKE. Aplicas el manifiesto a tu clúster de GKE con kubectl. Luego, el plano de control de GKE programa un Pod para ejecutar tu contenedor de inferencia en un nodo adecuado del clúster. Para tareas recurrentes, un recurso CronJob crea automáticamente un nuevo Job basado en un programa predefinido (por ejemplo, 0 2 * * * para las 2 a.m. todos los días).

Paso 4: Implementa el manejo de datos y almacena los resultados. A diferencia del enfoque administrado de Vertex AI, el código de la aplicación dentro de tu contenedor es responsable de controlar todas las E/S de datos. Tu secuencia de comandos debe incluir la lógica para conectarse a la fuente de datos (por ejemplo, un bucket de Cloud Storage) y leerla, y escribir las predicciones finales en el destino que elijas (por ejemplo, una base de datos de Cloud SQL).

¿Qué problema intentas resolver?
What you'll get:
Guía paso a paso
Arquitectura de referencia
Soluciones previamente compiladas disponibles
Este servicio se creó con Vertex AI. Debes ser mayor de 18 años para usarlo. No ingreses información sensible, confidencial ni personal.

Recursos adicionales

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud