MLOps، مراحل و فرایندها (بخش اول): تعریف و لزوم

در این مقاله، و دو مقاله بعدی به شرح MLOPS، تفاوت آن با DevOps و ارتباط آن با یادگیری ماشین پرداخته میشود.

گام های علم داده برای یادگیری ماشین

یکی از عوامل مهمی که موجب مطرح شدن MLOPS در فناوری های جدید شده است، پیچیدگی ها و چالش های حول یک کد یادگیری ماشین است. برخی از چالش ها و پیچیدگی های ارائه مدل در محیط عملیاتی و در انجام پیش بینی برخط، در شکل زیر نشان داده شده است (گوگل – مقاله 2014). همانطور که در شکل دیده می شود، تنها بخش کوچکی از سیستم های واقعی یادگیری ماشین، کد یادگیری ماشین هستند. زیرساخت حول این سیستم ها عظیم و پییچیده است. به طوری که نرم افزارهای پیرامون یک کد ML باید نیازمندی های زیر را در مراحل مخلتف توسعه و استقرار براورده کنند:

  • پیکربندی
  • خودکارسازی
  • جمع آوری داده
  • verify کردن داده
  • تست و دیباگ
  • مدیریت منابع
  • آنالیز مدل
  • مدیریت متاداده و فرایندها
  • مدیریت زیرساخت
  • مانیتورینگ و غیره.

 

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

گام اول، استخراج داده: انتخاب و یکپارچه سازی داده های مرتبط از منابع داده ای مختلف برای تسک خاص یادگیری ماشین

گام دوم، آنالیز داده: انجام آنالیز داده (Exploratory Data Analysis-EDA)، برای شناخت داده به منظور ساخت مدل. این فرایند به نتایج زیر منجر می شود:

– شناخت ویژگی های داده و اسکیمای آن
– تعیین آماده سازی داده و مدیریت فیچرها که برای مدل به آن نیاز است

گام سوم، آماده سازی داده: داده برای تسک MLحاضر میشود. این مرحله شامل تمیز کردن داده است که داده در آن به مجموعه های آموزشی، validation و تست تقسیم می شود. تغییر شکل داده و مهندسی فیچرها نیز در این مرحله اعمال می شود. خروجی این مرحله داده با فرمت مناسب و تقسیم شده در چند مجموعه است.

گام چهارم، آموزش مدل: الگوریتم های مختلفی با داده آماده شده اجرا میشود و مدل های متفاوتی آموزش داده می شوند. علاوه بر این تنظیم هایپرپارامترها روی الگوریتم های پیاده شده اعمال می شود تا بهترین کارایی مدل به دست آید. خروجی این مرحله یک مدل آموزش دیده است.

گام پنجم، ارزیابی (evaluation)مدل: مدل روی یک مجموعه تست کنار نگه داشته شده ارزیابی می شود و کیفیت مدل اندازه گیری می شود. خروجی این مرحله مجموعه متریک هایی است که برای ارزیابی کیفیت مدل مورد استفاده قرار می گیرد.

گام ششم، اعتبارسنجی(validation) مدل: تایید می شود که مدل برای استقرار آماده است و این یعنی کارایی مدل در پیش بینی، از یک حد baseline تعیین شده، بیشتر است.

گام هفتم، سرو کردن مدل: مدل اعتبارسنجی ­شده در یک محیط هدف مستقر می شود تا پیش بینی کند. استقرار می تواند به یکی از مدل های زیر باشد:

– میکروسرویس با REST API برای سرو کردن پیش بینی های آنلاین
– یک مدل تعبیه شده در یک دستگاه موبایل یا دستگاه لبه
– بخشی از یک سیستم پیش بینی Batch

و گام هشتم، مانیتور کردن مدل: کارایی پیشگویانه مدل مانیتور می شود تا در صورت نیاز یک تکرار جدید در فرایند ساخت مدل صدا شود (invoke).

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

 

تعریف MLOps و قیاس آن با DevOps

MLOPS برگرفته شده از واژه DEVOPS است. کلمه devops در توسعه و به کارگیری نرم افزارهای سیستمی با مقیاس بالا کاملا مرسوم است. devops سیکل های توسعه را کاهش داده، سرعت استقرار و انتشار را افزایش می دهد. DevOps برای دست یافتن به این اهداف از دو مفهوم در توسعه سیستم های نرم افزاری استفاده میکند که عبارتند از:

  • یکپارچه سازی مستمر یا Continuous Integration (CI)
  • و تحویل مستمر یا Continuous Delivery (CD)

