عصبی نیٹ ورک YaLM 100B عملی طور پر۔

Программирование

جون کے آخر میں، Yandex
نے عوام کے لیے YaLM 100B نامی 100 بلین پیرامیٹرز کے ساتھ ایک نیورل نیٹ ورک جاری کیا ۔ یہ عوامی ڈومین میں سب سے بڑا GPT جیسا نیورل نیٹ ورک ہے۔ یہ بتاتا ہے کہ انہوں نے کس طرح سکھایا، بہترین مثالیں دکھائیں اور نیوران کیا قابل ہے۔ لیکن کیا یہ عملی طور پر اتنا اچھا اور گھر پر لاگو ہے؟ مضمون اس بارے میں خاموش ہے، مزید یہ کہ اسے چلانا اور چیک کرنا اتنا آسان نہیں ہے، کیونکہ تقریباً 200 جی بی جی پی یو ریم کی ضرورت ہے۔ Habré پر
یہ تبصرہ صورتحال کو درست طریقے سے ظاہر کرتا ہے
۔

مبینہ طور پر، Yandex میں، ایسے تمام ہوشیار لوگ، اور انہوں نے عام طریقہ بھی پوسٹ نہیں کیا۔ بڑے ماڈل کے لیے کوئی اے پی آئی نہیں ہے، عام لوگوں کے لیے کوئی ریڈی میڈ سٹرپڈ ڈاؤن میڈیم یا چھوٹا ماڈل نہیں ہے (گوگل کولاب میں)۔ ماڈل کو کیسے ترتیب دیا جائے، متن کیسے تیار کیا جائے اس کی کوئی مثال نہیں دی گئی ہے۔ یہ صرف اتنا ہے کہ مضمون بیوقوفوں کے لئے کچھ باریکیوں کی نشاندہی کرتا ہے اور بس۔ یہ کافی ہے کہ اس پر گہری نظر ڈالیں کہ بینک نے “C” حرف کے ساتھ یہ کیسے کیا اور وہی کریں۔ مجھے یہ تاثر ملا کہ یہ ماڈل ان ناکام تجربات میں سے صرف ایک ہے جسے ردی کی ٹوکری میں پھینکنا افسوسناک تھا، اس لیے اسے اوپن سورس میں پوسٹ کیا گیا تاکہ یہ ظاہر کیا جا سکے کہ Yandex کیا زبردست ماڈل بناتا ہے، اور اس کے علاوہ، یہ اوپن سورس ہے!

انٹرنیٹ پر بہت سارے سوالات ہیں کہ یالم کو کیسے چلایا جائے یا آن لائن کیسے آزمایا جائے، لیکن اس کا کوئی جواب نہیں ہے۔ میں ان صارفین میں شامل تھا جنہوں نے یہ سوالات پوچھے۔ اور اس کا پتہ لگانے کے بارے میں سیٹ کریں۔ چونکہ مجھے واقعی مالیاتی روبوٹس کے لیے متن تیار کرنے کا ایک طریقہ درکار تھا۔ تاکہ وہ مالیاتی رپورٹس کی بنیاد پر نہ صرف اقدار کی پیشین گوئی کر سکیں بلکہ متن میں اس پر تبصرہ بھی کر سکیں۔ خلاصہ یہ کہ یہ وہی ہوگا جو مالیاتی تجزیہ کار کرتے ہیں، صرف مصنوعی ذہانت کے استعمال سے۔ یالم چلانے کے دو طریقے ہیں۔
کلاؤڈ میں ایک سرور کرایہ پر لیں۔200+ Gb GPU RAM کے ساتھ یا کوڈ میں ترمیم کریں اور ڈیپ اسپیڈ صفر آف لوڈ کے ساتھ چلائیں (جب GPU ترتیب وار نیورل نیٹ ورک کے کچھ حصے پر کارروائی کرتا ہے، اور باقی کو CPU RAM یا NVMe میں محفوظ کیا جاتا ہے)۔ پہلا بہت مہنگا ہے، تقریباً 2500 روبل فی گھنٹہ یا 1.7 ملین فی مہینہ۔ دوسرا نامعلوم، کیونکہ ریپوزٹری میں کوڈ فراہم نہیں کیا گیا ہے، صرف
ریپوزٹری کے مسئلے میں اشارے ہیں ، جو کرنا مشکل نہیں ہے۔ آئیے سادہ شروع کرتے ہیں۔

