Merila uspešnosti gpu za globoko učenje

Nenehno usposabljamo jezikovne modele za naše delo. Naša ekipa uporablja na desetine različnih video kartic, izbranih za različne naloge: nekje potrebujemo zmogljivo postajo DGX, nekje pa je dovolj stara igralna kartica, kot je RTX 2080Ti. Izbira optimalnega GPU za usposabljanje modela lahko pomembno vpliva tako na hitrost kot na stroškovno učinkovitost procesa.

Zanimivo je, da je na internetu kar nekaj člankov s primerjavo grafičnih procesorjev za strojno učenje, zelo malo pa se jih osredotoča na hitrost usposabljanja jezikovnih modelov. Najdemo večinoma samo teste sklepanja. Ob izidu novega čipa H100 je bilo v NVidijinem poročilu zapisano, da je bil na treningu do devetkrat hitrejši od A100, za naše naloge pa je bila nova kartica le 90% hitrejša od stare. Za primerjavo, naši ponudniki v oblaku so imeli 2x razliko v ceni med temi grafičnimi procesorji, zato ni bilo smisla preklopiti na novi H100, da bi prihranili denar.

Poleg tega smo za test vzeli postajo DGX, ki je sestavljena iz 8 grafičnih kartic A100 80GB in stane 10 tisoč dolarjev na mesec. Po testu je postalo jasno, da nam razmerje cena/zmogljivost te postaje sploh ne ustreza in za ta denar lahko vzamemo 66 x RTX 3090, kar bo skupaj veliko bolj uporabno.

Naši jezikovni modeli prevajanja imajo do 500 milijonov parametrov (povprečno od 100 do 300 milijonov). Možno je, da bo razmerje med ceno in zmogljivostjo DGX boljše, če znatno povečamo število parametrov. Trenutno ne usposabljamo velikih jezikovnih modelov, ki lahko prevajajo med vsemi jeziki v vseh različicah hkrati, ampak uporabljamo ločene jezikovne modele za vsak jezikovni par, npr. Angleško-nemški. Vsak od takih modelov traja od 120 do 300 Mb.

Omeniti velja, da imajo različni jeziki različne količine podatkov na internetu in medtem ko. Na primer, za španščino lahko najdete 500 milijonov stavkov s prevodi, vendar morate pri usposabljanju modelov za redkejše jezike, kot je tibetanščina, izbrati določen grafični procesor za naloge strojnega učenja na podlagi razpoložljivih podatkov. Za izdelavo prevajalskega modela iz angleščine v španščino uporabljamo strežnik s 4 x RTX 4500 in 256GB RAM-a. Hkrati se lahko tibetanski jezik trenira na RTX 2080 Ti s 16GB RAM-a, saj nima smisla povečevati kompleksnosti nevronske mreže in posledično vzeti zmogljivejši strežnik z majhno količino podatkov.

Izbira grafičnih procesorjev in teoretičnih figur

Usposabljanje jezikovnega modela je potekalo na naši interni platformi Data Studio z uporabo ogrodja OpenNMT-tf. Ta faza je vključevala pripravo podatkov, usposabljanje modela in primerjavo modela z referenčnim prevodom. Uporaba FP16 namesto FP32 med usposabljanjem nam je omogočila znatno skrajšanje časa usposabljanja jezikovnih modelov brez poslabšanja kakovosti prevoda, vendar tega niso podpirali vsi naši grafični procesorji.

Pri izbiri grafičnega procesorja je standardno upoštevati meritve, kot so procesorska moč (TFLOPS), video pomnilnik (VRAM), primerjalni rezultati GPU, podpora za knjižnico in ogrodje, proračun in drugi dejavniki (velikost in faktor oblike grafične kartice, moč zahteve, hlajenje in združljivost z vašim sistemom). Pri usposabljanju modelov za ustvarjanje besedila morate upoštevati tudi, da bodo različni jeziki porabili različne količine virov. Na primer, 1 bajt se uporablja za kodiranje enega znaka za latinske jezike, 2 bajta za cirilične jezike in 3 bajte za jezike, ki vsebujejo hieroglife. Razumevanje, katere značilnosti bo imela vaša grafična kartica, pomembno vpliva na hitrost učnega procesa.

Pri usposabljanju modelov glede na uporabljene grafične procesorje so bile video kartice razdeljene v dve skupini glede na obdobje uporabe: zgodnje video kartice, ki so bile uporabljene za prve meritve hitrosti učenja, in kartice, ki so trenutno v uporabi. Glavne značilnosti teh grafičnih kartic najdete v tabeli 1 oziroma tabeli 2.

