Tiendas de artículos: visión general

De vez en cuando, un nuevo sistema de software aparece en el horizonte del panorama tecnológico. En este artículo analizamos una nueva capa de acceso y procesamiento de datos: el almacén de características. Desempeñará un papel importante en la construcción de sistemas inteligentes basados en algoritmos de aprendizaje automático (ML).

Pero, ¿necesita la cada vez más pesada caja de herramientas tecnológicas de los ingenieros de datos otra herramienta más? Sí, porque los almacenes de características son geniales. Reducen la complejidad de un sistema y, por tanto, acortan el ciclo de despliegue de los modelos de ML. Para saber por qué, primero tenemos que definir qué es una característica, cuál es el propósito de un almacén de características y cómo puede ayudarnos a conseguir mejores resultados en los proyectos de ML. ¿Preparados? Vamos allá.

¿Qué es una característica?

Una característica es una variable independiente y medible que sirve de entrada para entrenar un modelo ML. Los estadísticos se refieren a una característica como variable estadística. Para los ingenieros de datos, en cambio, un rasgo es un atributo de la Esquema de una base de datos relacionalPor tanto, puede describirse como una única columna de una tabla de datos.

Los almacenes de características reciben su nombre de los vectores de características que se utilizan como entrada para los modelos de ML. Dependiendo del modelo de ML, existen diferentes requisitos para un vector de características. Los bosques aleatorios, por ejemplo, no tienen restricciones y admiten datos categóricos y datos numéricos no estándar, mientras que las redes neuronales, en cambio, sólo funcionan con datos numéricos estándar.

datos brutos transformados en datos de características (características)
Transformación de datos brutos en datos de características

Ejemplo: La tabla anterior muestra tres atributos y un atributo de predicción (columna "objetivo"). El modelo hipotético que queremos entrenar requiere entradas numéricas para realizar una clasificación supervisada en los dos valores del atributo de predicción, Perro Gato (cat)a realizar. Por lo tanto, tenemos que transformar los atributos categóricos y booleanos. La tabla inferior transformada contiene las características finales. En el atributo inicial Color tenemos un Codificación en caliente y se aplica al atributo booleano Bigotes una binarización.

La siguiente tabla contiene un único vector de características por fila. Cada entidad, es decir, cada "perro" o "gato", está asociada a una fila. Cada característica individual, por ejemplo Tamaño (altura)se representa mediante una columna. Este proceso de generación de características se denomina ingeniería de características. El objetivo es generar características con una alta ganancia de información y combinar características con una correlación mínima. De este modo, los modelos de ML pueden generalizar al máximo las predicciones y, al mismo tiempo Errores de primer y segundo tipo minimizar. Para obtener características de alta calidad, es necesario un enfoque iterativo. Manualmente, este proceso es muy tedioso y puede resultar incoherente. Aquí es donde la Feature Store viene al rescate.

¿Por qué necesitamos una Feature Store?

Los almacenes de características llevan la actualidad de los datos a un nuevo nivel, permitiendo modelos más precisos mediante el acceso a datos más coherentes, lo que ayuda a realizar predicciones más exactas. El cálculo y el almacenamiento de características permiten descubrir, registrar y utilizar características coherentes más allá de los límites de cada proyecto.

Los defensores del desarrollo ágil de software predican los enfoques iterativos para satisfacer o validar los requisitos del cliente con mayor rapidez. La iteración es posible gracias a la automatización. Se hacen pequeños cambios en el código fuente y luego se comprueban con otro código para asegurarse de que no rompen nada. En un sistema inteligente, sin embargo, la iteración es un gran reto porque los expertos en datos -necesarios para diseñar y construir el sistema- hablan idiomas distintos.

Un científico de datos recibe un volcado de datos inicial, los datos en bruto, y crea un modelo utilizando una canalización de preprocesamiento en el contexto del cuaderno. A continuación, un ingeniero de datos operativiza esta canalización para tener en cuenta el volumen y la velocidad de los datos. Para ello, los ingenieros de datos utilizan plataformas de procesamiento de datos distribuidos como Spark o Flink. Por último, un ingeniero de ML integra el modelo en una aplicación, posiblemente reescribiendo el modelo para optimizar el tiempo de interferencia y reducir los requisitos computacionales de un modelo.

