Süvaõppe gpu võrdlusalused

Koolitame pidevalt oma töö jaoks keelemudeleid. Meie meeskond kasutab kümneid erinevaid videokaarte, mis on valitud erinevate ülesannete jaoks: kuskil vajame võimsat DGX-jaama ja kuskil piisab vanast mängukaardist nagu RTX 2080Ti. Mudelitreeningu optimaalse GPU valimine võib oluliselt mõjutada nii protsessi kiirust kui ka kuluefektiivsust.

Huvitav on see, et Internetis on üsna palju artikleid, mis sisaldavad masinõppe GPU võrdlust, kuid väga vähesed keskenduvad keelemudeli koolituse kiirusele. Enamasti leitakse ainult järeldusteste. Uue H100 kiibi väljalaskmisel oli NVidia raportis kirjas, et see oli treeningutel kuni üheksa korda kiirem kui A100, kuid meie ülesannete puhul oli uus kaart vaid 90% kiirem kui vana. Võrdluseks, meie pilveteenuse pakkujatel oli nende GPU-de vahel 2-kordne hinnavahe, seega polnud raha säästmiseks mõtet uuele H100-le üle minna.

Lisaks sellele võtsime testimiseks DGX jaama, mis koosneb 8 A100 80 GB graafikakaardist ja maksab 10 tuhat dollarit kuus. Pärast testi sai selgeks, et selle jaama hinna/jõudluse suhe ei sobi meile üldse ja selle raha eest saame võtta 66 x RTX 3090, mis kokku tuleb palju kasulikum.

Meie tõlkekeele mudelitel on kuni 500 miljonit parameetrit (keskmiselt 100-300 miljonit). Võimalik, et kui suurendame parameetrite arvu oluliselt, on DGX-i hinna/jõudluse suhe parem. Praegu me ei koolita suuri keelemudeleid, mis suudavad tõlkida kõigi keelte vahel kõikides variatsioonides korraga, vaid kasutame iga keelepaari jaoks eraldi keelemudeleid, nt. Inglise-saksa. Iga selline mudel võtab 120 kuni 300 Mb.

Väärib märkimist, et erinevates keeltes on Internetis erinev andmemaht ja samas. Näiteks hispaania keele puhul leiate tõlgetega 500 miljonit lauset, kuid haruldasemate keelte, näiteks tiibeti keele mudelite treenimisel peate olemasolevate andmete põhjal valima masinõppe ülesannete jaoks konkreetse GPU. Tõlkemudeli loomiseks inglise keelest hispaania keelde kasutame 4 x RTX 4500 ja 256 GB muutmäluga serverit. Samal ajal saab tiibeti keelt treenida RTX 2080 Ti 16 GB RAM-iga, kuna pole mõtet suurendada närvivõrgu keerukust ja sellest tulenevalt võtta võimsam server väikese andmemahuga.

Graafikaprotsessorite ja teoreetiliste kujundite valimine

Keelemudeli koolitus toimus meie sisemisel Data Studio platvormil OpenNMT-tf raamistiku abil. See etapp hõlmas andmete ettevalmistamist, mudelikoolitust ja mudelite võrdlemist viitetõlkega. FP16 kasutamine FP32 asemel koolituse ajal võimaldas meil oluliselt lühendada keelemudelite koolitusaega ilma tõlkekvaliteeti halvendamata, kuid mitte kõik meie GPU-d ei toetanud seda.

Graafikaprotsessori valimisel on standardne võtta arvesse selliseid mõõdikuid nagu töötlemisvõimsus (TFLOPS), videomälu (VRAM), GPU etalontulemused, teegi ja raamistiku tugi, eelarve ja muud tegurid (graafikakaardi suurus ja vormitegur, võimsusnõuded, jahutus ja ühilduvus teie süsteemiga). Tekstide genereerimise mudelite koolitamisel tuleks silmas pidada ka seda, et erinevad keeled tarbivad erineval hulgal ressursse. Näiteks kasutatakse 1 baiti ühe märgi kodeerimiseks ladina keelte jaoks, 2 baiti kirillitsa keelte jaoks ja 3 baiti hieroglüüfe sisaldavate keelte jaoks. Teie graafikakaardi omaduste mõistmine mõjutab oluliselt õppeprotsessi kiirust.

Mudelite treenimisel kasutatud GPU-de osas jagati videokaardid kasutusperioodi järgi kahte gruppi: varased videokaardid, mille abil tehti esimesed õppimiskiiruse mõõtmised ning hetkel kasutusel olevad kaardid. Nende graafikakaartide põhiomadused leiate vastavalt tabelist 1 ja tabelist 2.

