یونٹ 7 / 11

MLOps اور تعیناتی: ماڈل کو لیب سے پروڈکشن میں منتقل کرنا

فائدہ:

  • کوڈ-ڈیٹا-ماڈل تینوں اور پیکیج سے متعلق ایم ایل کے خصوصی چیلنجوں کو پہچاننے اور کاروباری ضرورت کے مطابق ماڈل کو آن لائن یا بیچ میں پیش کرنے کی صلاحیت۔
  • بتدریج اور رول بیک تعیناتی پیٹرن (شیڈو، کینری، A/B، رول بیک) کو لاگو کرنے اور ہر تعیناتی میں ایک آزمائشی رول بیک پلان شامل کرنے کی صلاحیت
  • پروڈکشن میں ڈالے گئے ماڈل کے ڈیٹا کوڈ-میٹرک لنک کو ایویلیویشن تھریشولڈ کنٹرول شدہ CI/CD اور ماڈل رجسٹری کے ساتھ ٹریس ایبل رکھنے کی اہلیت

نوٹ بک میں 95% درستگی حاصل کرنے کے لیے ماڈل حاصل کرنا صرف آدھی کہانی ہے۔ دوسرا نصف - اکثر مشکل حصہ - اس ماڈل کو حقیقی صارفین تک قابل اعتماد، توسیع پذیر، اور برقرار رکھنے کے قابل طریقے سے پہنچا رہا ہے۔ MLOps (مشین لرننگ آپریشنز: ML ماڈلز کو پروڈکشن میں ڈالنے، چلانے اور برقرار رکھنے کا نظم و ضبط) سافٹ ویئر انجینئرنگ کے DevOps طریقوں کو ML کے منفرد چیلنجوں کے ساتھ جوڑتا ہے۔ اس یونٹ میں، ہم ماڈل کو پروڈکشن میں منتقل کرنے کے مراحل کا احاطہ کرتے ہیں اور اس عمل میں مصنوعی ذہانت کس طرح مدد کرتی ہے۔

ایم ایل ریگولر سافٹ ویئر سے مختلف کیوں ہے؟

عام سافٹ ویئر میں، برتاؤ کوڈ میں ہے؛ اگر کوڈ تبدیل نہیں ہوتا ہے تو سلوک نہیں بدلتا ہے۔ ایم ایل میں، رویے کا انحصار کوڈ، ڈیٹا اور ماڈل دونوں پر ہوتا ہے۔ یہ تین جہتیں MLOps کے اضافی چیلنجز پیدا کرتی ہیں:

  • ڈیٹا کا بہاؤ: پیداوار میں ڈیٹا وقت کے ساتھ تربیت میں ڈیٹا سے دور ہو جاتا ہے۔ ماڈل متروک ہو جاتا ہے.
  • آپ کو تین چیزوں کا ورژن بنانے کی ضرورت ہے: کوڈ، ڈیٹا، اور ماڈل — تینوں۔
  • خاموش ناکامی: ایک ماڈل کریش ہوئے بغیر، غلطیاں دیے بغیر، صرف غلط پیشین گوئیاں کر کے ناکام ہو سکتا ہے۔ اس کو پکڑنے کے لیے نگرانی کی ضرورت ہے۔

یہی وجہ ہے کہ "ورکنگ ماڈل" اور "پروڈکشن کے لیے تیار ماڈل" میں بڑا فرق ہے۔

ماڈل پیکیجنگ اور پیش کرنا

ماڈل کو پروڈکشن میں ڈالنے کا پہلا قدم اس کی پیکیجنگ ہے: ماڈل فائل، ضروری لائبریریاں، پری پروسیسنگ کوڈ، اور ورژن کی معلومات کو ایک ساتھ دوبارہ پیدا کرنے کے قابل مجموعی طور پر۔ کنٹینرائزیشن (جیسے ڈوکر: ایپلیکیشن کو اس کے تمام انحصار کے ساتھ الگ تھلگ باکس میں ڈالنا) یہاں معیاری ہے؛ یہ "یہ میری مشین پر کام کر رہا تھا" کے مسئلے کو ختم کرتا ہے۔

ماڈل کی خدمت کے دو بنیادی نمونے:

  • آن لائن/ریئل ٹائم (آن لائن): ماڈل ایک API کے پیچھے بیٹھتا ہے، ہر آنے والی درخواست کے لیے فوری پیشن گوئی واپس کرتا ہے۔ کم تاخیر اہم ہے۔
  • بیچ: ماڈل وقتاً فوقتاً بڑے ڈیٹا سیٹ پر کارروائی کرتا ہے (مثلاً رات کے وقت تمام صارفین کے لیے اسکور تیار کرتا ہے)۔ تاخیر غیر متعلقہ ہے، کارکردگی اہم ہے۔

