ویرگول
ورودثبت نام
Pedram Dadkhah
Pedram Dadkhah
خواندن ۳ دقیقه·۳ سال پیش

چرخه زندگی یک پروژه در حوزه یادگیری ماشین (از ایده تا تولید)

معمولا وقتی ما به یه پروژه تو حوزه یادگیری ماشین فکر میکنم، به واسطه تحصیلات آکادمیک، ذهنمون میره سمت انواع مدل ها و optimize کردنشون و شاید یه مقدارم به دیتا فکر کنیم. و خب حقیقت هم اینه که این قسمت خیلی مهمه! اما با همه مهم بودنش تمام ماجرا نیست.

برای اینکه یه پروژه یا یه ایده تو زمینه یادگیری ماشین بتونه به دست مشتری برسه چالش های زیادی سر راهمونه. تو این مقاله که قسمت اول از یک سلسله مقاله‌ست، قراره یکم با این چالش ها بیشتر آشنا شیم.


یه ایده تو حوزه یادگیری ماشین برای اینکه بتونه به سطح استفاده تو صنعت برسه باید 4 تا مرحله اصلی رو طی کنه که بهشون کوتاه اشاره میکنم:

1- بررسی دامنه یا scoping:

پروژه چیه اصلا؟

قراره چه موضوعی رو حل کنه؟

تعریف پروژه!

2- داده:

تعریف داده ها

دسته بندی

تمیز کردن

برچسب گذاری

3- مدل کردن:

مهندسی ویژگی یا feature engineering

انتخاب ویژگی ها یا feature selection

انتخاب و آموزش مدل

تحلیل خطا

4- تولید یا استقرار یا deployment (!):

قرار دادن مدل در صف تولید

مانیتورینگ و نگه‌داری

مرحله 4 خیلی وقتا از دید ما مهندسای یادگیری ماشین یا دیتا ساینتیست ها یه مرحله ساده و بدون چالش دیده میشه (یا حداقل فکر میکنیم حل چالش هاش مسئولیت ما نیست و کار مهندسای نرم افزاره :D). اما حقیقت این نیست!
تو این مرحله با 2 نوع چالش میتونیم مواجه شیم. آره یه نوعش نرم افزاریه (اما بازم ممکنه مسئولیتش با ما باشه). ولی نوع دیگش کامل مربوط به خودمونه! با یه مثال معروف سیستم پیش‌بینی قیمت خونه توضیحش میدم:

فرض کنید ما یه سیستم پیش‌بینی قیمت خونه ساختیم و خیلی هم خوب یه مدته که داره کارشو انجام میده. اولین بار این سیستم تو یه روستا deploy شده و با داده های اونجا آموزشش دادیم. حالا بعد چند سال این روستا بزرگ شده و داره تبدیل به شهر میشه. اندازه ملک هایی که قبلا همه باغ داشتن داره کوچیک میشه و خونه ها دارن آپارتمان میشن. کم کم آپارتمان های کوچیک و کوچیک تر و تک نفره هم دارن ساخته میشن و سیستم ما اصلا تا حالا داده متراژی تو اون سطح ندیده! و خب این مساله قطعا دقت پیش‌بینی ما رو داره کاهش میده و مدلمون روز به روز داره به درد‌نخور‌تر میشه.

به مشکلی که تو مثال بالا بهش اشاره کردم میگن data drift! یعنی distribution داده های ما کم کم در طول زمان داره تغییر میکنه. میانگین و میانه و واریانسشون داره تغییر میکنه. و این توی production یه چالش جدی به حساب میاد.

توی همون مثال بالا، فرض کنید یه اتفاقی تو شهر میفته و یهو قیمت خونه گرون میشه (کم ندیدیم این اتفاقو xD). حالا مدل ما که یاد گرفته بود یه خونه با بردار ویژگی X رو به قیمت y مپ کنه، باید خونه با همون ویژگی هارو به قیمت y + c مپ کنه! به این میگن چالش concept drift.

اینا 2 تا مثال از مشکلاتی بودن که با قرار گرفتن یه مدل تو یه محیط صنعتی ممکنه به وجود بیاد و وظیفه مهندس ماشین لرنینگ هست که بتونه پیش‌بینی شون کنه و یه مدل robust بسازه یا حداقل بتونه حلشون کنه!

تو مقالات بعدی یه مقدار از چالش های نرم افزاری production میگم و بعد میریم سراغ چجوری پیش‌بینی کردن، حل کردن و معرفی ابزارایی که شاید یکم کارمونو تو سر و کله زدن با این چالش ها راحت تر کنن.

یادگیری ماشینmlopsماشین لرنینگmachine learningصنعت
شاید از این پست‌ها خوشتان بیاید