Biz doimiy ravishda ishimiz uchun til modellarini o'rgatamiz. Bizning jamoamiz turli vazifalar uchun tanlangan o'nlab turli xil video kartalardan foydalanadi: qayerdadir bizga kuchli DGX stantsiyasi kerak va qayerdadir RTX 2080Ti kabi eski o'yin kartasi etarli. Modelni o'qitish uchun optimal GPUni tanlash jarayonning tezligiga ham, iqtisodiy samaradorligiga ham sezilarli ta'sir ko'rsatishi mumkin.
Qizig'i shundaki, Internetda mashinani o'rganish uchun GPU taqqoslangan bir nechta maqolalar mavjud, ammo til modellarini o'qitish tezligiga juda kam e'tibor qaratilgan. Ko'pincha faqat xulosa testlari topiladi. Yangi H100 chipi chiqarilganda, NVidia hisobotida aytilishicha, u mashg'ulotlarda A100 dan to'qqiz baravar tezroq bo'lgan, ammo bizning vazifalarimiz uchun yangi karta eskisidan atigi 90% tezroq edi. Taqqoslash uchun, bizning bulutli provayderlarimiz ushbu GPUlar o'rtasida 2x narx farqiga ega edi, shuning uchun pulni tejash uchun yangi H100 ga o'tishdan foyda yo'q edi.
Bundan tashqari, biz 8 ta A100 80 Gb grafik kartadan iborat va oyiga 10 ming dollar turadigan DGX stantsiyasini sinovdan o'tkazdik. Sinovdan so'ng, ushbu stantsiyaning narx/ishlash nisbati bizga umuman mos kelmasligi ma'lum bo'ldi va bu pul uchun biz 66 x RTX 3090 ni olishimiz mumkin, bu umuman olganda ancha foydali bo'ladi.
Tarjima tilidagi modellarimiz 500 milliongacha parametrga ega (o‘rtacha 100 milliondan 300 milliongacha). Agar parametrlar sonini sezilarli darajada oshirsak, DGX narxi/ishlash nisbati yaxshiroq bo'lishi mumkin. Hozirda biz bir vaqtning o'zida barcha tillar o'rtasida barcha o'zgarishlarda tarjima qila oladigan katta til modellarini o'rgatmaymiz, lekin har bir til juftligi uchun alohida til modellaridan foydalanamiz, masalan. Ingliz-nemis. Bunday modellarning har biri 120 dan 300 Mb gacha.
Shuni ta'kidlash kerakki, turli tillarda Internetda va shu bilan birga turli xil ma'lumotlar mavjud. Misol uchun, ispan tili uchun tarjimalar bilan 500 million jumlani topishingiz mumkin, ammo Tibet kabi kam uchraydigan tillar uchun modellarni o'rgatishda mavjud ma'lumotlar asosida mashinani o'rganish vazifalari uchun maxsus GPU tanlashingiz kerak. Ingliz tilidan ispan tiliga tarjima modelini yaratish uchun biz 4 x RTX 4500 va 256 GB operativ xotiraga ega serverdan foydalanamiz. Shu bilan birga, Tibet tilini RTX 2080 Ti da 16 GB operativ xotiraga ega o'rgatish mumkin, chunki neyron tarmoqning murakkabligini oshirish va natijada oz miqdordagi ma'lumotlarga ega kuchliroq serverni olish mantiqiy emas.
Grafik protsessorlar va nazariy raqamlarni tanlash
Til modelini o'qitish bizning ichki Data Studio platformamizda OpenNMT-tf ramkasidan foydalangan holda o'tkazildi. Ushbu bosqich ma'lumotlarni tayyorlash, modellarni o'qitish va ma'lumotnoma tarjimasi bilan modelni taqqoslashni o'z ichiga oladi. Trening davomida FP32 o'rniga FP16 dan foydalanish tarjima sifatini pasaytirmasdan til modellarini o'qitish vaqtini sezilarli darajada qisqartirishga imkon berdi, ammo barcha GPUlarimiz buni qo'llab-quvvatlamadi.
Grafik protsessorni tanlashda ishlov berish quvvati (TFLOPS), video xotira (VRAM), GPU benchmark natijalari, kutubxona va ramkani qo'llab-quvvatlash, byudjet va boshqa omillar (grafik karta o'lchami va shakl omili, quvvat talablari) kabi ko'rsatkichlarni hisobga olish standartdir, sovutish va tizimingiz bilan moslik). Matn yaratish modellarini o'rgatishda, shuningdek, turli tillar turli xil resurslarni iste'mol qilishini yodda tutishingiz kerak. Masalan, lotin tillari uchun bitta belgini, kirill tillari uchun 2 baytni va ierogliflarni o'z ichiga olgan tillar uchun 3 baytni kodlash uchun 1 bayt ishlatiladi. Sizning grafik kartangiz qanday xususiyatlarga ega bo'lishini tushunish o'quv jarayonining tezligiga sezilarli ta'sir ko'rsatadi.
Modellarni ishlatiladigan GPUlar bo'yicha o'rgatishda video kartalar foydalanish davriga ko'ra ikki guruhga bo'lingan: o'rganish tezligini birinchi o'lchash uchun ishlatilgan dastlabki video kartalar va hozirda foydalanilayotgan kartalar. Ushbu grafik kartalarning asosiy xususiyatlarini mos ravishda 1-jadval va 2-jadvalda topish mumkin.
1-jadval - Ilgari ishlatilgan grafik protsessorlar va ularning texnik parametrlari
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 |
Eslatmalar
1. CUDA 7.0 dan yuqori bo'lsa, FP16 dan foydalanish CUDA versiyasiga va grafik kartaning o'ziga xos xususiyatlariga qarab mashg'ulot tezligini oshiradi.
2. Agar grafik kartaning spetsifikatsiyasi FP16 dan FP32 gacha ishlash nisbati 1 dan 1 gacha ekanligini ko'rsatsa, aralash aniqlikdan foydalanish mashg'ulot tezligini spetsifikatsiyada ko'rsatilgan miqdorga oshirish kafolatlanadi. Masalan, Quadro RTX 6000 uchun FP16 TFLOPS qiymati 32,62 (2:1) mashqni kamida ikki marta (amalda 2,4 marta) tezlashtiradi
2-jadval - Hozirda GPU modellari va ularning asosiy xususiyatlaridan foydalanilgan
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 va FP32,TFLOPS uchun qiymatlar GPU uchun spetsifikatsiyalardan olingan
GPU o'qitish va sinov jarayoni
Modellar 18 GPU to'plami yordamida o'qitildi. Neyron tarmoqlarini o'qitish jarayonida biz ko'plab til juftlaridan (yuzdan ortiq tillar) foydalandik. GPU testlari qaysi apparat muayyan vazifalar uchun eng yaxshi ishlashini aniqlashga yordam berdi. Til juftlarimizni tayyorlash jarayonida quyidagi neyron tarmoq parametrlari asos qilib olindi:
- vocab hajmi = 30 000
- numunits = 768
- qatlamlar = 6
- boshlar = 16
- ichki o'lcham = 4 096
Birinchidan, keling, 1-jadvalga asoslanib, birinchi guruhga tegishli bo'lgan GPUlarni tavsiflaylik. Ko'rsatkichlarni solishtirish uchun asos sifatida modelni taxminan 1000 qadam tezlikda o'rgatish uchun sarflangan daqiqalar va soniyalardagi vaqt va partiya o'lchami 100 000 birlikdan ko'p bo'ladi.
Biz ta'kidlaymizki, birinchi guruh uchun tezlikni o'lchashlar ishlatilgan tekislash mexanizm va faqat foydalanish FP32Žum. Ushbu mexanizmdan foydalanmasdan, ba'zi serverlarda o'rganish tezligi ancha tez bo'lishi mumkin.
Hizalama mexanizmi taglik va tarjima qilingan matndagi pastki qatorlarni moslashtirish imkonini beradi. Gapdagi pastki qator boshqa shriftda ta'kidlanishi va ta'kidlash bilan tarjima qilinishi kerak bo'lganda, veb-sahifalar kabi formatlangan matnni tarjima qilish kerak.
Neyron tarmog'ining yuqorida aytib o'tilgan parametrlarini hisobga olgan holda, birinchi jadvaldagi eng yaxshi vaqt GPU Nvidia H100 tomonidan 22 daqiqalik o'rganish vaqti bilan ko'rsatilgan va oraliq vaqtni xuddi shu GeForce RTX 4060 Ti brendining GPU 72 daqiqa o'rganish vaqti bilan ko'rsatdi va oxirgi o'rinni GPU Tesla V100-SXM 2 140 daqiqa o'rganish vaqti bilan egalladi.
Shuningdek, GPU testida o‘rganish egri chizig‘i 20 daqiqa 28 soniya bo‘lgan sakkizta Nvidia A10 kartasi, 56 daqiqalik ikkita Nvidia A40 kartasi va 86 daqiqada ishlaydigan ikkita Tesla V100-SXM kartasi mavjud edi. Bir vaqtning o'zida bir xil GPU seriyasining bir nechta kartalarini qo'llash modellarni o'qitish jarayonini tezlashtirishi va yuqori imkoniyatlarga ega bo'lgan GPU bilan deyarli bir vaqtning o'zida ko'rsatishi mumkin, ammo bunday usul moliyaviy va protsessual jihatdan etarlicha oqilona bo'lmasligi mumkin. O'rganish tezligini o'lchash natijalarini 3-jadvalda kuzatish mumkin.
3-jadval - Ilgari ishlatilgan grafik xaritalarda o'quv vaqtini o'lchash
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 |
Keyinchalik, keling, hozirda ishlatilayotgan grafik gaz pedallarining qiyosiy tahlilini amalga oshiraylik (2-jadval). Ushbu grafik protsessorlar guruhi uchun tezlikni o'lchash yordamida amalga oshirildi tekislash mexanizm, shuningdek, FP16 va FP32 dan foydalanish. Ushbu mexanizm va aralash aniqlikni o'z ichiga olgan tezlik o'lchovlari quyida mos ravishda 4 va 5 jadvallarda keltirilgan.
Shunday qilib, ushbu jadvaldan GPU tezligini o'lchab, shuni aytishimiz mumkinki, birinchi o'rinni RTX A4500 seriyali GPU 31 daqiqalik mashg'ulot vaqti bilan egalladi, ammo shuni ta'kidlash kerakki, o'quv modellarining bunday tezligi olingan. ishlatilgan GPU birliklari sonini 4 tagacha oshirish. Ushbu haqiqatni hisobga olmaganda, yuqorida aytib o'tilgan GPUning mashg'ulot tezligi ancha yuqori bo'ladi, bu esa uni yakuniy jadvalda oxirgi o'ringa qo'yadi.
47 daqiqa o'rganish vaqti bilan Quadro RTX 6000 seriyali GPU ikkinchi o'rinda. Shuni ta'kidlash kerakki, bunday o'quv tezligi ishlatilgan protsessorning to'rttaga teng bo'lgan birliklari soniga teskari shartlangan. Faqat bitta bunday GPUdan foydalanish taxminan 3,2 marta tezlikni yo'qotadi va shuning uchun taxminan 153 daqiqa davom etadi va uni oxirgi o'ringa qo'yadi.
Uchinchi qator TITAN RTX seriyali GPU tomonidan 75 daqiqa 85 soniya vaqt bilan qabul qilindi. Ushbu o'rganish tezligi balli 2 ta protsessordan foydalanish bilan bog'liq bo'lib, bu modelning o'quv vaqtini qisqartirdi.
Bir birlik soni bo'yicha mashg'ulot tezligi bo'yicha shubhasiz etakchi, albatta, 78 daqiqa 26 soniya vaqt bilan GeForce RTX 3090 seriyali GPU bo'ladi. Ushbu GPU birliklari sonini ko'paytirish modelni o'qitish tezligini tezlashtiradi, bu yuqorida aytib o'tilgan barcha GPU modellarini aniq ortda qoldiradi. Modelni o'qitish vaqtini o'lchash bo'yicha ma'lumotlarni 4-jadvalda ko'rish mumkin.
4-jadval - Ilgari ishlatilgan GPUlarda til modelini o'qitish tezligini qiyosiy tahlil qilish
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 |
Quyidagi mashg'ulot tezligi o'lchovlari FP16 yordamida amalga oshirildi. FP32 bilan solishtirganda, yarim aniqlik modelni o'qitish paytida iste'mol qilinadigan xotira miqdorini kamaytirish va GPUda hisoblashni tezlashtirish imkonini beradi. Taqdimotning aniqligi FP32 dan foydalanishga qaraganda pastroq bo'ladi.
Oldingi jadvaldagi FP32 dan foydalangan holda modellarni tayyorlash vaqtini o'lchab, shuni aytishimiz mumkinki, neyron tarmoqning mashg'ulot vaqti deyarli ikki baravar qisqardi. Ishlashni o'lchash natijalariga asoslanib, biz 4-jadvaldagi GPU mezonlarini mashinani o'rganishdan kuzatishimiz mumkinki, GPUlarning pozitsiyalari deyarli o'zgarmagan. Quadro RTX 6000 seriyali karta GeForce RTX 3090 GPUni 96 soniyaga ortda qoldirib, beshinchi o‘rindan oltinchi o‘ringa ko‘tarildi. Yakuniy raqamlar 5-jadvalda ko'rsatilgan.
5-jadval - Ilgari ishlatilgan GPUlarda til modelini o'qitish tezligini qiyosiy tahlil qilish
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 |