¿Qué es la inferencia por lotes?

Una vez que se ha entrenado un modelo de aprendizaje automático, el siguiente paso es usarlo para hacer predicciones a partir de nuevos datos. Este proceso, conocido como inferencia, requiere una estrategia que depende en gran medida de los requisitos de latencia y rendimiento de tu aplicación. La inferencia por lotes, también denominada inferencia offline o procesamiento asíncrono, es un método eficaz y potente para generar predicciones sobre un gran volumen de datos cuando no se necesitan 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 sobre un gran conjunto de observaciones, o "lote", de una sola vez.

A diferencia de la inferencia online, en la que las predicciones se hacen sobre puntos de datos individuales a medida que llegan, la inferencia por lotes opera sobre datos que se han recogido durante un periodo de tiempo. Este enfoque prioriza el alto rendimiento y la eficiencia computacional por encima de la baja latencia. Como el procesamiento se hace offline y no en respuesta directa a una petición de usuario, también se conoce como inferencia estática: las predicciones se generan y se almacenan para usarlas más adelante.

Características principales de la inferencia por lotes

  • Procesamiento asíncrono: las predicciones se generan según una programación predefinida (por ejemplo, cada hora o cada día) o bajo demanda, no en tiempo real a medida que llegan los datos nuevos.
  • Alto rendimiento: el sistema está optimizado para procesar una gran cantidad de puntos de datos en una sola ejecución, lo que lo hace muy eficiente.
  • Rentabilidad: al ejecutarse según una programación, puedes usar los recursos de computación cuando estén más disponibles o sean menos caros, lo que reduce significativamente los costes operativos.
  • Tolerancia a la latencia: la principal suposición es que la aplicación que consume las predicciones no necesita una respuesta inmediata; se acepta un retraso de minutos u horas entre la recogida de datos y la generación de predicciones.

Inferencia por lotes frente a inferencia online

Elegir entre la inferencia por lotes y la inferencia online es una decisión arquitectónica fundamental a la hora de diseñar 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 online 

Procesamiento de datos

Procesa una gran colección de puntos de datos en una sola tarea.

Procesa un solo punto de datos o un grupo muy pequeño de puntos de datos a medida que llegan.

Optimización principal

Alto rendimiento y rentabilidad.

Baja latencia y capacidad de respuesta inmediata.

Latencia

Alta latencia; las predicciones no están disponibles de inmediato (tardan entre minutos y horas).

Latencia muy baja: las predicciones se devuelven en milisegundos.

Invocación

Se activan según una programación (por ejemplo, una tarea cron) o bajo demanda.

Se activa mediante una petición directa del usuario o un evento del sistema.

Uso de la computación

Puede usar recursos de computación potentes durante un breve periodo y, después, reducir verticalmente a cero.

Requiere que un servidor o un endpoint se ejecuten constantemente y estén listos para aceptar solicitudes.

Ejemplo de caso práctico

Generar recomendaciones de productos diarias 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 produce.

Términos sinónimos

Inferencia offline, procesamiento asíncrono e inferencia estática.

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

Función

Inferencia por lotes

Inferencia online 

Procesamiento de datos

Procesa una gran colección de puntos de datos en una sola tarea.

Procesa un solo punto de datos o un grupo muy pequeño de puntos de datos a medida que llegan.

Optimización principal

Alto rendimiento y rentabilidad.

Baja latencia y capacidad de respuesta inmediata.

Latencia

Alta latencia; las predicciones no están disponibles de inmediato (tardan entre minutos y horas).

Latencia muy baja: las predicciones se devuelven en milisegundos.

Invocación

Se activan según una programación (por ejemplo, una tarea cron) o bajo demanda.

Se activa mediante una petición directa del usuario o un evento del sistema.

Uso de la computación

Puede usar recursos de computación potentes durante un breve periodo y, después, reducir verticalmente a cero.

Requiere que un servidor o un endpoint se ejecuten constantemente y estén listos para aceptar solicitudes.

Ejemplo de caso práctico

Generar recomendaciones de productos diarias 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 produce.

Términos sinónimos

Inferencia offline, procesamiento asíncrono e inferencia estática.

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

¿Cómo funciona la inferencia por lotes?

Un flujo de procesamiento de inferencia por lotes es un flujo de trabajo estructurado y automatizado que transforma los datos sin procesar en predicciones útiles. El proceso se puede dividir en estos pasos clave, que suelen estar coordinados por un gestor de flujos de trabajo o un sistema de programación.

Paso 1: Recogida y almacenamiento de datos

El proceso comienza acumulando datos a lo largo del tiempo. Estos datos de entrada, que pueden incluir registros de actividad de los usuarios, registros de transacciones o lecturas de sensores, se recogen de diversas 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: Activar la tarea por lotes

