Parametri di riferimento della gpu per l'apprendimento profondo

Per il nostro lavoro addestriamo costantemente modelli linguistici. Il nostro team utilizza decine di schede video diverse, scelte per compiti diversi: in alcuni casi abbiamo bisogno di una potente stazione DGX, mentre in altri è sufficiente una vecchia scheda da gioco come RTX 2080Ti. La scelta della configurazione ottimale della GPU consente di risparmiare non solo tempo di formazione, ma anche denaro.

L'aspetto interessante è che su Internet ci sono pochi articoli con test sulle GPU specifici per la velocità di addestramento dei modelli linguistici. Per lo più si trovano solo test di inferenza. Quando è stato rilasciato il nuovo chip H100, il rapporto di NVidia affermava che era fino a nove volte più veloce dell'A100 nell'addestramento, ma per i nostri compiti, la nuova scheda era solo il 90% più veloce della vecchia. A titolo di confronto, i nostri cloud provider avevano una differenza di prezzo di due volte tra queste GPU, quindi non aveva senso passare alla nuova H100 per risparmiare.

Inoltre, abbiamo testato una stazione DGX, che consiste in 8 schede grafiche A100 da 80 GB e costa 10.000 dollari al mese. Dopo il test, è emerso chiaramente che il rapporto prezzo/prestazioni di questa stazione non ci soddisfa affatto e per questa cifra possiamo prendere 66 x RTX 3090, che in totale saranno molto più utili.

I nostri modelli linguistici di traduzione hanno fino a 500 milioni di parametri (da 100 a 300 milioni in media). È possibile che se aumentiamo il numero di parametri in modo significativo, il rapporto prezzo/prestazioni di DGX sarà migliore. Attualmente non addestriamo modelli linguistici di grandi dimensioni in grado di tradurre tra tutte le lingue in tutte le varianti contemporaneamente, ma utilizziamo modelli linguistici separati per ogni coppia di lingue, ad esempio inglese-tedesco. Ciascuno di questi modelli richiede da 120 a 300 Mb.

Vale la pena notare che le diverse lingue hanno quantità diverse di dati su Internet, e mentre, ad esempio, per lo spagnolo si possono trovare 500 milioni di frasi con traduzioni, per il tibetano non se ne trovano più di un milione. Per questo motivo, i modelli per le diverse lingue vengono addestrati con un numero diverso di parametri e il risultato ha una qualità di traduzione diversa. Per creare un modello di traduzione dall'inglese allo spagnolo, utilizziamo un server con 4 RTX 4500 e 256 GB di RAM. Allo stesso tempo, la lingua tibetana può essere addestrata su RTX 2080 Ti con 16 GB di RAM, in quanto non ha senso aumentare la complessità della rete neurale e, di conseguenza, prendere un server più potente con una piccola quantità di dati.

Selezione di processori grafici e figure teoriche

L'addestramento del modello linguistico è avvenuto sulla nostra piattaforma interna Data Studio utilizzando il framework OpenNMT-tf. Questa fase comprendeva la preparazione dei dati, l'addestramento del modello e il confronto del modello con una traduzione di riferimento. L'uso di FP16 invece di FP32 durante l'addestramento ci ha permesso di ridurre significativamente il tempo di addestramento dei modelli linguistici senza degradare la qualità della traduzione, ma non tutte le nostre GPU lo supportano.

Quando si sceglie un processore grafico, è normale considerare parametri quali la potenza di elaborazione (TFLOPS), la memoria video (VRAM), il supporto di librerie e framework, il budget e altri fattori (dimensioni e fattore di forma della scheda grafica, requisiti di alimentazione, raffreddamento e compatibilità con il sistema). Quando si addestrano i modelli di generazione del testo, bisogna anche tenere presente che lingue diverse consumano quantità diverse di risorse. Ad esempio, 1 byte viene utilizzato per codificare un carattere per le lingue latine, 2 byte per le lingue cirilliche e 3 byte per le lingue contenenti geroglifici. La comprensione delle caratteristiche della scheda grafica ha un impatto significativo sulla velocità del processo di apprendimento.

Per la formazione dei modelli in termini di GPU utilizzate, le schede video sono state divise in due gruppi in base al periodo di utilizzo: le prime schede video, che sono state utilizzate per effettuare le prime misurazioni della velocità di apprendimento, e le schede attualmente in uso. Le caratteristiche principali di queste schede grafiche sono riportate nella Tabella 1 e nella Tabella 2, di seguito riportate.

Table 1 - Processori grafici utilizzati in precedenza e relativi parametri tecnici
 

Number of GPUsGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