Tabel 1 - Varem kasutatud graafikaprotsessorid ja nende tehnilised parameetrid
 

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


Märkused
1. Kui CUDA on suurem kui 7,0, annab FP16 kasutamine treeningkiiruse tõusu, olenevalt CUDA versioonist ja graafikakaardi enda omadustest.
2. Kui graafikakaardi spetsifikatsioon näitab, et FP16 ja FP32 jõudluse suhe on suurem kui 1:1, siis segatäpsuse kasutamisel on garanteeritud treeningkiiruse suurendamine spetsifikatsioonis määratud summa võrra. Näiteks Quadro RTX 6000 puhul kiirendab FP16 TFLOPS väärtus 32,62 (2:1) treeningut vähemalt kaks korda (praktikas 2,4 korda)

Tabel 2 - Praegu kasutatavad GPU mudelid ja nende peamised omadused
 

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

* - FP16, TFLOPS ja FP32, TFLOPS väärtused on võetud spetsifikatsioonidest GPU kohta

GPU koolitus- ja testimisprotsess

Mudeleid treeniti 18 GPU komplekti abil. Närvivõrgu treenimise protsessis kasutasime arvukalt keelepaare (üle saja keele). GPU testid on aidanud tuvastada, milline riistvara konkreetsete ülesannete jaoks kõige paremini toimib. Meie keelepaaride treeningul võeti aluseks järgmised närvivõrgu parameetrid:
 

  • vocabi suurus = 30 000
  • numunits = 768
  • kihid = 6
  • pead = 16
  • sisemõõde = 4 096


Esiteks iseloomustame tabelist 1 lähtudes esimesse rühma kuulunud GPU-sid. Näitajate võrdlemisel võetakse aluseks aeg minutites ja sekundites, mis kulub mudeli treenimiseks ligikaudu kiirusega 1000 sammu ja partii suurusega 100 000 ühikut.