El proceso de inferencia se inicia mediante un activador. Este activador puede ser:

  • Basado en el tiempo: un programador (como una tarea cron) inicia la tarea a intervalos regulares, por ejemplo, cada noche a la 1 de la madrugada.
  • Basado en eventos: la tarea se inicia en respuesta a un evento específico, como la llegada de un nuevo archivo de datos a un segmento de Cloud Storage.

Paso 3: Preprocesamiento de los datos

Una vez activada, la tarea carga todo el lote de datos de entrada sin procesar. A continuación, realiza los pasos de preprocesamiento e ingeniería de funciones necesarios para transformar los datos al formato exacto que espera el modelo de aprendizaje automático. Esto puede incluir tareas como limpiar los valores que faltan, escalar las características numéricas y codificar las variables categóricas.

Paso 4: Generar predicciones

El sistema recupera el modelo de aprendizaje automático entrenado de un repositorio central, como el registro de modelos de Vertex AI. El lote de datos preprocesado se introduce en el modelo, que ejecuta la inferencia en cada observación del conjunto para generar una predicción correspondiente.

Paso 5: Almacenar los resultados

La salida del modelo, es decir, el conjunto de predicciones, se escribe en un sistema de almacenamiento. Este destino se elige en función de cómo se vayan a usar las predicciones. Entre los destinos habituales se incluyen cargar los resultados en una tabla de BigQuery para analizarlos, en una base de datos de Cloud SQL para que una aplicación pueda consultarlos rápidamente o guardarlos como archivos en Cloud Storage.

Paso 6: Consumir las predicciones

Ahora que las predicciones están almacenadas y listas, los sistemas posteriores pueden usarlas. Una herramienta de inteligencia empresarial podría consultar los resultados para crear un panel de control del comportamiento previsto de los clientes. El backend de una aplicación web podría cargar las recomendaciones de productos precalculadas 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 abandonen el servicio para orientarles una nueva campaña.

Ventajas de la inferencia por lotes

En muchos casos prácticos empresariales, la inferencia por lotes puede ofrecer ventajas significativas con respecto al procesamiento en tiempo real.

Rentabilidad

El procesamiento por lotes te permite optimizar el uso de los recursos de computación. Puedes ejecutar tareas grandes en hardware potente durante un breve periodo de tiempo y, después, apagar los recursos, lo que te permite evitar el coste de mantener un servidor en funcionamiento de forma continua.

Alto rendimiento y escalabilidad

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

Simplicidad de las operaciones

Los flujos de inferencia por lotes pueden ser más sencillos de crear y mantener que los sistemas de inferencia online de baja latencia y de alta disponibilidad. Por lo general, son más resistentes a los fallos transitorios y se pueden volver a ejecutar fácilmente si una tarea falla.

Permite la ingeniería de funciones complejas

Como la inferencia por lotes no está limitada por requisitos de baja latencia, puedes realizar una ingeniería de funciones más compleja y computacionalmente intensiva en tus datos de entrada, lo que a menudo puede dar lugar a modelos más precisos.

Mejor aprovechamiento de los recursos

Puedes programar tareas por lotes para que se ejecuten durante las horas de menor demanda, aprovechando la capacidad de computación inactiva y los precios de acceso puntual potencialmente más bajos de las máquinas virtuales.

Casos prácticos de la inferencia por lotes

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

Sector

Problema que resolver

Solución de ejemplo

Comercio electrónico y minorista


Genera recomendaciones de productos personalizadas para toda la base de usuarios a diario para que estén listas para recuperarse rápidamente cuando los usuarios visiten el sitio.

Vertex AI Batch Predictions puede 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

Identifica qué clientes tienen un alto riesgo de abandonar el servicio el mes que viene analizando los patrones de uso en toda la base de datos de clientes.

BigQuery ML permite ejecutar un modelo de clasificación directamente en los datos de clientes almacenados en el almacén de datos. Los resultados se escriben en una nueva tabla para el equipo de retención.

Finanzas y seguros

Predecir las tendencias de los mercados financieros o calcular las puntuaciones de riesgo de toda una cartera de activos, una tarea que requiere muchos recursos computacionales y que se realiza periódicamente.

Vertex AI Batch Predictions puede ejecutar modelos complejos de series temporales según una programación, lo que proporciona los datos necesarios para los informes y los paneles de control estratégicos.

Logística y cadena de suministro

Optimiza 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.

Sanidad

Analiza 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 pueda 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.

Información legal y de cumplimiento

Procesa y clasifica millones de documentos para extraer entidades clave, evaluar el sentimiento y hacer que todo el corpus se pueda buscar y analizar.

