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.
Los principales casos de uso de Deep Lake incluyen (a) capacitación en modelos de aprendizaje profundo, (b) linaje de datos y control de versiones, (c) consulta y análisis de datos, (d) inspección de datos y control de calidad. Tomamos matrices NumPy [55] como bloque fundamental e implementamos
control de versiones, cargadores de datos en streaming, motor de visualización desde cero.
El formato de almacenamiento de tensores (TSF) es un formato de archivo binario diseñado específicamente para almacenar tensores, que son matrices multidimensionales de valores numéricos utilizados en muchos algoritmos de aprendizaje automático y aprendizaje profundo. El formato TSF está diseñado para ser eficiente y compacto, lo que permite un almacenamiento y acceso rápido y eficiente a los datos del tensor. Una ventaja clave del formato TSF es que admite una amplia gama de tipos de datos tensoriales, incluidos tensores de forma dinámica.
En comparación, los formatos Parquet [79] y Arrow [13] son formatos de archivos en columnas diseñados para almacenar y procesar grandes conjuntos de datos analíticos. A diferencia de TSF, que está diseñado específicamente para datos tensoriales, Parquet y Arrow están optimizados para el almacenamiento y la consulta eficientes de cargas de trabajo analíticas en datos tabulares y de series temporales. Utilizan técnicas de compresión y almacenamiento en columnas para minimizar el espacio de almacenamiento y mejorar el rendimiento, lo que los hace adecuados para aplicaciones de big data. Sin embargo, TSF tiene algunas ventajas sobre Parquet y Arrow cuando se trata de datos tensoriales. TSF puede admitir operaciones tensoriales y transmisión eficiente a marcos de aprendizaje profundo.
Otros formatos de tensor [18, 52, 23, 57] son eficientes para cargas de trabajo masivamente paralelizables ya que no requieren coordinación entre fragmentos. La compensación clave del formato de almacenamiento tensor es permitir almacenar matrices de formas dinámicas dentro de un tensor sin necesidad de rellenar la memoria. Por ejemplo, en visión por computadora es muy común almacenar múltiples imágenes con diferentes formas o videos con duración dinámica. Para respaldar la flexibilidad, se introduce una sobrecarga menor en forma del codificador de fragmentos discutido anteriormente y que en la práctica no hemos observado impacto en las cargas de trabajo de producción.
Deep Lake logra resultados de última generación en entornos locales y remotos, como se ve en los puntos de referencia para iterar en imágenes grandes (Fig. 7). Principalmente, ha sido más rápido que FFCV [39], que afirmaba una reducción del entrenamiento del modelo ImageNet. hasta 98 centavos por entrenamiento de modelo. Además, Deep Lake logra un rendimiento de ingesta similar al de WebDataset [19]. Deep Lake supera significativamente en imágenes más grandes. Parquet está optimizado para celdas pequeñas y cargas de trabajo analíticas, mientras que Deep Lake está optimizado para datos tensoriales grandes y de forma dinámica. En comparación con otras soluciones de lago de datos, su diseño mínimo de paquete Python permite que Deep Lake se integre fácilmente en cargas de trabajo de inferencia o capacitación distribuidas a gran escala.
La implementación actual de Deep Lake tiene oportunidades de mejora adicional. En primer lugar, el formato de almacenamiento no admite pedidos personalizados para lograr un diseño de almacenamiento aún más eficiente necesario para la búsqueda de vectores o la indexación de valores-clave. En segundo lugar, Deep Lake implementa bloqueos basados en sucursales para acceso simultáneo. De manera similar al modelo de transacción Delta ACID [27], Deep Lake se puede extender a cargas de trabajo paralelas de alto rendimiento. En tercer lugar, la implementación actual de TQL solo admite un subconjunto de operaciones SQL (es decir, no admite operaciones como la unión). El trabajo adicional se centrará en completar SQL, extenderlo a operaciones más numéricas, ejecutar consultas federadas en fuentes de datos externas y realizar evaluaciones comparativas con motores SQL.
Este documento está disponible en arxiv bajo licencia CC 4.0.