Autores:
(1) Sasun Hambardzumyan, Activeloop, Mountain View, CA, EUA;
(2) Abhinav Tuli, Activeloop, Mountain View, CA, EUA;
(3) Levon Ghukasyan, Activeloop, Mountain View, CA, EUA;
(4) Fariz Rahman, Activeloop, Mountain View, CA, EUA;.
(5) Hrant Topchyan, Activeloop, Mountain View, CA, EUA;
(6) David Isayan, Activeloop, Mountain View, CA, EUA;
(7) Mark McQuade, Activeloop, Mountain View, CA, EUA;
(8) Mikayel Harutyunyan, Activeloop, Mountain View, CA, EUA;
(9) Tatevik Hakobyan, Activeloop, Mountain View, CA, EUA;
(10) Ivo Stranic, Activeloop, Mountain View, CA, EUA;
(11) Davit Buniatyan, Activeloop, Mountain View, CA, EUA.
Vários projetos tentaram melhorar ou criar novos formatos para armazenar conjuntos de dados não estruturados, incluindo TFRecord estendendo Protobuf [5], Petastorm [18] estendendo Parquet [79], Feather [7] estendendo seta [13], Squirrel usando MessagePack [75], Beton em FFCV [39]. Projetar um formato de conjunto de dados universal que resolva todos os casos de uso é muito desafiador. Nossa abordagem foi inspirada principalmente no CloudVolume [11], um armazenamento NumPy em blocos 4-D para armazenar grandes dados biomédicos volumétricos. Existem outros formatos de armazenamento de array NumPy em partes semelhantes, como Zarr [52], TensorStore [23], TileDB [57]. Deep Lake introduziu um sistema de digitação, tensores de formato dinâmico, integração com carregadores de dados de streaming de aprendizado profundo rápido, consultas em tensores e suporte de visualização no navegador. Uma abordagem alternativa para armazenar conjuntos de dados em grande escala é usar um sistema de arquivos distribuído HPC, como Lustre [69], estendendo-se com cache PyTorch [45] ou camada de armazenamento de alto desempenho, como AIStore [26]. Os conjuntos de dados do Deep Lake podem ser armazenados em sistemas de armazenamento distribuído compatíveis com POSIX ou REST API, aproveitando seus benefícios. Outras abordagens comparáveis evoluem em bancos de dados vetoriais [80, 8, 80] para armazenar embeddings, armazenamentos de recursos [73, 16] ou sistemas de controle de versão de dados, como DVC [46] ou LakeFS [21]. Por outro lado, o controle de versão do Deep Lake está integrado ao formato sem dependência externa, incluindo Git. A Tensor Query Language, semelhante às abordagens TQP [41] e Velox [59], executa operações numéricas ndimensionais no armazenamento tensor, aproveitando verdadeiramente todos os recursos das estruturas de aprendizado profundo. No geral, Deep Lake segue paralelos de data lakes como Hudi, Iceberg, Delta [27, 15, 10] e complementa sistemas como Lakehouse de Databarick [28] para aplicações de Deep Learning.
Este artigo está disponível no arxiv sob licença CC 4.0.