Tabela 1 - Prej uporabljeni grafični procesorji in njihovi tehnični parametri
 

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


Opombe
1. S CUDA, večjim od 7,0, bo uporaba FP16 povečala hitrost treninga, odvisno od različice CUDA in značilnosti same grafične kartice.
2. Če specifikacija grafične kartice kaže, da je razmerje zmogljivosti med FP16 in FP32 večje od 1 proti 1, bo z uporabo mešane natančnosti zagotovljeno povečanje hitrosti usposabljanja za znesek, določen v specifikaciji. Na primer, za Quadro RTX 6000 bo vrednost FP16 TFLOPS 32,62 (2:1) pospešila vadbo vsaj dvakrat (2,4-krat v praksi)

Tabela 2 - Trenutno uporabljeni modeli GPU in njihove glavne značilnosti
 

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

* - vrednosti za FP16, TFLOPS in FP32, TFLOPS so vzete iz specifikacij na GPE

Postopek usposabljanja in testiranja GPU

Modeli so bili usposobljeni z uporabo kompleta 18 grafičnih procesorjev. V procesu treninga nevronskih mrež smo uporabili številne jezikovne pare (več kot sto jezikov). Preizkusi GPE so pomagali ugotoviti, katera strojna oprema se najbolje obnese pri določenih nalogah. Med usposabljanjem naših jezikovnih parov so bili kot osnova vzeti naslednji parametri nevronske mreže:
 

  • velikost vocaba = 30 000
  • numunits = 768
  • plasti = 6
  • glave = 16
  • notranja dimenzija = 4 096


Najprej opišimo grafične procesorje, ki so pripadali prvi skupini, na podlagi tabele 1. Kot osnova za primerjavo indikatorjev bo vzet čas v minutah in sekundah, porabljen za usposabljanje modela s približno hitrostjo 1.000 korakov in večkratnikom velikosti serije 100.000 enot.

Poudarjamo, da so bile za prvo skupino meritve hitrosti izvedene z uporabo poravnava mehanizem in samo z uporabo FP32. Brez uporabe tega mehanizma je lahko hitrost učenja na nekaterih strežnikih veliko hitrejša.

Mehanizem poravnave omogoča ujemanje podnizov v osnovnem in prevedenem besedilu. Potrebno je prevesti oblikovano besedilo, kot so spletne strani, ko je podniz v stavku lahko označen z drugo pisavo in ga je treba prevesti s poudarjanjem.

Ob upoštevanju zgoraj navedenih parametrov nevronske mreže je najboljši čas iz prve tabele prikazal GPU Nvidia H100 s časom učenja 22 minut, in vmesni čas je prikazal GPU iste znamke GeForce RTX 4060 Ti s časom učenja 72 minut, zadnje mesto pa je zasedel GPU Tesla V100-SXM 2 s časom učenja 140 minut.

V testu GPU je bilo tudi osem kartic Nvidia A10 s krivuljo učenja 20 minut in 28 sekund, dve kartici Nvidia A40 s časom 56 minut in dve kartici Tesla V100-SXM, ki sta dosegli 86 minut. Hkratna uporaba več kartic iste serije GPU lahko pospeši proces usposabljanja modelov in pokaže skoraj enak čas z GPU, ki imajo večje zmogljivosti, vendar takšna tehnika morda ni dovolj finančno in postopkovno racionalna. Rezultate meritev hitrosti učenja lahko opazujemo v tabeli številka 3.

Tabela 3 - Meritve časa usposabljanja na prej uporabljenih grafičnih kartah
 

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


Nato izvedimo primerjalno analizo grafičnih pedalov za plin, ki so trenutno v uporabi (tabela 2). Za to skupino grafičnih procesorjev so bile meritve hitrosti izvedene z uporabo poravnava mehanizem, kot tudi uporaba FP16 in FP32. Meritve hitrosti, vključno s tem mehanizmom in mešano natančnostjo, bodo predstavljene spodaj v tabelah 4 oziroma 5.

Torej, ko smo izmerili hitrost grafičnih procesorjev iz te tabele, lahko rečemo, da je prvo mesto zasedla grafična procesorska enota serije RTX A4500 s časom vadbe 31 minut, vendar je treba poudariti, da je bila taka hitrost vadbenih modelov pridobljena s povečanjem števila enot uporabljene grafične procesorske enote do 4. Ne glede na to dejstvo bo hitrost treninga omenjenega GPU veliko večja, kar ga bo uvrstilo na predzadnje mesto v finalni mizi.

