paint-brush
Deep Lake, una casa de lago para el aprendizaje profundo: resumen e introducciónpor@dataology
163 lecturas

Deep Lake, una casa de lago para el aprendizaje profundo: resumen e introducción

Demasiado Largo; Para Leer

Los investigadores presentan Deep Lake, una casa de lago de código abierto para el aprendizaje profundo, que optimiza el almacenamiento y la transmisión de datos complejos para marcos de aprendizaje profundo.
featured image - Deep Lake, una casa de lago para el aprendizaje profundo: resumen e introducción
Dataology: Study of Data in Computer Science HackerNoon profile picture
0-item

Autores:

(1) Sasun Hambardzumyan, Activeloop, Mountain View, CA, EE. UU.;

(2) Abhinav Tuli, Activeloop, Mountain View, CA, EE. UU.;

(3) Levon Ghukasyan, Activeloop, Mountain View, CA, EE. UU.;

(4) Fariz Rahman, Activeloop, Mountain View, CA, EE. UU.;

(5) Hrant Topchyan, Activeloop, Mountain View, CA, EE. UU.;

(6) David Isayan, Activeloop, Mountain View, CA, EE. UU.;

(7) Mark McQuade, Activeloop, Mountain View, CA, EE. UU.;

(8) Mikayel Harutyunyan, Activeloop, Mountain View, CA, EE. UU.;

(9) Tatevik Hakobyan, Activeloop, Mountain View, CA, EE. UU.;

(10) Ivo Stranic, Activeloop, Mountain View, CA, EE. UU.;

(11) Pescante Buniatyan, Activeloop, Mountain View, CA, EE. UU.

Tabla de enlaces

ABSTRACTO

Los lagos de datos tradicionales proporcionan una infraestructura de datos crítica para cargas de trabajo analíticas al permitir viajes en el tiempo, ejecutar consultas SQL, ingerir datos con transacciones ACID y visualizar conjuntos de datos a escala de petabytes en el almacenamiento en la nube. Permiten a las organizaciones romper los silos de datos, desbloquear la toma de decisiones basada en datos, mejorar la eficiencia operativa y reducir los costos. Sin embargo, a medida que aumenta el uso del aprendizaje profundo, los lagos de datos tradicionales no están bien diseñados para aplicaciones como el procesamiento del lenguaje natural (NLP), el procesamiento de audio, la visión por computadora y aplicaciones que involucran conjuntos de datos no tabulares. Este artículo presenta Deep Lake, una casa de lago de código abierto para aplicaciones de aprendizaje profundo desarrollada en Activeloop[1][2]. Deep Lake mantiene los beneficios de un lago de datos básico con una diferencia clave: almacena datos complejos, como imágenes, videos, anotaciones, así como datos tabulares, en forma de tensores y transmite rápidamente los datos a través de la red a (un ) Tensor Query Language, (b) motor de visualización en el navegador o (c) marcos de aprendizaje profundo sin sacrificar la utilización de GPU. Se puede acceder a los conjuntos de datos almacenados en Deep Lake desde PyTorch [58], TensorFlow [25], JAX [31] y se integran con numerosas herramientas MLOps.


PALABRAS CLAVE: Deep Lake, Aprendizaje profundo, Data Lake, Lakehouse, Computación en la nube, Sistemas distribuidos

1. INTRODUCCIÓN

Un lago de datos es un repositorio central que permite a las organizaciones almacenar datos estructurados, no estructurados y semiestructurados en un solo lugar. Los lagos de datos proporcionan una mejor manera de gestionar, gobernar y analizar datos. Además, proporcionan una forma de romper los silos de datos y obtener información que antes estaba oculta en fuentes de datos dispares. Los lagos de datos de primera generación tradicionalmente recopilaban datos en sistemas de almacenamiento distribuido como HDFS [71] o AWS S3 [1]. Las recopilaciones desorganizadas de datos convirtieron los lagos de datos en "pantanos de datos", lo que dio lugar a los lagos de datos de segunda generación liderados por Delta, Iceberg y Hudi [27, 15, 10]. Operan estrictamente sobre formatos estructurados estandarizados como Parquet, ORC, Avro [79, 6, 20] y brindan características como viaje en el tiempo, transacciones ACID y evolución de esquemas. Los lagos de datos se integran directamente con motores de consulta como Presto, Athena,


