CHE COS’È L’ECO DEI DATI E COME RENDE L’ALLENAMENTO PIÙ VELOCE

Qual è la soluzione per un addestramento più rapido delle reti neurali profonde? Costruire processori veloci? Questo è vero, ma ora abbiamo GPU e TPU. E se la velocità non fosse sufficiente? Dovremmo sviluppare processori ancora più veloci?

No, afferma un team di ricercatori di Google AI.

Secondo i ricercatori, gli acceleratori sono inattivi per la maggior parte del tempo in attesa di input. Quindi, invece di modificare l’hardware all’infinito, hanno introdotto un concetto più semplice a livello algoritmico, che chiamano eco dei dati. Hanno anche pubblicato un documento intitolato “Formazione più rapida della rete neurale con eco dei dati”.

L’eco dei dati, come suggerisce il nome, è una tecnica che riutilizza i dati di output dei passaggi precedenti invece di mantenere i processori in attesa di nuovi dati.

Come funziona l’eco dei dati

Non tutte le operazioni nella pipeline di addestramento vengono eseguite su acceleratori, quindi non si può semplicemente fare affidamento su acceleratori più veloci per continuare a guidare le accelerazioni dell’allenamento. Le fasi precedenti della pipeline di addestramento come l’I / O del disco e la preelaborazione dei dati prevedono operazioni che non beneficiano di GPU e TPU.


Man mano che i miglioramenti dell’acceleratore superano gli sviluppi delle CPU e dei dischi, queste fasi precedenti diventeranno sempre più un collo di bottiglia, sprecando la capacità dell’acceleratore e limitando la velocità di allenamento.

La tecnica proposta dai ricercatori di Google prevede la duplicazione dei dati in un buffer shuffle da qualche parte nella pipeline di formazione.

Quindi implementano l’eco dei dati inserendo una fase nella pipeline di addestramento che ripete (fa eco) i risultati della fase precedente. Utilizzando TensorFlow, una fase di eco è semplice come

dataset.flat_map( lambda t: tf.data.Dataset.from_tensors(t).repeat(e))

dove ‘e’ è il fattore di eco dei dati, il numero di volte che ogni elemento di dati viene ripetuto


Dopo il primo passaggio di ottimizzazione sul batch preelaborato, i ricercatori hanno riutilizzato il batch ed eseguito un secondo passaggio prima che il batch successivo fosse pronto. Nel migliore dei casi, in cui i dati ripetuti sono utili quanto i nuovi dati, gli autori hanno affermato una duplice accelerazione nell’allenamento.

In realtà, hanno ammesso gli autori, l’eco dei dati fornisce un aumento della velocità leggermente inferiore perché i dati ripetuti non sono utili come i nuovi dati, ma possono comunque fornire un aumento di velocità significativo rispetto a lasciare l’acceleratore inattivo.

La quantità di tempo inattivo a valle che l’eco dei dati può sfruttare è massima, dato che ogni operazione nella pipeline richiede del tempo per essere eseguita.

Per gli esperimenti, i ricercatori hanno provato a riecheggiare i dati su cinque condotte di formazione della rete neurale che coprono 3 diversi compiti – classificazione delle immagini, modellizzazione del linguaggio e rilevamento degli oggetti – e hanno misurato il numero di nuovi esempi necessari per raggiungere un determinato obiettivo prestazionale.

Hanno scoperto che l’eco dei dati può aiutare a raggiungere le prestazioni target con meno nuovi esempi, dimostrando che il riutilizzo dei dati è utile per ridurre l’I / O del disco in una varietà di attività. In alcuni casi, i dati ripetuti sono utili quasi quanto i nuovi dati che l’eco prima dell’aumento riduce il numero di nuovi esempi richiesti quasi dal fattore di ripetizione “e”.

Poiché i miglioramenti nelle GPU e TPU continuano a superare il calcolo per scopi generici, gli autori si aspettano che l’eco dei dati diventi una parte importante del toolkit di formazione della rete neurale .

Key Takeaways
L’eco dei dati come concetto sembra molto promettente, il numero di accelerazioni che può offrire in realtà potrebbe non essere drammaticamente alto, ma è un modo più semplice di migliorare la velocità invece di ridisegnare un processore. Questo lavoro può essere riassunto come segue:

L’eco dei dati è una soluzione alternativa efficace all’ottimizzazione della pipeline di formazione
L’eco dopo l’aumento è efficace per i set di dati di immagini che utilizzano un costoso aumento di dati che viene eseguito su CPU
L’eco dei dati non degrada la qualità della soluzione

Di ihal