Note
1. Con CUDA superiore a 7.0, l'uso di FP16 darà una spinta alla velocità di addestramento, a seconda della versione di CUDA e delle caratteristiche della scheda grafica stessa.
2. Se le specifiche della scheda grafica indicano che il rapporto tra prestazioni FP16 e FP32 è superiore a 1 a 1, l'uso della precisione mista garantisce un aumento della velocità di addestramento pari a quello indicato nelle specifiche. Ad esempio, per Quadro RTX 6000 il valore FP16 TFLOPS di 32,62 (2:1) accelera l'allenamento di almeno due volte (2,4 volte in pratica).

Table 2 - Modelli di GPU attualmente utilizzati e loro caratteristiche principali
 

Number of GPUs in useGPUVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - i valori per FP16,TFLOPS e FP32,TFLOPS sono ricavati dalle specifiche per GPU

Processo di addestramento e test su GPU

I modelli sono stati addestrati utilizzando un set di 18 GPU. Nel processo di addestramento della rete neurale, abbiamo utilizzato numerose coppie linguistiche (più di cento lingue). Durante l'addestramento delle nostre coppie linguistiche, sono stati presi come base i seguenti parametri della rete neurale:
 

  • dimensione del vocabolario = 30 000
  • numero di unità = 768
  • strati = 6
  • teste = 16
  • dimensione interna = 4 096


In primo luogo, caratterizziamo le GPU che appartengono al primo gruppo in base alla Tabella 1. Il tempo in minuti e secondi impiegato per l'addestramento del modello a una velocità approssimativa di 1.000 passi e a una dimensione del batch multipla di 100.000 unità sarà preso come base per il confronto degli indicatori.

Sottolineiamo che per il primo gruppo le misure di velocità sono state effettuate con l'uso del meccanismo di allineamento e solo con FP32. Senza l'uso di questo meccanismo, la velocità di apprendimento su alcuni server può essere molto più veloce.

Il meccanismo di allineamento permette di far corrispondere le sottostringhe nel testo di base e in quello tradotto. È necessario per tradurre testi formattati, come le pagine web, quando una sottostringa in una frase può essere evidenziata in un carattere diverso e deve essere tradotta con l'evidenziazione.

Tenendo conto dei suddetti parametri della rete neurale, il miglior tempo della prima tabella è stato mostrato dalla GPU Nvidia H100 con un tempo di apprendimento di 22 minuti, mentre il tempo intermedio è stato mostrato dalla GPU della stessa marca GeForce RTX 4060 Ti con un tempo di apprendimento di 72 minuti e l'ultimo posto è stato occupato dalla GPU Tesla V100-SXM 2 con un tempo di apprendimento di 140 minuti.

There were also eight Nvidia A10 cards in the GPU test with a learning curve of 20 minutes and 28 seconds, two Nvidia A40 cards with a time of 56 minutes, and two Tesla V100-SXM cards that clocked in at 86 minutes. Simultaneous application of multiple cards of the same series of GPU can speed up the training process of the models and show almost the same time with GPUs that have higher capacities, but such a technique may not be financially and procedurally rational enough. The results of learning speed measurements can be observed in Table number 3.

Table 3 - Misure del tempo di addestramento sulle mappe grafiche precedentemente utilizzate

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


Quindi, effettuiamo un'analisi comparativa dei processori grafici attualmente in uso (Tabella 2). Per questo gruppo di processori grafici, le misure di velocità sono state eseguite utilizzando il meccanismo di allineamento, nonché FP16 e FP32. Le misure di velocità che includono questo meccanismo e la precisione mista saranno presentate di seguito nelle Tabelle 4 e 5 rispettivamente.

Quindi, avendo misurato la velocità delle GPU da questa tabella, possiamo dire che il primo posto è stato conquistato dalla GPU della serie RTX A4500 con un tempo di addestramento di 31 minuti, ma va sottolineato che una tale velocità di addestramento dei modelli è stata ottenuta aumentando il numero di unità della GPU utilizzata fino a 4. Senza tener conto di questo fatto, la velocità di addestramento della suddetta GPU sarà molto più elevata, il che la collocherà al penultimo posto nella tabella finale.

La GPU Quadro RTX 6000, con un tempo di apprendimento di 47 minuti, si trova al secondo posto. Va notato che tale velocità di apprendimento è inversamente condizionata dal numero di unità del processore utilizzato, che è pari a quattro. L'utilizzo di una sola di queste GPU comporterebbe una perdita di velocità di circa 3,2 volte e di conseguenza un tempo di apprendimento di circa 153 minuti, collocandosi all'ultimo posto.

La terza posizione è stata occupata dalla GPU TITAN RTX con un tempo di 75 minuti e 85 secondi. Questo punteggio di velocità di apprendimento è dovuto all'uso di 2 processori, che hanno ridotto il tempo di addestramento del modello.

