خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

میں بہت سے ڈیٹا سائنسدانوں کو جانتا ہوں - اور شاید میں خود ان میں سے ایک ہوں - جو GPU مشینوں پر کام کرتا ہے، مقامی یا ورچوئل، جو کلاؤڈ میں واقع ہے، یا تو Jupyter Notebook کے ذریعے یا کسی قسم کے Python کے ترقیاتی ماحول کے ذریعے۔ ایک ماہر AI/ML ڈویلپر کے طور پر 2 سال تک کام کرتے ہوئے، میں نے بالکل ایسا ہی کیا، جب کہ ایک باقاعدہ سرور یا ورک سٹیشن پر ڈیٹا تیار کرتے ہوئے، اور Azure میں GPU کے ساتھ ورچوئل مشین پر ٹریننگ چلاتے ہوئے۔

یقینا، ہم سب کے بارے میں سنا ہے Azure مشین لرننگ - مشین لرننگ کے لیے ایک خاص کلاؤڈ پلیٹ فارم۔ تاہم، میں پہلی نظر کے بعد تعارفی مضامینایسا لگتا ہے کہ Azure ML آپ کے لیے حل کرنے سے زیادہ مسائل پیدا کرے گا۔ مثال کے طور پر، اوپر بیان کردہ ٹیوٹوریل میں، Azure ML پر ٹریننگ ایک Jupyter Notebook سے شروع کی گئی ہے، جب کہ ٹریننگ اسکرپٹ کو خود ایک سیل میں ٹیکسٹ فائل کے طور پر تخلیق اور ترمیم کرنے کی تجویز دی گئی ہے - جب کہ خودکار تکمیل، نحو کا استعمال نہ کیا جائے۔ نمایاں کرنا، اور عام ترقیاتی ماحول کے دیگر فوائد۔ اس وجہ سے، ہم نے اپنے کام میں Azure ML کو کافی عرصے سے سنجیدگی سے استعمال نہیں کیا ہے۔

تاہم، میں نے حال ہی میں اپنے کام میں Azure ML کو مؤثر طریقے سے استعمال کرنا شروع کرنے کا ایک طریقہ دریافت کیا ہے! تفصیلات میں دلچسپی ہے؟

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

اہم راز ہے Azure ML کے لیے بصری اسٹوڈیو کوڈ کی توسیع. یہ آپ کو ماحول کا پورا فائدہ اٹھاتے ہوئے، VS کوڈ میں تربیتی اسکرپٹ تیار کرنے کی اجازت دیتا ہے - اور آپ اسکرپٹ کو مقامی طور پر بھی چلا سکتے ہیں اور پھر اسے صرف چند کلکس کے ساتھ Azure ML کلسٹر میں تربیت کے لیے بھیج سکتے ہیں۔ آسان، ہے نا؟

ایسا کرنے سے، آپ Azure ML کے استعمال سے درج ذیل فوائد حاصل کرتے ہیں:

  • آپ اپنی مشین پر زیادہ تر وقت مقامی طور پر ایک آسان IDE میں کام کر سکتے ہیں، اور GPU صرف ماڈل ٹریننگ کے لیے استعمال کریں۔. ایک ہی وقت میں، تربیتی وسائل کا پول خود بخود مطلوبہ بوجھ کے مطابق ہو سکتا ہے، اور نوڈس کی کم از کم تعداد کو 0 پر سیٹ کر کے، آپ تربیتی کاموں کی موجودگی میں خود بخود ورچوئل مشین "مطابق" شروع کر سکتے ہیں۔
  • آپ کر سکتے ہیں سیکھنے کے تمام نتائج کو ایک جگہ پر محفوظ کریں۔حاصل شدہ میٹرکس اور نتیجے میں آنے والے ماڈلز سمیت - تمام نتائج کو ذخیرہ کرنے کے لیے کسی قسم کے نظام یا آرڈر کے ساتھ آنے کی ضرورت نہیں ہے۔
  • اس صورت میں، ایک ہی پروجیکٹ پر کئی لوگ کام کر سکتے ہیں۔ - وہ ایک ہی کمپیوٹنگ کلسٹر کا استعمال کر سکتے ہیں، تمام تجربات کو قطار میں رکھا جائے گا، اور وہ ایک دوسرے کے تجربات کے نتائج بھی دیکھ سکتے ہیں۔ ایسا ہی ایک منظر ہے۔ ڈیپ لرننگ کی تعلیم میں Azure ML کا استعمالجب ہر طالب علم کو ایک GPU کے ساتھ ایک ورچوئل مشین دینے کے بجائے، آپ ایک کلسٹر بنا سکتے ہیں جسے سبھی مرکزی طور پر استعمال کریں گے۔ اس کے علاوہ، ماڈل کی درستگی کے ساتھ نتائج کا ایک عمومی جدول ایک اچھے مسابقتی عنصر کے طور پر کام کر سکتا ہے۔
  • Azure ML کے ساتھ، آپ آسانی سے تجربات کی ایک سیریز کر سکتے ہیں، مثال کے طور پر، کے لیے ہائپر پیرامیٹر کی اصلاح - یہ کوڈ کی چند سطروں کے ساتھ کیا جا سکتا ہے، تجربات کی ایک سیریز کو دستی طور پر کرنے کی ضرورت نہیں ہے۔

