Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
En esta página se explica cómo funciona el Almacén de características de Databricks y se definen los términos importantes.
¿Cómo funciona la ingeniería de características en Databricks?
El flujo de trabajo de aprendizaje automático típico mediante la ingeniería de características en Databricks sigue esta ruta de acceso:
Escriba código para convertir datos sin procesar en características y cree un dataframe de Spark que contenga las características deseadas.
Cree una tabla Delta en el catálogo de Unity que tenga una clave principal.
Entrenamiento y registro de un modelo mediante la tabla de características. Al hacerlo, el modelo almacena las especificaciones de las características usadas para el entrenamiento. Cuando el modelo se usa para la inferencia, combina automáticamente las características de las tablas de características adecuadas.
Registrar el modelo en el Registro de modelos.
Ahora puede usar el modelo para realizar predicciones sobre nuevos datos. Para los casos de uso por lotes, el modelo recupera automáticamente las características que necesita del Almacén de características.
Para casos de uso de servicio en tiempo real, publique las características en una tienda de características en línea.
En el momento de la inferencia, el punto de conexión de servicio del modelo usa automáticamente los identificadores de entidad de los datos de solicitud para buscar características calculadas previamente desde el almacén en línea para puntuar el modelo de ML. El punto de conexión usa El catálogo de Unity para resolver el linaje del modelo servido a las características que se usan para entrenar este modelo y realiza un seguimiento del linaje al almacén de características en línea para el acceso en tiempo real.
Glosario del almacén de características
Almacén de características
Un almacén de características es un repositorio centralizado que permite a los científicos de datos buscar y compartir características. El uso de un almacén de características también garantiza que el código usado para calcular los valores de características es el mismo durante el entrenamiento del modelo y cuando se usa el modelo para la inferencia. La forma en que funciona el almacén de características en Databricks depende de si el área de trabajo está habilitada para el catálogo de Unity o no.
- En las áreas de trabajo habilitadas para el catálogo de Unity, puede usar cualquier tabla Delta en el catálogo de Unity que incluya una restricción de clave principal como tabla de características.
- Las áreas de trabajo no habilitadas para Unity Catalog que se crearon antes del 19 de agosto de 2024, 16:00:00 (UTC) tienen acceso al Almacén de características de del área de trabajo heredado.
El aprendizaje automático usa datos existentes para crear un modelo para predecir los resultados futuros. En casi todos los casos, los datos sin procesar requieren preprocesamiento y transformación antes de poder usarse para compilar un modelo. Este proceso se denomina ingeniería de características, y las salidas de este proceso se denominan características: los bloques de creación del modelo.
El desarrollo de características es complejo y lento. Una complicación adicional es que, para el aprendizaje automático, es necesario realizar los cálculos de caracterización para el entrenamiento del modelo y, a continuación, volver a usar el modelo para realizar predicciones. Es posible que el mismo equipo no realice estas implementaciones o que usen el mismo entorno de código, lo que puede provocar retrasos y errores. Además, los distintos equipos de una organización a menudo tendrán necesidades de características similares, pero es posible que no sean conscientes del trabajo que han realizado otros equipos. Una tienda de características está diseñada para la resolución de estos problemas.
Tablas de características
Las características se organizan como tablas de características. Cada tabla debe tener una clave principal y está respaldada por una tabla Delta y metadatos adicionales. Los metadatos de la tabla de funciones permiten realizar un seguimiento de los orígenes de datos de los que se generó la tabla, así como de los cuadernos y trabajos que la crearon o escribieron en ella.
Con Databricks Runtime 13.3 LTS y versiones posteriores, si el área de trabajo está habilitada para Unity Catalog, puede usar cualquier tabla Delta en Unity Catalog con una clave principal como tabla de características. Consulte Trabajar con tablas de características en Unity Catalog. Las tablas de características almacenadas en el almacén de características del área de trabajo local se denominan "tablas de características del área de trabajo". Consulte Uso de tablas de características en el almacén de características del área de trabajo (heredado).
Las características de una tabla de características normalmente se calculan y actualizan mediante una función de cálculo común.
Puede publicar una tabla de características en un almacén en línea para la inferencia de modelos en tiempo real.
FeatureLookup
Muchos modelos diferentes pueden usar características de una tabla de características determinada y no todos los modelos necesitarán cada característica. Para entrenar un modelo mediante características, cree un FeatureLookup para cada tabla de características.
FeatureLookup especifica qué características usar de la tabla y también define las claves que se usarán para unir la tabla de características a los datos de etiqueta pasados a create_training_set.
En el diagrama se muestra cómo funciona un FeatureLookup. En este ejemplo, quiere entrenar un modelo mediante características de dos tablas de características, customer_features y product_features. Cree un FeatureLookup para cada tabla de características, especificando el nombre de la tabla, las características (columnas) que se van a seleccionar en la tabla y la clave de búsqueda que se usará cuando las características de combinación creen un conjunto de datos de entrenamiento.
A continuación, llame a create_training_set, que también se muestra en el diagrama. Esta llamada API especifica el DataFrame que contiene los datos de entrenamiento sin procesar (label_df), el FeatureLookups que se va a usar y label, una columna que contiene el valor verdadero. Los datos de entrenamiento deben contener columnas correspondientes a cada una de las claves principales de las tablas de características. Los datos de las tablas de características se unen al DataFrame de entrada según estas claves. El resultado se muestra en el diagrama como "Conjunto de datos de entrenamiento".
FeatureFunction
Una característica puede depender de la información que solo está disponible en el momento de la inferencia. Puede especificar un FeatureFunction que combine entradas en tiempo real con valores de características para calcular valores de características actualizados. Se muestra un ejemplo en el diagrama: Para obtener más información, consulte Cálculo de características a petición.
Conjunto de formación
Un conjunto de entrenamiento consta de una lista de características y un dataframe que contiene datos de entrenamiento sin procesar, etiquetas y claves principales por los que buscar características. Para crear el conjunto de entrenamiento, especifique las características que se extraerán del Almacén de características y proporcione el conjunto de entrenamiento como entrada durante el entrenamiento del modelo.
Consulte Creación de un conjunto de datos de entrenamiento para obtener un ejemplo de cómo crear y usar un conjunto de entrenamiento.
Al entrenar y registrar un modelo mediante la ingeniería de características en el catálogo de Unity, puede ver el linaje del modelo en el Explorador de catálogos. Se realiza un seguimiento de las tablas y funciones que se usaron para crear el modelo y se las muestra automáticamente. Consulte Gobernanza y linaje de características.
FeatureSpec
A FeatureSpec es una entidad de Catálogo de Unity que define un conjunto reutilizable de características y funciones para servir.
FeatureSpecs combina FeatureLookups de tablas de características y FeatureFunctions en una sola unidad lógica que se puede usar en el entrenamiento del modelo o servir mediante puntos de conexión de Feature Serving.
FeatureSpecEl catálogo de Unity almacena y administra los s, con seguimiento completo del linaje a sus funciones y tablas de características sin conexión constituyentes. Esto permite la gobernanza, la detectabilidad y la reutilización en diferentes modelos y aplicaciones.
Puede usar de FeatureSpec las siguientes maneras:
- Cree un punto de conexión de servicio de características mediante la API de Python o la API REST. Consulte Puntos de conexión de servicio de características o implemente directamente mediante la interfaz de usuario de servicio de modelos. Para aplicaciones de alto rendimiento, habilite la optimización de rutas.
- Use en el entrenamiento del modelo haciendo referencia a
FeatureSpecencreate_training_set.
Siempre FeatureSpec hace referencia a las tablas de características sin conexión, pero deben publicarse en una tienda en línea para escenarios de servicio en tiempo real.
Tablas de características de serie temporal (búsquedas a un momento dado)
Los datos usados para entrenar un modelo a menudo tienen dependencias de tiempo integradas en él. Al compilar el modelo, solo debe tener en cuenta los valores de las características hasta el momento en que se observa el valor objetivo. Si entrena utilizando variables basadas en datos medidos después de la marca de tiempo del valor objetivo, el rendimiento del modelo puede verse afectado.
Las tablas de características de serie temporal incluyen una columna de marca de tiempo que garantiza que cada fila del conjunto de datos de entrenamiento represente los valores de características conocidos más recientes a partir de la marca de tiempo de la fila. Debe usar tablas de características de serie temporal cuando los valores de las características cambian con el tiempo, por ejemplo, con datos de serie temporal, datos basados en eventos o datos agregados en tiempo.
Al crear una tabla de características de series temporales, se especifican las columnas relacionadas con el tiempo en las claves principales para convertirlas en columnas de series temporales utilizando el argumento timeseries_columns (para Feature Engineering en Unity Catalog) o el argumento timestamp_keys (para el Feature Store del espacio de trabajo). Esto habilita las búsquedas a un momento dado cuando se usa create_training_set o score_batch. El sistema realiza una combinación de marca de tiempo as-of, utilizando el timestamp_lookup_key que especifique.
Si no usa el timeseries_columns argumento o el timestamp_keys argumento y solo designa una columna de serie temporal como columna de clave principal, Feature Store no aplica la lógica de tiempo específico a la columna de serie temporal durante las combinaciones. En su lugar, solo coincide con las filas con una coincidencia de hora exacta en lugar de hacer coincidir todas las filas anteriores a la marca de tiempo.
Tienda sin conexión
El almacén de características sin conexión se usa para la detección de características, el entrenamiento del modelo y la inferencia por lotes. Contiene tablas de características materializadas como tablas delta.
Tienda de características en línea
Databricks Online Feature Store es una solución escalable y de alto rendimiento para servir datos de características a aplicaciones en línea y modelos de aprendizaje automático en tiempo real.
Con tecnología de Databricks Lakebase, proporciona acceso de baja latencia a los datos de características a gran escala y mantiene la gobernanza, el linaje y la coherencia con las tablas de características desconectadas.
Puede aprovisionar tiendas en línea en la plataforma lakebase sin servidor. Las APIs permiten administrar instancias y réplicas de lectura, y el escalado de instancias según sea necesario. Puede usar las API cómodas para publicar tablas de Catálogo de Unity en tiendas en línea. Estas tablas también son entidades de Unity Catalog que registran nativamente el linaje de las tablas de origen. Databricks también admite tiendas en línea de terceros.
Transmisión
El Databricks Feature Store, además de admitir escrituras por lotes, también soporta la transmisión. Puede escribir valores de características en una tabla de características desde un origen de transmisión, y el código de cálculo de características puede utilizar Structured Streaming para transformar flujos de datos brutos en características.
También puedes transmitir tablas de características desde la tienda sin conexión hacia una tienda en línea.
Empaquetado de modelos
Al entrenar un modelo de aprendizaje automático utilizando la ingeniería de funciones en el Catálogo de Unity o el Almacén de Características del Área de Trabajo, y registrarlo mediante el método del log_model() cliente, el modelo conserva referencias a estas funciones. En el momento de la inferencia, el modelo puede recuperar opcionalmente los valores de características de manera automática. El autor de la llamada solo necesita proporcionar la clave principal de las características usadas en el modelo (por ejemplo, user_id) y el modelo recupera todos los valores de características necesarios.
En la inferencia por lotes, los valores de características se recuperan del almacén sin conexión y se combinan con nuevos datos antes de la puntuación. En la inferencia en tiempo real, los valores de características se recuperan del almacén en línea.
Para empaquetar un modelo con metadatos de características, use FeatureEngineeringClient.log_model (para Feature Engineering en el catálogo de Unity) o FeatureStoreClient.log_model (para Workspace Feature Store).