Formemu constantemente mudelli di lingua per u nostru travagliu. A nostra squadra usa decine di carte video diverse scelte per diverse attività: in qualchì locu avemu bisognu di una putente stazione DGX, è in qualchì locu hè abbastanza una vechja carta di ghjocu cum'è RTX 2080Ti. A scelta di a GPU ottima per a furmazione di mudelli pò influenzà significativamente a velocità è u costu di u prucessu.
Ciò chì hè interessante hè chì ci sò uni pochi d'articuli nantu à Internet cù paraguni GPU per l'apprendimentu machine, ma assai pochi fucalizza nantu à a velocità per a furmazione di mudelli di lingua. A maiò parte sò truvati solu testi di inferenza. Quandu u novu chip H100 hè statu liberatu, u rapportu di NVidia hà dichjaratu chì era finu à nove volte più veloce di A100 in furmazione, ma per i nostri compiti, a nova carta era solu 90% più veloce di a vechja. In paragone, i nostri fornituri di nuvola avianu una differenza di prezzu 2x trà queste GPU, cusì ùn ci era micca puntu di cambià à u novu H100 per risparmià soldi.
In più di questu, avemu pigliatu per una prova una stazione DGX, chì hè custituita da 8 carte grafiche A100 80GB è costa 10 mila dollari per mese. Dopu à a prova, hè diventatu chjaru chì u rapportu prezzu/prestazioni di sta stazione ùn ci cunvene micca in tuttu è per questu soldi, pudemu piglià 66 x RTX 3090, chì in totale serà assai più utile.
I nostri mudelli di lingua di traduzzione anu finu à 500 milioni di parametri (da 100 milioni à 300 milioni in media). Hè pussibule chì se aumentemu u numeru di paràmetri significativamente, u rapportu prezzu/prestazione di DGX serà megliu. Attualmente, ùn furmà micca grandi mudelli di lingua chì ponu traduce trà tutte e lingue in tutte e variazioni à una volta, ma utilizate mudelli di lingua separati per ogni paru di lingua, per esempiu. Inglese-tedescu. Ognunu di tali mudelli dura da 120 à 300 Mb.
Hè da nutà chì e diverse lingue anu diverse quantità di dati in Internet, è mentre. Per esempiu, per u spagnolu, pudete truvà 500 milioni di frasi cù traduzzioni, ma quandu furmà mudelli per lingue più rari cum'è u tibetanu, avete bisognu di sceglie una GPU specifica per i travaglii di apprendimentu automaticu basatu nantu à e dati dispunibili. Per creà un mudellu di traduzzione da l'inglese à u spagnolu, usemu un servitore cù 4 x RTX 4500 è 256GB RAM. À u listessu tempu, a lingua tibetana pò esse furmatu nantu à RTX 2080 Ti cù 16GB RAM, perchè ùn hà micca sensu per aumentà a cumplessità di a rete neurale è, in u risultatu, per piglià un servitore più putente cù una piccula quantità di dati.
Selezziunate processori grafichi è figure teorichi
A furmazione di mudelli di lingua hè stata fatta nantu à a nostra piattaforma interna Data Studio utilizendu u framework OpenNMT-tf. Questa fase includeva a preparazione di dati, a furmazione di mudelli è a comparazione di mudelli cù una traduzzione di riferimentu. Utilizà FP16 invece di FP32 durante a furmazione ci hà permessu di riduce significativamente u tempu di furmazione di mudelli di lingua senza degradà a qualità di traduzzione, ma micca tutte e nostre GPU supportanu questu.
Quandu sceglite un processore graficu, hè standard di cunsiderà metriche cum'è a putenza di trasfurmazioni (TFLOPS), a memoria video (VRAM), i risultati di benchmark GPU, u supportu di biblioteca è framework, u budget, è altri fattori (taglia di carta grafica è fattore di forma, esigenze di putenza, rinfrescante è cumpatibilità cù u vostru sistema). Quandu furmà mudelli di generazione di testu, duvete ancu tene in mente chì e diverse lingue cunsumanu diverse quantità di risorse. Per esempiu, 1 byte hè utilizatu per codificà un caratteru per e lingue latine, 2 byte per e lingue cirilliche, è 3 byte per e lingue chì cuntenenu ieroglifi. Capisce quali caratteristiche a vostra carta grafica avarà hà un impattu significativu nantu à a velocità di u prucessu di apprendimentu.
Quandu a furmazione di i mudelli in quantu à i GPU utilizati, i video cards sò stati divisi in dui gruppi secondu u periodu di usu: i primi video cards, chì sò stati utilizati per fà e prime misurazioni di a velocità di apprendimentu, è e carte attualmente in usu. E caratteristiche principali di queste carte grafiche ponu esse truvate in Table 1 è Table 2, rispettivamente.
Table 1 - Prucessori grafichi usati prima è i so paràmetri tecnichi
Number of GPUs | GPU | VRAM, G | CUDA | FP16, TFLOPS | FP32, TFLOPS |
---|---|---|---|---|---|
1 | Tesla V100-SXM2 | HBM2, 16 | 7.0 | 31.33 | 16.31 |
2 | Tesla V100-SXM2 | HBM2, 32 | 7.0 | 31.33 | 15.67 |
1 | RTX 4060 Ti | GDDR6, 8 | 8.9 | 22.06 | 22.06 |
1 | Nvidia A40 | GDDR6, 48 | 8.6 | 37.42 | 37.42 |
2 | Nvidia A40 | GDDR6, 96 | 8.6 | 37.42 | 37.42 |
1 | Nvidia A100 | HBM2, 40 | 8.0 | 77.97 | 19.49 |
1 | Nvidia A100 | HBM2, 80 | 8.0 | 77.97 | 19.49 |
1 | Nvidia RTX A6000 | GDDR6, 48 | 8.6 | 38.71 | 38.71 |
1 | Nvidia A10 | GDDR6, 24 | 8.6 | 31.24 | 31.24 |
8 | Nvidia A10 | GDDR6, 192 | 8.6 | 31.24 | 31.24 |
1 | Nvidia H100 | HBM3, 80 | 9.0 | 204.9 | 51.22 |
Note
1. Cù CUDA più grande di 7.0, l'usu di FP16 darà un impulso in a velocità di furmazione, secondu a versione CUDA è e caratteristiche di a carta grafica stessa.
2. Se a specificazione di a carta grafica indica chì u rapportu di prestazione FP16 à FP32 hè più grande di 1 à 1, allora l'usu di precisione mista serà garantitu per aumentà a velocità di furmazione da a quantità specificata in a specificazione. Per esempiu, per Quadro RTX 6000 u valore FP16 TFLOPS di 32.62 (2: 1) accelerà l'entrenamentu da almenu duie volte (2.4 volte in pratica)
Tabella 2 - Modelli GPU attualmente usati è e so caratteristiche principali
Number of GPUs in use | GPU | VRAM, G | CUDA | FP16, TFLOPS | FP32, TFLOPS |
---|---|---|---|---|---|
1 | Quadro RTX 6000 | GDDR6, 24 | 7.5 | 32.62 | 16.31 |
2 | Quadro RTX 6000 | GDDR6, 48 | 7.5 | 32.62 | 16.31 |
4 | Quadro RTX 6000 | GDDR6, 96 | 7.5 | 32.62 | 16.31 |
2 | Nvidia TITAN RTX | GDDR6, 48 | 7.5 | 32.62 | 16.31 |
4 | Nvidia RTX A4500 | GDDR6, 96 | 8.6 | 23.65 | 23.65 |
1 | Nvidia GeForce RTX 3090 | GDDR6X, 24 | 8.6 | 35.58 | 35.58 |
1 | Nvidia GeForce RTX 3070 | GDDR6, 8 | 8.6 | 20.31 | 20.31 |
* - i valori per FP16, TFLOPS è FP32,TFLOPS sò pigliati da specificazioni per GPU
prucessu di furmazione è teste GPU
I mudelli sò stati furmatu cù un set di 18 GPU. In u prucessu di furmazione di rete neurale, avemu usatu numerosi coppie di lingue (più di centu lingue). I testi di GPU anu aiutatu à identificà quale hardware funziona megliu per compiti specifichi. Durante a furmazione di e nostre coppie di lingua, i seguenti parametri di rete neurale sò stati pigliati cum'è basa:
- vocab size = 30 000
- numunità = 768
- strati = 6
- capi = 16
- dimensione interna = 4 096
Prima, caratterizemu e GPU chì appartenevanu à u primu gruppu basatu nantu à a Tabella 1. U tempu in minuti è sicondi spesi in furmazione di u mudellu à una velocità apprussimativa di 1,000 passi è un batch size multiple di 100,000 unità serà pigliatu cum'è a basa per paragunà l'indicatori.
Enfatizemu chì per u primu gruppu, e misurazioni di velocità sò state realizate cù l'usu di u allineamentu meccanismu è solu usu FP32. Senza aduprà stu mecanismu, a velocità di apprendimentu in certi servitori pò esse assai più veloce.
U mecanismu di allinamentu permette substrings currispondenti in a basa è u testu traduttu. Hè necessariu di traduce u testu furmatu, cum'è e pagine web, quandu una substringa in una frase pò esse evidenziata in un font diversu è deve esse traduttu cù l'evidenziazione.
In cunsiderà i paràmetri sopra citati di a rete neurale, u megliu tempu da a prima tavola hè statu dimustratu da a GPU Nvidia H100 cù un tempu di apprendimentu di 22 minuti, è u tempu intermediu hè statu dimustratu da a GPU di a listessa marca GeForce RTX 4060 Ti cù un tempu di apprendimentu di 72 minuti è l'ultimu postu hè statu pigliatu da a GPU Tesla V100-SXM 2 cù un tempu di apprendimentu di 140 minuti.
Ci era ancu ottu carte Nvidia A10 in a prova GPU cù una curva d'apprendimentu di 20 minuti è 28 seconde, duie carte Nvidia A40 cù un tempu di 56 minuti, è duie carte Tesla V100-SXM chì si sò clock in 86 minuti. L'applicazione simultanea di parechje carte di a listessa serie di GPU pò accelerà u prucessu di furmazione di i mudelli è mostra quasi u stessu tempu cù GPU chì anu capacità più altu, ma una tale tecnica ùn pò micca esse abbastanza raziunale finanziariamente è proceduralmente. I risultati di e misurazioni di a velocità di apprendimentu ponu esse osservati in a Tabella numero 3.
Tabella 3 - Misurazioni di u tempu di furmazione nantu à e carte grafiche usate prima
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 32 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
8 | Nvidia A10 | 20,28 | 6 250 |
1 | Nvidia H100 | 22 | 25 000 |
1 | A100 (80 Gb) | 40 | 25 000 |
1 | A100 (40 Gb) | 56 | 15 000 |
2 | Nvidia A40 | 56 | 12 500 |
1 | RTX A6000 | 68,25 | 12 500 |
1 | GeForce RTX 4060 Ti | 72 | 4 167 |
1 | Nvidia A40 | 82,08 | 12 500 |
2 | Tesla V100-SXM | 86 | 4 167 |
1 | Nvidia A10 | 104,50 | 5 000 |
1 | Tesla V100-SXM2 | 140 | 4 167 |
In seguitu, realicemu un analisi comparativu di i pedali di gas graficu attualmente in usu (Table 2). Per stu gruppu di prucessori grafichi, e misurazioni di velocità sò state realizate cù u allineamentu meccanisimu, è ancu aduprà FP16 è FP32. E misurazioni di velocità cumpresi stu mecanismu è a precisione mista seranu presentate quì sottu in Tabelle 4 è 5 rispettivamente.
Dunque, dopu avè misuratu a velocità di GPU da questa tavula, pudemu dì chì u primu postu hè statu pigliatu da a GPU di a serie RTX A4500 cù un tempu di furmazione di 31 minuti, ma deve esse enfatizatu chì una tale velocità di mudelli di furmazione hè stata ottenuta da aumentendu u numeru di unità di a GPU usata finu à 4. Disregarding stu fattu, a vitezza di furmazione di a GPU sopra citata serà assai più altu, chì a mette in u penultimu postu in a tavula finale.
A GPU di a serie Quadro RTX 6000 cù un tempu di apprendimentu di 47 minuti hè in u sicondu postu. Hè da nutà chì una tale velocità di furmazione hè inversamente cundizionata da u numeru di unità di u processatore utilizatu, chì hè uguali à quattru. Aduprà solu una tale GPU daria una perdita di velocità di circa 3,2 volte è, per quessa, seria di circa 153 minuti è mette in l'ultimu postu.
A terza linea hè stata presa da a serie TITAN RTX GPU cù un tempu di 75 minuti è 85 seconde. Stu puntu di velocità di apprendimentu hè dovutu à l'usu di 2 processori, chì riduce u tempu di furmazione di u mudellu.
U capu indiscutibile in quantu à a velocità di furmazione in u numeru di una unità serà definitivamente a GPU di a serie GeForce RTX 3090 cù un tempu di 78 minuti è 26 seconde. Aumentà u numeru di unità di sta GPU accelerà a velocità di furmazione di u mudellu, chì chjaramente superà tutti i mudelli GPU sopra citati. I dati nantu à e misurazioni di u tempu di furmazione di mudelli ponu esse vistu in a Tabella 4.
Tabella 4 - Analisi comparativa di a velocità di furmazione di mudelli di lingua nantu à GPU utilizati prima
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 32 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
4 | Nvidia RTX A4500 | 31 | 5 000 |
4 | Quadro RTX 6000 | 47 | 6 250 |
2 | Nvidia TITAN RTX | 75,85 | 6 250 |
1 | GeForce RTX 3090 | 78,26 | 6 250 |
2 | Quadro RTX 6000 | 88 | 6 250 |
1 | GeForce RTX 3070 | 104,17 | 2 000 |
1 | Quadro RTX 6000 | 153 | 6 250 |
E seguenti misurazioni di velocità di furmazione sò state realizate cù FP16. Comparatu à FP32, a mità di precisione permette di riduce a quantità di memoria cunsumata durante a furmazione di mudelli è accelerà u calculu nantu à a GPU. A precisione di a rapprisintazioni serà più bassu chè cù l'usu di FP32.
Misurendu u tempu di furmazione di mudelli chì utilizanu FP32 da a tavula precedente, pudemu dì chì u tempu di furmazione di a rete neurale hè stata ridutta da quasi duie volte. Basatu nantu à i risultati di a misurazione di u rendiment, pudemu osservà da i benchmarks di GPU di apprendimentu automaticu in a Tabella 4 chì e pusizioni di GPU restanu largamente invariate. A carta di a serie Quadro RTX 6000 hè passata da a quinta pusizione à a sesta, battendu a GPU GeForce RTX 3090 da 96 seconde. I numeri finali sò mostrati in a Tabella 5.
Tabella 5 - Analisi comparativa di a velocità di furmazione di mudelli di lingua nantu à GPU utilizati prima
Using the alignment mechanism | |||
---|---|---|---|
Effective batch size = 100 000 | |||
FP 16 | |||
Number of GPUs in use | GPU | Approximate speed (min. sec), 1,000 steps | Batch size in use |
4 | Nvidia RTX A4500 | 15,81 | 10 000 |
4 | Quadro RTX 6000 | 20,34 | 12 500 |
2 | Nvidia TITAN RTX | 32,68 | 6 250 |
2 | Quadro RTX 6000 | 37,93 | 10 000 |
1 | GeForce RTX 3090 | 38,89 | 10 000 |
1 | GeForce RTX 3070 | 48,51 | 2 500 |
1 | Quadro RTX 6000 | 52,56 | 10 000 |