Işimiz üçin dil modellerini yzygiderli taýýarlaýarys. Toparymyz dürli meseleler üçin saýlanan onlarça dürli wideo kartany ulanýar: bir ýerde güýçli DGX stansiýasy gerek, bir ýerde RTX 2080Ti ýaly köne oýun kartoçkasy ýeterlik. Model okuwy üçin iň amatly GPU-ny saýlamak, prosesiň tizligine we çykdajylylygyna ep-esli derejede täsir edip biler.
Gyzykly zat, internetde maşyn öwrenmek üçin GPU deňeşdirmesi bilen birnäçe makalanyň bolmagy, ýöne dil modelini taýýarlamagyň tizligine gaty az üns berýär. Esasan diňe gözleg synaglary tapylýar. Täze H100 çipi çykanda, NVidia-nyň hasabatynda okuwda A100-den dokuz esse çaltdygy, ýöne wezipelerimiz üçin täze kartoçkanyň köne kartadan bary-ýogy 90% çaltdygy aýdylýar. Deňeşdirmek üçin, bulut üpjün edijilerimiziň bu GPU-laryň arasynda 2x baha tapawudy bardy, şonuň üçin pul tygşytlamak üçin täze H100-e geçmegiň manysy ýokdy.
Mundan başga-da, 8 A100 80 Gb grafiki kartadan ybarat we aýda 10 müň dollar bahasy bolan DGX stansiýasyny synagdan geçirdik. Synagdan soň, bu stansiýanyň bahasy/öndürijilik gatnaşygy bize asla laýyk gelmeýändigi we bu pul üçin 66 x RTX 3090 alyp biljekdigimiz belli boldy, bu bolsa jemi has peýdaly bolar.
Terjime dil modellerimiziň 500 million parametri bar (ortaça 100 milliondan 300 milliona çenli). Parametrleriň sanyny ep-esli artdyrsak, DGX-iň bahasy/öndürijilik gatnaşygy has gowy bolmagy mümkin. Häzirki wagtda ähli dilleriň arasynda birbada dürli dillerde terjime edip bilýän, ýöne her dil jübüti üçin aýratyn dil modellerini ulanmaýarys. Iňlis-nemes. Şeýle modelleriň her biri 120-300 Mb aralygynda bolýar.
Dürli dilleriň internetde we şol bir wagtyň özünde dürli mukdarda maglumatlaryň bardygyny bellemelidiris. Mysal üçin, ispan dilinde terjimeler bilen 500 million sözlem tapyp bilersiňiz, ýöne Tibet ýaly seýrek diller üçin modeller taýýarlanylanda, bar bolan maglumatlara esaslanýan maşyn öwrenmek meseleleri üçin belli bir GPU saýlamaly bolarsyňyz. Iňlis dilinden ispan diline terjime modelini döretmek üçin 4 x RTX 4500 we 256GB RAM bilen serwer ulanýarys. Şol bir wagtyň özünde, Tibet dilini RTX 2080 Ti-de 16 Gb RAM bilen öwredip bolýar, sebäbi nerw ulgamynyň çylşyrymlylygyny ýokarlandyrmagyň we netijede az mukdarda maglumat bilen has güýçli serweri almagyň manysy ýok.
Grafiki prosessorlary we teoretiki şekilleri saýlamak
Dil modeli okuwy, OpenNMT-tf çarçuwasyny ulanyp, içerki Data Studio platformamyzda geçirildi. Bu etapda maglumatlary taýýarlamak, model okuwy we salgylanma terjimesi bilen model deňeşdirmesi bar. Okuw wagtynda FP32 ýerine FP16 ulanmak, terjime hilini peseltmezden dil modelleriniň okuw wagtyny ep-esli azaltmaga mümkinçilik berdi, ýöne GPU-larymyzyň hemmesi muny goldamady.
Grafiki prosessor saýlanyňyzda gaýtadan işleýiş güýji (TFLOPS), wideo ýady (VRAM), GPU ölçeg netijeleri, kitaphana we çarçuwany goldamak, býudjet we beýleki faktorlar (grafiki kartoçkanyň ululygy we forma faktory, güýç talaplary) ýaly ölçegleri göz öňünde tutmak adaty zat, sowatmak we ulgamyňyz bilen utgaşyklyk). Tekst döretmek modellerini öwredeniňizde, dürli dilleriň dürli mukdarda serişdeleri sarp etjekdigini hem ýadyňyzdan çykarmaly däldirsiňiz. Mysal üçin, latyn dilleri üçin bir nyşan, kiril dilleri üçin 2 baýt we ieroglifleri öz içine alýan diller üçin 3 baýt kodlamak üçin 1 baýt ulanylýar. Grafiki kartaňyzyň haýsy aýratynlyklara eýe boljakdygyna düşünmek, okuw prosesiniň tizligine ep-esli täsir edýär.
Modelleri ulanylan GPU-lar boýunça öwredende, wideo kartalar ulanylyş döwrüne görä iki topara bölündi: okuw tizliginiň ilkinji ölçeglerini amala aşyrmak üçin ulanylýan irki wideo kartalar we häzirki wagtda ulanylýan kartoçkalar. Bu grafiki kartalaryň esasy aýratynlyklaryny degişlilikde 1-nji tablisada we 2-nji tablisada tapyp bilersiňiz.
1-nji tablisa - Öň ulanylan grafiki prosessorlar we olaryň tehniki parametrleri
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 |
Bellikler
1. CUDA 7.0-den uly bolsa, FP16 ulanmak, CUDA wersiýasyna we grafiki kartanyň aýratynlyklaryna baglylykda okuw tizligini ýokarlandyrar.
2. Grafiki kartanyň spesifikasiýasy FP16-dan FP32 öndürijilik gatnaşygynyň 1-den 1-e çenli uludygyny görkezýän bolsa, garyşyk takyklygy ulanmak spesifikasiýada görkezilen mukdar boýunça okuw tizligini ýokarlandyrmagy kepillendiriler. Mysal üçin, Quadro RTX 6000 üçin 32.62 (2: 1) FP16 TFLOPS bahasy azyndan iki gezek (iş ýüzünde 2,4 gezek) tizlener
2-nji tablisa - Häzirki wagtda ulanylýan GPU modelleri we olaryň esasy aýratynlyklary
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 |
* - FP16,TFLOPS we FP32,TFLOPS üçin bahalar GPU-nyň spesifikasiýalaryndan alyndy
GPU okuw we synag prosesi
Modeller 18 GPU toplumyny ulanyp tälim aldy. Nerw ulgamyny öwretmek prosesinde köp sanly dil jübütlerini (ýüzden gowrak dil) ulandyk. GPU synaglary haýsy enjamyň belli bir meseleler üçin iň gowy ýerine ýetirýändigini kesgitlemäge kömek etdi. Dil jübütlerimizi taýýarlamakda esas hökmünde aşakdaky nerw ulgamynyň parametrleri alyndy:
- vocab ululygy = 30 000
- sanlar = 768
- gatlaklar = 6
- kelleleri = 16
- içki ölçeg = 4 096
Ilki bilen, 1-nji tablisa esaslanýan birinji topara degişli GPU-lary häsiýetlendireliň. Görkezijileri deňeşdirmek üçin esas hökmünde modeli takmynan 1000 ädim we partiýa ululygyndaky 100,000 birlikden birnäçe minut we sekuntda sarp ediler.
Birinji topar üçin tizlik ölçegleriniň ulanylyşy bilen geçirilendigini belläris deňleşdirmek mehanizm we diňe ulanmak FP32ÿ ÿAG. Bu mehanizmi ulanman, käbir serwerlerde okuw tizligi has çalt bolup biler.
Düzediş mehanizmi bazadaky we terjime edilen tekstdäki substratlara gabat gelmäge mümkinçilik berýär. Web sahypalary ýaly formatlanan teksti terjime etmek zerur, sözlemdäki substring başga şriftde görkezilip bilner we tapawutlandyryjy bilen terjime edilmeli.
Nerw ulgamynyň ýokarda agzalan parametrlerini göz öňünde tutup, birinji tablisadan iň gowy wagt GPU Nvidia H100 tarapyndan okuw wagty 22 minut bilen görkezildi, aralyk wagt, şol bir marka GeForce RTX 4060 Ti-iň GPU tarapyndan okuw wagty 72 minut bilen görkezildi we iň soňky ýeri GPU Tesla V100-SXM 2 okuw wagty 140 minut bilen aldy.
Şeýle hem GPU synagynda 20 minut 28 sekunt egrilik bilen sekiz sany Nvidia A10 kartoçkasy, 56 minutlyk iki sany Nvidia A40 kartoçkasy we 86 minutda iki sany Tesla V100-SXM kartoçkasy bardy. Şol bir GPU seriýaly birnäçe kartoçkanyň bir wagtyň özünde ulanylmagy modelleriň okuw prosesini çaltlaşdyryp biler we has ýokary kuwwatly GPU-lar bilen bir wagtyň özünde görkezip biler, ýöne beýle usul maddy we prosessual taýdan ýeterlik bolup bilmez. Okuw tizligini ölçemegiň netijelerini 3-nji tablisada synlamak bolýar.
3-nji tablisa - Öň ulanylan grafiki kartalarda okuw wagtynyň ölçegleri
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 |
Ondan soň, häzirki wagtda ulanylýan grafiki gaz pedallarynyň deňeşdirme derňewini geçireliň (2-nji tablisa). Grafiki prosessorlaryň bu topary üçin tizlik ölçegleri ulanyldy deňleşdirmek FP16 we FP32 ulanmak bilen mehanizm. Bu mehanizmi we garyşyk takyklygy öz içine alýan tizlik ölçegleri degişlilikde 4-nji we 5-nji tablisalarda görkeziler.
Şeýlelik bilen, bu tablisadan GPU-laryň tizligini ölçäp, birinji ýeri RTX A4500 seriýaly GPU 31 minutlyk okuw wagty bilen alandygyny aýdyp bileris, ýöne okuw modelleriniň şeýle tizliginiň alnandygyny bellemek gerek. ulanylan GPU birlikleriniň sanyny 4-e çenli köpeltmek. Bu hakykaty hasaba almasaň, ýokarda agzalan GPU-nyň okuw tizligi has ýokary bolar, bu bolsa ony soňky tablisada iň soňky ýerde goýar.
Okuw wagty 47 minut bolan Quadro RTX 6000 seriýaly GPU ikinji ýerde. Şeýle okuw tizliginiň dört adama deň bolan ulanylýan prosessoryň birlikleriniň sany bilen ters şertlendirilendigini bellemelidiris. Şeýle GPU-dan diňe birini ulanmak takmynan 3,2 gezek tizlik ýitirer we netijede takmynan 153 minut bolup, iň soňky ýerde goýar.
Üçünji setir, TITAN RTX seriýasy GPU tarapyndan 75 minut 85 sekunt wagt aldy. Bu okuw tizliginiň baly, modeliň okuw wagtyny azaldýan 2 prosessoryň ulanylmagy bilen baglanyşyklydyr.
Bir bölümiň sany boýunça okuw tizligi boýunça jedelsiz lider, 78 minut 26 sekunt wagt bilen GeForce RTX 3090 seriýaly GPU bolar. Bu GPU birlikleriniň sanyny köpeltmek, ýokarda agzalan GPU modelleriniň hemmesinden öňe geçjek model okuw tizligini çaltlaşdyrar. Model okuw wagtynyň ölçegleri baradaky maglumatlary 4-nji tablisada görmek bolýar.
4-nji tablisa - Öň ulanylan GPU-larda dil modeliniň okuw tizliginiň deňeşdirme derňewi
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 |
FP16 ulanyp, aşakdaky okuw tizligini ölçemek geçirildi. FP32 bilen deňeşdirilende, ýarym takyklyk model okuwynda sarp edilýän ýadyň mukdaryny azaltmaga we GPU-da hasaplamany çaltlaşdyrmaga mümkinçilik berýär. Wekilçiligiň takyklygy FP32 ulanylyşyndan has pes bolar.
Öňki tablisadaky FP32 ulanýan modelleriň okuw wagtyny ölçäp, nerw ulgamynyň okuw wagtynyň takmynan iki esse azalandygyny aýdyp bileris. Öndürijilik ölçeg netijelerine esaslanyp, 4-nji tablisadaky GPU görkezijilerini öwrenýän maşynlardan GPU-laryň pozisiýalarynyň düýpgöter üýtgemändigini synlap bileris. "Quadro RTX 6000" seriýaly kartoçka, GeForce RTX 3090 GPU-ny 96 sekuntda ýeňip, bäşinji orundan altynjy orna çykdy. Soňky sanlar 5-nji tablisada görkezilýär.
5-nji tablisa - Öň ulanylan GPU-larda dil modeliniň okuw tizliginiň deňeşdirme derňewi
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 |