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.
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.
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.
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.
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.
El proceso de inferencia se inicia mediante un activador. Este activador puede ser:
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.
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.
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.
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.
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.
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.
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.
Antes de empezar, necesitas tres cosas clave:
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:
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.
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.
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.
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:
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).
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.