Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Verteiltes, paralleles und Cluster-Computing# Maschinelles Lernen

Verteiltes CNN-Training auf mobilen Geräten

Eine neue Methode zum Trainieren von CNNs direkt auf mobilen und Edge-Geräten.

Pranav Rama, Madison Threadgill, Andreas Gerstlauer

― 10 min Lesedauer


CNNs auf Edge-GerätenCNNs auf Edge-Gerätentrainierenzentrale Server.Neue Methode für das CNN-Training ohne
Inhaltsverzeichnis

Das Trainieren von Deep-Learning-Modellen, insbesondere von Convolutional Neural Networks (CNNs), passiert normalerweise auf leistungsstarken Computern. Diese Systeme haben Hochleistungs-CPUs und GPUs, die grosse Datenmengen verarbeiten können. Es gibt jedoch ein wachsendes Interesse daran, dieses Training direkt auf kleineren Geräten wie Smartphones und Edge-Geräten durchzuführen. Diese Veränderung hat Vorteile, wie schnellere Reaktionen und besseren Datenschutz, weil die Daten nicht das Gerät verlassen müssen.

Aber das Training von Modellen auf diesen kleineren Geräten ist eine Herausforderung. Sie haben nicht die gleiche Rechenleistung oder den gleichen Speicher wie grosse Server. Es wurden verschiedene Methoden vorgeschlagen, um diese Einschränkungen zu umgehen, wie das Vereinfachen der Modelle oder die Verwendung bereits trainierter Modelle und das Aktualisieren mit neuen Daten. Während diese Techniken helfen können, gehen sie oft auf Kosten der Genauigkeit.

Aktuelle Ansätze

Die meisten bestehenden Methoden konzentrieren sich darauf, Deep-Learning-Aufgaben auf mobilen und Edge-Geräten auszuführen, verlassen sich aber oft auf leistungsstärkere zentrale Server oder Cloud-Ressourcen für Teile des Prozesses. Diese Abhängigkeit kann Verzögerungen und Sicherheitsprobleme einführen, was einige der Vorteile der Edge-Computing-Nutzung zunichte macht. Um dem entgegenzuwirken, haben aktuelle Studien versucht, alle Berechnungen direkt auf mobilen und Edge-Geräten durchzuführen. Das führt zu effizienterer Verarbeitung, schafft aber das Problem, wie komplexe Aufgaben auf Geräten mit begrenzten Ressourcen ausgeführt werden können.

Forscher haben verschiedene Techniken ausprobiert, um das Modelltraining auf diesen Geräten möglich zu machen. Einige Methoden reduzieren die Komplexität des Modells, indem unnötige Teile entfernt werden, während andere nur einen kleinen Teil eines bereits trainierten Modells aktualisieren, um Zeit und Rechenleistung zu sparen.

Trotz der Fortschritte lag der Fokus der meisten Bemühungen darauf, diese Prozesse für die Ausführung von Modellen zum Laufen zu bringen, nicht für das Training. Insbesondere wurde weniger Augenmerk darauf gelegt, CNNs auf Edge-Geräten verteilt zu trainieren. Typischerweise erfordern bestehende Ansätze immer noch einen zentralen Server zur Anleitung oder zur Bearbeitung bestimmter Aufgaben.

Unser Ansatz

In dieser Arbeit präsentieren wir eine Möglichkeit, CNNs über Gruppen von mobilen und Edge-Geräten zu trainieren, ohne dass ein zentraler Server benötigt wird. Diese Methode ist besonders effektiv für die frühen Schichten von CNNs, die oft viel Speicher und Rechenleistung benötigen. Unsere Technik umfasst die smarte Aufteilung der Aufgaben zur Vorhersage und zur Anpassung von Gewichten auf verschiedene Geräte. Dadurch können wir das Training beschleunigen und gleichzeitig die Menge an Daten, die zwischen den Geräten gesendet wird, auf ein Minimum reduzieren.

Tiling und Fusing

Die Kernidee unseres Ansatzes ist es, die Aufgaben in kleinere Abschnitte, sogenannte "Tiles", zu unterteilen. Jede Tile wird unabhängig auf verschiedenen Geräten verarbeitet. Die Tiles für Vorwärtsoperationen (wo Vorhersagen getroffen werden) und Rückwärtsoperationen (wo Anpassungen berechnet werden) sind so gestaltet, dass sie die Effizienz maximieren. Indem verwandte Aufgaben gruppiert werden, können wir die Menge an Daten, die zwischen den Geräten ausgetauscht werden muss, minimieren.