کون سا صحیح ہے اس کا انحصار کاروباری ضرورت پر ہے: فوری سفارش آن لائن، بیچ میں ماہانہ رسک سکور۔

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

محفوظ تقسیم کی حکمت عملی

نئے ماڈل کو براہ راست تمام ٹریفک کے لیے کھولنا خطرناک ہے۔ اگر یہ غلط ہے تو سب متاثر ہوتے ہیں۔ محفوظ تقسیم کے نمونے:

  • شیڈو تعیناتی: نیا ماڈل پروڈکشن ٹریفک حاصل کرتا ہے، لیکن اس کی پیشین گوئیاں صارف کو نہیں دکھائی جاتی ہیں، صرف لاگ ان ہوتی ہیں۔ یہ دیکھنے کے لیے پرانے ماڈل سے موازنہ کیا جاتا ہے کہ آیا یہ حقیقی ڈیٹا میں محفوظ ہے یا نہیں۔
  • کینری تعیناتی: نیا ماڈل سب سے پہلے ٹریفک کے ایک چھوٹے فیصد (مثلاً 5%) کے لیے پیش کیا جاتا ہے۔ اگر کوئی مسئلہ نہیں ہے، تو اسے آہستہ آہستہ بڑھایا جاتا ہے.
  • A/B ٹیسٹنگ: دو ماڈلز حقیقی صارف کو متوازی طور پر پیش کیے جاتے ہیں اور کاروباری میٹرکس (تبادلوں، کلکس) کا موازنہ کیا جاتا ہے۔
  • رول بیک: اگر نیا ماڈل خراب نکلا تو جلدی سے پرانے ورژن پر واپس جانے کی صلاحیت۔ ہر تعیناتی کا ایک رول بیک پلان ہونا چاہیے۔
احتیاط: رول بیک پلان کے بغیر تعیناتی مکمل نہیں ہوتی۔ منٹوں میں پرانے ورژن پر واپس آنے کے قابل ہونا صارف کی حفاظت کرتا ہے جب نیا ماڈل پیداوار میں غیر متوقع طور پر برتاؤ کرتا ہے۔ تعیناتی سے پہلے اس کی جانچ کریں۔

کمزور نقطہ نظر / مضبوط نقطہ نظر

کمزور: "ماڈل جانچ میں اچھا تھا، ہم لائیو چلے گئے، ہم نے اسے سب کے لیے کھول دیا۔"

Güçlü: "ہم نے ماڈل کو کنٹینرائز کیا، اسے ایک ورژن کے طور پر لیبل کیا۔ سب سے پہلے، ہم نے پرانے ماڈل کے ساتھ پیشین گوئیوں کا موازنہ کرتے ہوئے اسے 3 دن تک پروڈکشن ٹریفک کے ساتھ شیڈو موڈ میں چلایا - انحراف قابل قبول تھا۔ پھر ہم نے اسے 5% کینری کے ساتھ کھولا، تھرو پٹ میٹرکس اور لیٹنسی کی نگرانی کی۔ جب کوئی مسئلہ نہیں تھا، تو ہم نے بتدریج %10 ٹیسٹ کرنے سے پہلے اس کی کمان میں 10 فیصد اضافہ کیا۔"

فرق: مضبوط نقطہ نظر بتدریج، ماپا اور الٹنے والا ہے۔ خطرہ ہر قدم پر محدود ہے۔

CI/CD اور آٹومیشن

ML میں CI/CD (مسلسل انضمام/مسلسل تعیناتی: پائپ لائن کی خود بخود جانچ اور کوڈ کی تبدیلیوں کو جاری کرنے کی پائپ لائن) نہ صرف کوڈ بلکہ ڈیٹا اور ماڈل کے مراحل کا بھی احاطہ کرتی ہے۔ ایک اچھی ML CI/CD پائپ لائن: کوڈ تبدیل ہونے پر ٹیسٹ چلاتا ہے، ڈیٹا کی توثیق کرتا ہے، ماڈل کو دوبارہ تربیت دیتا ہے (اگر ضروری ہو)، تشخیص کی حدوں کو چیک کرتا ہے، اور صرف اس صورت میں تعیناتی کو آگے بڑھاتا ہے جب حد برقرار رہتی ہے۔ "تربیت خودکار ہے، تعیناتی حد پر مبنی ہے" کا اصول خراب ماڈل کو خاموشی سے پیداوار میں آنے سے روکتا ہے۔

