Cómo construir un almacén de características de IA/ML con ScyllaDB NoSQL

Construcción de almacén de características de IA/ML con ScyllaDB NoSQL

Las tiendas de características de aprendizaje automático (ML) han estado atrayendo atención y uso para aplicaciones críticas para el negocio desde que Uber introdujo el concepto con Michelangelo en 2017. En esta publicación de blog, profundizaremos en los fundamentos de las tiendas de características de ML y exploraremos por qué y cómo ScyllaDB puede ser una parte crítica de la arquitectura de su tienda de características.

Para entender qué son las tiendas de características, es importante primero entender qué son las características.

¿Qué es una característica?

En el aprendizaje automático, una característica es un conjunto de puntos de datos que se pueden usar para enseñar a un modelo y hacer predicciones sobre el futuro basadas en datos históricos. Por ejemplo, nuestra aplicación de muestra de tienda de características le permite hacer predicciones sobre retrasos de vuelos basados en registros históricos de vuelos.

Las características son el resultado de complejos procesos de procesamiento y transformación de datos. Grandes cantidades de datos de características permiten predicciones precisas y proyectos exitosos de aprendizaje automático.

¿Qué es una tienda de características?

Una tienda de características es una base de datos central en su arquitectura de aprendizaje automático que contiene sus características en tiempo real e históricas. Las tiendas de características permiten a sus ingenieros de datos y científicos de datos utilizar el mismo repositorio central para descubrir, monitorear y analizar características. ¿Cómo se ve la arquitectura de una tienda de características?

Bases de datos en línea y sin conexión en la tienda de características

Cuando hablamos de tiendas de características, los usuarios generalmente diferencian entre dos tipos de bases de datos en su arquitectura. Por un lado, utilizan una base de datos en línea y, por otro lado, también pueden tener una base de datos sin conexión. Estas bases de datos sirven para diferentes propósitos.

Base de datos sin conexión: Este tipo de base de datos almacena características históricas procesadas, generalmente ingestadas en lotes. Las bases de datos sin conexión tienen datos de características que cubren un largo período de tiempo en la historia; por lo tanto, son útiles para trabajar con un conjunto de características en un período específico en la historia.

Base de datos en línea: Esta base de datos puede contener datos de transmisiones en tiempo real y también la base de datos sin conexión. El almacenamiento en línea se utiliza para servir el modelo de producción y otras aplicaciones en tiempo real con los datos de características más actualizados. Aquí, el rendimiento y la baja latencia son realmente importantes. Si su base de datos no es capaz de entregar características en tiempo real lo suficientemente rápido, entonces su modelo podría usar datos desactualizados o inexactos para hacer predicciones.

Modelado de datos de la tienda de características: diseño de tablas amplias frente a estrechas

Cuando está diseñando el modelo de datos dentro de su tienda de características, ya sea una tienda sin conexión o en línea, puede decidir entre dos tipos de diseños de tablas: amplios y estrechos. Cada uno tiene sus propios beneficios y desventajas. Veamos ejemplos reales de ambos y por qué podrían o no ser los mejores para su caso de uso:

Diseño de tabla amplia

El diseño de tabla amplia incluye columnas separadas para cada característica. Cuantos más tipos de características desee almacenar en la tabla, más columnas deberá crear.

Ejemplo de diseño de tabla amplia

ver rawgistfile1.txt 

Este tipo de diseño puede ser fácil de comenzar, pero también se vuelve más complicado de mantener con el tiempo y difícil de realizar cambios. Cada vez que desea introducir una nueva característica (o eliminar una existente), debe modificar el esquema, lo que puede ser complicado.

Diseño de tabla estrecha

Los diseños de tabla estrecha son simples y más fáciles de mantener. Esto se debe a que la cantidad de columnas no está destinada a aumentar o disminuir en el futuro, incluso si agrega o elimina características.

Ejemplo de diseño de tabla estrecha

ver rawgistfile1.txt 

Utilizando este diseño, puede utilizar solo dos columnas fijas a largo plazo para almacenar características. Una para el nombre de la característica (por ejemplo, RETRASO_DEL_AVIÓN_TARDE) y otra para el valor de esa característica.

En general, las tablas estrechas pueden requerir la conversión de los tipos de datos al recuperar datos porque no están en la forma correcta (por ejemplo, el tipo de columna es FLOAT, pero en realidad, el valor de los datos es un INTEGER). Afortunadamente, cuando hablamos de tiendas de características, las tiendas en línea y sin conexión ya tienen los datos en un formato de número limpio y correcto (FLOAT) y todos los valores tienen el mismo tipo de datos, lo que significa que esto no es una desventaja en el caso de las tiendas de características.

¿Qué es ScyllaDB y cómo se puede utilizar en la arquitectura de su tienda de características?