In unserer Methode führen wir auch Gruppenbildung ein, die es uns ermöglicht, die Aufgabenverteilung zwischen den Geräten feinzutunen. Zum Beispiel können wir die Geräte nur zu bestimmten Zeitpunkten synchronisieren, anstatt Daten für jede Schicht auszutauschen, was die notwendige Kommunikation verringert.

Leistungsresultate

Wir haben unsere Methode mit einem Cluster von Raspberry Pi-Geräten getestet, das sind kleine Computer, die leicht verfügbar sind und bekannt für ihre niedrigen Kosten und die Energieeffizienz. Beim Training eines CNNs zur Objekterkennung erzielte unser Ansatz Geschwindigkeitsverbesserungen von 2 bis 15 Mal schneller im Vergleich zur Nutzung eines einzelnen Geräts.

Zudem wurde der Speicherverbrauch pro Gerät um bis zu 8 Mal reduziert. Durch die Anwendung unserer Gruppenstrategie konnten wir den Prozess zusätzlich beschleunigen, mit einer Leistungssteigerung von bis zu 1,5 Mal, abhängig von der Situation.

Traditionelles vs. Edge-Training

Normalerweise wird das Training von Deep-Learning-Modellen auf grossen, leistungsstarken Systemen in Rechenzentren durchgeführt. Dieser Ansatz erfordert, eine grosse Menge an Daten an einem Ort zu sammeln, was zu Verzögerungen und Datenschutzproblemen führen kann. Aktuelle Methoden teilen oft Aufgaben zwischen mobilen Geräten, Edge-Geräten und Cloud-Diensten auf. Leider impliziert dies immer noch eine gewisse Abhängigkeit von entfernten Servern.

Um diesen Nachteilen entgegenzuwirken, sind Forscher daran interessiert, das Training direkt auf mobilen und Edge-Geräten durchzuführen. Allerdings kann es schwierig sein, die rechenintensiven Berechnungen für Vorhersagen und Anpassungen zu bewältigen.

Es wurden verschiedene Methoden vorgeschlagen, um mit dem niedrigen Speicher und der Rechenleistung dieser Geräte umzugehen. Einige konzentrieren sich auf die Vereinfachung von Modellen, während andere nur Teile eines bereits trainierten Modells modifizieren. Diese Techniken können zu einer geringeren Genauigkeit führen, was eine wichtige Sorge ist.

Einige neue Methoden erlauben den Einsatz mehrerer Geräte, um Modelle parallel auszuführen, erfordern jedoch normalerweise einen zentralen Server zur Prozessverwaltung. Beispielsweise erlaubt föderiertes Lernen den einzelnen Geräten, ihre lokalen Versionen eines Modells zu trainieren und nur Aktualisierungen zu teilen. Aber auch dies erfordert einen zentralen Server zur Koordination.

Verteiltes Training auf Edge-Geräten

Unsere Forschung bringt eine einzigartige Strategie hervor, die das Training von CNNs über mobile und Edge-Cluster ermöglicht, ohne von einer zentralen Autorität abhängig zu sein. Diese Methode konzentriert sich speziell auf die speicherintensiven frühen Schichten von CNNs. Die Bedeutung dieser Schichten kann nicht genug betont werden, da sie eine entscheidende Rolle dabei spielen, wie das Modell lernt, Muster zu erkennen.

Durch die Nutzung einer Tiling-Strategie können wir die Datenverarbeitung in handhabbare Abschnitte unterteilen. Dies ermöglicht es, sowohl Vorwärts- als auch Rückwärts-Trainingsprozesse auf einzelnen Geräten durchzuführen, während der Speicherbedarf minimiert wird. Die Kommunikation, die zwischen den Geräten erforderlich ist, wird auf ein Minimum beschränkt, indem nur zu kritischen Momenten synchronisiert wird.

Bedeutung der Effizienz

Effizienz ist in ressourcenbeschränkten Umgebungen entscheidend. Unsere Methode befasst sich nicht nur mit der effektiven Aufteilung von Aufgaben, sondern berücksichtigt auch, wie die Kommunikation zwischen Geräten minimiert werden kann. Das ist wichtig, da übermässiger Datenaustausch den gesamten Prozess verlangsamen und die Vorteile des verteilten Trainings zunichte machen kann.