YaLM 100B لانچ کی ہدایات

1. ہم 200 GB GPU RAM کرایہ پر لیتے ہیں، مثال کے طور پر یہاں ۔

عصبی نیٹ ورک YaLM 100B عملی طور پر۔

آپ کو کل ویڈیو میموری کی کم از کم 200 GB کی ضرورت ہے۔ 8×40 = 320 جی بی۔ صرف یہ ایک فٹ بیٹھتا ہے۔ 200 سے کم ناممکن ہے، زیادہ ممکن ہے۔ تیر سی پی یو ریم کی طرف اشارہ کرتا ہے، ہم اسے نہیں دیکھتے۔ وہ کوئی بھی ہو سکتا ہے۔

ہم تقریبا 300 GB کی ایک ڈسک کی نشاندہی کرتے ہیں، تاکہ اسپیئر اور ترجیحا ایک تیز ڈسک کے ساتھ، کیونکہ. اس میں اور اس سے دسیوں گیگا بائٹس ڈیٹا منتقل کیا جائے گا۔

عصبی نیٹ ورک YaLM 100B عملی طور پر۔ ذرائع میں تخلیق کرتے وقت، Ubuntu ML (مشین لرننگ) کو منتخب کریں۔ یہ لازمی ہے تاکہ ویڈیو کارڈز کنفیگر ہو جائیں اور اس کے علاوہ کسی بھی چیز کو انسٹال کرنے کی ضرورت نہیں ہے۔

سرور بناتے وقت، کوٹے کے ساتھ باریکیاں ہوتی ہیں، آپ کو یہ احساس ہوسکتا ہے کہ آلات دستیاب نہیں ہیں، لیکن درحقیقت آپ کو صرف سیٹنگز میں کوٹہ بڑھانے کی ضرورت ہے۔ سرور کے فعال ہونے کے بعد (اس میں 5-10 منٹ لگ سکتے ہیں)، سرور سے ssh کے ذریعے یا براہ راست سرور کے صفحے پر ویب کنسول میں جڑیں اور کمانڈ پر عمل کریں۔

nvidia-smi

نتیجہ ویڈیو کارڈ، ڈرائیور ورژن اور cuda کے ساتھ ایک میز ہونا چاہئے. تقریباً اس طرح۔
عصبی نیٹ ورک YaLM 100B عملی طور پر۔ ڈرائیور ورژن ہیڈر میں اور کہاں۔ بائیں جانب ڈیوائس نمبرز ہیں، درمیان میں ڈیوائس میموری کا سائز ہے۔ اگر آپ کے پاس یہ معلومات نہیں ہیں، تو آپ نے سرور کو غلط ذریعہ سے اکٹھا کیا ہے۔ جیسا کہ اوپر بیان کیا گیا ہے، Ubuntu ML (مشین لرننگ) کی ضرورت ہے۔

2. YaLM کے ساتھ ذخیرہ کو کلون کریں۔

سوڈو گٹ کلون https://github.com/yandex/YaLM-100B/ یالم
سی ڈی یالم

اپنے ہوم فولڈر میں کلون کریں تاکہ آپ کو بعد میں ڈوکر کنفیگریشن میں ترمیم کرنے کی ضرورت نہ پڑے۔ اگر کسی اور جگہ کلون کیا گیا ہے، تو
یہاں جائیں اور جہاں کلون کیا گیا ہے وہاں کا راستہ شامل کریں۔

3. چیک پوائنٹس ڈاؤن لوڈ کریں (بنیادی ماڈل ٹریننگ کی معلومات)

sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh

اس میں تقریباً ایک گھنٹہ لگے گا۔ بیکار وقت ضائع نہ کرنے کے لیے، ہم ایک نیا ssh کنکشن بناتے ہیں اور متوازی طور پر ہم ایک ڈاکر کنٹینر بنانا شروع کرتے ہیں۔

4. Nvidiadocker 2 انسٹال کریں۔

نارمل ڈوکر موزوں نہیں ہے،
nvidia-docker2 کی ضرورت ہے ۔
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM کے لیے ایک کنٹینر بنانا