Rõhutame, et esimese rühma puhul viidi kiiruse mõõtmised läbi kasutades joondamine mehhanism ja ainult kasutades FP32(. Ilma seda mehhanismi kasutamata võib mõne serveri õppimiskiirus olla palju kiirem.

Joondusmehhanism võimaldab sobitada alus- ja tõlgitud teksti alamstringe. Vormindatud teksti, näiteks veebilehtede tõlkimiseks on vaja, kui lause alamstring võib olla esile tõstetud teises kirjas ja see tuleks tõlkida koos esiletõstmisega.

Võttes arvesse ülalmainitud närvivõrgu parameetreid, näitas parimat aega esimesest tabelist GPU Nvidia H100 õppimisajaga 22 minutit, ja vaheaega näitas sama kaubamärgi GeForce RTX 4060 Ti GPU õppeajaga 72 minutit ja viimase koha võttis GPU Tesla V100-SXM 2 õppeajaga 140 minutit.

GPU testis oli ka kaheksa Nvidia A10 kaarti õppimiskõveraga 20 minutit ja 28 sekundit, kaks Nvidia A40 kaarti ajaga 56 minutit ja kaks Tesla V100-SXM kaarti, mille taktsagedus oli 86 minutit. Sama seeria GPU mitme kaardi samaaegne rakendamine võib kiirendada mudelite treeningprotsessi ja näidata peaaegu sama aega suurema võimsusega GPU-dega, kuid selline tehnika ei pruugi olla rahaliselt ja protseduuriliselt piisavalt ratsionaalne. Õppimiskiiruse mõõtmiste tulemusi saab jälgida tabelis number 3.

Tabel 3 - Treeningaja mõõtmised varem kasutatud graafilistel kaartidel
 

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


Järgnevalt viime läbi hetkel kasutusel olevate graafika gaasipedaalide võrdleva analüüsi (tabel 2). Selle graafikaprotsessorite rühma jaoks viidi kiiruse mõõtmised läbi, kasutades joondamine mehhanism, samuti FP16 ja FP32 kasutamine. Kiiruse mõõtmised, sealhulgas see mehhanism ja segatäpsus, esitatakse allpool vastavalt tabelites 4 ja 5.

Niisiis, olles sellest tabelist mõõtnud GPU-de kiirust, võime öelda, et esikoha võttis RTX A4500 seeria GPU treeningajaga 31 minutit, kuid tuleb rõhutada, et selline treeningmudelite kiirus saadi kasutades kasutatud GPU ühikute arvu suurendamisega kuni 4-ni. Seda asjaolu arvestamata saab eelmainitud GPU treeningkiirus olema palju suurem, mis asetab selle lõpptabelis eelviimasele kohale.

Teisel kohal on Quadro RTX 6000 seeria GPU õppeajaga 47 minutit. Tuleb märkida, et selline treeningkiirus on pöördvõrdeline kasutatud protsessori ühikute arvuga, mis on võrdne neljaga. Ainult ühe sellise GPU kasutamine annaks kiirusekao umbes 3,2 korda ja sellest tulenevalt ligikaudu 153 minutit ning asetaks selle viimasele kohale.

Kolmanda rea võttis TITAN RTX seeria GPU ajaga 75 minutit ja 85 sekundit. See õppimiskiiruse skoor on tingitud 2 protsessori kasutamisest, mis vähendas mudeli treeningaega.

Treeningkiiruse poolest ühe ühiku arvus vaieldamatuks liidriks saab kindlasti GeForce RTX 3090 seeria GPU ajaga 78 minutit ja 26 sekundit. Selle GPU ühikute arvu suurendamine kiirendab mudeli treeningkiirust, mis möödub selgelt kõigist ülalmainitud GPU mudelitest. Mudeltreeningu ajamõõtmiste andmed on näha tabelis 4.

Tabel 4 - Keelemudeli treeningkiiruse võrdlev analüüs varem kasutatud GPU-del
 

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


Järgmised treeningkiiruse mõõtmised viidi läbi FP16 abil. Võrreldes FP32-ga võimaldab pooltäpsus vähendada mudelitreeningu ajal tarbitava mälu hulka ja kiirendada arvutamist GPU-s. Esituse täpsus on väiksem kui FP32 kasutamisel.

Mõõtes eelmisest tabelist FP32 kasutavate mudelite treeningaega, võib öelda, et närvivõrgu treeningaega vähendati ligi kaks korda. Tulemuslikkuse mõõtmise tulemuste põhjal võime tabelis 4 toodud masinõppe GPU võrdlusalustest täheldada, et GPU-de positsioonid jäid suures osas muutumatuks. Quadro RTX 6000 seeria kaart tõusis viiendalt positsioonilt kuuendale, edestades GeForce RTX 3090 GPU-d 96 sekundiga. Lõplikud numbrid on toodud tabelis 5.

Tabel 5 - Keelemudeli treeningkiiruse võrdlev analüüs varem kasutatud GPU-del
 

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

Korduma kippuvad küsimused (KKK)

Kas süvaõppeks tasub osta GPU?

GPU ostmine süvaõppeks võib oluliselt suurendada koolituse kiirust ja tõhusust, muutes selle väärt investeeringuks tõsiste projektide jaoks. Siiski tuleks otsuses arvesse võtta selliseid tegureid nagu eelarve, konkreetsed kasutusjuhtumid ja see, kas pilvelahendused võivad olla kulutõhusamad.

Milline GPU on süvaõppeks parim?

NVIDIA A100 peetakse sageli süvaõppe parimaks valikuks, pakkudes erakordset jõudlust ja mälu suurtele mudelitele. Eelarveteadlikele kasutajatele pakub NVIDIA RTX 3090 tugevaid võimalusi mudelite tõhusaks koolitamiseks.

Kas AMD või NVIDIA on süvaõppeks parem?

NVIDIAt eelistatakse üldiselt süvaõppeks selle tugeva tarkvaraökosüsteemi tõttu, mis suurendab jõudlust ja ühilduvust populaarsete raamistikega. Kuigi AMD GPU-d on paranenud, jäävad nad endiselt NVIDIA-st maha optimeerimise ja süvaõpperakenduste toe osas.

Kas GPU aitab NLP-s?

Jah, GPU-d kiirendavad märkimisväärselt närvivõrgu koolitust loomuliku keele töötlemise (NLP) alal, käsitledes tõhusalt paralleelarvutusi. See kiiruse suurendamine võimaldab kiiremat katsetamist ja iteratsiooni, mis parandab mudeli jõudlust ja lühendab treeningaega.

Ootavad veel põnevamad lugemised

Mis on kohapealne kõnetuvastus?

Mis on kohapealne kõnetuvastus?

September 19, 2024

Statistilise tähtsuse hindamine tõlkesüsteemis

Statistilise tähtsuse hindamine tõlkesüsteemis

September 10, 2024

Kõnetuvastus turunduses

Kõnetuvastus turunduses

August 23, 2024

Võtke meiega ühendust

0/250
* Tähistab nõutavat välja

Teie privaatsus on meie jaoks ülimalt oluline; teie andmeid kasutatakse ainult kontakteesmärkidel.

Meil

Lõpetatud

Teie taotlus on edukalt saadetud

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