Unsere Ergebnisse zeigen, dass die gesamten Datensätze nur zu Beginn und am Ende des Trainings geteilt werden müssen. Nachdem dies erledigt ist, können die Geräte den Grossteil ihrer Aufgaben unabhängig abschliessen.

Wichtige Beiträge

Die Hauptbeiträge unserer Methode sind:

  • Ein neuer Ansatz zur Verwaltung der Aufgabenverteilung im CNN-Training, unter Berücksichtigung der Einschränkungen von Speicher und Kommunikation zwischen den Geräten.
  • Eine Methode, die Gruppierung einführt, um die Leistung dieser Aufgaben weiter zu optimieren.
  • Eine Bewertung unseres Ansatzes mit einem gängigen CNN-Modell, die signifikante Verbesserungen in Geschwindigkeit und Effizienz zeigt.

Detaillierte Strategie

Unsere Strategie basiert darauf, wie Daten verarbeitet werden. Jede Schicht des CNN wird in kleinere Aufgaben unterteilt, die auf mehreren Geräten ausgeführt werden können. Dadurch können wir einen lokalen Datenfuss behalten, was wichtig zur Optimierung der Leistung ist.

Single-Layer Tiling

Das Training eines CNN besteht typischerweise aus zwei Hauptschritten: dem Vorwärtsdurchlauf (wo das Netzwerk Vorhersagen trifft) und dem Rückwärtsdurchlauf (wo Anpassungen basierend auf Fehlern vorgenommen werden). Wir teilen die Operationen jeder Schicht in Tiles auf.

Jede Tile kann unabhängig von anderen ausgeführt werden, was parallele Berechnungen über Geräte ermöglicht. Im Vorwärtsdurchlauf erhält jede Tile zum Beispiel einen Teil der Daten, führt ihre Berechnungen durch und erzeugt Ausgaben, die dann mit anderen Tiles kombiniert werden können.

Im Rückwärtsdurchlauf ist der Prozess ähnlich, aber anstatt Ausgaben zu erzeugen, berechnet jede Tile die notwendigen Anpassungen an den Filtern. Dies erfordert einige Daten, die zwischen den Geräten kommuniziert werden, aber wir wollen die Häufigkeit und das Volumen dieser Kommunikation reduzieren.

Fusing von Schichten

Traditionelle Ansätze erfordern normalerweise den Austausch von Daten in jeder Schicht. Unsere Methode erlaubt, dass bestimmte Daten lokal bleiben, wobei nur an festgelegten Punkten zwischen den Schichten kommuniziert werden muss. Das bedeutet, dass weniger Gesamtdaten geteilt werden, was die Leistung erheblich verbessern kann.

Durch die lokale Ausführung von Aufgaben und das Synchronisieren nur an bestimmten Grenzen können wir den mit der Kommunikation verbundenen Overhead senken. Das ist besonders wichtig in Umgebungen, in denen Bandbreite und Rechenleistung begrenzt sind.

Speicher und Aktivierungsfunktionen

Es geht nicht nur darum, Aufgaben aufzuteilen; wir müssen auch sicherstellen, dass das System den Speicher effektiv nutzt. Durch das Zusammenfassen von Aufgaben können wir Daten zwischen Tiles teilen, ohne grosse Datensätze im Speicher duplizieren zu müssen.

Darüber hinaus können gängige Funktionen, die in CNNs verwendet werden, wie Aktivierungsfunktionen und Batch-Normalisierung, leicht in unser Framework integriert werden. Da diese Funktionen hauptsächlich mit Daten zu tun haben, die bereits in den Feature Maps vorliegen, führen sie nicht zu signifikant zusätzlichem Overhead.

Optimierung der Gruppierung

Die Gruppierung von Schichten ist ein wesentlicher Faktor in unserem Ansatz. Indem wir entscheiden, wie viele Gruppen zu erstellen sind und wann die Daten synchronisiert werden, können wir das nötige Rechenaufkommen gegen die erforderliche Kommunikation abwägen.

Diese Gruppierung kann je nach spezifischen Anforderungen des Trainingsprozesses feinjustiert werden, was einen anpassungsfähigen Ansatz ermöglicht. Das übergeordnete Ziel bleibt dasselbe: redundante Berechnungen zu minimieren und gleichzeitig sicherzustellen, dass die notwendigen Daten zur richtigen Zeit ausgetauscht werden.

