Авторы:
(1) Сасун Амбарцумян, Activeloop, Маунтин-Вью, Калифорния, США;
(2) Абхинав Тули, Activeloop, Маунтин-Вью, Калифорния, США;
(3) Левон Гукасян, Activeloop, Маунтин-Вью, Калифорния, США;
(4) Фариз Рахман, Activeloop, Маунтин-Вью, Калифорния, США;.
(5) Грант Топчян, Activeloop, Маунтин-Вью, Калифорния, США;
(6) Дэвид Исаян, Activeloop, Маунтин-Вью, Калифорния, США;
(7) Марк Маккуэйд, Activeloop, Маунтин-Вью, Калифорния, США;
(8) Микаел Арутюнян, Activeloop, Маунтин-Вью, Калифорния, США;
(9) Татевик Акопян, Activeloop, Маунтин-Вью, Калифорния, США;
(10) Иво Страник, Activeloop, Маунтин-Вью, Калифорния, США;
(11) Давид Буниатян, Activeloop, Маунтин-Вью, Калифорния, США.
Основные варианты использования Deep Lake включают (а) обучение модели глубокого обучения, (б) происхождение данных и контроль версий, (в) запросы данных и аналитику, (г) проверку данных и контроль качества. Мы взяли массивы NumPy [55] в качестве фундаментального блока и реализовали
контроль версий, потоковые загрузчики данных, механизм визуализации с нуля.
Формат хранения тензоров (TSF) — это двоичный формат файла, разработанный специально для хранения тензоров, которые представляют собой многомерные массивы числовых значений, используемые во многих алгоритмах машинного и глубокого обучения. Формат TSF спроектирован так, чтобы быть эффективным и компактным, обеспечивая быстрое и эффективное хранение и доступ к тензорным данным. Одним из ключевых преимуществ формата TSF является то, что он поддерживает широкий спектр типов тензорных данных, включая тензоры динамической формы.
Для сравнения, форматы Parquet [79] и Arrow [13] представляют собой столбчатые форматы файлов, предназначенные для хранения и обработки больших наборов аналитических данных. В отличие от TSF, который специально разработан для тензорных данных, Parquet и Arrow оптимизированы для эффективного хранения и запроса аналитических рабочих нагрузок по табличным данным и данным временных рядов. Они используют методы столбчатого хранения и сжатия, чтобы минимизировать пространство для хранения и повысить производительность, что делает их подходящими для приложений с большими данными. Однако TSF имеет некоторые преимущества перед Parquet и Arrow, когда дело касается тензорных данных. TSF может поддерживать тензорные операции и эффективную потоковую передачу в среды глубокого обучения.
Другие тензорные форматы [18, 52, 23, 57] эффективны для массово распараллеливаемых рабочих нагрузок, поскольку они не требуют координации между фрагментами. Компромисс ключа формата хранения тензоров позволяет хранить массивы динамических форм внутри тензора без увеличения объема памяти. Например, в компьютерном зрении очень часто хранятся несколько изображений разной формы или видео с динамической длиной. Для обеспечения гибкости введены незначительные накладные расходы в виде ранее обсуждавшегося кодировщика фрагментов, влияние которого на производственные рабочие нагрузки на практике мы не заметили.
Deep Lake достигает самых современных результатов в локальных и удаленных условиях, как видно из тестов для итерации больших изображений (рис. 7). Прежде всего, он был быстрее, чем FFCV [39], который заявлял о сокращении обучения модели ImageNet. до 98 центов за обучение модели. Более того, Deep Lake обеспечивает такую же производительность приема, как и WebDataset [19]. Deep Lake значительно превосходит изображение на больших изображениях. Parquet оптимизирован для небольших ячеек и аналитических рабочих нагрузок, а Deep Lake оптимизирован для больших тензорных данных динамической формы. По сравнению с другими решениями для озер данных, его минимальный дизайн пакета Python позволяет легко интегрировать Deep Lake в крупномасштабные распределенные рабочие нагрузки или рабочие нагрузки для вывода.
Текущая реализация Deep Lake имеет возможности для дальнейшего улучшения. Во-первых, формат хранения не поддерживает настраиваемое упорядочение для еще более эффективной схемы хранения, необходимой для векторного поиска или индексации значений ключа. Во-вторых, Deep Lake реализует блокировки на основе ветвей для одновременного доступа. Подобно модели транзакций Delta ACID [27], Deep Lake можно расширить для высокопроизводительных параллельных рабочих нагрузок. В-третьих, текущая реализация TQL поддерживает только подмножество операций SQL (т. е. не поддерживает такие операции, как соединение). Дальнейшая работа будет сосредоточена на том, чтобы сделать его полноценным для SQL, распространив его на большее количество числовых операций, выполнение объединенных запросов к внешним источникам данных и сравнительный анализ с механизмами SQL.
Этот документ доступен на arxiv под лицензией CC 4.0.