Feature Store
Un almacén de características define, almacena y sirve características de ML para que el entrenamiento y las predicciones en tiempo real usen los mismos valores, con almacenes offline y online.
Un almacén de características es un sistema de datos que define, calcula, almacena y proporciona las características de entrada de los modelos de aprendizaje automático, para que el modelo vea los mismos valores de características durante el entrenamiento y al generar predicciones en directo. Una característica es una entrada del modelo, como el número de transacciones de una tarjeta en la última hora, la valoración media de un producto o la representación vectorial de una imagen. El almacén conserva la definición de cada característica junto con su historial completo en un almacén sin conexión para crear conjuntos de entrenamiento, y su valor más reciente en un almacén en línea para consultas rápidas durante la predicción. Uber describió un almacén compartido de características en su publicación de 2017 sobre la plataforma de aprendizaje automático Michelangelo. Después llegó Feast, un almacén de características de código abierto iniciado por Gojek con Google Cloud, y también aparecieron almacenes de características gestionados en Amazon SageMaker, Google Vertex AI, Azure Machine Learning y Databricks.
Cómo funciona una tienda de características#
Las características empiezan como eventos y tablas sin procesar, y las canalizaciones las convierten en entradas del modelo mediante la ingeniería de características —por ejemplo, contar las transacciones de una tarjeta durante una ventana móvil de una hora— o la extracción de características con una red neuronal. Un almacén de características organiza este trabajo en varios componentes:
- Registro de características: Nombre, clave de entidad (el cliente, la tarjeta, el producto o la cámara que describe), tipo de datos, código de transformación, propietario y versión de cada característica; permite hacer búsquedas para que los equipos las reutilicen en vez de volver a crearlas.
- Almacén sin conexión: Todos los valores históricos, con la marca de tiempo del evento, guardados en un almacén de datos o un lago de datos para crear conjuntos de entrenamiento y ejecutar puntuaciones por lotes.
- Almacén en línea: El valor más reciente de cada entidad en una base de datos clave-valor, como Redis o DynamoDB; se consulta en unos milisegundos durante la inferencia.
- Materialización: Tareas por lotes o de transmisión que calculan valores nuevos y copian los más recientes del almacén sin conexión al almacén en línea.
Durante la predicción, un servicio como una comprobación de fraude envía el ID de la tarjeta, recibe sus características actuales del almacén en línea y se las pasa al modelo, lo que mantiene baja la latencia de inferencia para permitir la inferencia en tiempo real durante el pago.
Corrección temporal (point-in-time)#
Cada fila de entrenamiento debe usar los valores de las características tal como eran cuando se produjo el evento etiquetado. Un valor calculado más tarde contiene información del futuro, una forma de fuga de datos que hace que un modelo parezca preciso sin conexión y falle en producción. Los almacenes de características lo evitan mediante combinaciones temporales, que asocian cada etiqueta con el último valor de característica disponible en el momento de la marca temporal de la etiqueta o antes, para la misma entidad. La función de pandas merge_asof realiza la misma combinación:
import pandas as pd
# Almacén sin conexión: recuento de transacciones de cada tarjeta durante la última hora, registrado a lo largo del tiempo
features = pd.DataFrame(
{
"card_id": ["A", "B", "A", "A"],
"time": pd.to_datetime(["2026-10-01 09:00", "2026-10-01 10:00", "2026-10-01 12:00", "2026-10-01 15:00"]),
"txn_count_1h": [1, 2, 4, 9],
}
)
# Eventos etiquetados para el entrenamiento: ¿era fraudulenta cada transacción?
labels = pd.DataFrame(
{
"card_id": ["B", "A"],
"time": pd.to_datetime(["2026-10-01 11:00", "2026-10-01 13:30"]),
"is_fraud": [0, 1],
}
)
# Combinación temporal: cada etiqueta recibe el último valor de característica de su tarjeta disponible en el momento del evento o antes
training_rows = pd.merge_asof(labels, features, on="time", by="card_id")
print(training_rows)La etiqueta de fraude de la tarjeta A a las 13:30 recibe el recuento de 4 registrado a las 12:00; el recuento de 9 registrado a las 15:00, después de la transacción, queda fuera del conjunto de entrenamiento. La etiqueta de la tarjeta B a las 11:00 recibe su propio valor de 2, porque el argumento by empareja las filas mediante la clave de entidad.
Discrepancia entre entrenamiento y servicio#
La discrepancia entre entrenamiento y servicio es la diferencia entre las características con las que se ha entrenado un modelo y las que recibe en producción. Se produce cuando un trabajo SQL por lotes calcula las características de entrenamiento mientras que un código de aplicación escrito por separado calcula las características del servicio, y ambos difieren en las zonas horarias, los límites de las ventanas, las unidades o la forma de rellenar los valores que faltan. Las Reglas de aprendizaje automático de Google dedican una sección a esta discrepancia y recomiendan registrar las características usadas durante el servicio para que los entrenamientos posteriores puedan utilizar exactamente esos valores. Un almacén de características elimina la ruta de código duplicada al calcular cada característica una sola vez a partir de una única definición para ambos usos, y registra la actualidad, los valores que faltan y la deriva de datos de cada característica para que la supervisión del modelo pueda rastrear una caída en la precisión hasta una entrada defectuosa.
Almacén de características y sistemas relacionados#
- Lago de datos: Almacena archivos sin procesar y procesados en cualquier formato. Muchos almacenes sin conexión se encuentran dentro de un lago, y el almacén de características añade claves de entidad, marcas temporales, recuperación temporal y servicio en línea.
- Base de datos vectorial: Encuentra las incrustaciones almacenadas más similares a un vector de consulta. Un almacén de características busca valores por ID de entidad y puede almacenar incrustaciones como una característica más, junto a recuentos, medias y categorías.
- Registro de modelos: Versiona los modelos entrenados y sus metadatos, mientras que el almacén de características versiona las entradas que consumen esos modelos.
- Servicio de modelos: Ejecuta el modelo detrás de una API y llama al almacén en línea para obtener las características de cada solicitud.
Características de visión artificial#
El análisis de vídeo convierte las señales de las cámaras en características para la previsión, la detección de anomalías y el modelado predictivo: recuentos de visitantes por hora en la entrada de una tienda, longitud de las colas en caja o tasas de defectos por línea de producción, cada uno asociado a un ID de cámara o línea y a una marca temporal. En el comercio minorista, el conteo de personas alimenta los modelos de personal y demanda; en la fabricación, los recuentos de defectos por turno alimentan los modelos de mantenimiento. El conteo de objetos de Ultralytics YOLO produce directamente estos valores: rastrea cada objeto detectado a través de los fotogramas y devuelve los totales acumulados in_count y out_count, así como recuentos por clase, a medida que los objetos cruzan una línea o región, listos para escribirse en un almacén de características como valores con marca temporal por cámara.