cd yalm
sudo chmod +x ./docker/*
sudo bash ./docker/build.sh

یہ بھی تقریباً ایک گھنٹہ ہے۔

لائف ہیک۔ آپ چیک پوائنٹس ڈاؤن لوڈ کر سکتے ہیں، ڈاکر انسٹال کر سکتے ہیں اور ایک ویڈیو کارڈ کے ساتھ سستے سرور پر کنٹینر بنا سکتے ہیں۔ یہ وقت میں ایک ہی ہوگا، لہذا آپ تھوڑی سی بچت کر سکتے ہیں۔ سستے سرور پر اسمبلی کے بعد، ہم اسے حذف کر دیتے ہیں، اور سستے سرور سے ڈسک کا استعمال کرتے ہوئے ایک جنگی سرور بناتے ہیں۔ پھر آپ اسمبلی کا انتظار کرنے اور چوکیوں کو پمپ کرنے کے لیے زیادہ وقت ادا نہیں کریں گے۔

6. مواد تیار کریں۔

6.1 چیک پوائنٹس

چیک پوائنٹس کا ڈاؤن لوڈ ختم ہونے کے بعد، آپ کو انہیں کنفیگرز میں سلپ کرنے کی ضرورت ہے۔ دو طریقے ہیں، درست پیرامیٹرز یا ٹرانسفر چیک پوائنٹس۔ ہر جگہ یہ توقع کی جاتی ہے کہ چیک پوائنٹس بالترتیب پراجیکٹ کی مین ڈائرکٹری میں ہوں گے، جو ڈاؤن لوڈ کیا گیا ہے اسے اوپر کے ڈاؤن لوڈ فولڈر سے منتقل کیا جانا چاہیے۔ یالم فولڈر پر عمل درآمد

mv ./download/yalm100b_checkpoint ./

یا مثال کی فائلوں میں فائلوں کے راستے تبدیل کریں
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L

6.2 ویڈیو کارڈز

ہم چیک کرتے ہیں کہ ویڈیو کارڈ صحیح طریقے سے سیٹ کیے گئے ہیں۔ اگر آپ کے پاس آٹھ ویڈیو کارڈ ہیں، تو کچھ بھی تبدیل کرنے کی ضرورت نہیں ہے۔ اگر نمبر مختلف ہے، تو ہم ان لائنوں
عصبی نیٹ ورک YaLM 100B عملی طور پر۔ کو دوسری لائن میں تبدیل کرتے ہیں، استعمال شدہ آلات کے نمبر (آپ انہیں nvidia-smi میں دیکھ سکتے ہیں، جسے آپ پہلے ہی لانچ کر چکے ہیں)۔ چوتھے میں، ان کی تعداد.

7. ڈوکر کنٹینر چلائیں۔

یالم فولڈر میں ہونے کی وجہ سے، کمانڈ پر عمل کریں۔

sudo bash ./docker/run.sh

اگر سب کچھ ٹھیک ہے، تو آپ کو ایک کنٹینر پر لے جایا جائے گا جس میں آپ کو اپنی ہوم ڈائرکٹری میں یالم فولڈر میں جانے کی ضرورت ہے۔

cd ~/yalm

8. YaLM 100B سے مثال چلائیں۔

ہم مثالوں میں سے ایک شروع کرنے کے لیے تیار ہیں۔ وہ یہاں بیان کیے
گئے ہیں ۔

chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh

صبر کریں، مزید 10-15 منٹ انتظار کرنا باقی ہے جب تک کہ GPT ماڈل نہیں بن جاتا اور چیک پوائنٹس سے وزن لوڈ نہیں ہو جاتا۔
عصبی نیٹ ورک YaLM 100B عملی طور پر۔

تعمیر مکمل ہونے پر، MegatronML آپ کو متن بنانے کے لیے ایک سیاق و سباق درج کرنے کا اشارہ کرے گا۔ ٹائپ کرتے وقت محتاط رہیں۔ بعض حالات میں، ایک خرابی واقع ہوتی ہے، پروگرام کریش ہو جاتا ہے اور آپ کو دوبارہ اسمبلی شروع کرنے کی ضرورت ہوتی ہے۔ اس لیے بہتر ہے کہ ایسی مثالیں استعمال کی جائیں جو فائل سے ٹیکسٹ لیتی ہوں۔

9. کام کے نتائج

عصبی نیٹ ورک YaLM 100B عملی طور پر۔
عصبی نیٹ ورک YaLM 100B عملی طور پر۔ دلچسپ لگ رہا ہے۔ یقیناً یہ صرف اچھی مثالیں ہیں۔ میں نے مختلف نمونوں پر ٹیسٹ چلایا۔ جیسا کہ توقع کی جائے گی، سیاق و سباق جتنا بہتر ہوگا، اتنا ہی زیادہ معنی خیز متن تیار ہوگا۔ تجرباتی نسلوں کا مکمل مجموعہ لنکس پر دیکھا جا سکتا ہے:

قیمت کے لحاظ سے، مجھے تربیت سے لے کر تیاری سے لے کر نسل تک مختلف صلاحیتوں کے سرور کرایہ پر لینے کے لیے تقریباً 9 ہزار روبل لاگت آئی۔ ایک خاص مایوسی یہ تھی کہ آپ فوری طور پر سب کچھ پیدا نہیں کر سکتے۔ اسے شروع ہونے میں کافی وقت لگتا ہے اور سرور کی فی گھنٹہ لاگت کے پیش نظر متن اتنی جلدی نہیں بنتا جتنا ہم چاہتے ہیں۔
عصبی نیٹ ورک YaLM 100B عملی طور پر۔  

200 جی بی جی پی یو ریم کے بغیر YaLM کیسے چلائیں؟

آپ کو تشکیل میں ڈیپ اسپیڈ صفر آف لوڈ شامل کرنے کی ضرورت ہے۔ ان لوگوں کے لئے جو جانتے ہیں کہ ہم کس کے بارے میں بات کر رہے ہیں، یہ کرنا بہت آسان ہوگا۔ دوسروں کے لیے یہ کوئی معمولی کام نہیں ہے۔ یہ جاننا ضروری ہے کہ آف لوڈ یا تو CPU RAM یا NVMe میں ہو سکتا ہے۔ آپ اس وقت NVMe کے بارے میں بھول سکتے ہیں، کیونکہ۔ ڈیٹا کی ایک بہت بڑی مقدار پر کارروائی کی جا رہی ہے اور ڈسک اس کا مقابلہ نہیں کر سکتی۔ زیرو آف لوڈ CPU زیادہ حقیقی ہے۔ سچ ہے، اس کے لیے آپ کے پاس اسٹاک میں 200+ Gb CPU RAM ہونی چاہیے، جو کہ سستی بھی نہیں ہے۔ اور ایک متن تقریباً 20-40 منٹ تک تیار ہو جائے گا، کیونکہ ابھی تک اسے دو ویڈیو کارڈز پر متوازی بنانا ممکن نہیں ہو سکا ہے۔ جیسا کہ آپ ذیل میں اسکرین شاٹ میں دیکھ سکتے ہیں، صرف ایک ویڈیو کارڈ جنریشن میں شامل تھا، اور پھر صرف ایک چوتھائی میموری کے لیے۔ یہ دیکھنا باقی ہے کہ تمام 24 جی بی کیوں استعمال نہیں ہوتے،
عصبی نیٹ ورک YaLM 100B عملی طور پر۔ ٹھیک ہے، آخر میں، میں یہ کہوں گا کہ ایک RTX 3070 TI پر بھی چلنا ممکن ہے۔ لیکن اس میں کوئی خاص معنی نہیں ہے، کیونکہ. NVMe آپ کو سویپ میں 150 GB ڈیٹا پر تیزی سے کارروائی کرنے کی اجازت نہیں دے گا، جو 96 GB RAM کے ضمیمہ میں ہے۔
عصبی نیٹ ورک YaLM 100B عملی طور پر۔

خلاصہ کرنا

یقینا، میں اب بھی بہترین لانچ کے راستے تلاش کرنے کی کوشش کروں گا۔ لیکن اب تک میں اس نتیجے پر پہنچا ہوں کہ YaLM 100b میرے کاموں کے لیے بہت مہنگا/بہت سست ہے۔ اسی پیسے کے لیے لوگ بہت زیادہ اور بہت اچھا لکھیں گے۔ لیکن مجھے لگتا ہے کہ یہ عارضی ہے، ہم دیکھیں گے۔ اگر آپ کو یالم کو شروع کرنے، ترتیب دینے میں مدد کی ضرورت ہے، یا اپنے سیاق و سباق کی مثالوں پر نتائج دیکھنا چاہتے ہیں، تو میل یا ٹیلی گرام پر لکھیں۔

pskucherov
Rate author
Add a comment

  1. Olha

    Статья на Мега актуальную тему! Спасибо.

    Reply
  2. Данила

    Крутая статья! Спасибо автору!

    Reply
  3. Дмитрий

    СПАСИБО !!!
    три дня эту информацию искал
    нет подобного о RuGPT3 и Порфириче?

    Reply