ہم اپنے کام کے لیے زبان کے ماڈلز کو مسلسل تربیت دے رہے ہیں۔. ہماری ٹیم مختلف کاموں کے لئے منتخب کردہ درجنوں مختلف ویڈیو کارڈ استعمال کرتی ہے: کہیں ہمیں ایک طاقتور ڈی جی ایکس اسٹیشن کی ضرورت ہے، اور کہیں RTX 2080Ti جیسے پرانے گیمنگ کارڈ کافی ہے. ماڈل ٹریننگ کے لیے بہترین GPU کا انتخاب اس عمل کی رفتار اور لاگت کی تاثیر دونوں کو نمایاں طور پر متاثر کر سکتا ہے۔.
دلچسپ بات یہ ہے کہ مشین لرننگ کے لیے GPU موازنہ کے ساتھ انٹرنیٹ پر بہت سے مضامین ہیں، لیکن زبان کے ماڈل کی تربیت کے لیے رفتار پر بہت کم توجہ دی گئی ہے۔. زیادہ تر صرف انفرنس ٹیسٹ پائے جاتے ہیں۔. جب نئی H100 چپ جاری کی گئی تو NVidia کی رپورٹ میں کہا گیا کہ یہ تربیت میں A100 سے نو گنا زیادہ تیز تھی، لیکن ہمارے کاموں کے لیے، نیا کارڈ پرانے کارڈ سے صرف 90% تیز تھا۔. اس کے مقابلے میں، ہمارے کلاؤڈ فراہم کنندگان میں ان GPUs کے درمیان قیمت کا 2x فرق تھا، اس لیے پیسے بچانے کے لیے نئے H100 پر سوئچ کرنے کا کوئی فائدہ نہیں تھا۔.
اس کے علاوہ، ہم نے ایک ڈی جی ایکس اسٹیشن کا امتحان لیا، جس میں 8 A100 80GB گرافکس کارڈ شامل ہیں اور ہر ماہ 10 ہزار ڈالر کی لاگت آتی ہے. ٹیسٹ کے بعد، یہ واضح ہو گیا کہ اس اسٹیشن کی قیمت/کارکردگی کا تناسب ہمارے لیے بالکل بھی مناسب نہیں ہے اور اس رقم کے لیے، ہم 66 x RTX 3090 لے سکتے ہیں، جو کہ مجموعی طور پر بہت زیادہ کارآمد ہوگا۔.
ہمارے ترجمہ زبان کے ماڈل 500 ملین پیرامیٹرز (اوسط طور پر 100 ملین سے 300 ملین) تک ہیں. یہ ممکن ہے کہ اگر ہم پیرامیٹرز کی تعداد میں نمایاں اضافہ کرتے ہیں، تو DGX کی قیمت/کارکردگی کا تناسب بہتر ہوگا۔. فی الحال، ہم بڑے زبان کے ماڈل کو تربیت نہیں دیتے ہیں جو تمام زبانوں کے درمیان تمام مختلف حالتوں میں ایک ساتھ ترجمہ کرسکتے ہیں، لیکن ہر زبان کے جوڑے کے لئے الگ الگ زبان کے ماڈل استعمال کرتے ہیں، مثال کے طور پر. انگریزی-جرمن۔. ایسے ماڈلز میں سے ہر ایک 120 سے 300 Mb تک لیتا ہے۔.
یہ بات قابل غور ہے کہ انٹرنیٹ پر مختلف زبانوں میں ڈیٹا کی مختلف مقدار ہوتی ہے، اور جب کہ۔. مثال کے طور پر، ہسپانوی کے لئے، آپ ترجمہ کے ساتھ 500 ملین جملے تلاش کرسکتے ہیں، لیکن جب تبتی جیسی نایاب زبانوں کے لئے تربیتی ماڈل، آپ کو دستیاب اعداد و شمار کی بنیاد پر مشین سیکھنے کے کاموں کے لئے ایک مخصوص GPU منتخب کرنے کی ضرورت ہے. انگریزی سے ہسپانوی میں ترجمہ ماڈل بنانے کے لئے، ہم 4 x RTX 4500 اور 256GB RAM کے ساتھ سرور استعمال کرتے ہیں. ایک ہی وقت میں، تبتی زبان کو RTX 2080 Ti پر 16GB RAM کے ساتھ تربیت دی جا سکتی ہے، کیونکہ عصبی نیٹ ورک کی پیچیدگی کو بڑھانا اور اس کے نتیجے میں، تھوڑی مقدار میں ڈیٹا کے ساتھ زیادہ طاقتور سرور لینا کوئی معنی نہیں رکھتا۔.
گرافکس پروسیسرز اور نظریاتی اعداد و شمار کا انتخاب۔
زبان کے ماڈل کی تربیت ہمارے اندرونی ڈیٹا اسٹوڈیو پلیٹ فارم پر OpenNMT-tf فریم ورک کا استعمال کرتے ہوئے ہوئی۔. اس مرحلے میں ڈیٹا کی تیاری، ماڈل کی تربیت، اور حوالہ ترجمہ کے ساتھ ماڈل کا موازنہ شامل تھا۔. تربیت کے دوران FP32 کے بجائے FP16 استعمال کرنے سے ہمیں ترجمے کے معیار کو کم کیے بغیر زبان کے ماڈلز کے تربیتی وقت کو نمایاں طور پر کم کرنے کا موقع ملا، لیکن ہمارے تمام GPUs نے اس کی حمایت نہیں کی۔.
گرافکس پروسیسر کا انتخاب کرتے وقت، پروسیسنگ پاور (TFLOPS)، ویڈیو میموری (VRAM)، GPU بینچ مارک کے نتائج، لائبریری اور فریم ورک سپورٹ، بجٹ، اور دیگر عوامل (گرافکس کارڈ کا سائز اور فارم فیکٹر، بجلی کی ضروریات) جیسے میٹرکس پر غور کرنا معیاری ہے۔، کولنگ، اور آپ کے سسٹم کے ساتھ مطابقت)۔. ٹیکسٹ جنریشن ماڈلز کی تربیت کرتے وقت، آپ کو یہ بھی ذہن میں رکھنا چاہیے کہ مختلف زبانیں مختلف مقدار میں وسائل استعمال کریں گی۔. مثال کے طور پر، لاطینی زبانوں کے لیے ایک حرف کو انکوڈ کرنے کے لیے 1 بائٹ، سیریلک زبانوں کے لیے 2 بائٹس، اور ہیروگلیفس والی زبانوں کے لیے 3 بائٹس استعمال کیے جاتے ہیں۔. یہ سمجھنا کہ آپ کے گرافکس کارڈ کی کیا خصوصیات ہوں گی سیکھنے کے عمل کی رفتار پر نمایاں اثر پڑتا ہے۔.
استعمال شدہ GPUs کے لحاظ سے ماڈلز کو تربیت دیتے وقت، ویڈیو کارڈز کو استعمال کی مدت کے مطابق دو گروپوں میں تقسیم کیا گیا تھا: ابتدائی ویڈیو کارڈز، جو سیکھنے کی رفتار کی پہلی پیمائش کرنے کے لیے استعمال کیے گئے تھے، اور کارڈز جو فی الحال استعمال میں ہیں۔. ان گرافکس کارڈز کی اہم خصوصیات بالترتیب ٹیبل 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 کے لیے FP16 TFLOPS ویلیو 32.62 (2:1) کم از کم دو بار (عملی طور پر 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 GPUs کے سیٹ کا استعمال کرتے ہوئے تربیت دی گئی تھی۔. نیورل نیٹ ورک کی تربیت کے عمل میں، ہم نے متعدد زبانوں کے جوڑے (سو سے زیادہ زبانیں) استعمال کیے۔. GPU ٹیسٹوں نے اس بات کی نشاندہی کرنے میں مدد کی ہے کہ کون سا ہارڈ ویئر مخصوص کاموں کے لیے بہترین کارکردگی کا مظاہرہ کرتا ہے۔. ہماری زبان کے جوڑوں کی تربیت کے دوران، درج ذیل نیورل نیٹ ورک کے پیرامیٹرز کو بنیاد کے طور پر لیا گیا تھا
- vocab سائز = 30 000
- numunits = 768
- پرتیں = 6۔
- ہیڈز = 16۔
- اندرونی طول و عرض = 4 096
سب سے پہلے، آئیے ان GPUs کی خصوصیت کریں جو ٹیبل 1 کی بنیاد پر پہلے گروپ سے تعلق رکھتے تھے۔. ماڈل کو 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 کارڈز، اور دو Tesla 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 میں ذیل میں پیش کی جائے گی۔.
لہذا، اس ٹیبل سے GPUs کی رفتار کی پیمائش کرنے کے بعد، ہم کہہ سکتے ہیں کہ پہلا مقام RTX A4500 سیریز GPU نے 31 منٹ کے تربیتی وقت کے ساتھ لیا تھا، لیکن اس بات پر زور دیا جانا چاہیے کہ تربیتی ماڈلز کی اتنی رفتار حاصل کی گئی تھی۔ استعمال شدہ GPU کے یونٹوں کی تعداد 4 تک بڑھا کر۔. اس حقیقت کو نظر انداز کرتے ہوئے، مذکورہ GPU کی تربیت کی رفتار بہت زیادہ ہوگی، جو اسے فائنل ٹیبل میں آخری جگہ پر رکھے گی۔.
Quadro RTX 6000 سیریز GPU 47 منٹ کے سیکھنے کے وقت کے ساتھ دوسرے نمبر پر ہے۔. واضح رہے کہ اس طرح کی تربیت کی رفتار استعمال شدہ پروسیسر کے یونٹس کی تعداد سے الٹا مشروط ہے، جو کہ چار کے برابر ہے۔. ایسے صرف ایک 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 بینچ مارکس سے مشاہدہ کر سکتے ہیں کہ GPUs کی پوزیشنیں بڑی حد تک تبدیل نہیں ہوئیں۔. 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 |