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.
Nesta seção, revisamos as aplicações do Deep Lake.
Um cenário típico em uma aplicação de Deep Learning começa com
(1) Um conjunto bruto de arquivos coletados em um bucket de armazenamento de objetos. Pode incluir imagens, vídeos e outros tipos de dados multimídia em seus formatos nativos, como JPEG, PNG ou MP4.
(2) Quaisquer metadados e rótulos associados armazenados em um banco de dados relacional. Opcionalmente, eles podem ser armazenados no mesmo bucket junto com os dados brutos em um formato tabular normalizado, como formato CSV, JSON ou Parquet.
Conforme mostrado na Figura 4, um conjunto de dados Deep Lake vazio é criado. Em seguida, tensores vazios são definidos para armazenar dados brutos e também metadados. O número de tensores pode ser arbitrário. Um exemplo básico de tarefa de classificação de imagens teria dois tensores,
• tensor de imagens com htype de 𝑖𝑚𝑎𝑔𝑒 e compactação de amostra de JPEG
• rotula o tensor com htype de 𝑐𝑙𝑎𝑠𝑠_𝑙𝑎𝑏𝑒𝑙 e compressão de pedaços de LZ4.
Depois de declarar tensores, os dados podem ser anexados ao conjunto de dados. Se uma compactação de imagem bruta corresponder à compactação de amostra do tensor, o binário será copiado diretamente em um pedaço sem decodificação adicional. Os dados do rótulo são extraídos de uma consulta SQL ou tabela CSV em um número inteiro categórico e anexados ao tensor de rótulos. Os pedaços de tensor de rótulos são armazenados usando compactação LZ4. Todos os dados do Deep Lake são armazenados no bucket e são independentes. Após o armazenamento, os dados podem ser acessados em uma interface NumPy ou como um dataloader de aprendizagem profunda streamable. Em seguida, o modelo executado em uma máquina de computação itera no fluxo de tensores de imagem e armazena a saída do modelo em um novo tensor chamado previsões. Além disso, discutimos abaixo como treinar, controlar a versão, consultar e inspecionar a qualidade de um conjunto de dados Deep Lake.
Os modelos de aprendizagem profunda são treinados em vários níveis em uma organização, desde o treinamento exploratório que ocorre em computadores pessoais até o treinamento em larga escala que ocorre em máquinas distribuídas envolvendo muitas GPUs. O tempo e o esforço necessários para levar os dados do armazenamento de longo prazo até o cliente do treinamento são frequentemente comparáveis ao treinamento em si. Deep Lake resolve esse problema permitindo o streaming rápido de dados sem gargalos no processo de treinamento downstream, evitando assim o custo e o tempo necessários para duplicar dados no armazenamento local.
Os dados de aprendizagem profunda evoluem constantemente à medida que novos dados são adicionados e os dados existentes são controlados de qualidade. Cargas de trabalho analíticas e de treinamento ocorrem em paralelo enquanto os dados mudam. Portanto, saber qual versão dos dados foi usada por uma determinada carga de trabalho é fundamental para compreender a relação entre os dados e o desempenho do modelo. O Deep Lake permite que os profissionais de aprendizagem profunda entendam qual versão de seus dados foi usada em qualquer carga de trabalho analítica e viajem no tempo entre essas versões se uma auditoria for necessária. Como todos os dados são mutáveis, eles podem ser editados para atender aos requisitos de privacidade relacionados à conformidade. Assim como o Git para código, o Deep Lake também introduz o conceito de ramificações de dados, permitindo a experimentação e edição de dados sem afetar o trabalho dos colegas.
O treinamento de modelos de aprendizagem profunda raramente ocorre em todos os dados coletados por uma organização para uma aplicação específica. Os conjuntos de dados de treinamento geralmente são construídos filtrando os dados brutos com base em condições que aumentam o desempenho do modelo, o que geralmente inclui balanceamento de dados, eliminação de dados redundantes ou seleção de dados que contenham recursos específicos. Deep Lake fornece as ferramentas para consultar e analisar dados para que os engenheiros de aprendizado profundo possam criar conjuntos de dados produzindo modelos da mais alta precisão.
Embora o aprendizado não supervisionado esteja se tornando mais aplicável em casos de uso do mundo real, a maioria dos aplicativos de aprendizado profundo ainda depende do aprendizado supervisionado. Qualquer sistema de aprendizagem supervisionado é tão bom quanto a qualidade dos seus dados, muitas vezes alcançada através de inspeção manual e exaustiva dos dados. Como esse processo é demorado, é fundamental fornecer aos humanos envolvidos ferramentas para examinar grandes quantidades de dados muito rapidamente. Deep Lake permite inspecionar conjuntos de dados de aprendizagem profunda de qualquer tamanho a partir do navegador, sem qualquer tempo de configuração ou necessidade de download de dados. Além disso, as ferramentas podem ser estendidas para comparar os resultados do modelo com a verdade básica. Combinado com consulta e controle de versão, isso pode ser aplicado à melhoria iterativa dos dados para alcançar o melhor modelo possível.
Este artigo está disponível no arxiv sob licença CC 4.0.