Kita terus nglatih model basa kanggo karya kita. Tim kita nggunakake Welasan kertu video beda milih kanggo tugas beda: nang endi wae kita kudu stasiun DGX kuat, lan nang endi wae kertu game lawas kaya RTX 2080Ti cukup. Milih GPU sing optimal kanggo latihan model bisa nyebabake kacepetan lan efektifitas biaya proses kasebut.
Sing menarik yaiku ana sawetara artikel ing internet kanthi perbandingan GPU kanggo pembelajaran mesin, nanging mung sawetara fokus ing kacepetan kanggo latihan model basa. Umume mung tes inferensi sing ditemokake. Nalika chip H100 anyar dirilis, laporan NVidia nyatakake yen nganti sangang kaping luwih cepet tinimbang A100 ing latihan, nanging kanggo tugas kita, kertu anyar mung 90% luwih cepet tinimbang sing lawas. Miturut perbandingan, panyedhiya awan kita duwe prabédan rega 2x ing antarane GPU kasebut, mula ora ana gunane ngalih menyang H100 anyar kanggo ngirit dhuwit.
Kajaba iku, kita njupuk kanggo test stasiun DGX, kang kasusun saka 8 kertu grafis A100 80GB lan biaya 10 ewu dolar saben sasi. Sawise tes, dadi cetha yen rasio rega/kinerja stasiun iki ora cocog karo kita lan kanggo dhuwit iki, kita bisa njupuk 66 x RTX 3090, sing total bakal luwih migunani.
Model basa terjemahan kita duwe nganti 500 yuta parameter (rata-rata 100 yuta nganti 300 yuta). Bisa uga yen kita nambah jumlah paramèter kanthi signifikan, rasio rega/kinerja DGX bakal luwih apik. Saiki, kita ora nglatih model basa gedhe sing bisa nerjemahake antarane kabeh basa ing kabeh variasi bebarengan, nanging nggunakake model basa sing kapisah kanggo saben pasangan basa, contone Inggris-Jerman. Saben model kasebut njupuk saka 120 nganti 300 Mb.
Wigati dicathet yen basa sing beda-beda duwe jumlah data sing beda ing Internet, lan nalika. Contone, kanggo basa Spanyol, sampeyan bisa nemokake 500 yuta ukara kanthi terjemahan, nanging nalika nglatih model kanggo basa sing luwih langka kaya Tibet, sampeyan kudu milih GPU khusus kanggo tugas sinau mesin adhedhasar data sing kasedhiya. Kanggo nggawe model terjemahan saka Inggris menyang Spanyol, kita nggunakake server karo 4 x RTX 4500 lan 256GB RAM. Ing wektu sing padha, basa Tibet bisa dilatih ing RTX 2080 Ti kanthi RAM 16GB, amarga ora ana gunane kanggo nambah kerumitan jaringan saraf lan, minangka asil, njupuk server sing luwih kuat kanthi jumlah data sing sithik.
Milih prosesor grafis lan tokoh teoritis
Latihan model basa ditindakake ing platform Studio Data internal kita nggunakake kerangka OpenNMT-tf. Tahap iki kalebu persiapan data, latihan model, lan perbandingan model karo terjemahan referensi. Nggunakake FP16 tinimbang FP32 sajrone latihan ngidini kita nyuda wektu latihan model basa kanthi signifikan tanpa ngrusak kualitas terjemahan, nanging ora kabeh GPU ndhukung.
Nalika milih prosesor grafis, standar kanggo nimbang metrik kayata daya pangolahan (TFLOPS), memori video (VRAM), asil pathokan GPU, dhukungan perpustakaan lan kerangka kerja, anggaran, lan faktor liyane (ukuran kertu grafis lan faktor wujud, syarat daya, pendinginan, lan kompatibilitas karo sistem sampeyan). Nalika nglatih model generasi teks, sampeyan uga kudu eling yen basa sing beda-beda bakal nggunakake sumber daya sing beda-beda. Contone, 1 bait digunakake kanggo ngode siji karakter kanggo basa Latin, 2 bita kanggo basa Sirilik, lan 3 bita kanggo basa sing ngemot hieroglif. Ngerteni karakteristik apa sing bakal diduweni kertu grafis sampeyan duwe pengaruh sing signifikan marang kacepetan proses sinau.
Nalika nglatih model babagan GPU sing digunakake, kertu video dipérang dadi rong klompok miturut periode panggunaan: kertu video awal, sing digunakake kanggo ngukur kacepetan sinau, lan kertu sing saiki digunakake. Karakteristik utama kertu grafis kasebut bisa ditemokake ing Tabel 1 lan Tabel 2.
Tabel 1 - Prosesor grafis sing sadurunge digunakake lan paramèter teknis
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 |
Cathetan
1. Kanthi CUDA luwih saka 7.0, nggunakake FP16 bakal menehi ngedongkrak ing kacepetan latihan, gumantung ing versi CUDA lan karakteristik saka kertu grafis dhewe.
2. Yen specification saka kertu grafis nuduhake yen rasio kinerja FP16 kanggo FP32 luwih saka 1 kanggo 1, banjur nggunakake tliti mixed bakal dijamin kanggo nambah kacepetan latihan dening jumlah kasebut ing specification. Contone, kanggo Quadro RTX 6000 Nilai FP16 TFLOPS 32,62 (2: 1) bakal nyepetake latihan paling ora kaping pindho (2,4 kaping ing laku)
Tabel 2 - Model GPU sing saiki digunakake lan karakteristik utama
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 |
* - nilai kanggo FP16,TFLOPS lan FP32,TFLOPS dijupuk saka specifications saben GPU
Proses latihan lan tes GPU
Model kasebut dilatih nggunakake set 18 GPU. Ing proses latihan jaringan saraf, kita nggunakake akeh pasangan basa (luwih saka satus basa). Tes GPU wis mbantu ngenali hardware sing paling apik kanggo tugas tartamtu. Sajrone latihan pasangan basa kita, paramèter jaringan saraf ing ngisor iki dijupuk minangka basis:
- ukuran Vocab = 30 000
- numunit = 768
- lapisan = 6
- kepala = 16
- dimensi batin = 4 096
Kaping pisanan, ayo dadi ciri GPU sing kalebu klompok pisanan adhedhasar Tabel 1. Wektu ing menit lan detik kanggo nglatih model kanthi kacepetan kira-kira 1.000 langkah lan sawetara ukuran batch 100.000 unit bakal dijupuk minangka basis kanggo mbandhingake indikator kasebut.
We nandheske sing kanggo klompok pisanan, pangukuran kacepetan dileksanakake karo nggunakake keselarasan mekanisme lan mung nggunakake FP32. Tanpa nggunakake mekanisme iki, kacepetan sinau ing sawetara server bisa luwih cepet.
Mekanisme alignment ngidini substrings cocog ing basa lan teks terjemahan. Perlu nerjemahake teks sing diformat, kayata kaca web, nalika substring ing ukara bisa disorot nganggo font sing beda lan kudu diterjemahake nganggo sorotan.
Nganggep paramèter jaringan saraf sing kasebut ing ndhuwur, wektu paling apik saka tabel pisanan dituduhake dening GPU Nvidia H100 kanthi wektu sinau 22 menit lan wektu penengah dituduhake dening GPU saka merek padha GeForce RTX 4060 Ti karo wektu learning 72 menit lan panggonan pungkasan dijupuk dening GPU Tesla V100-SXM 2 karo wektu learning 140 menit.
Ana uga wolung kertu Nvidia A10 ing tes GPU kanthi kurva sinau 20 menit lan 28 detik, rong kertu Nvidia A40 kanthi wektu 56 menit, lan rong kertu Tesla V100-SXM sing jam 86 menit. Aplikasi bebarengan saka macem-macem kertu saka seri GPU padha bisa nyepetake proses latihan model lan nuduhake meh padha karo GPUs sing duwe kapasitas luwih, nanging technique kuwi bisa uga ora cukup nyoto financial lan prosedural. Asil pangukuran kacepetan sinau bisa diamati ing Tabel nomer 3.
Tabel 3 - Pangukuran wektu latihan ing peta grafis sing digunakake sadurunge
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 |
Sabanjure, ayo nindakake analisis komparatif pedal gas grafis sing saiki digunakake (Tabel 2). Kanggo klompok prosesor grafis iki, pangukuran kacepetan ditindakake kanthi nggunakake keselarasan mekanisme, uga nggunakake FP16 lan FP32. Pangukuran kacepetan kalebu mekanisme iki lan presisi campuran bakal ditampilake ing ngisor iki ing Tabel 4 lan 5.
Dadi, sawise ngukur kacepetan GPU saka tabel iki, kita bisa ujar manawa papan pisanan dijupuk dening GPU seri RTX A4500 kanthi wektu latihan 31 menit, nanging kudu ditekanake manawa model latihan kasebut dipikolehi kanthi nambah jumlah unit GPU bekas nganti 4. Ora nggatekake kasunyatan kasebut, kacepetan latihan GPU sing kasebut ing ndhuwur bakal luwih dhuwur, sing bakal dilebokake ing papan penultimate ing tabel pungkasan.
GPU seri Quadro RTX 6000 kanthi wektu sinau 47 menit ana ing posisi kaping pindho. Sampeyan kudu nyatet sing kacepetan latihan kuwi kuwalik kahanan dening nomer Unit prosesor digunakake, kang padha karo papat. Nggunakake mung siji GPU kuwi bakal menehi mundhut kacepetan bab 3,2 kaping lan Akibate bakal kira-kira 153 menit lan sijine ing panggonan pungkasan.
Baris katelu dijupuk dening GPU seri TITAN RTX kanthi wektu 75 menit lan 85 detik. Skor kacepetan sinau iki amarga nggunakake 2 prosesor, sing nyuda wektu latihan model.
Pimpinan sing ora bisa dipungkiri babagan kacepetan latihan ing jumlah siji unit mesthi bakal dadi GPU seri GeForce RTX 3090 kanthi wektu 78 menit lan 26 detik. Nambah jumlah unit GPU iki bakal nyepetake kacepetan latihan model, sing bakal nyusul kabeh model GPU sing kasebut ing ndhuwur. Data babagan pangukuran wektu latihan model bisa dideleng ing Tabel 4.
Tabel 4 - Analisis komparatif kacepetan latihan model basa ing GPU sing digunakake sadurunge
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 |
Pangukuran kacepetan latihan ing ngisor iki ditindakake nggunakake FP16. Dibandhingake karo FP32, setengah presisi ngidini nyuda jumlah memori sing dikonsumsi sajrone latihan model lan nyepetake komputasi ing GPU. Akurasi perwakilan bakal luwih murah tinimbang nggunakake FP32.
Ngukur wektu latihan model nggunakake FP32 saka tabel sadurunge, kita bisa ngomong yen wektu latihan jaringan saraf wis suda meh kaping pindho. Adhedhasar asil pangukuran kinerja, kita bisa mirsani saka benchmarks GPU machine learning ing Tabel 4 sing posisi GPUs tetep umumé panggah. Kertu seri Quadro RTX 6000 munggah saka posisi kaping lima menyang posisi kaping enem, ngalahake GPU GeForce RTX 3090 kanthi 96 detik. Nomer pungkasan ditampilake ing Tabel 5.
Tabel 5 - Analisis komparatif kacepetan latihan model basa ing GPU sing digunakake sadurunge
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 |