Auteurs:
(1) Sasun Hambardzumyan, Activeloop, Mountain View, Californie, États-Unis ;
(2) Abhinav Tuli, Activeloop, Mountain View, Californie, États-Unis ;
(3) Levon Ghukasyan, Activeloop, Mountain View, Californie, États-Unis ;
(4) Fariz Rahman, Activeloop, Mountain View, Californie, États-Unis ;.
(5) Hrant Topchyan, Activeloop, Mountain View, Californie, États-Unis ;
(6) David Isayan, Activeloop, Mountain View, Californie, États-Unis ;
(7) Mark McQuade, Activeloop, Mountain View, Californie, États-Unis ;
(8) Mikayel Harutyunyan, Activeloop, Mountain View, Californie, États-Unis ;
(9) Tatevik Hakobyan, Activeloop, Mountain View, Californie, États-Unis ;
(10) Ivo Stranic, Activeloop, Mountain View, Californie, États-Unis ;
(11) Davit Buniatyan, Activeloop, Mountain View, Californie, États-Unis.
Plusieurs projets ont tenté d'améliorer ou de créer de nouveaux formats pour stocker des ensembles de données non structurés, notamment TFRecord étendant Protobuf [5], Petastorm [18] étendant Parquet [79], Feather [7] étendant la flèche [13], Squirrel utilisant MessagePack [75], Béton dans FFCV [39]. Concevoir un format d'ensemble de données universel qui résout tous les cas d'utilisation est très difficile. Notre approche a été principalement inspirée par CloudVolume [11], un stockage NumPy fragmenté 4D pour stocker de grandes données biomédicales volumétriques. Il existe d'autres formats de stockage de tableaux NumPy fragmentés similaires tels que Zarr [52], TensorStore [23], TileDB [57]. Deep Lake a introduit un système de typage, des tenseurs de forme dynamique, une intégration avec des chargeurs de données de streaming d'apprentissage profond rapide, des requêtes sur les tenseurs et une prise en charge de la visualisation dans le navigateur. Une approche alternative pour stocker des ensembles de données à grande échelle consiste à utiliser un système de fichiers distribué HPC tel que Lustre [69], étendu avec le cache PyTorch [45] ou une couche de stockage performante telle que AIStore [26]. Les ensembles de données Deep Lake peuvent être stockés sur des systèmes de stockage distribués compatibles POSIX ou REST API en tirant parti de leurs avantages. D'autres approches comparables évoluent dans les bases de données vectorielles [80, 8, 80] pour stocker les intégrations, les magasins de fonctionnalités [73, 16] ou les systèmes de contrôle de version de données tels que DVC [46] ou LakeFS [21]. En revanche, le contrôle de version Deep Lake est intégré au format sans dépendance externe, y compris Git. Tensor Query Language, similaire aux approches TQP [41] et Velox [59], exécute des opérations numériques à n dimensions sur le stockage tensoriel en exploitant véritablement toutes les capacités des frameworks d'apprentissage profond. Dans l'ensemble, Deep Lake s'inspire de lacs de données tels que Hudi, Iceberg, Delta [27, 15, 10] et complète des systèmes tels que Lakehouse de Databarick [28] pour les applications de Deep Learning.
Cet article est disponible sur arxiv sous licence CC 4.0.