Experimentierung und Ergebnisse

Wir haben umfangreiche Tests unserer Methode mit einem Netzwerk von Raspberry Pi-Geräten durchgeführt. Das Hauptziel ist es, die Effektivität unserer verteilten Trainingsstrategie zu validieren.

Geschwindigkeit und Effizienz

Die Ergebnisse zeigen, dass die Verwendung unserer Methode zu signifikanten Geschwindigkeitsverbesserungen führen kann. Indem wir jeden Raspberry Pi so programmieren, dass er Aufgaben gleichzeitig ausführt, können wir Leistungssteigerungen von 2 bis 15 Mal im Vergleich zum Betrieb eines einzelnen Geräts feststellen.

Der Speicherverbrauch wird ebenfalls erheblich reduziert, was in ressourcenbeschränkten Umgebungen äusserst wichtig ist. Niedrigere Speicheranforderungen ermöglichen es jedem Gerät, effizienter zu arbeiten und gleichzeitig die Genauigkeit aufrechtzuerhalten.

Vergleich mit traditionellen Methoden

In Tests hat sich gezeigt, dass unsere Methode bestehende Techniken übertrifft, insbesondere bei der Verarbeitung kleiner Batch-Grössen. Das liegt daran, dass wir Operationen gleichzeitig durchführen und Verzögerungen vermeiden können, die typischerweise beim Kommunizieren mit einem zentralen Server auftreten.

Wenn die Batch-Grössen wachsen, können traditionelle Methoden wie Datenparallelität ähnliche Leistungen erreichen. Sie erfordern jedoch in der Regel mehr Speicher, was eine erhebliche Einschränkung bei der Arbeit mit Geräten mit begrenzten Ressourcen darstellt.

Zusammenfassung und zukünftige Richtungen

Zusammenfassend haben wir einen neuartigen Ansatz zum Training von CNNs direkt auf mobilen und Edge-Geräten durch verteiltes Rechnen vorgestellt. Durch die Maximierung der Lokalisierung und die Minimierung der Kommunikation ermöglicht unsere Methode ein effektives Training, ohne die Leistung zu beeinträchtigen.

In Zukunft könnte weitere Forschung erkunden, wie die Gewichtsanpassungen weiter partitioniert und unsere Technik auf andere Arten von Schichten ausgeweitet werden können, um sicherzustellen, dass unsere Methoden in verschiedenen Deep-Learning-Anwendungen robust sind.

Letztlich eröffnet diese Arbeit Möglichkeiten, Deep-Learning-Technologien auch in Umgebungen mit begrenzten Ressourcen zu nutzen, was zu praktischeren Anwendungen im Alltag führt.

Originalquelle

Titel: Distributed Convolutional Neural Network Training on Mobile and Edge Clusters

Zusammenfassung: The training of deep and/or convolutional neural networks (DNNs/CNNs) is traditionally done on servers with powerful CPUs and GPUs. Recent efforts have emerged to localize machine learning tasks fully on the edge. This brings advantages in reduced latency and increased privacy, but necessitates working with resource-constrained devices. Approaches for inference and training in mobile and edge devices based on pruning, quantization or incremental and transfer learning require trading off accuracy. Several works have explored distributing inference operations on mobile and edge clusters instead. However, there is limited literature on distributed training on the edge. Existing approaches all require a central, potentially powerful edge or cloud server for coordination or offloading. In this paper, we describe an approach for distributed CNN training exclusively on mobile and edge devices. Our approach is beneficial for the initial CNN layers that are feature map dominated. It is based on partitioning forward inference and back-propagation operations among devices through tiling and fusing to maximize locality and expose communication and memory-aware parallelism. We also introduce the concept of layer grouping to further fine-tune performance based on computation and communication trade-off. Results show that for a cluster of 2-6 quad-core Raspberry Pi3 devices, training of an object-detection CNN provides a 2x-15x speedup with respect to a single core and up to 8x reduction in memory usage per device, all without sacrificing accuracy. Grouping offers up to 1.5x speedup depending on the reference profile and batch size.

Autoren: Pranav Rama, Madison Threadgill, Andreas Gerstlauer

Letzte Aktualisierung: 2024-09-10 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2409.09083

Quell-PDF: https://arxiv.org/pdf/2409.09083

Lizenz: https://creativecommons.org/licenses/by-sa/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Ähnliche Artikel