Migliorare le prestazioni del Machine Learning con TpuGraphs
Un dataset per prevedere le prestazioni del calcolo tensoriale su hardware specializzati.
― 6 leggere min
Indice
Nel mondo del machine learning, spesso dobbiamo ottimizzare come i nostri programmi girano sull'hardware. Questo può essere complicato perché ogni programma ha bisogno diversi, e l'hardware che usiamo ha le sue particolarità. Per aiutarci a far girare i programmi più velocemente, i ricercatori hanno creato un dataset speciale chiamato TpuGraphs, che si concentra su grandi grafi computazionali dei tensori. Questo dataset è progettato per prevedere quanto bene diverse configurazioni di un programma si comporteranno quando girano su hardware specializzato chiamato Tensor Processing Units (TPUs).
L'importanza della previsione delle prestazioni
La previsione delle prestazioni è fondamentale per molti motivi. Innanzitutto, sapere quanto bene un programma girerà può far risparmiare tempo e risorse durante lo sviluppo. Quando abbiamo un'idea chiara di quanto sia veloce o lenta un programma, possiamo prendere decisioni migliori su come ottimizzarlo. Questo è particolarmente importante in settori dove la velocità è cruciale, come la finanza e l'analisi dei dati in tempo reale.
Tradizionalmente, i modelli di prestazioni sono stati usati per assistere i compilatori nell'ottimizzazione del codice. Questi modelli aiutano a identificare le migliori impostazioni affinché un programma giri in modo efficiente. Tuttavia, i dataset esistenti per la previsione delle prestazioni spesso si concentrano su pezzi più piccoli di codice, chiamati sottoprogrammi o kernel, piuttosto che su carichi di lavoro completi di machine learning.
Cos'è TpuGraphs?
TpuGraphs è un dataset che contiene dati sulle prestazioni per calcoli tensoriali più grandi. È unico perché include grafi di calcolo tensoriale completi, che rappresentano interi compiti di machine learning. Ogni grafo in questo dataset corrisponde a un calcolo significativo, come una sessione di addestramento o un singolo passo di inferenza. Questo rende TpuGraphs diverso da altri dataset che potrebbero coprire solo porzioni più piccole di programmi di machine learning.
Ogni campione di dati in TpuGraphs ha tre parti: un grafo computazionale, una configurazione per compilarlo e il tempo di esecuzione per quella configurazione. I grafi provengono da programmi e modelli di machine learning comunemente usati, come i modelli ResNet e Transformer. Il dataset è progettato per avere significativamente più grafi rispetto ai dataset precedenti, rendendolo una risorsa preziosa per ricercatori e sviluppatori.
I componenti di TpuGraphs
Il dataset TpuGraphs consiste in due parti principali: configurazioni di layout e configurazioni di tile.
Configurazioni di Layout
Le configurazioni di layout determinano come i dati sono organizzati in memoria. Specificano le dimensioni degli input e degli output in modo da essere più adatte per le operazioni svolte. Il dataset presenta 31 milioni di coppie di layout e grafi computazionali, con una media di 7.700 nodi per grafo. Questi layout giocano un ruolo significativo nelle prestazioni perché possono influenzare notevolmente quanto efficiently un programma gira.
Configurazioni di Tile
Le configurazioni di tile riguardano unità di lavoro più piccole all'interno di un grafo. Specificano la dimensione di ciascun sottografo, o kernel, che può portare a tempi di esecuzione migliorati. Ci sono 13 milioni di coppie di configurazioni di tile e kernel nel dataset, con una media di circa 40 nodi per kernel.
Sfide nella previsione delle prestazioni
Lavorare con grafi grandi presenta sfide uniche:
Limitazioni di memoria: Addestrare modelli su grafi grandi è difficile perché possono utilizzare tutta la memoria disponibile. Questo è particolarmente vero quando si addestra su un singolo dispositivo.
Diversità dei grafi: Il dataset contiene una varietà di grafi per diversi compiti di machine learning. Tuttavia, se alcuni tipi di grafi sono sovra-rappresentati, potrebbe portare a modelli che non si comportano bene su tipi meno comuni.
Ridondanza: Molti campioni nel dataset condividono lo stesso grafo ma hanno configurazioni diverse. Questa ridondanza può essere sfruttata per migliorare l'efficienza dell'addestramento, ma rende anche cruciale ridurre i calcoli non necessari.
Raccolta di dati per TpuGraphs
I dati per TpuGraphs vengono raccolti da modelli di machine learning open-source popolari. I ricercatori hanno condotto esperimenti per raccogliere grandi grafi computazionali che rappresentano i principali calcoli in questi modelli. Il processo di raccolta dei dati ha incluso anche la messa a punto delle configurazioni per vedere come diverse impostazioni influenzano le prestazioni.
Ci sono due modi in cui l'autotuner raccoglie dati:
- Modalità Algoritmo Genetico: Questo metodo inizia con una configurazione predefinita e la evolve per trovare configurazioni migliori.
- Modalità Ricerca Casuale: Questo metodo esplora configurazioni casuali senza alcuna assunzione precedente.
Confrontando i risultati di queste due modalità, i ricercatori sono stati in grado di raccogliere un insieme diversificato di campioni di dati.
Utilizzo del dataset
Il dataset TpuGraphs può essere utilizzato per addestrare modelli di prestazioni che prevedono i tempi di esecuzione in base a diverse configurazioni di grafo. Questi modelli possono aiutare a identificare quali configurazioni sono più probabili che producano le migliori prestazioni, riducendo il tempo necessario per la messa a punto.
I ricercatori hanno implementato diversi tipi di modelli, inclusi quelli basati su Graph Neural Networks (GNNs), che sono ben adatti per lavorare con dati grafici. I modelli GNN apprendono dalla struttura dei grafi e dalle caratteristiche dei nodi per fare previsioni.
Valutazione delle prestazioni
L'efficacia di un modello di previsione delle prestazioni è spesso valutata dalla sua capacità di classificare diverse configurazioni in base ai loro tempi di esecuzione probabili. Un modello ben performante dovrebbe essere in grado di identificare le migliori configurazioni con maggiore precisione rispetto a una selezione casuale.
Diverse metriche vengono utilizzate per valutare le prestazioni del modello, tra cui:
- Errore Top-K: Questo misura quanto sono vicine le migliori previsioni del modello alla configurazione migliore conosciuta.
- Accuratezza della Coppia Ordinata (OPA): Questo riflette la capacità del modello di classificare correttamente le configurazioni per un compito dato.
Risultati da TpuGraphs
Nei test condotti utilizzando TpuGraphs, i modelli hanno mostrato tassi di successo variabili in base alle configurazioni su cui sono stati addestrati. I dataset contrassegnati come "Random" si sono rivelati generalmente più impegnativi poiché le configurazioni derivate da ricerche casuali variavano enormemente.
Sebbene alcuni modelli abbiano ottenuto buoni risultati con errori minori su configurazioni derivate da un algoritmo genetico specifico, hanno avuto più difficoltà con le configurazioni casuali. Nonostante ciò, i ricercatori hanno trovato che i modelli appresi erano comunque migliori rispetto a un approccio di selezione casuale.
Direzioni future
Ci sono molte strade per ulteriori miglioramenti e ampliamenti del dataset TpuGraphs. Alcuni dei potenziali miglioramenti includono:
Maggiore Diversità: I ricercatori stanno cercando di aggiungere ancora più tipi di grafi per garantire che il modello possa generalizzare su diversi carichi di lavoro e architetture.
Espansione delle Piattaforme Hardware: L'attuale dataset si concentra principalmente sulle prestazioni con i TPU. Includere dati per l'addestramento su CPU e GPU potrebbe ampliare l'applicabilità del dataset.
Sfruttamento delle Strutture Ripetute: Molti modelli di machine learning presentano schemi o sottografi ripetuti. Trovare modi per utilizzare questi elementi ripetuti per un addestramento del modello più efficace potrebbe migliorare l'accuratezza delle previsioni.
Conclusione
TpuGraphs rappresenta un importante passo avanti nel campo della previsione delle prestazioni nel machine learning. Fornendo un dataset completo che include grafi computazionali tensoriali e le loro metriche di prestazione, apre nuove opportunità per l'ottimizzazione nei programmi di machine learning. Man mano che i ricercatori continuano a perfezionare e ampliare questo dataset, possiamo aspettarci miglioramenti nel modo in cui i modelli di machine learning funzionano in modo efficiente, a beneficio di varie applicazioni in tecnologia e industria.
Titolo: TpuGraphs: A Performance Prediction Dataset on Large Tensor Computational Graphs
Estratto: 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.
Autori: Phitchaya Mangpo Phothilimthana, Sami Abu-El-Haija, Kaidi Cao, Bahare Fatemi, Mike Burrows, Charith Mendis, Bryan Perozzi
Ultimo aggiornamento: 2023-12-05 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2308.13490
Fonte PDF: https://arxiv.org/pdf/2308.13490
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- 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