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.
En esta sección repasamos las aplicaciones de Deep Lake.
Un escenario típico en una aplicación de aprendizaje profundo comienza con
(1) Un conjunto sin formato de archivos que se recopila en un depósito de almacenamiento de objetos. Puede incluir imágenes, vídeos y otros tipos de datos multimedia en sus formatos nativos, como JPEG, PNG o MP4.
(2) Cualquier metadato y etiqueta asociados almacenados en una base de datos relacional. Opcionalmente, se pueden almacenar en el mismo depósito junto con los datos sin procesar en un formato tabular normalizado, como formato CSV, JSON o Parquet.
Como se muestra en la Fig. 4, se crea un conjunto de datos de Deep Lake vacío. Luego, se definen tensores vacíos para almacenar tanto datos sin procesar como metadatos. El número de tensores podría ser arbitrario. Un ejemplo básico de una tarea de clasificación de imágenes tendría dos tensores,
• tensor de imágenes con tipo h de 𝑖𝑚𝑎𝑔𝑒 y compresión de muestra de JPEG
• etiquetas tensor con htype de 𝑐𝑙𝑎𝑠𝑠_𝑙𝑎𝑏𝑒𝑙 y compresión de fragmentos de LZ4.
Después de declarar los tensores, los datos se pueden agregar al conjunto de datos. Si la compresión de una imagen sin formato coincide con la compresión de la muestra del tensor, el binario se copia directamente en un fragmento sin decodificación adicional. Los datos de las etiquetas se extraen de una consulta SQL o una tabla CSV en un entero categórico y se agregan al tensor de etiquetas. Las etiquetas de los fragmentos tensoriales se almacenan mediante compresión LZ4. Todos los datos de Deep Lake se almacenan en el depósito y son autónomos. Después del almacenamiento, se puede acceder a los datos en una interfaz NumPy o como un cargador de datos de aprendizaje profundo transmitible. Luego, el modelo que se ejecuta en una máquina informática itera sobre el flujo de tensores de imagen y almacena la salida del modelo en un nuevo tensor llamado predicciones. Además, a continuación analizamos cómo se puede entrenar, controlar versiones, consultar e inspeccionar la calidad de un conjunto de datos de Deep Lake.
Los modelos de aprendizaje profundo se entrenan en múltiples niveles en una organización, desde el entrenamiento exploratorio que se lleva a cabo en computadoras personales hasta el entrenamiento a gran escala que ocurre en máquinas distribuidas que involucran muchas GPU. El tiempo y el esfuerzo necesarios para llevar los datos del almacenamiento a largo plazo al cliente de formación suelen ser comparables a la formación misma. Deep Lake resuelve este problema al permitir una transmisión rápida de datos sin obstaculizar el proceso de capacitación posterior, evitando así el costo y el tiempo necesarios para duplicar datos en el almacenamiento local.
Los datos de aprendizaje profundo evolucionan constantemente a medida que se agregan nuevos datos y se controla la calidad de los datos existentes. Las cargas de trabajo analíticas y de capacitación ocurren en paralelo mientras los datos cambian. Por lo tanto, saber qué versión de datos utilizó una carga de trabajo determinada es fundamental para comprender la relación entre los datos y el rendimiento del modelo. Deep Lake permite a los profesionales del aprendizaje profundo comprender qué versión de sus datos se utilizó en cualquier carga de trabajo analítica y viajar en el tiempo a través de estas versiones si se requiere una auditoría. Dado que todos los datos son mutables, se pueden editar para cumplir con los requisitos de privacidad relacionados con el cumplimiento. Al igual que Git para el código, Deep Lake también introduce el concepto de ramas de datos, lo que permite experimentar y editar datos sin afectar el trabajo de los colegas.
El entrenamiento de modelos de aprendizaje profundo rara vez ocurre con todos los datos recopilados por una organización para una aplicación particular. Los conjuntos de datos de entrenamiento a menudo se construyen filtrando los datos sin procesar en función de condiciones que aumentan el rendimiento del modelo, lo que a menudo incluye el equilibrio de datos, la eliminación de datos redundantes o la selección de datos que contienen características específicas. Deep Lake proporciona las herramientas para consultar y analizar datos para que los ingenieros de aprendizaje profundo puedan crear conjuntos de datos que produzcan modelos de mayor precisión.
Aunque el aprendizaje no supervisado se está volviendo más aplicable en casos de uso del mundo real, la mayoría de las aplicaciones de aprendizaje profundo todavía dependen del aprendizaje supervisado. Cualquier sistema de aprendizaje supervisado es tan bueno como la calidad de sus datos, que a menudo se logra mediante una inspección manual y exhaustiva de los datos. Dado que este proceso lleva mucho tiempo, es fundamental proporcionar a los humanos involucrados herramientas para examinar grandes cantidades de datos muy rápidamente. Deep Lake permite inspeccionar conjuntos de datos de aprendizaje profundo de cualquier tamaño desde el navegador sin ningún tiempo de configuración ni necesidad de descargar datos. Además, las herramientas se pueden ampliar para comparar los resultados del modelo con la verdad del terreno. Combinado con consultas y control de versiones, esto se puede aplicar a la mejora iterativa de los datos para lograr el mejor modelo posible.
Este documento está disponible en arxiv bajo licencia CC 4.0.