مجھے امید ہے کہ میں نے آپ کو Azure ML آزمانے کے لیے راضی کر لیا ہے! شروع کرنے کا طریقہ یہاں ہے:

Azure ML ورک اسپیس اور Azure ML پورٹل

Azure ML تصور کے ارد گرد منظم کیا جاتا ہے کام کے علاقے - کام کی جگہ. ڈیٹا کو ورک اسپیس میں محفوظ کیا جا سکتا ہے، تجربات اس کو تربیت کے لیے بھیجے جاتے ہیں، تربیت کے نتائج بھی وہیں محفوظ کیے جاتے ہیں - نتیجے میں آنے والے میٹرکس اور ماڈل۔ آپ دیکھ سکتے ہیں کہ ورک اسپیس کے اندر کیا ہے۔ Azure ML پورٹل - اور وہاں سے آپ ڈیٹا لوڈ کرنے سے لے کر تجربات کی نگرانی اور ماڈلز کی تعیناتی تک بہت سے کام انجام دے سکتے ہیں۔

آپ ویب انٹرفیس کے ذریعے ایک ورک اسپیس بنا سکتے ہیں۔ Azure پورٹل (ملاحظہ کریں قدم بہ قدم ہدایات)، یا Azure CLI کمانڈ لائن کا استعمال کرتے ہوئے (ہدایات):

az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml

کام کی جگہ کے ساتھ بھی کچھ وابستہ ہیں۔ کمپیوٹنگ وسائل (کمپیوٹنگ)۔ ایک بار جب آپ ماڈل کو تربیت دینے کے لیے ایک اسکرپٹ تیار کر لیتے ہیں، تو آپ کر سکتے ہیں۔ عمل درآمد کے لیے تجربہ بھیجیں۔ کام کی جگہ پر، اور وضاحت کریں ہدف کا حساب لگائیں - اس صورت میں، اسکرپٹ کو پیک کیا جائے گا، مطلوبہ کمپیوٹنگ ماحول میں چلایا جائے گا، اور پھر تجربے کے تمام نتائج مزید تجزیہ اور استعمال کے لیے ورک اسپیس میں محفوظ کیے جائیں گے۔

MNIST کے لیے سکرپٹ سیکھنا

کلاسیکی مسئلہ پر غور کریں۔ ہاتھ سے لکھے ہوئے ہندسوں کی شناخت MNIST ڈیٹاسیٹ کا استعمال کرتے ہوئے اسی طرح، مستقبل میں، آپ اپنی کوئی بھی تربیتی اسکرپٹ چلا سکتے ہیں۔

ہمارے ذخیرے میں اسکرپٹ ہے۔ train_local.py، جسے ہم SkLearn لائبریری کا استعمال کرتے ہوئے آسان ترین لکیری ریگریشن ماڈل کی تربیت دیتے ہیں۔ بلاشبہ، میں سمجھتا ہوں کہ یہ مسئلہ حل کرنے کا بہترین طریقہ نہیں ہے - ہم اسے ایک مثال کے طور پر، سب سے آسان کے طور پر استعمال کرتے ہیں۔

اسکرپٹ پہلے اوپن ایم ایل سے MNIST ڈیٹا ڈاؤن لوڈ کرتی ہے اور پھر کلاس کا استعمال کرتی ہے۔ LogisticRegression ماڈل کو تربیت دینے کے لیے، اور پھر نتیجے کی درستگی پرنٹ کریں:

mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])

shuffle_index = np.random.permutation(len(mist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]

X_train, X_test, y_train, y_test = 
  train_test_split(X, y, test_size = 0.3, random_state = 42)

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))

print('Overall accuracy:', acc)

آپ اسکرپٹ کو اپنے کمپیوٹر پر چلا سکتے ہیں اور چند سیکنڈ میں نتیجہ حاصل کر سکتے ہیں۔

Azure ML میں اسکرپٹ چلائیں۔

اگر ہم Azure ML کے ذریعے ٹریننگ اسکرپٹ چلاتے ہیں، تو ہمیں دو اہم فوائد حاصل ہوں گے:

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

