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.
Múltiples proyectos han intentado mejorar o crear nuevos formatos para almacenar conjuntos de datos no estructurados, incluidos TFRecord que extiende Protobuf [5], Petastorm [18] que extiende Parquet [79], Feather [7] que extiende la flecha [13], Squirrel que usa MessagePack [75], Beton en FFCV [39]. Diseñar un formato de conjunto de datos universal que resuelva todos los casos de uso es un gran desafío. Nuestro enfoque se inspiró principalmente en CloudVolume [11], un almacenamiento NumPy fragmentado en 4-D para almacenar datos biomédicos volumétricos de gran tamaño. Existen otros formatos de almacenamiento de matrices NumPy fragmentados similares, como Zarr [52], TensorStore [23], TileDB [57]. Deep Lake introdujo un sistema de escritura, tensores con forma dinámica, integración con cargadores de datos de transmisión de aprendizaje profundo rápido, consultas sobre tensores y soporte de visualización en el navegador. Un enfoque alternativo para almacenar conjuntos de datos a gran escala es utilizar un sistema de archivos distribuido HPC como Lustre [69], extendiéndolo con caché PyTorch [45] o una capa de almacenamiento de alto rendimiento como AIStore [26]. Los conjuntos de datos de Deep Lake se pueden almacenar sobre sistemas de almacenamiento distribuido compatibles con POSIX o REST API aprovechando sus beneficios. Otros enfoques comparables evolucionan en bases de datos vectoriales [80, 8, 80] para almacenar incrustaciones, almacenes de características [73, 16] o sistemas de control de versiones de datos como DVC [46] o LakeFS [21]. Por el contrario, el control de versiones de Deep Lake está integrado en el formato sin una dependencia externa, incluido Git. Tensor Query Language, similar a los enfoques TQP [41] y Velox [59], ejecuta operaciones numéricas de n dimensiones en el almacenamiento tensorial aprovechando verdaderamente todas las capacidades de los marcos de aprendizaje profundo. En general, Deep Lake toma paralelos de lagos de datos como Hudi, Iceberg, Delta [27, 15, 10] y complementa sistemas como Lakehouse de Databarick [28] para aplicaciones de aprendizaje profundo.
Este documento está disponible en arxiv bajo licencia CC 4.0.