Autoren:
(1) Sasun Hambardzumyan, Activeloop, Mountain View, CA, USA;
(2) Abhinav Tuli, Activeloop, Mountain View, CA, USA;
(3) Levon Ghukasyan, Activeloop, Mountain View, CA, USA;
(4) Fariz Rahman, Activeloop, Mountain View, CA, USA;.
(5) Hrant Topchyan, Activeloop, Mountain View, CA, USA;
(6) David Isayan, Activeloop, Mountain View, CA, USA;
(7) Mark McQuade, Activeloop, Mountain View, CA, USA;
(8) Mikayel Harutyunyan, Activeloop, Mountain View, CA, USA;
(9) Tatevik Hakobyan, Activeloop, Mountain View, CA, USA;
(10) Ivo Stranic, Activeloop, Mountain View, CA, USA;
(11) Davit Buniatyan, Activeloop, Mountain View, CA, USA.
In diesem Abschnitt überprüfen wir die Anwendungen von Deep Lake.
Ein typisches Szenario in einer Deep Learning-Anwendung beginnt mit
(1) Ein Rohdatensatz, der in einem Objektspeicher-Bucket gesammelt wird. Er kann Bilder, Videos und andere Arten von Multimediadaten in ihren nativen Formaten wie JPEG, PNG oder MP4 enthalten.
(2) Alle zugehörigen Metadaten und Beschriftungen, die in einer relationalen Datenbank gespeichert sind. Optional können sie zusammen mit den Rohdaten in einem normalisierten tabellarischen Format wie CSV, JSON oder Parquet im selben Bucket gespeichert werden.
Wie in Abb. 4 dargestellt, wird ein leerer Deep Lake-Datensatz erstellt. Anschließend werden leere Tensoren definiert, um sowohl Rohdaten als auch Metadaten zu speichern. Die Anzahl der Tensoren kann beliebig sein. Ein einfaches Beispiel für eine Bildklassifizierungsaufgabe hätte zwei Tensoren,
• Bildtensor mit htype von 𝑖𝑚𝑎𝑔𝑒 und Beispielkomprimierung von JPEG
• beschriftet Tensor mit dem Typ 𝑐𝑙𝑎𝑠𝑠_𝑙𝑎𝑏𝑒𝑙 und Chunk-Komprimierung von LZ4.
Nach der Deklaration der Tensoren können die Daten an den Datensatz angehängt werden. Wenn eine Rohbildkomprimierung mit der Tensor-Beispielkomprimierung übereinstimmt, wird die Binärdatei ohne zusätzliche Dekodierung direkt in einen Block kopiert. Beschriftungsdaten werden aus einer SQL-Abfrage oder CSV-Tabelle in eine kategorische Ganzzahl extrahiert und an den Beschriftungstensor angehängt. Beschriftungstensorblöcke werden mit LZ4-Komprimierung gespeichert. Alle Deep Lake-Daten werden im Bucket gespeichert und sind in sich geschlossen. Nach der Speicherung können die Daten in einer NumPy-Schnittstelle oder als streambarer Deep-Learning-Datenlader abgerufen werden. Anschließend iteriert das auf einem Computer ausgeführte Modell über den Stream der Bildtensoren und speichert die Ausgabe des Modells in einem neuen Tensor namens „Vorhersagen“. Darüber hinaus besprechen wir weiter unten, wie man einen Deep Lake-Datensatz trainieren, versionieren, abfragen und seine Qualität überprüfen kann.
Deep-Learning-Modelle werden in einer Organisation auf mehreren Ebenen trainiert, angefangen beim explorativen Training auf PCs bis hin zum Training im großen Maßstab auf verteilten Maschinen mit vielen GPUs. Der Zeit- und Arbeitsaufwand, der erforderlich ist, um die Daten vom Langzeitspeicher zum Trainingsclient zu bringen, ist oft vergleichbar mit dem Training selbst. Deep Lake löst dieses Problem, indem es ein schnelles Streaming von Daten ermöglicht, ohne den nachgelagerten Trainingsprozess zu verlangsamen, und so die Kosten und den Zeitaufwand vermeidet, die zum Duplizieren von Daten auf dem lokalen Speicher erforderlich sind.
Deep-Learning-Daten entwickeln sich ständig weiter, da neue Daten hinzugefügt werden und die Qualität vorhandener Daten kontrolliert wird. Analyse- und Trainings-Workloads laufen parallel, während sich die Daten ändern. Daher ist es wichtig zu wissen, welche Datenversion von einem bestimmten Workload verwendet wurde, um die Beziehung zwischen den Daten und der Modellleistung zu verstehen. Deep Lake ermöglicht es Deep-Learning-Anwendern, zu verstehen, welche Version ihrer Daten in einem Analyse-Workload verwendet wurde, und diese Versionen im Zeitverlauf zu durchlaufen, falls eine Prüfung erforderlich ist. Da alle Daten veränderbar sind, können sie bearbeitet werden, um Compliance-bezogene Datenschutzanforderungen zu erfüllen. Wie Git für Code führt Deep Lake auch das Konzept von Datenzweigen ein, wodurch Experimente und die Bearbeitung von Daten möglich sind, ohne die Arbeit von Kollegen zu beeinträchtigen.
Das Training von Deep-Learning-Modellen erfolgt selten anhand aller Daten, die eine Organisation für eine bestimmte Anwendung erfasst. Trainingsdatensätze werden häufig erstellt, indem die Rohdaten anhand von Bedingungen gefiltert werden, die die Modellleistung verbessern. Dazu gehören häufig das Ausbalancieren von Daten, das Eliminieren redundanter Daten oder das Auswählen von Daten mit bestimmten Merkmalen. Deep Lake bietet die Tools zum Abfragen und Analysieren von Daten, sodass Deep-Learning-Ingenieure Datensätze erstellen können, die Modelle mit höchster Genauigkeit liefern.
Obwohl unüberwachtes Lernen in realen Anwendungsfällen immer mehr Anwendung findet, basieren die meisten Deep-Learning-Anwendungen immer noch auf überwachtem Lernen. Jedes überwachte Lernsystem ist nur so gut wie die Qualität seiner Daten, die oft durch manuelle und umfassende Überprüfung der Daten erreicht wird. Da dieser Prozess zeitaufwändig ist, ist es wichtig, den beteiligten Menschen Werkzeuge zur Verfügung zu stellen, mit denen sie große Datenmengen sehr schnell untersuchen können. Deep Lake ermöglicht die Untersuchung von Deep-Learning-Datensätzen beliebiger Größe vom Browser aus, ohne dass eine Einrichtungszeit erforderlich ist oder Daten heruntergeladen werden müssen. Darüber hinaus können die Tools erweitert werden, um Modellergebnisse mit der Grundwahrheit zu vergleichen. In Kombination mit Abfragen und Versionskontrolle kann dies zur iterativen Verbesserung der Daten angewendet werden, um das bestmögliche Modell zu erreichen.
Dieses Dokument ist auf Arxiv unter der CC 4.0-Lizenz verfügbar .