from azureml.core.run import Run
...
try:    
    run = Run.get_submitted_run()
    run.log('accuracy', acc)
except:
    pass

اسکرپٹ کے متعلقہ ورژن کو کہا جاتا ہے۔ train_universal.py (یہ اوپر لکھا گیا ہے اس سے تھوڑا زیادہ چالاک ہے، لیکن زیادہ نہیں)۔ اس اسکرپٹ کو مقامی طور پر اور ریموٹ کمپیوٹنگ ریسورس دونوں پر چلایا جا سکتا ہے۔

اسے VS کوڈ سے Azure ML میں چلانے کے لیے، آپ کو درج ذیل کام کرنے ہوں گے۔

  1. یقینی بنائیں کہ Azure ایکسٹینشن آپ کے سبسکرپشن سے منسلک ہے۔ بائیں طرف کے مینو سے Azure آئیکن کو منتخب کریں۔ اگر آپ منسلک نہیں ہیں تو، نیچے دائیں کونے میں ایک اطلاع ظاہر ہوگی (یہاں ہے)، جس پر کلک کرکے آپ براؤزر کے ذریعے داخل ہو سکتے ہیں۔ آپ کلک بھی کر سکتے ہیں۔ Ctrl-Shift-P VS Code کمانڈ لائن کو کال کرنے کے لیے، اور ٹائپ کریں۔ Azure سائن ان کریں۔.

  2. اس کے بعد، Azure سیکشن میں (بائیں طرف آئیکن)، سیکشن تلاش کریں۔ مشین سیکھنا:

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ
یہاں آپ کو ورک اسپیس کے اندر اشیاء کے مختلف گروپ دیکھنا چاہئے: کمپیوٹنگ کے وسائل، تجربات وغیرہ۔

  1. فائلوں کی فہرست پر جائیں، اسکرپٹ پر دائیں کلک کریں۔ train_universal.py اور منتخب کریں Azure ML: Azure میں بطور تجربہ چلائیں۔.

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

  1. اس کے بعد VS کوڈ کے کمانڈ لائن ایریا میں ڈائیلاگ کی ایک سیریز ہوگی: آپ جس رکنیت اور Azure ML ورک اسپیس کو استعمال کر رہے ہیں اس کی تصدیق کریں، اور منتخب کریں۔ نیا تجربہ بنائیں:

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ
خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ
خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

  1. ایک نیا کمپیوٹ وسیلہ بنانے کا انتخاب کریں۔ نیا کمپیوٹ بنائیں:

    • کمپیوٹنگ کمپیوٹنگ کے وسائل کا تعین کرتا ہے جس پر تربیت ہوگی۔ آپ مقامی کمپیوٹر، یا AmlCompute کلاؤڈ کلسٹر کا انتخاب کر سکتے ہیں۔ میں مشینوں کا ایک توسیع پذیر کلسٹر بنانے کی تجویز کرتا ہوں۔ STANDARD_DS3_v20 مشینوں کی کم از کم تعداد کے ساتھ (اور زیادہ سے زیادہ 1 یا اس سے زیادہ، آپ کی بھوک پر منحصر ہے)۔ یہ VS کوڈ انٹرفیس کے ذریعے، یا پہلے کے ذریعے کیا جا سکتا ہے۔ ایم ایل پورٹل.

    خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

  2. اگلا، آپ کو ایک ترتیب کو منتخب کرنے کی ضرورت ہے کمپیوٹ کنفیگریشن، جو تربیت کے لیے بنائے گئے کنٹینر کے پیرامیٹرز کی وضاحت کرتا ہے، خاص طور پر، تمام ضروری لائبریریوں کو۔ ہمارے معاملے میں، چونکہ ہم Scikit Learn استعمال کر رہے ہیں، ہم منتخب کرتے ہیں۔ SkLearn، اور پھر صرف Enter دبا کر لائبریریوں کی مجوزہ فہرست کی تصدیق کریں۔ اگر آپ کوئی اضافی لائبریری استعمال کرتے ہیں، تو ان کی یہاں وضاحت ہونی چاہیے۔

    خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ
    خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

  3. یہ تجربہ کی وضاحت کرنے والی JSON فائل کے ساتھ ایک ونڈو کھولے گا۔ اس میں، آپ کچھ پیرامیٹرز کو درست کر سکتے ہیں - مثال کے طور پر، تجربے کا نام. اس کے بعد لنک پر کلک کریں۔ تجربہ جمع کروائیں۔ بالکل اس فائل کے اندر:

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

  1. VS کوڈ کے ذریعے کامیابی کے ساتھ تجربہ جمع کرانے کے بعد، اطلاع کے علاقے کے دائیں جانب، آپ کو ایک لنک نظر آئے گا۔ Azure ML پورٹل، جہاں آپ تجربے کی حیثیت اور نتائج کو ٹریک کرسکتے ہیں۔

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ
اس کے بعد، آپ اسے ہمیشہ سیکشن میں تلاش کر سکتے ہیں۔ تجربات Azure ML پورٹل، یا سیکشن میں Azure مشین لرننگ تجربات کی فہرست میں:

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ

  1. اگر اس کے بعد آپ نے کوڈ میں کچھ تصحیح کی ہے یا پیرامیٹرز کو تبدیل کیا ہے، تو تجربہ دوبارہ شروع کرنا بہت تیز اور آسان ہوگا۔ فائل پر دائیں کلک کرنے سے، آپ کو ایک نیا مینو آئٹم نظر آئے گا۔ آخری رن کو دہرائیں۔ - بس اسے منتخب کریں، اور تجربہ فوری طور پر شروع ہو جائے گا:

خوف پر قابو پانے اور Azure مشین لرننگ کا استعمال شروع کرنے کا طریقہ
آپ Azure ML پورٹل پر تمام لانچوں سے میٹرکس کے نتائج ہمیشہ تلاش کر سکتے ہیں، انہیں لکھنے کی ضرورت نہیں ہے۔

اب آپ جانتے ہیں کہ Azure ML کے ساتھ تجربات کرنا آسان اور درد سے پاک ہے، اور ایسا کرنے سے آپ کو بہت سے اچھے فوائد حاصل ہوتے ہیں۔

لیکن آپ اس کے نقصانات بھی دیکھ سکتے ہیں۔ مثال کے طور پر، اسکرپٹ کو چلانے میں کافی زیادہ وقت لگا۔ بلاشبہ، اسکرپٹ کو کنٹینر میں پیک کرنے اور اسے سرور پر تعینات کرنے میں وقت لگتا ہے۔ اگر ایک ہی وقت میں کلسٹر کو 0 نوڈس کے سائز میں کاٹ دیا جائے تو ورچوئل مشین کو شروع کرنے میں اور بھی زیادہ وقت لگے گا، اور یہ سب کچھ اس وقت بہت نمایاں ہوتا ہے جب ہم MNIST جیسے آسان کاموں پر تجربہ کرتے ہیں، جو چند سیکنڈ میں حل ہو جاتے ہیں۔ . تاہم، حقیقی زندگی میں، جب تربیت کئی گھنٹے، یا یہاں تک کہ دنوں یا ہفتوں تک جاری رہتی ہے، تو یہ اضافی وقت غیر اہم ہو جاتا ہے، خاص طور پر ایک کمپیوٹنگ کلسٹر فراہم کرنے والی زیادہ کارکردگی کے پس منظر کے خلاف۔

اس کے بعد کیا ہے؟

مجھے امید ہے کہ اس مضمون کو پڑھنے کے بعد، آپ Azure ML کو اپنے کام میں سکرپٹ چلانے، کمپیوٹنگ کے وسائل کا نظم کرنے، اور نتائج کو مرکزی طور پر ذخیرہ کرنے کے لیے استعمال کر سکتے ہیں اور کریں گے۔ تاہم، Azure ML آپ کو اور بھی زیادہ فوائد دے سکتا ہے!

ورک اسپیس کے اندر، آپ ڈیٹا کو اسٹور کر سکتے ہیں، اس طرح آپ کے تمام کاموں کے لیے ایک مرکزی ذخیرہ بنا سکتے ہیں، جس تک رسائی آسان ہے۔ اس کے علاوہ، آپ تجربات کو بصری اسٹوڈیو کوڈ سے نہیں بلکہ API کا استعمال کر کے چلا سکتے ہیں - یہ خاص طور پر مفید ہو سکتا ہے اگر آپ کو ہائپر پیرامیٹر کی اصلاح کرنے کی ضرورت ہو اور مختلف پیرامیٹرز کے ساتھ اسکرپٹ کو کئی بار چلانے کی ضرورت ہو۔ مزید یہ کہ Azure ML میں خصوصی ٹیکنالوجی بنائی گئی ہے۔ ہائپر ڈرائیو، جو آپ کو زیادہ مشکل تلاش اور ہائپر پیرامیٹر کی اصلاح کرنے کی اجازت دیتا ہے۔ میں اپنی اگلی پوسٹ میں ان امکانات کے بارے میں بات کروں گا۔

کارآمد وسائل

Azure ML کے بارے میں مزید جاننے کے لیے، آپ کو درج ذیل Microsoft Learn کورسز مددگار معلوم ہو سکتے ہیں:

ماخذ: www.habr.com

نیا تبصرہ شامل کریں