Il leader indiscusso in termini di velocità di addestramento nel numero di unità è sicuramente la GPU GeForce RTX 3090 con un tempo di 78 minuti e 26 secondi. Aumentando il numero di unità di questa GPU si accelera la velocità di addestramento del modello, che supererà nettamente tutti i modelli di GPU sopra citati. I dati relativi alle misurazioni dei tempi di addestramento del modello sono riportati nella Tabella 4.

Table 4 - Analisi comparativa della velocità di addestramento dei modelli linguistici sulle GPU precedentemente utilizzate
 

Using the alignment mechanism
Effective batch size = 100 000
FP 32
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


Le seguenti misurazioni della velocità di addestramento sono state eseguite utilizzando FP16. Rispetto a FP32, la semiprecisione consente di ridurre la quantità di memoria consumata durante l'addestramento del modello e di accelerare il calcolo sulla GPU. L'accuratezza della rappresentazione sarà inferiore rispetto all'uso di FP32.

Misurando il tempo di addestramento dei modelli utilizzando FP32 dalla tabella precedente, possiamo dire che il tempo di addestramento della rete neurale è stato ridotto di quasi due volte. Sulla base dei risultati della misurazione delle prestazioni, possiamo osservare che le posizioni delle GPU nella Tabella 4 sono rimaste invariate. La scheda Quadro RTX 6000 è passata dalla quinta alla sesta posizione, battendo la GPU GeForce RTX 3090 di 96 secondi. I numeri finali sono riportati nella Tabella 5.

Table 5 - Analisi comparativa della velocità di addestramento del modello linguistico sulle GPU utilizzate in precedenza
 

Using the alignment mechanism
Effective batch size = 100 000
FP 16
Number of GPUs in useGPUApproximate speed (min. sec),
1,000 steps
Batch size in use
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

Domande frequenti (FAQ):

Cosa si intende per apprendimento profondo?

L'apprendimento profondo, o deep learning, è un sottocampo del machine learning che utilizza reti neurali artificiali con molteplici strati (da cui il termine “profondo”). Queste reti sono progettate per apprendere rappresentazioni gerarchiche dei dati, consentendo di identificare pattern complessi in grandi quantità di informazioni. L'apprendimento profondo è particolarmente efficace in compiti come: Riconoscimento vocale: Trasformare la voce in testo.
Visione artificiale: Riconoscere oggetti o volti in immagini e video.
Traduzione automatica: Tradurre testi da una lingua all'altra.
Generazione di contenuti: Creare testo, immagini o musica.

Su cosa si basa l'algoritmo di deep learning?

L'algoritmo di deep learning si basa su reti neurali artificiali, composte da strati di neuroni che elaborano informazioni. Utilizza l'apprendimento supervisionato o non supervisionato, impiegando funzioni di attivazione per modellare relazioni complesse. Durante l'addestramento, si applica la retropropagazione per ottimizzare i pesi e si adottano tecniche di regolarizzazione per evitare l'overfitting.

Cosa sono le reti neurali profonde?

Le reti neurali profonde (deep neural networks, DNN) sono un tipo di rete neurale composta da numerosi strati di neuroni, inclusi strati di input, strati nascosti e strati di output. Questi strati permettono al modello di apprendere rappresentazioni gerarchiche e complesse dei dati, facilitando la cattura di pattern intricati.

Le reti neurali profonde sono utilizzate in vari ambiti, come la visione artificiale, il riconoscimento vocale e la traduzione automatica, grazie alla loro capacità di elaborare grandi quantità di dati e di generalizzare da esempi. La profondità della rete, ovvero il numero di strati, consente una maggiore capacità di apprendimento rispetto alle reti neurali tradizionali.

Quale delle seguenti è una caratteristica del deep learning?

Una caratteristica distintiva del deep learning è la capacità di apprendere rappresentazioni gerarchiche dei dati. Questo significa che le reti neurali profonde possono identificare pattern complessi a diversi livelli di astrazione, dalle caratteristiche semplici (come bordi e angoli) a quelle più complesse (come volti o oggetti interi) nelle immagini. Altre caratteristiche includono l'uso di grandi quantità di dati per l'addestramento e la necessità di potenza di calcolo elevata, spesso tramite GPU.

Si attendono letture più affascinanti

Riconoscimento vocale on-premise: cos'è?

Riconoscimento vocale on-premise: cos'è?

September 27, 2024

Valutazione del significato statistico nel sistema di traduzione

Valutazione del significato statistico nel sistema di traduzione

September 10, 2024

Localizzazione per le aziende

Localizzazione per le aziende

September 09, 2024

Contatta il supporto

* Campi obbligatori

Inviando questo modulo, accetto che i Termini di servizio e l'Informativa sulla privacy regoleranno rispettivamente l'utilizzo dei servizi che ricevo e dei dati personali che fornisco.

E-mail

Completato

La tua richiesta è stata inviata con successo

× 
Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.

We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.

You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Always Active

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Always Active

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Always Active

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Always Active

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.