با توجه به تعریف DevOps و چالش های خاص ماشین های یادگیر، MLOPS تعریف و معنا می شود. MLOps در واقع فرهنگ مهندسی یادگیری ماشین در یکپارچه سازی توسعه (Dev) سیستم ML و عملیات(Ops) آن است. به عبارت دیگر تلاش برای خودکارسازی و مانیتور تمامی گام های ساخت سیستم های ML، یکپارچه­ سازی، تست، انتشار، استقرار، و مدیریت زیرساخت آنها است.

یادگیری ماشین یک سیستم نرم افزاری است و لذا اصول devops برای سیستم های یادگیری ماشین هم مثل هر نرم افزار دیگری قابل اعمال است. با وجود این، سیستم های یادگیری ماشین تفاوت هایی با نرم ­افزارهای معمول دارند که باید در فرایندهای MLOPS در نظر گرفته شوند. می توان این تفاوت ها را در دسته های زیر تقسیم بندی کرد:

1. مهارت تیمی

تیم علوم داده، داده را آنالیز می کند، مدل توسعه می دهد و آزمایش می کند و با مهندسی نرم افزار و سرویس های کلاس production  آشنا نیست.

2. توسعه

طبیعیت یادگیری ماشین، آزمایشی است! باید مدل ها، الگوریتم ها، فیچرها، پیکربندی های مختلف پارمترها را تست کرد تا بهترین پاسخ ممکن را در سریع ترین زمان یافت. چالش، دنبال کردن کارهای انجام شده/نشده، و قابلیت تولید مجدد و reusable کردن بیشینه کد است.

3. تست

علاوه بر تست واحد و یکپارچگی، در یک مدل یادگیری ماشین باید تستهای data validation، ارزیابی کیفیت مدل آموزش دیده، و ارزیابی مدل وجود داشته باشد.

4. استقرار

استقرار مدل ها به سادگی حالت آفلاین آنها نیست. ممکن است نیاز باشد یک پایپ لاین چند گامه خودکار برای استقرار مدل، مستقر کنید. این پایپ لاین ها پیچیدگی به مساله افزوده و نیاز است گام هایی خودکار شود که پیش از این به صورت دستی توسط data scientistها انجام می شده تا مدل های جدید آموزش دیده و ارزیابی شوند.

5. محیط عملیاتی یا Production

ممکن است مدل های یادگیری ماشین کارایی شان در طول زمان کاهش یابد. علت این امر، فقط روش کد زدن نیست، بلکه به علت بلوغ داده نیز ممکن است چنین مواردی رخ دهد. در واقع مدل ها سریعتر از نرم افزارهای معمولی کارکرد خود را از دست داده و degrade شوند. پس لازم است آمارهایی از داده داشته و کارایی مدل را بصورت آنلاین مانیتور کنید، هشدارهایی ارسال کنید و در صورت نیاز وقتی مدل از انتظاری که از آن میرفت فاصله گرفت، مدل را role back کنید.

 

علاوه بر تفاوت های فوق، باید به این نکته توجه کرد که اگرچه سیستم های مبتنی بر یادگیری ماشین از نظر CI، کنترل کد منبع، تست Unit، تست یکپارچه سازی، و تحویل مداوم ماژول ها و پکیج های نرم افزاری با دیگر سیستم های نرم افزاری همسان هستند، اما چند نکته مهم در CI/CDی خاص یادگیری ماشین وجود دارد که باید در MLOPS در نظر گرفته شود:

1) CI دیگر فقط به تست و ارزیابی کد و مولفه ها محدود نمی شود بلکه تست و ارزیابی داده، اسکیمای داده، و مدل ها را هم در بر می گیرد.

2) CD دیگر فقط مرتبط با یک پکیج نرم افزاری یا سرویس نیست بلکه یک سیستم (یک پایپ لاین آموزش ML) را شامل می شود که باید به صورت خودکار سرویس دیگری را مستقر کند (سرویس پیش بینی مدل)

3) عبارت CT یک ویژگی جدید است که خاص سیستم های ML است و مرتبط با آموزش مجدد و سرو کردن مدل هاست.

در یک فرایند MLOPS بالغ تمام موارد فوق، که به چالش های خاص یادگیری ماشین در کنار تفاوت های مرتبط با آنها در CI/CD پرداختند، باید در نظر گرفته شوند. هر چه این فرایند بالغ تر باشد، MLOPS ارائه شده قویتر و موثر تر خواهد بود.

 

برای مشاهده ادامه این مقاله به MLOPS  چیست؟ (بخش دوم) بروید

دیدگاهتان را بنویسید