Para que los equipos de aprendizaje automático puedan construir aplicaciones de inferencia en tiempo real, necesitan bases de datos que puedan devolver características a gran escala con baja latencia. ScyllaDB es una base de datos NoSQL de alto rendimiento y baja latencia que puede manejar altos volúmenes de operaciones de lectura y escritura. Además, ScyllaDB es una base de datos confiable para cargas de trabajo de almacenamiento de características críticas para la misión en empresas como GE Healthcare o ShareChat. Debido a su alta disponibilidad y tolerancia a fallos, puede realizar el trabajo pesado en su infraestructura donde el rendimiento y la confiabilidad son importantes.

Además de aprovechar ScyllaDB como la tienda en línea en la arquitectura de su almacén de características, ScyllaDB también se utiliza como una solución de almacenamiento híbrida en línea / fuera de línea. Con este enfoque, puede reducir la carga de mantenimiento en su equipo al tener una sola base de datos para atender todas las cargas de trabajo de su almacén de características.

Los usuarios a menudo colocan ScyllaDB en el centro de su arquitectura para persistir y recuperar características y metadatos de almacén de características. En este caso, ScyllaDB actúa como una tienda en línea. Otros usuarios también utilizan ScyllaDB como su almacenamiento híbrido en línea / fuera de línea. El rendimiento es un requisito clave para acelerar el desarrollo del modelo y el rendimiento de lectura y escritura de ScyllaDB cumple consistentemente o supera las expectativas del usuario.

De hecho, algunos usuarios descubrieron que ScyllaDB podría reemplazar múltiples bases de datos y servir como una única tienda central para todas sus necesidades de datos de aprendizaje automático. Por ejemplo, ScyllaDB puede reemplazar a Redis (tienda en línea) y PostgreSQL (tienda fuera de línea), lo que hace que el mantenimiento de la infraestructura sea menos costoso y más simple.

ScyllaDB brilla en casos de uso donde se requiere baja latencia y alto rendimiento. Además, ScyllaDB es compatible con Cassandra y DynamoDB, lo que significa que si ya utiliza una de estas bases de datos, puede migrar sin problemas sin tener que cambiar sus consultas.

Tutorial: Tienda en línea de ScyllaDB

Para ayudarlo a comenzar con ScyllaDB como su tienda en línea, hemos creado una aplicación de muestra (también disponible en GitHub).

  1. Clonar el repositorio
  2. Registrarse en ScyllaDB Cloud o instalar ScyllaDB localmente
  3. Crear el esquema:cqlsh "node-0.aws_us_east_1.xxxxxxxxx.clusters.scylla.cloud" 9042 -u scylla -p "contraseña" -f schema.cql
  4. Conéctese a la instancia con cqlsh e importe un conjunto de datos de muestracqlsh "node-0.aws_us_east_1.xxxxxxxxx.clusters.scylla.cloud" 9042 -u scylla -p "contraseña" scylla@cqlsh> COPY feature_store.flight_features FROM 'flight_features.csv';

Este comando ingiere un conjunto de datos de vuelo de muestra:

ScyllaDB + Feast

ScyllaDB también se integra con herramientas de almacenamiento de características como Feast. Feast es un almacén de características de código abierto popular para ML en producción. Puede utilizar varias bases de datos como su almacén de características en línea al usar Feast, incluido ScyllaDB.

Para configurar ScyllaDB como un almacén en línea de Feast, debe editar el archivo de configuración de Feast y agregar sus credenciales de ScyllaDB. ScyllaDB es compatible con Cassandra, por lo que puede utilizar el conector Cassandra incorporado de Feast.

Conclusión

Los almacenes de características son necesarios para la ingeniería de características y la construcción de modelos de aprendizaje automático. Si está construyendo una infraestructura de almacén de características en tiempo real, debe considerar cuidadosamente el rendimiento. Los requisitos de baja latencia, alto rendimiento y alto rendimiento hacen que las bases de datos NoSQL sean candidatas perfectas como solución de almacenamiento en línea en su almacén de características.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Papel de los Contratos de Datos en la Canalización de Datos

¿Qué son los Contratos de Datos? Un contrato de datos es un acuerdo o conjunto de reglas que define cómo debe estruct...

Inteligencia Artificial

Técnicas de muestreo y comparación prácticas, en Python

Estaba poniendo el árbol de Navidad con mi esposa. Fuimos al sótano, cogimos el árbol, lo llevamos arriba y empezamos...

Inteligencia Artificial

Cómo Nexusflow's NexusRaven-V2 supera a GPT-4 en su propio juego!

En el paisaje en constante evolución de la inteligencia artificial, ha surgido un nuevo contendiente que desafía la d...

Inteligencia Artificial

Acelerando la llegada de la energía de fusión con IA y accesibilidad

El Centro de Ciencia del Plasma y Fusión del MIT recibirá apoyo del Departamento de Energía para mejorar el acceso a ...

Noticias de Inteligencia Artificial

Los médicos se entrenan en realidad virtual.

Las simulaciones preparan a los cirujanos para la realidad.