El proceso descrito y las diferentes competencias de los actores ralentizan la introducción de nuevos modelos en un entorno de producción. Más graves aún son las incoherencias en la reimplantación de las transformaciones de datos. Las incoherencias provocan sesgos en los datos de entrenamiento y de interferencia, lo que va en detrimento de los resultados predictivos de un modelo. También aísla las características que se generan en diferentes proyectos, lo que a su vez dificulta su descubrimiento. El sitio Movimiento MLOps pretende dar respuesta a estos problemas en general. Sin embargo, existe una tendencia a que los MLOps se centren más en los modelos ML y menos en los datos y las características. Por lo tanto, se necesita una tecnología que respalde las capacidades de los distintos expertos en datos y cree una comprensión común de los conductos de datos.

Objetivos de un almacén de características:

  • Reducción de la fricción entre las distintas funciones (científico de datos, ingeniero de datos, ingeniero de ML).
  • Fácil localización de funciones entre distintos proyectos
  • Denominación y tipos de datos uniformes
  • Evitar distribuciones diferentes de características entre el entrenamiento y la inferencia

¿Qué es un almacén de prestaciones?

Un almacén de funcionalidades es una plataforma en la que todas las funcionalidades están centralizadas y accesibles para todos, de modo que puedan reutilizarse en distintos proyectos. El almacén de características se considera la "única fuente de verdad" para todos los proyectos de ML, lo que permite un descubrimiento, cálculo y uso coherentes de las características.

La mayoría de los almacenes de características tienen tres componentes comunes: una capa de transformación, una capa de almacenamiento y una capa de entrega. En función de los requisitos de una aplicación de datos y de las partes implicadas en una fase del proyecto, los tres componentes pueden utilizarse a menudo en una especie de procesamiento por lotes o en flujo.

Los almacenes de funciones pretenden resolver todos los problemas de gestión de datos que surgen al crear y utilizar aplicaciones de ML operativas.

David Hershey (@tectonAI)

Transformación

El fundador de Coursera y experto en ML Andrew Ng explicó ya 2013Sabemos que la ingeniería de características es un paso crucial en el desarrollo de un sistema inteligente. Por lo tanto, debemos prestar más atención a la transformación. La transformación de datos brutos en un rasgo requiere varios pasos:

En primer lugar, hay que integrar los datos procedentes de diferentes plataformas de datos. A continuación, hay que garantizar la calidad incluyendo todos los pasos que están asociados a la Gestión de datos conectados, se llevan a cabo. Por último, se preparan las tuplas de datos para que puedan ser utilizadas por un modelo ML. Este último paso implica transformaciones como la codificación en un solo paso o la normalización del rango de valores de una característica. En raras ocasiones, incluso es posible que la propia transformación utilice un sofisticado modelo de ML para generar características. Un ejemplo de ello son las incrustaciones de frases obtenidas a partir del lenguaje natural. Este complejo proceso se aplica a los datos históricos sin procesar. Sin embargo, hay que seguir exactamente los mismos pasos para crear los vectores de características de entrada en el momento de la inferencia. De este modo, el almacén de características sirve de "única fuente de verdad" y garantiza que las características para el entrenamiento y la operación se generen exactamente mediante las mismas definiciones de canalización. De este modo, los pipelines para aplicaciones de ML pueden crearse de forma iterativa utilizando la experiencia de los científicos de datos y de los ingenieros de datos.

Persistencia

Cuando se almacenan características, hay dos escenarios diferentes que un almacén de características necesita soportar. En el primer escenario, un almacén de características necesita un backend para almacenar características históricas. Las características históricas sirven como datos de entrenamiento para los modelos de ML. Normalmente, se utilizan sistemas de almacén de datos para esta tarea. A veces, las características también se almacenan directamente en un lago de datos. En el segundo caso, las características se crean mediante una transformación de flujo y se almacenan en un almacén de valores clave. En ambos casos, la creación del backend de almacenamiento de un almacén de características debe ser gestionada por un ingeniero de datos.

Entrega

Al igual que los componentes anteriores de un almacén de características, la API web para la entrega de características también admite un modo por lotes y un modo de baja latencia. La API por lotes la utilizan los científicos de datos para obtener datos de entrenamiento para modelos, y la API de baja latencia aplica el canal de transformación a un único dato (o a varios) para que pueda ser utilizado por un modelo posterior.

