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

میں بہت سے ڈیٹا سائنسدانوں کو جانتا ہوں — اور شاید میں خود ان میں سے ایک ہوں — جو جی پی یو سے لیس مشینوں پر کام کرتا ہے، یا تو مقامی یا ورچوئل، جو کلاؤڈ میں میزبانی کی جاتی ہے، یا تو Jupyter Notebook یا کچھ Python ڈیولپمنٹ ماحول کا استعمال کرتی ہے۔ ایک AI/ML ماہر ڈویلپر کے طور پر اپنے دو سالوں کے دوران، میں نے بالکل ایسا ہی کیا، باقاعدہ سرور یا ورک سٹیشن پر ڈیٹا تیار کرنا اور 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 خود بخود ہماری اسکرپٹ کو موجودہ ڈائرکٹری کی تمام فائلوں کے ساتھ ایک Docker کنٹینر میں پیک کرے گا، مطلوبہ انحصار انسٹال کرے گا، اور اسے عمل درآمد کے لیے بھیجے گا۔
  • 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 کوڈ کمانڈ لائن کھولنے کے لیے، اور ٹائپ کریں۔ Azure سائن ان کریں۔.

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

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

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

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

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

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

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

    • کمپیوٹنگ کمپیوٹنگ کے وسائل کا تعین کرتا ہے جس پر تربیت ہوگی۔ آپ مقامی کمپیوٹر یا AmlCompute کلاؤڈ کلسٹر کا انتخاب کر سکتے ہیں۔ میں مشینوں کا ایک توسیع پذیر کلسٹر بنانے کی تجویز کرتا ہوں۔ STANDARD_DS3_v2، مشینوں کی کم از کم تعداد کے ساتھ 0 (اور زیادہ سے زیادہ 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

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster