અમે અમારા કામ માટે ભાષાના મોડલને સતત તાલીમ આપી રહ્યા છીએ. અમારી ટીમ વિવિધ કાર્યો માટે પસંદ કરેલા ડઝનેક વિવિધ વિડિયો કાર્ડનો ઉપયોગ કરે છે: ક્યાંક અમને શક્તિશાળી DGX સ્ટેશનની જરૂર છે, અને ક્યાંક RTX 2080Ti જેવું જૂનું ગેમિંગ કાર્ડ પૂરતું છે. મોડેલ તાલીમ માટે શ્રેષ્ઠ GPU પસંદ કરવાથી પ્રક્રિયાની ઝડપ અને ખર્ચ-અસરકારકતા બંનેને નોંધપાત્ર રીતે અસર થઈ શકે છે.
રસપ્રદ વાત એ છે કે મશીન લર્નિંગ માટે GPU સરખામણી સાથે ઇન્ટરનેટ પર ઘણા બધા લેખો છે, પરંતુ ભાષા મોડેલ તાલીમ માટેની ઝડપ પર બહુ ઓછા ધ્યાન કેન્દ્રિત કરે છે. મોટે ભાગે માત્ર અનુમાન પરીક્ષણો જોવા મળે છે. જ્યારે નવી H100 ચિપ બહાર પાડવામાં આવી હતી, ત્યારે NVidiaના અહેવાલમાં જણાવવામાં આવ્યું હતું કે તે તાલીમમાં A100 કરતાં નવ ગણી ઝડપી હતી, પરંતુ અમારા કાર્યો માટે, નવું કાર્ડ જૂના કરતાં માત્ર 90% ઝડપી હતું. તુલનાત્મક રીતે, અમારા ક્લાઉડ પ્રદાતાઓમાં આ GPU વચ્ચે 2x કિંમતનો તફાવત હતો, તેથી નાણાં બચાવવા માટે નવા H100 પર સ્વિચ કરવાનો કોઈ અર્થ નહોતો.
તે ઉપરાંત, અમે એક DGX સ્ટેશનનું પરીક્ષણ કર્યું, જેમાં 8 A100 80GB ગ્રાફિક્સ કાર્ડ છે અને દર મહિને 10 હજાર ડોલરનો ખર્ચ થાય છે. પરીક્ષણ પછી, તે સ્પષ્ટ થઈ ગયું કે આ સ્ટેશનનો ભાવ/પ્રદર્શન ગુણોત્તર અમને બિલકુલ અનુકૂળ નથી અને આ પૈસા માટે, અમે 66 x RTX 3090 લઈ શકીએ છીએ, જે કુલ વધુ ઉપયોગી થશે.
અમારા અનુવાદ ભાષાના મોડેલોમાં 500 મિલિયન પરિમાણો (સરેરાશ 100 મિલિયનથી 300 મિલિયન) છે. શક્ય છે કે જો આપણે પરિમાણોની સંખ્યામાં નોંધપાત્ર વધારો કરીએ, તો ડીજીએક્સનો ભાવ/પ્રદર્શન ગુણોત્તર વધુ સારો રહેશે. હાલમાં, અમે મોટા ભાષાના મોડલને તાલીમ આપતા નથી કે જે તમામ ભાષાઓ વચ્ચે એકસાથે તમામ વિવિધતાઓમાં અનુવાદ કરી શકે, પરંતુ દરેક ભાષાની જોડી માટે અલગ-અલગ ભાષાના મોડલનો ઉપયોગ કરીએ, દા.ત. અંગ્રેજી-જર્મન. આવા દરેક મોડલ 120 થી 300 Mb સુધી લે છે.
એ નોંધવું યોગ્ય છે કે વિવિધ ભાષાઓમાં ઈન્ટરનેટ પર અલગ-અલગ માત્રામાં ડેટા હોય છે, અને જ્યારે. ઉદાહરણ તરીકે, સ્પેનિશ માટે, તમે અનુવાદો સાથે 500 મિલિયન વાક્યો શોધી શકો છો, પરંતુ જ્યારે તિબેટીયન જેવી દુર્લભ ભાષાઓ માટે મોડેલો તાલીમ આપવામાં આવે છે, ત્યારે તમારે ઉપલબ્ધ ડેટાના આધારે મશીન લર્નિંગ કાર્યો માટે ચોક્કસ GPU પસંદ કરવાની જરૂર છે. અંગ્રેજીથી સ્પેનિશમાં અનુવાદ મોડેલ બનાવવા માટે, અમે 4 x RTX 4500 અને 256GB RAM સાથે સર્વરનો ઉપયોગ કરીએ છીએ. તે જ સમયે, તિબેટીયન ભાષાને RTX 2080 Ti પર 16GB RAM સાથે તાલીમ આપી શકાય છે, કારણ કે તે ન્યુરલ નેટવર્કની જટિલતાને વધારવાનો અને પરિણામે, થોડી માત્રામાં ડેટા સાથે વધુ શક્તિશાળી સર્વર લેવાનો કોઈ અર્થ નથી.
ગ્રાફિક્સ પ્રોસેસર્સ અને સૈદ્ધાંતિક આકૃતિઓ પસંદ કરી રહ્યા છીએ
ઓપનએનએમટી-ટીએફ ફ્રેમવર્કનો ઉપયોગ કરીને અમારા આંતરિક ડેટા સ્ટુડિયો પ્લેટફોર્મ પર ભાષા મોડેલની તાલીમ લેવામાં આવી હતી. આ તબક્કામાં ડેટા તૈયારી, મોડેલ તાલીમ અને સંદર્ભ અનુવાદ સાથે મોડેલ સરખામણીનો સમાવેશ થાય છે. તાલીમ દરમિયાન FP32 ને બદલે FP16 નો ઉપયોગ કરવાથી અમને અનુવાદની ગુણવત્તામાં ઘટાડો કર્યા વિના ભાષા મોડલના તાલીમ સમયને નોંધપાત્ર રીતે ઘટાડવાની મંજૂરી મળી, પરંતુ અમારા તમામ GPU એ તેને સમર્થન આપ્યું નથી.
ગ્રાફિક્સ પ્રોસેસર પસંદ કરતી વખતે, પ્રોસેસિંગ પાવર (TFLOPS), વિડિયો મેમરી (VRAM), GPU બેન્ચમાર્ક પરિણામો, લાઇબ્રેરી અને ફ્રેમવર્ક સપોર્ટ, બજેટ અને અન્ય પરિબળો (ગ્રાફિક્સ કાર્ડનું કદ અને ફોર્મ ફેક્ટર, પાવર આવશ્યકતાઓ) જેવા મેટ્રિક્સને ધ્યાનમાં લેવું પ્રમાણભૂત છે, ઠંડક અને તમારી સિસ્ટમ સાથે સુસંગતતા). ટેક્સ્ટ જનરેશન મોડલ્સને તાલીમ આપતી વખતે, તમારે એ પણ ધ્યાનમાં રાખવું જોઈએ કે વિવિધ ભાષાઓ વિવિધ પ્રમાણમાં સંસાધનોનો ઉપયોગ કરશે. ઉદાહરણ તરીકે, 1 બાઈટનો ઉપયોગ લેટિન ભાષાઓ માટે એક અક્ષર, સિરિલિક ભાષાઓ માટે 2 બાઈટ અને હિયેરોગ્લિફ્સ ધરાવતી ભાષાઓ માટે 3 બાઈટનો ઉપયોગ થાય છે. તમારા ગ્રાફિક્સ કાર્ડમાં કઈ લાક્ષણિકતાઓ હશે તે સમજવું શીખવાની પ્રક્રિયાની ઝડપ પર નોંધપાત્ર અસર કરે છે.
ઉપયોગમાં લેવાતા GPU ના સંદર્ભમાં મોડલ્સને તાલીમ આપતી વખતે, વિડિયો કાર્ડને ઉપયોગના સમયગાળા અનુસાર બે જૂથોમાં વિભાજિત કરવામાં આવ્યા હતા: પ્રારંભિક વિડિયો કાર્ડ્સ, જેનો ઉપયોગ શીખવાની ગતિના પ્રથમ માપન કરવા માટે કરવામાં આવતો હતો, અને હાલમાં ઉપયોગમાં લેવાતા કાર્ડ્સ. આ ગ્રાફિક્સ કાર્ડ્સની મુખ્ય લાક્ષણિકતાઓ અનુક્રમે કોષ્ટક 1 અને કોષ્ટક 2 માં મળી શકે છે.
કોષ્ટક 1 - અગાઉ ઉપયોગમાં લેવાતા ગ્રાફિક્સ પ્રોસેસર્સ અને તેમના તકનીકી પરિમાણો
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 |
નોંધો
1. CUDA 7.0 થી વધુ સાથે, FP16 નો ઉપયોગ CUDA સંસ્કરણ અને ગ્રાફિક્સ કાર્ડની લાક્ષણિકતાઓના આધારે તાલીમની ઝડપમાં વધારો કરશે.
2. જો ગ્રાફિક્સ કાર્ડનું સ્પષ્ટીકરણ સૂચવે છે કે FP16 થી FP32 પ્રદર્શન ગુણોત્તર 1 થી 1 કરતા વધારે છે, તો મિશ્ર ચોકસાઇનો ઉપયોગ કરીને સ્પષ્ટીકરણમાં ઉલ્લેખિત રકમ દ્વારા તાલીમની ઝડપ વધારવાની ખાતરી આપવામાં આવશે. ઉદાહરણ તરીકે, Quadro RTX 6000 માટે 32.62 (2:1) નું FP16 TFLOPS મૂલ્ય ઓછામાં ઓછા બે વખત (વ્યવહારમાં 2.4 વખત) વર્કઆઉટને ઝડપી બનાવશે
કોષ્ટક 2 - હાલમાં ઉપયોગમાં લેવાતા GPU મોડલ્સ અને તેમની મુખ્ય લાક્ષણિકતાઓ
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 અને FP32,TFLOPS માટેના મૂલ્યો GPU દીઠ સ્પષ્ટીકરણોમાંથી લેવામાં આવ્યા છે
GPU તાલીમ અને પરીક્ષણ પ્રક્રિયા
મોડલ્સને 18 GPU ના સમૂહનો ઉપયોગ કરીને તાલીમ આપવામાં આવી હતી. ન્યુરલ નેટવર્ક તાલીમની પ્રક્રિયામાં, અમે અસંખ્ય ભાષા જોડીઓ (સોથી વધુ ભાષાઓ) નો ઉપયોગ કર્યો. GPU પરીક્ષણોએ ચોક્કસ કાર્યો માટે કયું હાર્ડવેર શ્રેષ્ઠ પ્રદર્શન કરે છે તે ઓળખવામાં મદદ કરી છે. આપણી ભાષાની જોડીની તાલીમ દરમિયાન, નીચેના ન્યુરલ નેટવર્ક પરિમાણોને આધાર તરીકે લેવામાં આવ્યા હતા:
- vocab કદ = 30 000
- ન્યુમ્યુનિટ્સ = 768
- સ્તરો = 6
- હેડ્સ = 16
- આંતરિક પરિમાણ = 4 096
પ્રથમ, ચાલો કોષ્ટક 1 પર આધારિત પ્રથમ જૂથના GPU ને લાક્ષણિકતા આપીએ. સૂચકોની સરખામણી કરવા માટેના આધાર તરીકે 1,000 પગલાંની અંદાજિત ઝડપે મોડેલને તાલીમ આપવા માટે ખર્ચવામાં આવેલ મિનિટ અને સેકન્ડનો સમય અને 100,000 એકમોના બેચ સાઈઝ મલ્ટિપલ લેવામાં આવશે.
અમે ભારપૂર્વક જણાવીએ છીએ કે પ્રથમ જૂથ માટે, ઝડપ માપન ના ઉપયોગ સાથે કરવામાં આવ્યું હતું ગોઠવણી મિકેનિઝમ અને માત્ર ઉપયોગ FP32. આ મિકેનિઝમનો ઉપયોગ કર્યા વિના કેટલાક સર્વર્સ પર શીખવાની ઝડપ ઘણી ઝડપી હોઈ શકે છે.
સંરેખણ પદ્ધતિ આધાર અને અનુવાદિત ટેક્સ્ટમાં મેચિંગ સબસ્ટ્રિંગ્સને મંજૂરી આપે છે. જ્યારે વાક્યમાં સબસ્ટ્રિંગને અલગ ફોન્ટમાં હાઇલાઇટ કરી શકાય અને હાઇલાઇટિંગ સાથે અનુવાદિત કરવું જોઈએ ત્યારે વેબ પૃષ્ઠો જેવા ફોર્મેટેડ ટેક્સ્ટનું ભાષાંતર કરવું જરૂરી છે.
ન્યુરલ નેટવર્કના ઉપરોક્ત પરિમાણોને ધ્યાનમાં લેતા, પ્રથમ કોષ્ટકમાંથી શ્રેષ્ઠ સમય GPU Nvidia H100 દ્વારા 22 મિનિટના શીખવાના સમય સાથે બતાવવામાં આવ્યો હતો અને મધ્યવર્તી સમય એ જ બ્રાન્ડ GeForce RTX 4060 Ti ના GPU દ્વારા 72 મિનિટના શીખવાના સમય સાથે બતાવવામાં આવ્યો હતો અને છેલ્લું સ્થાન GPU Tesla V100-SXM 2 દ્વારા 140 મિનિટના શીખવાના સમય સાથે લેવામાં આવ્યું હતું.
GPU ટેસ્ટમાં 20 મિનિટ અને 28 સેકન્ડના લર્નિંગ કર્વ સાથે આઠ Nvidia A10 કાર્ડ, 56 મિનિટના સમય સાથે બે Nvidia A40 કાર્ડ અને બે ટેસ્લા V100-SXM કાર્ડ પણ હતા જે 86 મિનિટે આવ્યા હતા. GPU ની સમાન શ્રેણીના બહુવિધ કાર્ડ્સનો એકસાથે ઉપયોગ મોડલ્સની તાલીમ પ્રક્રિયાને ઝડપી બનાવી શકે છે અને GPUs સાથે લગભગ એક જ સમય બતાવી શકે છે જેમાં ઉચ્ચ ક્ષમતા હોય છે, પરંતુ આવી તકનીક નાણાકીય અને પ્રક્રિયાગત રીતે પૂરતી તર્કસંગત ન હોઈ શકે. શીખવાની ઝડપ માપનના પરિણામો કોષ્ટક નંબર 3 માં જોઈ શકાય છે.
કોષ્ટક 3 - અગાઉ ઉપયોગમાં લેવાતા ગ્રાફિકલ નકશા પર તાલીમ સમય માપન
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 |
આગળ, ચાલો હાલમાં ઉપયોગમાં લેવાતા ગ્રાફિક્સ ગેસ પેડલ્સનું તુલનાત્મક વિશ્લેષણ કરીએ (કોષ્ટક 2). ગ્રાફિક્સ પ્રોસેસર્સના આ જૂથ માટે, ઝડપ માપનો ઉપયોગ કરીને કરવામાં આવ્યો હતો ગોઠવણી મિકેનિઝમ, તેમજ FP16 અને FP32 નો ઉપયોગ. આ મિકેનિઝમ અને મિશ્ર ચોકસાઇ સહિત ઝડપ માપન અનુક્રમે કોષ્ટકો 4 અને 5 માં નીચે રજૂ કરવામાં આવશે.
તેથી, આ કોષ્ટકમાંથી જીપીયુની ઝડપને માપ્યા પછી, આપણે કહી શકીએ કે પ્રથમ સ્થાન આરટીએક્સ એ 4500 શ્રેણીના જીપીયુ દ્વારા 31 મિનિટના તાલીમ સમય સાથે લેવામાં આવ્યું હતું, પરંતુ તે પર ભાર મૂકવો જોઈએ કે તાલીમ મોડેલોની આવી ગતિ પ્રાપ્ત થઈ હતી. વપરાયેલ જીપીયુના એકમોની સંખ્યા વધારીને 4 સુધી. આ હકીકતની અવગણના કરીને, ઉપરોક્ત GPU ની તાલીમની ઝડપ ઘણી વધારે હશે, જે તેને અંતિમ કોષ્ટકમાં અંતિમ સ્થાને મૂકશે.
47 મિનિટના શીખવાના સમય સાથે Quadro RTX 6000 શ્રેણીનું GPU બીજા સ્થાને છે. એ નોંધવું જોઈએ કે આવી તાલીમ ઝડપ વપરાયેલ પ્રોસેસરના એકમોની સંખ્યા દ્વારા વિપરીત રીતે કન્ડિશન્ડ છે, જે ચાર જેટલી છે. આવા માત્ર એક GPU નો ઉપયોગ કરવાથી લગભગ 3.2 ગણી ઝડપ ઘટશે અને પરિણામે તે લગભગ 153 મિનિટ હશે અને તેને છેલ્લા સ્થાને મૂકશે.
ત્રીજી લાઇન TITAN RTX શ્રેણી GPU દ્વારા 75 મિનિટ અને 85 સેકન્ડના સમય સાથે લેવામાં આવી હતી. આ લર્નિંગ સ્પીડ સ્કોર 2 પ્રોસેસર્સના ઉપયોગને કારણે છે, જેણે મોડલનો તાલીમ સમય ઘટાડ્યો હતો.
એક યુનિટની સંખ્યામાં તાલીમની ઝડપના સંદર્ભમાં નિર્વિવાદ નેતા ચોક્કસપણે 78 મિનિટ અને 26 સેકન્ડના સમય સાથે GeForce RTX 3090 શ્રેણીનું GPU હશે. આ GPU ના એકમોની સંખ્યામાં વધારો કરવાથી મોડલ તાલીમની ઝડપને વેગ મળશે, જે ઉપરોક્ત તમામ GPU મોડલ્સને સ્પષ્ટપણે પાછળ છોડી દેશે. મોડેલ તાલીમ સમય માપન પરનો ડેટા કોષ્ટક 4 માં જોઈ શકાય છે.
કોષ્ટક 4 - અગાઉ ઉપયોગમાં લેવાતા GPUs પર ભાષા મોડેલ તાલીમ ગતિનું તુલનાત્મક વિશ્લેષણ
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 નો ઉપયોગ કરીને નીચેની તાલીમ ગતિ માપન કરવામાં આવ્યું હતું. FP32 ની તુલનામાં, અર્ધ-ચોકસાઇ મોડેલ તાલીમ દરમિયાન ઉપયોગમાં લેવાતી મેમરીની માત્રા ઘટાડવા અને GPU પર ગણતરીને વેગ આપવા માટે પરવાનગી આપે છે. રજૂઆતની ચોકસાઈ FP32 ના ઉપયોગ કરતાં ઓછી હશે.
અગાઉના કોષ્ટકમાંથી FP32 નો ઉપયોગ કરીને મોડેલોના તાલીમ સમયને માપતા, અમે કહી શકીએ કે ન્યુરલ નેટવર્કનો તાલીમ સમય લગભગ બે ગણો ઓછો થયો હતો. પ્રદર્શન માપન પરિણામોના આધારે, અમે કોષ્ટક 4 માં મશીન લર્નિંગ GPU બેન્ચમાર્ક પરથી અવલોકન કરી શકીએ છીએ કે GPU ની સ્થિતિ મોટાભાગે યથાવત રહી છે. Quadro RTX 6000 સિરીઝ કાર્ડ પાંચમા સ્થાનેથી છઠ્ઠા સ્થાને પહોંચ્યું, GeForce RTX 3090 GPU ને 96 સેકન્ડથી હરાવી. અંતિમ સંખ્યાઓ કોષ્ટક 5 માં બતાવવામાં આવી છે.
કોષ્ટક 5 - અગાઉ ઉપયોગમાં લેવાતા GPUs પર ભાષા મોડેલ તાલીમ ગતિનું તુલનાત્મક વિશ્લેષણ
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 |