Dataflow se puede usar para crear un flujo de procesamiento de lenguaje natural (PLN) escalable que preprocese el texto y ejecute la inferencia, mientras que GKE se puede usar para requisitos de modelos más personalizados.

Sector

Problema que resolver

Solución de ejemplo

Comercio electrónico y minorista


Genera recomendaciones de productos personalizadas para toda la base de usuarios a diario para que estén listas para recuperarse rápidamente cuando los usuarios visiten el sitio.

Vertex AI Batch Predictions puede 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

Identifica qué clientes tienen un alto riesgo de abandonar el servicio el mes que viene analizando los patrones de uso en toda la base de datos de clientes.

BigQuery ML permite ejecutar un modelo de clasificación directamente en los datos de clientes almacenados en el almacén de datos. Los resultados se escriben en una nueva tabla para el equipo de retención.

Finanzas y seguros

Predecir las tendencias de los mercados financieros o calcular las puntuaciones de riesgo de toda una cartera de activos, una tarea que requiere muchos recursos computacionales y que se realiza periódicamente.

Vertex AI Batch Predictions puede ejecutar modelos complejos de series temporales según una programación, lo que proporciona los datos necesarios para los informes y los paneles de control estratégicos.

Logística y cadena de suministro

Optimiza 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.

Sanidad

Analiza 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 pueda 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.

Información legal y de cumplimiento

Procesa y clasifica millones de documentos para extraer entidades clave, evaluar el sentimiento y hacer que todo el corpus se pueda buscar y analizar.

Dataflow se puede usar para crear un flujo de procesamiento de lenguaje natural (PLN) escalable que preprocese el texto 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 el centro de aprendizaje automático gestionado de Google Cloud, que ofrece un enfoque optimizado y sin servidor para la inferencia por lotes. El proceso se centra en configurar una tarea y dejar que la plataforma se encargue de la infraestructura subyacente.

Prepara tus recursos.

Antes de empezar, necesitas tres cosas clave:

  • Un modelo entrenado que se debe subir al registro de modelos de Vertex AI.
  • Los datos de entrada, con el formato que requiera 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 la salida, que también será un segmento de Cloud Storage o una tabla de BigQuery.

Crear una tarea de predicción en lote.

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

  • El modelo específico del registro de modelos que quieres usar
  • La ruta de 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 en la tarea, lo que te permite equilibrar el coste y el rendimiento.

Ejecuta y monitoriza la tarea.

Una vez que envías la tarea, Vertex AI se encarga del resto. Aprovisiona automáticamente los recursos de computación que has especificado, ejecuta tus datos de entrada en el modelo, genera las predicciones y las guarda en la ubicación de salida que has designado. Cuando el trabajo se completa, Vertex AI reduce automáticamente todos los recursos a cero, por lo que solo pagas por el tiempo de computación que utilizas. Puedes monitorizar el progreso de la tarea y ver los registros directamente en la consola de Google Cloud.

Accede a las predicciones y úsalas.

Cuando el estado de la tarea sea "Completada", tus predicciones estarán listas. Las aplicaciones, las herramientas de analíticas o los paneles de inteligencia empresarial que uses pueden acceder a los archivos de salida en Cloud Storage o a la nueva tabla de BigQuery.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos 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, por lo que es ideal para equipos con experiencia en Kubernetes o requisitos especializados. La configuración implica contenerizar la lógica de inferencia y gestionar su ejecución con recursos de Kubernetes.

Paso 1: aplicación de inferencia en contenedores. El primer paso es empaquetar el 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 inferencias 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 tu secuencia de comandos de inferencia en la imagen.
  • Crea la imagen y envíala a un registro de contenedores como Artifact Registry.

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

  • La imagen de contenedor que se va a usar de Artifact Registry
  • Los recursos de computación necesarios (CPU, memoria, GPUs)
  • 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. Para ello, aplica el manifiesto a tu clúster de GKE mediante kubectl. El plano de control de GKE programa un pod para ejecutar el contenedor de inferencia en un nodo adecuado del clúster. En el caso de las tareas recurrentes, un recurso CronJob crea automáticamente un nuevo Job según una programación predefinida (por ejemplo, 0 2 * * * para las 2 de la mañana todos los días).

Paso 4: Implementa el tratamiento de datos y almacena los resultados. A diferencia del enfoque gestionado de Vertex AI, el código de aplicación dentro de tu contenedor es el responsable de gestionar 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 segmento de Cloud Storage) y leerla, así como para 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 prediseñadas disponibles
Este servicio se ha creado con Vertex AI. Debes tener al menos 18 años para usarlo. No incluyas información sensible, confidencial ni personal.

Recursos adicionales

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud