System Design শেখো
শেখো / ML / AI সিস্টেম ডিজাইন

Model Monitoring ও Drift

9 মিনিট Module 10 · ML / AI System Design 🔥
এক নজরে
  • ডিপ্লয় করা ML মডেল সময়ের সাথে খারাপ হয়, কারণ বাস্তব দুনিয়ার ডেটা ট্রেনিং ডেটা থেকে সরে যায়।
  • Data drift হলো ইনপুট বদলে যাওয়া, আর concept drift হলো ইনপুট-আউটপুট সম্পর্ক বদলে যাওয়া।
  • ইনপুট, prediction ও বাস্তব ফল মনিটর করে drift ধরা পড়লে retraining ট্রিগার করতে হয়।

সমস্যাটা কী?

একটা ML মডেল ট্রেইন করে, accuracy ৯৫% দেখে, প্রোডাকশনে দিয়ে দিলে—কাজ শেষ? মোটেই না। সফটওয়্যারের সাধারণ কোড একবার ঠিক লিখলে সবসময় একই কাজ করে। কিন্তু ML মডেল আলাদা—সে অতীতের ডেটা থেকে শিখেছে, আর দুনিয়া সবসময় বদলায়।

ভাবো ২০১৯ সালে ট্রেইন করা একটা প্রোডাক্ট-ডিমান্ড পূর্বাভাস মডেল। ২০২০-এ কোভিড এলো, মানুষের কেনাকাটার ধরন রাতারাতি পাল্টে গেল—মাস্ক, স্যানিটাইজারের চাহিদা আকাশছোঁয়া। মডেলটা এই নতুন বাস্তবতা কখনো দেখেনি, তাই এর পূর্বাভাস ভয়ংকর ভুল হলো। অথচ কোড একটুও বদলায়নি, কোনো error log নেই—মডেল নীরবে খারাপ হয়ে গেছে।

এটাই ML সিস্টেমের সবচেয়ে বিপজ্জনক দিক: silent failure। তাই deploy-ই শেষ নয়, মনিটরিং-ই আসল কাজের শুরু।

মূল ধারণা

Model drift হলো সেই প্রক্রিয়া যেখানে সময়ের সাথে production ডেটা মডেলের ট্রেনিং ডেটা থেকে সরে যায়, ফলে মডেলের পারফরম্যান্স ধীরে ধীরে (বা হঠাৎ) খারাপ হতে থাকে।

মডেল আসলে একটা অনুমান ধরে রাখে: "ভবিষ্যতের ডেটা অতীতের ডেটার মতোই হবে।" এই অনুমান যখন ভাঙে, মডেল ভুল করে। drift দুই প্রধান ধরনের, আর এই দুটোর পার্থক্য বোঝা মনিটরিং কৌশল ঠিক করতে জরুরি।

কীভাবে কাজ করে

দুই ধরনের Drift

Data Drift (covariate shift): ইনপুট ডেটার distribution বদলে যায়, কিন্তু ইনপুট থেকে আউটপুটের সম্পর্ক একই থাকে। যেমন—তোমার অ্যাপে হঠাৎ অনেক তরুণ ইউজার এলো, তাই গড় বয়স কমে গেল। মডেল এই নতুন distribution-এ কম দেখেছে, তাই কম নির্ভরযোগ্য।

Concept Drift: একই ইনপুটের জন্য সঠিক উত্তরটাই বদলে যায়—ইনপুট-আউটপুট সম্পর্ক ভাঙে। যেমন—fraud detection-এ প্রতারকরা নতুন কৌশল বের করল, তাই আগে যা "স্বাভাবিক লেনদেন" ছিল এখন তা "fraud"। ইনপুট দেখতে একই, কিন্তু সঠিক label বদলেছে।

বৈশিষ্ট্যData DriftConcept Drift
কী বদলায়ইনপুটের distributionইনপুট→আউটপুট সম্পর্ক
উদাহরণনতুন ধরনের ইউজারপ্রতারণার নতুন কৌশল
ground truth ছাড়া ধরা যায়?হ্যাঁ (input দেখে)সাধারণত না
সমাধাননতুন ডেটায় retrainনতুন label-সহ retrain

কী কী মনিটর করবে

মনিটরিং তিন স্তরে হয়:

১. Input/feature monitoring: প্রতিটি feature-এর distribution (গড়, মধ্যমা, null-এর হার) ট্রেনিং-এর সাথে মিলিয়ে দেখা। PSI বা KS-test দিয়ে drift মাপা হয়। ground truth না লাগায় এটা সবচেয়ে দ্রুত সংকেত দেয়।

২. Prediction monitoring: মডেলের আউটপুট distribution দেখা। যদি আগে ৫% লেনদেন "fraud" বলত, হঠাৎ ৪০% বলা শুরু করল—কিছু গন্ডগোল, তদন্ত দরকার।

৩. Performance monitoring: আসল accuracy/precision—কিন্তু এর জন্য Ground Truth (সঠিক উত্তর) লাগে, যা প্রায়ই দেরিতে আসে।

Ground-truth lag

