TGViewer
NLP stuff NLP stuff @nlp_stuff · 3.86K subscribers
Post #301 3.97K
چاله‌ای به نام model drift!

اگه تجربه دیپلوی مدل‌های یادگیری ماشین در پروداکشن رو داشته باشید حتما به این موضوع برخوردید که مدل‌تون بعد از مدتی ممکنه جواب‌های خوبی تولید نکنه.  یکی از علل رایج همچین اتفاقی، رخداد model drift هست که به انواع مختلف می‌تونه رخ بده.  model drift می‌تونه ناشی از data drift یا concept drift باشه.  خود data drift هم می‌تونه براساس دریفت در فیچرها و یا دریفت در لیبل رخ بده. تصور کنید می‌خواید مدل پیش‌بینی قیمت خانه رو آموزش بدید و بعد از  کرونا تقاضای خانه‌های بزرگ در بازار بیشتر شده و به همین دلیل تعداد خانه‌های کوچک در بازار بیشتر میشه و خانه‌های بزرگ کمتر. در این حالت توزیع فیچر سایز خانه عوض‌شده و منجر به data drift شده. یا در سناریوی دیگه‌ای به‌دلیل وقوع موج گرانی قیمت‌ کل خانه‌ها دچار تغییر شده باشه که در این‌جا هم data drift از نوع تغییر متغیر هدف رو داریم.
در حالت concept drift هم نه توزیع فیچرها تغییر می‌کنه و نه توزیع متغیر هدف بلکه تابع نگاشت‌کننده فیچرها به لیبل تغییر می‌کنه. تصور کنید که در مساله پیش‌بینی قیمت خانه نه فیچرها تغییر کرده باشند و نه توزیع لیبل‌ها بلکه افراد به دلیل تغییرات شرایط جامعه خانه‌های ویلایی رو بیشتر از خانه‌های آپارتمانی ترجیح بدند. در این حالت قیمت خانه‌های ویلایی به طور مضاعفی بالا میره‌ و مدلی که قبلا آموزش دیده باشه در این شرایط نمی‌تونه پیش‌بینی خوبی حداقل درباره خانه‌های ویلایی داشته باشه.
اما چاره چیه؟! در وهله اول مانیتور، مانیتور، مانیتور! یکی از اصلی‌ترین قسمت‌های دیپلوی مدل در پروداکشن، مانیتور کردن عملکرد اون به صورت دوره‌ای هست. با این روش اولین سوالی که به‌وجود میاد اینه که چه‌طور می‌تونیم یه آلارم model drift رو به موقع ارسال کنیم؟ طبیعتا نیاز داریم علاوه بر اینکه با چشم نمودارها رو کنترل می‌کنیم به صورت سیستمی هم آلارم‌ داشته باشیم. روش‌های مختلفی برای این کار وجود داره مانند استفاده از تست‌های آماری برای مقایسه توزیع فیچرهای دیتای ترین و دیتای پروداکشن. یکی از راه‌حل‌های هوشمندانه هم آموزش یک مدل دسته‌بند (مانند مدل random forest) بر روی دیتای ترین و تست به صورت همزمان هست به این صورت که به کل دیتای ترین لیبل ۱ و به کل دیتای تست لیبل صفر بزنیم. اگه مدل ما بتونه با دقت خوبی این دو تا دیتا رو از هم تفکیک کنه ینی به احتمال زیاد data drift رخ داده و چنانچه از مدل‌های درختی استفاده کرده باشید با مفهوم feature importance می‌تونید حتی متغیر دریفت کرده رو هم شناسایی کنید. (برای استفاده از این مفهوم یه بار دیگه این پست رو نگاه بندازید)
و در آخر، علل مختلفی برای وقوع model drift وجود داره که از مهمترین‌هاشون تاثیرات فصلی و مقطعی روی داده، معرفی مفاهیم  یا محصولات و یا سرویس‌های جدید به بازار هدف و یا تغییر کیفیت داده است. مهمترین راهکار هم برای رفع model drift اینه که فرآیند retrain برای مدل‌تون داشته باشید و هیچ وقت به اینکه یه مدل با کیفیت رو روی دیتای ترین آموزش دادید و روی دیتای تست نتیجه خوب گرفتید هم بسنده نکنید.

منابع:
A survey on concept drift adaptation
Design Machine Learning Systems

#handsOn

@nlp_stuff
Telegram stuff
More from @nlp_stuff
  1. Jan 6, 2026اندر حکایات بازی با کلمات: AI Engineering vs ML Engineering/Data Scientist این روزها عناوی…
  2. Mar 3, 2025مفهوم Agent چیست و چگونه کار می‌کنند؟ خانم چیپ هوین بلاگ پست مفصلی راجع به Agent (به قول ر…
  3. Feb 28, 2025خلاصه‌تر فکر کن از اونجایی که در مسائل استدلالی (reasoning) ، مدل برای رسیدن به جواب نهایی…
  4. Feb 23, 2025چه قدر تا بی‌کارشدن بک‌اندی‌ها فاصله داریم؟ عمده استفاده برنامه‌نویس‌ها از LLM‌ها در سطح پ…
  5. Feb 20, 2025به سوی سیستم‌۲ پیشرفت‌های هوش مصنوعی در دهه ۲۰۱۰، مدیون آموزش مدل‌های بزرگ دیپ لرنینگی روی…
  6. Feb 8, 2025مدل‌های استدلالی (reasoning) چیست و چگونه ساخته می‌شوند؟ حتما این روزها بارها مدل‌های استد…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →