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.
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.
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
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.
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.
La canalización de inferencia se inicia con un activador. Este activador puede ser de estas maneras:
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.
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.
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.
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.
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.
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.
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.
Antes de comenzar, necesitas tres elementos clave:
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:
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.
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.
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.
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:
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).
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.