বড় চ্যালেঞ্জ: prediction-এর সঠিকতা সাথে সাথে জানা যায় না। লোন approval মডেল আজ বলল "এই গ্রাহক ফেরত দেবে"—কিন্তু সত্যিই দেয় কিনা তা ৬ মাস-১ বছর পরে জানা যাবে। এই বিলম্বই ground-truth lag। তাই accuracy মাপতে দেরি হয়—আর ততক্ষণে অনেক ভুল সিদ্ধান্ত হয়ে গেছে। এ কারণেই input/prediction drift মনিটরিং এত দরকারি—এগুলো ground truth ছাড়াই আগাম সতর্ক করে।

সহজ উদাহরণ

ভাবো একজন অভিজ্ঞ মাছ বিক্রেতা চোখ দেখে মাছের দাম ঠিক করে—বহু বছরের অভিজ্ঞতা (ট্রেনিং)। এখন যদি বাজারে নতুন জাতের আমদানি করা মাছ আসে যা সে আগে দেখেনি (data drift), তার দাম-অনুমান ভুল হবে। আবার যদি ঈদের আগে হঠাৎ চাহিদা বেড়ে গিয়ে দামের নিয়মই বদলে যায় (concept drift), তার পুরোনো অভিজ্ঞতা আর খাটবে না—নতুন বাজার বুঝে শিখতে (retrain) হবে।

কৌশল

drift মোকাবিলার মূল উপায়গুলো:

  • Retraining trigger: কখন আবার ট্রেইন করবে? দুই পদ্ধতি—(ক) নির্দিষ্ট সময়ে (যেমন প্রতি সপ্তাহে/মাসে), (খ) drift বা accuracy threshold ছাড়ালে স্বয়ংক্রিয়ভাবে। দ্বিতীয়টা স্মার্ট, কিন্তু সঠিক metric দরকার।
  • Feedback loop: ইউজারের আচরণ (ক্লিক, রিটার্ন, রিপোর্ট) থেকে নতুন label সংগ্রহ করে retraining-এ ব্যবহার। তবে সাবধান—মডেলের নিজের prediction যদি পরের training ডেটাকে প্রভাবিত করে, তা ক্ষতিকর feedback loop তৈরি করতে পারে (যেমন একই ধরনের কন্টেন্ট বারবার দেখানো)।
  • Alerting: drift threshold ছাড়ালে অটো-অ্যালার্ট, যাতে টিম দ্রুত জানে।
  • Champion-challenger: নতুন (retrained) মডেলকে শুরুতেই পুরোপুরি না দিয়ে পুরোনোটার সাথে তুলনা (A/B), তারপর ভালো হলে গ্রহণ।

কখন ব্যবহার করবে / করবে না

মনিটরিং কার্যত প্রতিটি প্রোডাকশন ML মডেলেই দরকার—এটা ঐচ্ছিক নয়। তবে কঠোরতা পরিস্থিতি অনুযায়ী: fraud, ক্রেডিট, মেডিকেলের মতো high-stakes সিস্টেমে real-time drift detection ও দ্রুত retraining দরকার; কম-ঝুঁকির ক্ষেত্রে (যেমন কালেভদ্রে ব্যবহৃত internal টুল) হালকা, সময়ভিত্তিক চেকই যথেষ্ট। অতিরিক্ত ঘন ঘন retraining (overkill) খরচ বাড়ায় ও অস্থিরতা আনে।

সাবধান

"মডেল ডিপ্লয় হয়েছে, কাজ শেষ"—এই ভাবনাই সবচেয়ে বড় ফাঁদ। ML মডেল নীরবে খারাপ হয়, কোনো crash বা error দেয় না, তাই মনিটরিং না থাকলে মাসের পর মাস ভুল সিদ্ধান্ত চলতে থাকে আর কেউ টের পায় না—যতক্ষণ না বড় ক্ষতি হয়।

বাস্তব উদাহরণ

  • Spotify/Netflix recommendation: মানুষের রুচি ঋতু/ট্রেন্ডে বদলায় (concept drift), তাই মডেল নিয়মিত retrain হয়—নয়তো পুরোনো সুপারিশ বিরক্তিকর লাগবে।
  • Fraud detection: প্রতারকরা ক্রমাগত নতুন কৌশল আনে, তাই concept drift ধ্রুব—এসব সিস্টেম প্রায় real-time মনিটর ও দ্রুত retrain হয়।
  • বিজ্ঞাপন CTR মডেল: নতুন ক্যাম্পেইন/সিজনে ইনপুট বদলায় (data drift); feature drift মনিটরিং আগেই সতর্ক করে।
টিপস

ইন্টারভিউতে দেখাও তুমি ground-truth lag-এর সমস্যাটা বোঝো: "Accuracy দেরিতে আসে, তাই আমি শুধু তার ওপর নির্ভর করব না—input ও prediction distribution-এ drift আগেভাগে মনিটর করব, threshold ছাড়ালে অ্যালার্ট ও retraining ট্রিগার দেব, আর নতুন মডেল champion-challenger পদ্ধতিতে যাচাই করব।" এই proactive চিন্তাই production ML বোঝার প্রমাণ।

মূল শব্দ (Key Terms)

মিনি কুইজ

1. Data drift আর concept drift-এর পার্থক্য কী?

2. Ground-truth lag বলতে কী বোঝায়?

3. মডেল degrade ধরার জন্য ground truth দেরিতে এলে কী মনিটর করা উপকারী?