Verbesserung der Machine Learning Leistung mit TpuGraphs
Ein Datensatz zur Vorhersage der Tensorberechnungseffizienz auf spezialisierter Hardware.
― 6 min Lesedauer
Inhaltsverzeichnis
In der Welt des maschinellen Lernens müssen wir oft optimieren, wie unsere Programme auf Hardware laufen. Das kann ganz schön tricky sein, weil jedes Programm unterschiedliche Bedürfnisse hat und die Hardware ihre Eigenheiten mitbringt. Um uns zu helfen, unsere Programme schneller zu machen, haben Forscher ein spezielles Dataset namens TpuGraphs erstellt, das sich auf grosse tensorielle Rechengraphen konzentriert. Dieses Dataset ist dafür gedacht, vorherzusagen, wie gut verschiedene Konfigurationen eines Programms laufen, wenn sie auf spezialisierter Hardware namens Tensor Processing Units (TPUs) ausgeführt werden.
Leistungsprognose
Die Bedeutung derLeistungsprognosen sind aus vielen Gründen wichtig. Erstens, zu wissen, wie gut ein Programm laufen wird, kann Zeit und Ressourcen während der Entwicklung sparen. Wenn wir eine klare Vorstellung davon haben, wie schnell oder langsam ein Programm wahrscheinlich sein wird, können wir bessere Entscheidungen treffen, wie wir es optimieren. Das ist besonders wichtig in Branchen, wo Geschwindigkeit entscheidend ist, wie Finanzen und Echtzeitdatenanalyse.
Traditionell wurden Leistungsmodelle verwendet, um Compilern zu helfen, den Code zu optimieren. Diese Modelle helfen dabei, die besten Einstellungen für ein Programm zu finden, damit es effizient läuft. Allerdings konzentrieren sich bestehende Leistungsprognosedaten oft auf kleinere Codeabschnitte, die Subprogramme oder Kerne genannt werden, anstatt auf komplette Workloads im maschinellen Lernen.
Was ist TpuGraphs?
TpuGraphs ist ein Dataset, das Leistungsdaten für grössere tensorielle Berechnungen enthält. Es ist einzigartig, weil es vollständige tensorielle Rechengraphen umfasst, die ganze maschinelle Lernaufgaben darstellen. Jeder Graph in diesem Dataset entspricht einer bedeutenden Berechnung, wie einer Trainingssession oder einem einzigen Inferenzschritt. Dadurch hebt sich TpuGraphs von anderen Datasets ab, die möglicherweise nur kleinere Teile von Programmen im maschinellen Lernen abdecken.
Jede Datenprobe in TpuGraphs hat drei Teile: einen Rechengraphen, eine Konfiguration zum Kompilieren und die Ausführungszeit für diese Konfiguration. Die Graphen stammen von gängigen Maschinenlernprogrammen und -modellen, wie ResNet und Transformermodellen. Das Dataset soll deutlich mehr Graphen enthalten als frühere Datasets, was es zu einer wertvollen Ressource für Forscher und Entwickler macht.
Die Komponenten von TpuGraphs
Das TpuGraphs-Dataset besteht aus zwei Hauptteilen: Layoutkonfigurationen und Tile-Konfigurationen.
Layoutkonfigurationen
Layoutkonfigurationen bestimmen, wie Daten im Speicher organisiert sind. Sie geben die Dimensionen von Eingaben und Ausgaben in einer Weise an, die am besten zu den durchgeführten Operationen passt. Das Dataset enthält 31 Millionen Paare von Layouts und Rechengraphen, mit einer durchschnittlichen Anzahl von 7.700 Knoten pro Graph. Diese Layouts spielen eine wichtige Rolle in der Leistung, weil sie erheblichen Einfluss darauf haben können, wie effizient ein Programm läuft.
Tile-Konfigurationen
Tile-Konfigurationen betreffen kleinere Arbeitseinheiten innerhalb eines Graphen. Sie geben die Grösse jedes Subgraphen oder Kerns an, was zu verbesserten Ausführungszeiten führen kann. Im Dataset gibt es 13 Millionen Paare von Tile-Konfigurationen und Kernen, mit durchschnittlich etwa 40 Knoten pro Kern.
Herausforderungen bei der Leistungsprognose
Die Arbeit mit grossen Graphen bringt einzigartige Herausforderungen mit sich:
Speicherbeschränkungen: Modelle auf grossen Graphen zu trainieren, ist schwierig, weil sie den gesamten verfügbaren Speicher beanspruchen können. Das gilt besonders, wenn man auf einem einzelnen Gerät trainiert.
Vielfalt der Graphen: Das Dataset enthält eine Vielzahl von Graphen für unterschiedliche Aufgaben im maschinellen Lernen. Wenn bestimmte Typen von Graphen jedoch überrepräsentiert sind, kann es zu Modellen führen, die bei weniger häufigen Typen nicht gut abschneiden.
Redundanz: Viele Proben im Dataset teilen sich denselben Graphen, haben aber unterschiedliche Konfigurationen. Diese Redundanz kann genutzt werden, um die Trainingseffizienz zu verbessern, macht es aber auch entscheidend, unnötige Berechnungen zu reduzieren.
Datensammlung für TpuGraphs
Die Daten für TpuGraphs werden aus beliebten Open-Source-Modellen des maschinellen Lernens gesammelt. Forscher haben Experimente durchgeführt, um grosse Rechengraphen zu sammeln, die die Hauptberechnungen in diesen Modellen repräsentieren. Der Datensammelprozess umfasste auch das Abstimmen von Konfigurationen, um zu sehen, wie verschiedene Setups die Leistung beeinflussten.
Es gibt zwei Möglichkeiten, wie der Autotuner Daten sammelt:
- Genetischer Algorithmus-Modus: Diese Methode beginnt mit einer Standardkonfiguration und entwickelt sie weiter, um bessere Konfigurationen zu finden.
- Zufälliger Suchmodus: Diese Methode erkundet zufällige Konfigurationen ohne vorherige Annahmen.
Durch den Vergleich der Ergebnisse dieser beiden Modi konnten die Forscher eine vielfältige Datensatzprobe sammeln.
Nutzung des Datasets
Das TpuGraphs-Dataset kann verwendet werden, um Leistungsmodelle zu trainieren, die Ausführungszeiten basierend auf unterschiedlichen Graphkonfigurationen vorhersagen. Diese Modelle können helfen, herauszufinden, welche Konfigurationen wahrscheinlich die beste Leistung bringen, wodurch die Zeit für das Tuning reduziert wird.
Forscher haben verschiedene Arten von Modellen implementiert, einschliesslich solcher, die auf Graph Neural Networks (GNNs) basieren, die gut für die Arbeit mit Graphdaten geeignet sind. Die GNN-Modelle lernen aus der Struktur der Graphen und den Merkmalen der Knoten, um Vorhersagen zu treffen.
Leistungsevaluation
Die Effektivität eines Leistungsprognosemodells wird oft daran gemessen, wie gut es verschiedene Konfigurationen basierend auf ihren wahrscheinlichen Ausführungszeiten rangieren kann. Ein gut funktionierendes Modell sollte in der Lage sein, die besten Konfigurationen genauer zu identifizieren als eine zufällige Auswahl.
Verschiedene Metriken werden verwendet, um die Modellleistung zu bewerten, darunter:
- Top-K-Fehler: Dies misst, wie nah die besten Vorhersagen des Modells an der besten bekannten Konfiguration sind.
- Ordered Pair Accuracy (OPA): Dies spiegelt die Fähigkeit des Modells wider, Konfigurationen für eine gegebene Aufgabe richtig zu rangieren.
Ergebnisse von TpuGraphs
In Tests, die mit TpuGraphs durchgeführt wurden, zeigten Modelle unterschiedliche Erfolgsraten basierend auf den Konfigurationen, auf denen sie trainiert wurden. Die Datasets mit der Bezeichnung "Zufällig" erwiesen sich im Allgemeinen als herausfordernder, da die aus zufälligen Suchen abgeleiteten Konfigurationen stark variieren konnten.
Während einige Modelle bei geringen Fehlern auf Konfigurationen, die aus einem bestimmten genetischen Algorithmus abgeleitet wurden, gut abschnitten, hatten sie mehr Schwierigkeiten mit zufälligen Konfigurationen. Trotzdessen fanden die Forscher heraus, dass die gelernten Modelle immer noch besser waren als ein Ansatz mit zufälliger Auswahl.
Zukünftige Richtungen
Es gibt viele Möglichkeiten für weitere Verbesserungen und Erweiterungen des TpuGraphs-Datasets. Einige der potenziellen Verbesserungen sind:
Erhöhte Vielfalt: Forscher möchten noch mehr Typen von Graphen hinzufügen, um sicherzustellen, dass das Modell über verschiedene Workloads und Architekturen generalisieren kann.
Erweiterung der Hardware-Plattformen: Das aktuelle Dataset konzentriert sich hauptsächlich auf die Leistung mit TPUs. Eine Einbeziehung von Daten für das Training auf CPUs und GPUs könnte die Anwendbarkeit des Datasets erweitern.
Nutzung wiederholter Strukturen: Viele Maschinenlernmodelle weisen wiederkehrende Muster oder Subgraphen auf. Wege zu finden, diese wiederholten Elemente für ein effektiveres Modelltraining zu nutzen, könnte die Vorhersagegenauigkeit verbessern.
Fazit
TpuGraphs stellt einen bedeutenden Fortschritt im Bereich der Leistungsprognose im maschinellen Lernen dar. Indem es ein umfassendes Dataset bereitstellt, das vollständige tensorielle Rechengraphen und deren Leistungsmetriken umfasst, eröffnet es neue Möglichkeiten für die Optimierung von Maschinenlernprogrammen. Während die Forscher weiterhin an diesem Dataset feilen und darauf aufbauen, können wir Verbesserungen erwarten, wie effizient Maschinenlernmodelle laufen, was letztendlich verschiedenen Anwendungen in Technologie und Industrie zugutekommen wird.
Titel: TpuGraphs: A Performance Prediction Dataset on Large Tensor Computational Graphs
Zusammenfassung: Precise hardware performance models play a crucial role in code optimizations. They can assist compilers in making heuristic decisions or aid autotuners in identifying the optimal configuration for a given program. For example, the autotuner for XLA, a machine learning compiler, discovered 10-20% speedup on state-of-the-art models serving substantial production traffic at Google. Although there exist a few datasets for program performance prediction, they target small sub-programs such as basic blocks or kernels. This paper introduces TpuGraphs, a performance prediction dataset on full tensor programs, represented as computational graphs, running on Tensor Processing Units (TPUs). Each graph in the dataset represents the main computation of a machine learning workload, e.g., a training epoch or an inference step. Each data sample contains a computational graph, a compilation configuration, and the execution time of the graph when compiled with the configuration. The graphs in the dataset are collected from open-source machine learning programs, featuring popular model architectures, e.g., ResNet, EfficientNet, Mask R-CNN, and Transformer. TpuGraphs provides 25x more graphs than the largest graph property prediction dataset (with comparable graph sizes), and 770x larger graphs on average compared to existing performance prediction datasets on machine learning programs. This graph-level prediction task on large graphs introduces new challenges in learning, ranging from scalability, training efficiency, to model quality.
Autoren: Phitchaya Mangpo Phothilimthana, Sami Abu-El-Haija, Kaidi Cao, Bahare Fatemi, Mike Burrows, Charith Mendis, Bryan Perozzi
Letzte Aktualisierung: 2023-12-05 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2308.13490
Quell-PDF: https://arxiv.org/pdf/2308.13490
Lizenz: https://creativecommons.org/licenses/by/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.
Referenz Links
- https://github.com/google-research-datasets/tpu_graphs
- https://arxiv.org/pdf/1803.09010.pdf
- https://arxiv.org/pdf/1805.03677.pdf
- https://creativecommons.org/licenses/by/4.0/
- https://www.apache.org/licenses/LICENSE-2.0
- https://github.com/tensorflow/models
- https://github.com/tensorflow/tensorflow
- https://github.com/tensorflow/tensor2tensor
- https://github.com/tensorflow/tpu
- https://github.com/google/brax
- https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/3