ان پائپ لائنوں کو ترتیب دیتے وقت AI بہت مددگار ثابت ہوتا ہے: کنفیگریشن فائل (YAML) ڈرافٹ، ٹیسٹ کیسز، تعیناتی اسکرپٹ لکھنا۔ لیکن آپ تقسیم کی حدوں کا تعین کرتے ہیں (جو بھی میٹرک شائع ہونے والی قدر سے زیادہ ہے) اور رول بیک پالیسی؛ یہ کاروباری خطرے کے فیصلے ہیں۔

تولیدی انفراسٹرکچر

پروڈکشن میں ماڈل کے رویے کو دوبارہ پیش کرنے کے لیے، ماڈل رجسٹری: ایک ریکارڈ جو رکھتا ہے کہ کون سا ماڈل کس ڈیٹا اور کوڈ کے ساتھ تربیت یافتہ تھا، اور اسے کون سے میٹرکس موصول ہوئے۔ ہر پروڈکشن ماڈل کے لیے، درج ذیل کو ٹریک کیا جا سکتا ہے: ٹریننگ ڈیٹا ورژن، کوڈ ورژن (گٹ کمٹ)، ہائپر پیرامیٹر، تشخیص کے اسکور، اور تعیناتی کی تاریخ۔ جب کوئی مسئلہ پیدا ہوتا ہے، تو آپ کو اس سوال کا جواب دینے کے قابل ہونا چاہیے کہ "یہ پیشین گوئی کس ماڈل نے کی، کس ڈیٹا کے ساتھ؟" منٹوں کے اندر ہم اسے یونٹ 11 میں گہرا کریں گے۔

تین چھوٹے مقدمات

کیس 1 - شیڈو ڈسٹری بیوشن کے ذریعہ پکڑا گیا مسئلہ۔ ایک سفارشی ماڈل نے جانچ میں پرانے کو شکست دی۔ اسے شیڈو موڈ میں پروڈکشن ٹریفک کے ساتھ چلانے سے صارفین کے ایک مخصوص طبقہ (نئے صارفین) کے لیے انتہائی ناقص سفارشات پیدا ہوتی ہیں — ٹیسٹ ڈیٹا اس طبقے کی کم نمائندگی کرتا تھا۔ ماڈل کو صارف کو ظاہر کیے بغیر طے کیا گیا تھا۔ اگر اسے براہ راست کھولا جاتا تو نئے صارف کے تجربے میں خلل پڑ جائے گا۔

کیس 2 - اٹل تقسیم۔ ایک ٹیم نے تمام ٹریفک کے لیے قیمتوں کا ایک نیا ماڈل پیش کیا، بغیر کسی رول بیک پلان کے۔ ماڈل نے غیر متوقع طور پر کچھ مصنوعات کی قیمت بہت سستی کردی۔ پرانے ورژن پر واپس آنے میں گھنٹے لگے کیونکہ عمل تیار نہیں تھا۔ آمدنی کا شدید نقصان ہوا۔ اس کے بعد، ہر تعیناتی میں لازمی رول بیک ٹیسٹنگ شامل کی گئی۔

کیس 3 - خاموش ڈیٹا ڈرفٹ۔ دھوکہ دہی کا نمونہ مہینوں تک بغیر کسی غلطی کے ظاہر ہوا۔ لیکن دھوکہ بازوں کے حربے بدل گئے (ڈیٹا ڈرفٹ) اور ماڈل کی واپسی خاموشی سے گر گئی۔ نگرانی نہ ہونے کی وجہ سے کسی نے نوٹس نہیں لیا۔ ایک بار پیشن گوئی کی تقسیم کی نگرانی کا پینل قائم ہونے کے بعد، بڑھاؤ جلد ہی نظر آنے لگا۔ ہم یونٹ 8 میں نگرانی کا احاطہ کریں گے۔

کاپی کرنے کے قابل ٹیمپلیٹس

اس ماڈل کے لیے ایک مسودہ تعیناتی منصوبہ لکھیں۔ ماڈل: [یہ کیا کرتا ہے]، استعمال: [آن لائن یا بیچ؟] اس میں شامل ہونا چاہئے: 1) پیکیجنگ (کنٹینر، ورژننگ) 2) اضافی تعیناتی کی حکمت عملی (شیڈو/کینری/A-B) اور کیوں 3) ٹریک کرنے کے میٹرکس (کاروبار + تکنیکی + تاخیر) 4) رول بیک پلان اور کیسے جانچیں

