paint-brush
Ein Überblick über die Data-Loader-Landschaft: Diskussionvon@serialization

Ein Überblick über die Data-Loader-Landschaft: Diskussion

Zu lang; Lesen

In diesem Artikel heben Forscher Dataloader als Schlüssel zur Verbesserung des ML-Trainings hervor und vergleichen Bibliotheken hinsichtlich Funktionalität, Benutzerfreundlichkeit und Leistung.
featured image - Ein Überblick über die Data-Loader-Landschaft: Diskussion
The Serialization Publication HackerNoon profile picture
0-item

Autoren:

(1) Iason Ofeidis, Department of Electrical Engineering und Yale Institute for Network Science, Yale University, New Haven {Gleicher Beitrag};

(2) Diego Kiedanski, Department of Electrical Engineering und Yale Institute for Network Science, Yale University, New Haven {Gleicher Beitrag};

(3) Leandros TassiulasLevon Ghukasyan, Activeloop, Mountain View, CA, USA, Fakultät für Elektrotechnik und Yale Institute for Network Science, Yale University, New Haven.

Linktabelle

5. DISKUSSION

In dieser Arbeit haben wir die Zeit als Hauptwerkzeug verwendet, um die Leistung verschiedener Bibliotheken zu vergleichen. Dazu gibt es mehrere Dinge zu sagen. Zunächst haben wir festgestellt, dass die Laufzeiten sehr variabel sind und von schwer steuerbaren Hintergrundprozessen abhängen. Gleichzeitig ist der Zugriff auf Multi-GPU-Ressourcen teuer, was die Anzahl der durchführbaren Experimente begrenzt. Idealerweise hätten wir jedes Experiment mit mehr Parametern (mehr Arbeiter, mehr Batchgrößen) mehr als drei Wiederholungen durchgeführt, aber uns fehlten die Ressourcen dafür. Da wir unseren gesamten Open-Source-Code erstellen, laden wir die Leser ein, die Benchmarks auf ihrer eigenen Hardware auszuführen und die Ergebnisse zu melden. Gleichzeitig werden Bibliotheken ziemlich oft aktualisiert, und eine Versionsänderung kann ihre Leistung drastisch erhöhen oder verringern.


Angesichts der oben genannten Punkte möchten wir den Leser dazu ermutigen, die qualitativen Aspekte dieses Dokuments zu verinnerlichen. Beachten Sie jedoch, dass sich die hier ermittelten Zahlen ändern können.


Zweitens ist die Benutzerfreundlichkeit der in diesem Projekt berücksichtigten Bibliotheken schwieriger zu vergleichen. Die meisten der in diesem Benchmark enthaltenen Bibliotheken verfügen nicht über eine umfassende Dokumentation und basieren hauptsächlich auf konkreten Beispielen. Folglich ist die Implementierung in diesen Bibliotheken nicht trivial und anfällig für Ineffizienzen. Einer der Vorteile der Open-Source-Veröffentlichung unseres Codes besteht darin, dass jeder Entwickler unseren Code identifizieren und verbessern kann. Dies ist besonders relevant, da wir davon ausgehen, dass die in diesem Projekt erstellten Benchmarks als Boilerplate-Code für die Community verwendet werden könnten.


Wir stellen fest, dass es keine Bibliothek zu geben scheint, die besser ist als alle anderen. Stattdessen hat jede ihre eigenen Stärken. Betrachten wir das Beispiel FFCV: In unseren Experimenten scheint es die schnellste zu sein, aber die fehlende Unterstützung für Label-Transformationen verhindert, dass es in Projekten übernommen wird, die solche Funktionen erfordern.


Wir hoffen, in zukünftigen Arbeiten das Zusammenspiel zwischen Filterung und Training über mehrere GPUs hinweg analysieren zu können. Gleichzeitig wäre es interessant, die Skalierungsmöglichkeiten dieser Bibliotheken bei zunehmender Anzahl von GPUs zu untersuchen. Ebenso wäre es von großem Interesse, Datenladebibliotheken hinsichtlich der Leistung beim Shuffling-Schritt im DL-Trainingsworkflow zu vergleichen, da dies erhebliche Auswirkungen auf die gesamte Trainingszeit haben kann und seine Implementierung ein nicht triviales Problem ist, bei dem es mehrere Arten von Ansätzen gibt.


Die Forschung zu Bibliotheken, die das Laden von Daten aus einem Remote-Speicher ermöglichen und vergleichbare Ergebnisse mit den Experimenten zum lokalen Speicher zeigen, hat uns dazu angeregt, die Idee zu untersuchen, eine Caching-Richtlinie für das Datenstreaming über ein Netzwerk zu formulieren und zu entwerfen. In diesem Zusammenhang kann die Reduzierung der Zeiten, in denen ein Datenpunkt (z. B. ein Bild) übertragen werden muss, die gesamte Trainingszeit (und möglicherweise die Kosten, wenn die Netzwerknutzung bezahlt wird) erheblich verkürzen. Die Idee, einen Netzwerkdatensatz während des Trainings zwischenzuspeichern, ist nicht neu (Mohan et al., 2020). Dennoch wird bei der Diskussion von Trainings- und Streamingdaten oft davon ausgegangen, dass der gesamte Datensatz zwischengespeichert werden kann. Darüber hinaus wird davon ausgegangen, dass alle Proben einmal pro Epoche verwendet werden (Kumar & Sivathanu, 2020), wie dies traditionell der Fall ist. Wir möchten untersuchen, was passiert, wenn die Cache-Größe klein ist, und auch die Anforderung aufheben, jeden Datenpunkt einmal pro Epoche zu verwenden. Eine solche Formulierung sollte sich an aktivem Lernen, Datenzusammenfassung und Lehrplanlernen orientieren.