almacén de características para el aprendizaje automático el concepto de transfrom, almacenamiento y servicio
Tres componentes de la Feature Store

Estos son los tres componentes más comunes de un almacén de características arquetípico. Existen otros componentes, como un sistema de supervisión de las API, la detección automática de Concepto Deriva así como un repositorio de metadatos para facilitar la búsqueda de características entre proyectos. Sin embargo, esta tecnología aún bastante joven sigue siendo muy fluida, y las tres piezas centrales (transformación, persistencia y entrega) son siempre los cimientos de un almacén de características.

Tres tiendas especializadas

fuente: https://giphy.com/gifs/sesame-street-count-number-of-the-day-FHzemFzwkyRfq

Tecton

Tecton es un almacén de funciones SaaS alojado dirigido a empresas que trabajan en AWS. Uno de los mayores usuarios es Atlassian, la empresa detrás de Jira, Confluence y Trello. Atlassian informa de que ha acortado el despliegue de nuevas características para modelos ML que ya estaban en producción de 1 a 3 meses a un solo día. Bajo el capó, Tecton se alimenta de Delta Lake, S3 y DynamoDB para el almacenamiento y utiliza Spark para la transformación. Desde una perspectiva operativa, el componente de entrega se ejecuta en el entorno de nube de Tecton. Los componentes de transformación y almacenamiento están en manos del usuario (para más información, véase Despliegue deTecton).

Fiesta

Fiesta es un almacén de funciones de código abierto que puede desplegarse en cualquier entorno Kubernetes. Tecton es uno de los actores clave en el desarrollo de Feast. Las características de Feast son un subconjunto de las de Tecton. La principal diferencia es que Feast no proporciona una instancia central para las transformaciones de características y, por lo tanto, solo almacena características precalculadas. Además, Tecton ofrece más funciones de control, por ejemplo para detectar cambios en la distribución de las características. Recomendamos utilizar Feast para una pequeña prueba de concepto y después migrar a Tecton. Dado que las API de entrega de características de ambos sistemas son muy similares, la migración es bastante sencilla.

Databricks Feature Store

En Databricks Feature Store está estrechamente integrado en el ecosistema agnóstico en la nube de Databricks y forma un subcomponente de la plataforma de aprendizaje automático de Databricks. Si un equipo ya tiene experiencia con transformaciones en Spark, utilizar el Databricks Feature Store es pan comido. Además, las características generadas por el Databricks Feature Store se pueden utilizar directamente con las capacidades de servicio de modelos de MLFlow. Internamente, el Databricks Feature Store almacena las características en una tabla con un historial de versiones, que es un Rastrear el origen de los datos permite. Sin embargo, en comparación con Tecton, el Feature Store de Databricks carece de funciones de supervisión de la calidad de los datos. Aparte de este pequeño inconveniente, el Databricks Feature Store ofrece la mejor experiencia de usuario entre los tres almacenes de características presentados debido a su estrecha integración con otros servicios de Databricks.

Conclusión

Aquellos que deseen promover pipelines más consistentes, características más descubribles y constantes, y colaboración iterativa deberían considerar la implementación de un almacén de características. Un almacén de características consta de tres componentes que admiten tanto el procesamiento por lotes como el streaming y promueven la exploración y la entrega de características coherentes a múltiples niveles. Abarcar todos los conceptos y características de esta (todavía) nueva tecnología daría para un libro más que para una entrada de blog, pero el objetivo básico debería estar claro: Los almacenes de funcionalidades permiten la implementación y reutilización de funcionalidades coherentes y fomentan la colaboración iterativa entre las distintas funciones del ciclo de vida de ML. A largo plazo, esta tecnología puede cambiar radicalmente la forma en que desarrollamos sistemas inteligentes.

Autor:inside

[EDITORIAL

Nuestro equipo editorial de AT está formado por varios empleados que preparan los correspondientes artículos del blog con el mayor esmero y según su leal saber y entender. Nuestros expertos de los respectivos campos le ofrecen regularmente contribuciones actuales del sector de la ciencia de datos y la IA. Esperamos que disfrute de la lectura.

0 comentarios