اس ML CI/CD پائپ لائن کو چیک کریں: 1) کیا ڈیٹا کی توثیق لائن میں ہے؟ 2) کیا تعیناتی تشخیص کی حد کو برقرار رکھے بغیر آگے بڑھ سکتی ہے (کیا ایسا نہیں ہونا چاہئے)؟ 3) کیا رول بیک خودکار ہے؟ 4) کیا ماڈل رجسٹری میں ڈیٹا+کوڈ+میٹرکس ٹریک کیے گئے ہیں؟ پلائن کنفیگریشن: [config]

یہ فیصلہ کرنے میں میری مدد کریں کہ آیا آن لائن یا بیچ پریزنٹیشن اس ماڈل کے لیے موزوں ہے۔ نتیجہ کب تک استعمال کیا جائے گا: [فوری / منٹ / گھنٹہ / دن] متوقع درخواست کا حجم: [نمبر] کیا تاخیر کی کوئی رکاوٹ ہے: [ایم ایس] لاگت اور پیچیدگی کے لحاظ سے آپ کس کی سفارش کریں گے اور کیوں؟

اس ماڈل کے لیے ایک رول بیک طریقہ کار لکھیں۔- کون سا میٹرک/تھریشولڈ خراب کارکردگی کو متحرک کرتا ہے؟- رول بیک کے اقدامات کیا ہیں؟- رول بیک میں کتنا وقت لگنا چاہئے (ٹارگٹ)؟- پیداوار سے پہلے میں اس طریقہ کار کی جانچ کیسے کروں؟

پریزنٹیشن پیٹرن ٹیبل

معیار

آن لائن (حقیقی وقت)

بیچ

تاخیر

تنقیدی (ms)

غیر معمولی

استعمال

فوری جواب درکار ہے۔

متواتر سکور

لاگت

اعلی

کم

پیچیدگی

اعلی

کم

مثال

براہ راست سفارش، گھوٹالہ

ماہانہ رسک سکور

عام غلطیاں

  • بازیافت کے منصوبے کے بغیر تقسیم کریں۔ غلط ماڈل پورے صارف کو متاثر کرتا ہے۔
  • 100% ٹریفک کے لیے براہ راست کھلنا۔ حیران کن تقسیم کے ساتھ خطرے کو محدود کریں۔
  • نگرانی قائم نہیں کرنا۔ ماڈل بغیر کسی غلطی کے خاموشی سے غلطیاں پیدا کرتا ہے۔
  • بے کار ریئل ٹائم پریزنٹیشن۔ جبکہ بیچنگ کافی ہے، لاگت اور پیچیدگی بڑھ جاتی ہے۔
  • ماڈل ڈیٹا کوڈ ورژن کو لنک نہیں کرنا۔ آپ مسئلہ کو دوبارہ نہیں بنا سکتے۔
  • بغیر تقسیم کی حد کے خودکار ریلیز۔ برا ماڈل خاموشی سے اندر چھپ جاتا ہے۔

خلاصہ میں

ماڈل کو پروڈکشن میں منتقل کرنا انجینئرنگ کی تربیت سے مختلف اور اکثر مشکل کام ہے۔ ML کو اضافی نظم و ضبط کی ضرورت ہے کیونکہ یہ کوڈ-ڈیٹا-ماڈل تینوں پر منحصر ہے: پیکیجنگ اور ورژننگ، ڈیلیوری پیٹرن (آن لائن/بیچ) جو کاروباری ضرورت کے مطابق ہو، بتدریج اور الٹ جانے والی تعیناتی، حد سے کنٹرول شدہ CI/CD اور ماڈل رجسٹریشن۔ مصنوعی ذہانت اس بنیادی ڈھانچے کے کوڈ اور ترتیب کو پیدا کرنے میں ایک طاقتور مدد ہے۔ لیکن تقسیم کی حد، کلی بیک پالیسی، اور خطرے کے فیصلے آپ کے ہیں۔ رول بیک پلان کے بغیر تقسیم مکمل نہیں ہوتی۔

درخواست کا کام

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

چیک لسٹ

  • [ ] ماڈل پیک اور ورژن شدہ ہے (کنٹینر + لیبل)۔
  • پریزنٹیشن پیٹرن (آن لائن/بیچ) کا انتخاب کاروباری ضرورت کے مطابق کیا گیا تھا۔
  • مرحلہ وار تعیناتی کی حکمت عملی (شیڈو/کینری) نافذ کی گئی۔
  • [ ] رول بیک طریقہ کار تحریری اور تجربہ کیا گیا۔
  • تشخیص کی حد پوری ہونے سے پہلے CI/CD تعیناتی کو آگے نہیں بڑھاتا ہے۔
  • ماڈل رجسٹری میں ڈیٹا+کوڈ+میٹرک لنک ہوتا ہے۔