Figura 1: Descripción general de la arquitectura de Deep Lake interactuando con marcos de aprendizaje profundo.


Hive y Photon [70, 12, 76, 66] para ejecutar consultas analíticas. Además, se conectan a marcos como Hadoop, Spark y Airflow [14, 82, 9] para el mantenimiento de tuberías ETL. A su vez, la integración entre lagos de datos y motores de consulta con una clara separación de computación y almacenamiento dio lugar a la aparición de sistemas como Lakehouse [28] que sirven como alternativa a los almacenes de datos, incluidos Snowflake, BigQuery, Redshift y Clickhouse [33, 4, 40, 2].


Durante la última década, el aprendizaje profundo ha superado las técnicas tradicionales de aprendizaje automático que involucran datos complejos y no estructurados como texto, imágenes, videos y audio [44, 47, 38, 83, 51, 30, 63, 56]. Los sistemas de aprendizaje profundo no sólo superaron las técnicas tradicionales, sino que también lograron una precisión sobrehumana en aplicaciones como la detección de cáncer a partir de imágenes de rayos X, la reconstrucción anatómica de células neuronales humanas, los juegos, la conducción de automóviles, el despliegue de proteínas y la generación de imágenes. 61, 48, 72, 42, 77]. Los grandes modelos de lenguaje con arquitecturas basadas en transformadores lograron resultados de vanguardia en tareas de traducción, razonamiento, resumen y finalización de textos [78, 36, 81, 32]. Grandes redes multimodales incorporan datos no estructurados en vectores para búsqueda intermodal [29, 60]. Además, se utilizan para generar imágenes fotorrealistas a partir de texto [62, 65].


Aunque uno de los principales contribuyentes al éxito de los modelos de aprendizaje profundo ha sido la disponibilidad de grandes conjuntos de datos como CoCo (330.000 imágenes), ImageNet (1,2 millones de imágenes), Oscar (corpus de texto multilingüe) y LAION (400 millones y 5.000 millones de imágenes). [49, 34, 74, 68], no cuenta con un plan de infraestructura de datos bien establecido similar a las cargas de trabajo analíticas tradicionales para respaldar dicha escala. Por otro lado, Modern Data Stack (MDS) carece de las características necesarias para implementar soluciones eficaces basadas en aprendizaje profundo, por lo que las organizaciones optan por desarrollar sistemas internos.


En este artículo, presentamos Deep Lake, una casa en el lago especializada en cargas de trabajo de aprendizaje profundo. Deep Lake conserva los principales beneficios de un


Figura 2: Bucle de aprendizaje automático con Deep Lake


lago de datos tradicional con una distinción notable: almacena datos complejos, como imágenes, videos, anotaciones y datos tabulares, como tensores y transmite rápidamente los datos a marcos de aprendizaje profundo a través de la red sin sacrificar la utilización de la GPU. Además, proporciona interoperabilidad nativa entre marcos de aprendizaje profundo como PyTorch, TensorFlow y JAX [58, 25, 31].


Las principales contribuciones técnicas de este trabajo incluyen:


• Formato de almacenamiento tensorial que almacena matrices con formas dinámicas en el almacenamiento de objetos;


• Streaming Dataloader que programa la recuperación, la descompresión y las transformaciones definidas por el usuario, optimizando el rendimiento de la transferencia de datos a las GPU para un aprendizaje profundo;


• Lenguaje de consulta Tensor que ejecuta operaciones similares a SQL sobre datos de matrices multidimensionales;


• Motor de visualización en el navegador que transmite datos desde el almacenamiento de objetos y los presenta en el navegador mediante WebGL.


El resto de este artículo se desarrolla de la siguiente manera. Comenzamos considerando los desafíos actuales del aprendizaje profundo sobre datos no estructurados. A continuación, presentamos el Formato de Almacenamiento Tensorial (TSF) con sus conceptos clave. Además, analizamos las capacidades y aplicaciones de Deep Lake dentro del ciclo de ML. A continuación, proporcionamos experimentos de rendimiento y analizamos los resultados. Finalmente, revisamos el trabajo relacionado, enumeramos posibles limitaciones y concluimos.


Este documento está disponible en arxiv bajo licencia CC 4.0.


[1] Código fuente disponible: https://github.com/activeloopai/deeplake


[2] Documentación disponible en https://docs.deeplake.ai