Na drugem mestu je grafični procesor serije Quadro RTX 6000 s časom učenja 47 minut. Opozoriti je treba, da je takšna hitrost usposabljanja obratno pogojena s številom enot uporabljenega procesorja, ki je enako štirim. Uporaba samo enega takega grafičnega procesorja bi povzročila izgubo hitrosti približno 3,2-krat in posledično približno 153 minut ter jo postavila na zadnje mesto.

Tretjo linijo je posnel GPU serije TITAN RTX s časom 75 minut in 85 sekund. Ta rezultat hitrosti učenja je posledica uporabe 2 procesorjev, kar je skrajšalo čas usposabljanja modela.

Nedvomno vodilni po hitrosti treninga v številu ene enote bo zagotovo GeForce RTX 3090 serija GPU s časom 78 minut in 26 sekund. Povečanje števila enot tega GPU bo pospešilo hitrost usposabljanja modela, ki bo očitno prehitela vse zgoraj omenjene modele GPU. Podatki o meritvah časa usposabljanja modela so razvidni iz tabele 4.

Tabela 4 - Primerjalna analiza hitrosti usposabljanja jezikovnega modela na predhodno uporabljenih grafičnih procesorjih
 

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


Naslednje meritve hitrosti treninga so bile izvedene z uporabo FP16. V primerjavi s FP32 polovična natančnost omogoča zmanjšanje količine pomnilnika, porabljenega med usposabljanjem modela, in pospešitev izračuna na GPE. Natančnost predstavitve bo manjša kot pri uporabi FP32.

Merjenje časa vadbe modelov z uporabo FP32 iz prejšnje tabele lahko rečemo, da se je čas vadbe nevronske mreže zmanjšal za skoraj dvakrat. Na podlagi rezultatov merjenja zmogljivosti lahko iz meril uspešnosti GPU strojnega učenja v tabeli 4 opazimo, da so položaji GPE ostali večinoma nespremenjeni. Kartica serije Quadro RTX 6000 se je s petega mesta povzpela na šesto in za 96 sekund premagala grafični procesor GeForce RTX 3090. Končne številke so prikazane v tabeli 5.

Tabela 5 - Primerjalna analiza hitrosti usposabljanja jezikovnega modela na predhodno uporabljenih grafičnih procesorjih
 

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

Pogosto zastavljena vprašanja (FAQ)

Ali je vredno kupiti GPU za globoko učenje?

Nakup grafičnega procesorja za globoko učenje lahko znatno poveča hitrost in učinkovitost usposabljanja, zaradi česar je vredna naložba za resne projekte. Vendar bi morala odločitev upoštevati dejavnike, kot so proračun, posebni primeri uporabe in ali so rešitve v oblaku morda stroškovno učinkovitejše.

Kateri GPU je najboljši za globoko učenje?

NVIDIA A100 pogosto velja za najboljšo izbiro za globoko učenje, saj ponuja izjemno zmogljivost in spomin za velike modele. Za proračunsko ozaveščene uporabnike NVIDIA RTX 3090 zagotavlja močne zmogljivosti za učinkovito usposabljanje modelov.

Ali je AMD ali NVIDIA boljša za globoko učenje?

NVIDIA je na splošno prednostna za globoko učenje zaradi svojega robustnega programskega ekosistema, ki izboljša zmogljivost in združljivost s priljubljenimi ogrodji. Čeprav so se grafični procesorji AMD izboljšali, še vedno zaostajajo za NVIDIA v smislu optimizacije in podpore za aplikacije za globoko učenje.

Ali GPU pomaga v NLP?

Da, grafični procesorji znatno pospešijo usposabljanje nevronske mreže za obdelavo naravnega jezika (NLP) z učinkovitim ravnanjem z vzporednimi izračuni. To povečanje hitrosti omogoča hitrejše eksperimentiranje in ponavljanje, kar vodi do izboljšane zmogljivosti modela in skrajšanega časa treninga.

Čakajo bolj fascinantna branja

Kaj je lokalno prepoznavanje govora?

Kaj je lokalno prepoznavanje govora?

September 19, 2024

Ocenjevanje statističnega pomena v prevajalskem sistemu

Ocenjevanje statističnega pomena v prevajalskem sistemu

September 10, 2024

Prepoznavanje govora v marketingu

Prepoznavanje govora v marketingu

August 23, 2024

Kontaktirajte nas

0/250
* Označuje obvezno polje

Vaša zasebnost je za nas izjemnega pomena; vaši podatki bodo uporabljeni izključno za namene stika.

E-pošta

Dokončano

Vaša zahteva je bila uspešno poslana

× 
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.