MLOps یک روش جدید برای نزدیک شدن به عملیات روزانه کاربر است که میتواند مدیریت آن را آسانتر و کارآمدتر کند.
MLOps در مورد ساده سازی فرآیندهای سازمان، خودکارسازی آنها و اطمینان در رابطه با استفاده صحیح از ابزارهای مناسب است.
در این مقاله به بررسی موارد زیر خواهیم پرداخت:
- MLOps چیست؟
- اجزای MLOps چیست؟
- علل استفاده از MLOps چیست؟
- نحوه پیاده سازی MLOps
- اصول MLOps
- مزایا و چالشهای MLOps چیست؟
1# MLOps چیست؟
عملیات یادگیری ماشین یا MLOps که مخفف عبارت Machine learning operations بوده، مجموعهای از شیوههایی است که گردشها و استقرار یادگیری ماشین (ML) را خودکار و ساده میکند.
یادگیری ماشینی و هوش مصنوعی (AI) قابلیتهای اصلی هستند که میتوان برای حل مشکلات پیچیده دنیای واقعی و ارائه ارزش به مشتریان پیاده سازی کرد.
MLOps یک فرهنگ و روش ML است که توسعه برنامه کاربردی ML (Dev) را با استقرار و عملیات سیستم ML (Ops) یکپارچه میکند.
هر سازمان میتواند از MLOها برای خودکارسازی و استانداردسازی فرآیندها در طول چرخه حیات ML استفاده کند.
این فرآیندها شامل موارد زیر هستند:
- توسعه مدل
- آزمایش
- ادغام
- انتشار
- و مدیریت زیرساخت
1-1# مهارتهای مورد نیاز برای مهندسی MLOps چیست؟
مهندسان MLOps پل بین یادگیری ماشین و عملیات هستند.
آنها مطمئن میشوند که مدلهای یادگیری ماشین به درستی مستقر و به روز میشوند و هیچ مشکلی ایجاد نمیکنند.
MLOها باید مهارتهای زیر را داشته باشند:
- تجربه کار در محیط چابک
- مهارت حل مشکل و یادگیرنده سریع
- درک اهمیت یادگیری مستمر و توسعه شخصی
- دانش حداقل یک زبان برنامه نویسی، ترجیحا پایتون یا جاوا
آنها همچنین باید نتایج مدلهای خود را تفسیر کنند، به این معنا که باید بتوانند دادهها را در یک سطح اساسی بخوانند و بفهمند که چگونه با مشکل حل شده توسط مدل ارتباط دارد.
مهارتهای فنی که برای مهندس MLOps نیاز است، عبارت اند از:
- علم داده
- مدل سازی آماری
- برنامه نویسی Python/R
- یادگیری ماشینی (ML)
- SQL
- اسکریپت نویسی پوسته لینوکس یا یونیکس
2-1# DevOps در مقابل MLOps
MLOps از DevOps الهام گرفته و این دو رویکرد، ذاتاً مشابه یکدیگر هستند.
با این حال، چند روش وجود دارد که MLOps به شکل قابل توجهی با DevOps متفاوت است:
- ماهیت آزمایشی MLOps: بیشتر فعالیت تیمهای علم داده مربوط به آزمایش است.
تیمها دائما ویژگیهای مدلهای خود را تغییر میدهند تا عملکرد بهتری داشته باشند، در حالی که یک پایگاه کد در حال تکامل را نیز مدیریت میکنند. - تیمهای ترکیبی: تیمهای علم داده شامل توسعه دهندگان و دانشمندان داده یا محققانی هستند که دادهها را تجزیه و تحلیل کرده و مدلها و الگوریتمها را توسعه میدهند.
- آزمایش مداوم: CT علاوه بر مراحل آزمایش منظم خط لوله DevOps، مانند تستهای:
- واحد
- عملکردی
- و یکپارچه سازی
یک خط لوله MLOps باید به صورت مداوم خود مدل را نیز آزمایش کند، آن را آموزش داده و عملکرد آن را در برابر یک مجموعه داده شناخته شده تأیید کند.
- بازآموزی خودکار: در بیشتر موارد، مدلی که از پیش آموزش داده شده، نمیتواند همان گونه که در تولید است، استفاده شود.
این مدل نیاز به آموزش مجدد و به کارگیری مداوم دارد.
این امر مستلزم خودکارسازی فرآیندی است که دانشمندان داده برای آموزش و اعتبارسنجی مدلهای خود طی میکنند. - کاهش عملکرد: برخلاف سیستمهای نرم افزاری معمولی، حتی اگر یک مدل کاملاً کار کند، عملکرد آن میتواند در طول زمان کاهش یابد.
این امر میتواند به دلیل موارد زیر رخ دهد:- ویژگیهای غیرمنتظره دادههای مصرف شده توسط مدل
- تفاوتهای بین خطوط لوله آموزش
- استنتاج
- و سوگیریهای ناشناخته ای (که میتوانند با هر حلقه بازخورد رشد کنند)
- نظارت بر دادهها: تنها نظارت بر یک مدل به عنوان یک سیستم نرم افزاری کافی نیست.
تیمهای MLOps همچنین باید دادهها و پیش بینیها را زیر نظر داشته باشند تا ببینند چه زمانی مدل، نیاز به روز رسانی یا بازگردانی دارد.
2# بهترین شیوهها برای MLOps چیست؟
بهترین شیوهها برای MLOps را میتوان با مرحلهای که در آن اصول MLOps اعمال میشود، مشخص کرد که عبارت اند از:
- تجزیه و تحلیل دادههای اکتشافی: با ایجاد مجموعه دادهها، جداول و تجسمهای قابل تکرار، قابل ویرایش و اشتراک گذاری، میتوان دادهها را برای چرخه یادگیری ماشینی به شکل مکرر کاوش، به اشتراک گذاشته و آماده کرد.
- آماده سازی دادهها: مهمتر از همه، با استفاده از یک مجموعه ویژگی، ویژگیها را در بین تیمهای داده قابل مشاهده و اشتراک گذاری کنید.
- آموزش و تنظیم مدل: از کتابخانههای منبع باز محبوب مانند scikit-learn و hyperopt برای آموزش و بهبود عملکرد مدل استفاده کنید.
به عنوان یک جایگزین ساده تر، از ابزارهای خودکار یادگیری ماشین مانند AutoML برای اجرای خودکار اجرای آزمایشی و ایجاد کد قابل بازبینی و توسعه استفاده کنید. - بررسی و مدیریت مدل: که شامل ردیابی اصل و نسب مدل، نسخههای مدل و مدیریت مصنوعات مدل و انتقال در طول چرخه عمر آنها است.
با کمک یک پلتفرم MLOps منبع باز مانندMLflow ، مدلهای ML را کشف، به اشتراک بگذارید و با آنها همکاری کنید. - استنتاج و ارائه مدل: فرکانس به روز رسانی مدل، زمانهای درخواست استنتاج و ویژگیهای مشابه تولید را در تست و QA مدیریت کنید.
از ابزارهای CI/CD مانند مخازن و ارکستراتورها و اصول devops برای خودکار کردن خط لوله پیش تولید استفاده کنید. - استقرار و نظارت مدل: مجوزها و ایجاد خوشه را برای تولید مدلهای ثبت شده به صورت خودکار انجام دهید.
نقاط پایانی مدل REST API را فعال کنید. - آموزش مجدد مدل خودکار: شامل ایجاد هشدار و اتوماسیون برای انجام اقدامات اصلاحی در صورت جابهجایی مدل به دلیل تفاوت در آموزش و دادههای استنتاجی است.
3# اجزای MLOps چیست؟
دامنهMLO ها در پروژههای یادگیری ماشینی میتواند به اندازه نیاز پروژه متمرکز یا گسترده باشد.
در موارد خاص، MLOها میتوانند همه چیز را از خط لوله داده تا تولید مدل در برگیرند، در حالی که سایر پروژهها ممکن است نیاز به اجرای MLOs فقط در فرآیند استقرار مدل داشته باشند.
اکثر سازمانها اصول MLOps را در موارد زیر به کار می گیرند:
- تجزیه و تحلیل دادههای اکتشافی (EDA)
- آماده سازی دادهها و مهندسی ویژگی
- آموزش و کوک مدل
- بررسی مدل و حاکمیت
- استنتاج و ارائه مدل
- نظارت بر مدل
- بازآموزی مدل خودکار
4# علل استفاده از MLOps چیست؟
در سطوح بالا، برای شروع چرخه یادگیری ماشینی، سازمان معمولا باید با آماده سازی دادهها شروع کند؛ به همین منظور سازمان باید انواع مختلف دادهها را از منابع مختلف دریافت کرده و فعالیتهایی مانند تجمیع، تمیز کردن تکراری و مهندسی ویژگیها را انجام دهد.
پس از آن، از دادهها برای آموزش و اعتبارسنجی مدل ML استفاده خواهد شد.
سپس میتوان مدل آموزش دیده و تأیید شده را به عنوان یک سرویس پیش بینی که سایر برنامهها میتوانند از طریق API به آن دسترسی داشته باشند، مستقر کرد.
تجزیه و تحلیل دادههای اکتشافی اغلب از کاربر میخواهد که مدلهای مختلف را آزمایش کند تا زمانی که بهترین نسخه مدل برای استقرار آماده شود.
این امر به استقرار مکرر نسخه مدل و نسخه سازی داده میانجامد.
ردیابی آزمایشی و مدیریت خط لوله آموزش ML قبل از این که برنامههای کاربر بتوانند مدل را در کد خود ادغام یا مصرف کنند، ضروری است.
MLOps برای مدیریت سیستماتیک و همزمان انتشار مدلهای جدید ML با تغییرات کد برنامه و دادهها حیاتی است.
پیاده سازی بهینه MLOps، داراییهای ML را مشابه سایر داراییهای نرم افزار محیطی یکپارچه سازی کرده و تحویل پیوسته (CI/CD) را اجرا میکند.
کاربران، مدلهای ML را در کنار برنامهها و سرویسها استفاده میکنند و برنامههای مصرفی را به عنوان بخشی از یک فرآیند انتشار یکپارچه مستقر خواهند کرد.
5# نحوه پیاده سازی MLOps
این بحث بر اساس چارچوب Google Cloud است.
در زیر فرآیند Google برای پیاده سازی MLOps در سازمان و انتقال ازMLOps Level 0 که در آن یادگیری ماشین کاملا دستی است، به MLOps Level 2 که در آن سازمان یک خط MLOps کاملا خودکار دارد، آورده شده است.
در ادامه با نحوه پیاده سازی MLOps در سازمان آشنا خواهیم شد.
1-5# سطح صفر MLOps: فرآیند دستی
در این سطح از بلوغ، یک تیم میتواند مدلهای مفید ML/DL بسازد؛ اما یک فرآیند کاملا دستی برای استقرار آنها در تولید داشته باشد.
خط لوله ML به شکل زیر است:
- تمام مراحل در خط لوله به صورت دستی یا بر اساس کد آزمایشی اجرا شده در نوت بوکهای Jupyter از جمله موارد زیر است:
- تجزیه و تحلیل دادهها
- آماده سازی
- آموزش
- اعتبارسنجی
- دانشمندان داده جدا از مهندسانی که سرویس پیش بینی نهایی را به کار میگیرند، کار میکنند.
تیم علم داده، یک مدل آموزش دیده را در اختیار مهندسان ML قرار میدهد که مسئول ارائه آن به عنوان یک API با تأخیر کم هستند.
تفاوت بین محیطهای آزمایشی و محیط های تولید میتواند، منجر به انحراف در خدمت آموزش شود. - مدلها اغلب منتشر نمیشوند. فرض بر این است که تیم علم داده کار روی مدل را به پایان رسانده و اکنون میتوان آن را برای تولید مستقر کرد.
- هیچ CI/CD وجود ندارد؛ زیرا مدل برنامه ریزی نشده که به صورت منظم تغییر کند.
بنابراین در این سطح از بلوغ، هیچ توجهی به ساخت خودکار کد مدل (CI) یا استقرار خودکار یک سرویس پیش بینی برای تولید (CD) وجود ندارد. - هیچ نظارت منظمی بر عملکرد مدل وجود ندارد؛ با این فرض که مدل عملکرد سازگار با دادههای جدید را ارائه میدهد.
2-5# سطح یک MLOps: اتوماسیون خط لوله ML
در این سطح، این درک وجود دارد که مدل باید در خط لوله CI/CD مدیریت شده و آموزش یا اعتبارسنجی باید به صورت مداوم روی دادههای جدید انجام شود.
خط لوله ML اکنون به شکل زیر تکامل مییابد:
- به دلیل هماهنگی کل فرآیند ML، آزمایشها میتوانند، بسیار سریع تر اتفاق بیفتند.
دانشمندان داده میتوانند یک فرضیه بیاندیشند و به سرعت آن را برای تولید به کار گیرند. - این مدل به صورت مداوم با دادههای تازه، بر اساس بازخورد عملکرد مدل زنده، آزمایش شده و دوباره آموزشهای لازم ارائه میشود.
- در محیط آزمایشی از همان تنظیماتی که در محیط تولید استفاده شده، برای از بین بردن انحراف در خدمت آموزش استفاده میشود.
- تمام اجزای مورد استفاده برای ساخت و آموزش مدل قابل استفاده مجدد و اشتراک گذاری در چندین خط لوله هستند.
3-5# سطح دو MLOps: اتوماسیون کامل خط لوله CI/CD
در این بالاترین سطح بلوغ MLOps، آزمایشهای جدید به صورت یکپارچه با حداقل مشارکت مهندسان برای تولید به کار گرفته میشوند.
یک دانشمند داده میتواند به راحتی یک خط لوله جدید ML ایجاد کرده و به صورت خودکار آن را بسازد، آزمایش کند و در یک محیط هدف مستقر کند.
یک خط لوله CI/CD کاملاً خودکار به این صورت عمل میکند:
- تیمها مدلها و آزمایشهای جدیدی ارائه کرده و کد منبعی تولید کرده که تلاشهای آنها را توصیف میکند.
- کد منبع به صورت خودکار توسط موتور CI ساخته شده که تستهای خودکار را اجرا میکند. مصنوعاتی را تولید میکند که میتوانند در مراحل بعدی مستقر شوند.
- خط لوله، مصنوعات را در محیط هدف مستقر کرده که اکنون یک نسخه جدید کاملا کاربردی از مدل دارد.
- خط لوله به صورت خودکار بر اساس یک ماشه اجرا و نتیجه به یک رجیستری مدل منتقل میشود.
- مدل آموزش دیده مستقر شده و پیش بینیهای زنده را با تأخیر کم امکان پذیر میکند.
- خط لوله آماری از عملکرد مدل زنده جمع آوری میکند. دانشمندان داده میتوانند این دادهها را ارزیابی و بر اساس عملکرد حالت یک چرخه آزمایش جدید را شروع کنند. (بازگشت به مرحله 1)
6# اصول MLOps چیست؟
در این بخش به بررسی چهار اصل کلیدی MLOps خواهیم پرداخت، این اصول به صورت زیر هستند.
1-6# کنترل نسخه
این فرآیند شامل ردیابی تغییرات در داراییهای یادگیری ماشینی است تا بتوان نتایج را بازتولید کرده و در صورت لزوم به نسخههای قبلی بازگشت.
هر کد آموزشی ML یا مشخصات مدل از مرحله بررسی کد عبور میکند.
هر کدام به گونه ای نسخه بندی شدهاند که آموزش مدلهای ML قابل تکرار و ممیزی باشد.
تکرارپذیری در یک گردش کار ML در هر مرحله، از پردازش داده تا استقرار مدل ML مهم است.
به این معنا که هر فاز باید نتایج یکسانی را با توجه به ورودی یکسان تولید کند.
2-6# اتوماسیون
مراحل مختلف در خط لوله یادگیری ماشین را خودکار کنید تا از تکرارپذیری، ثبات و مقیاس پذیری مطمئن شوید.
این موضوع، شامل مراحلی از موارد زیر است:
- دریافت داده
- پیش پردازش
- آموزش مدل
- اعتبارسنجی تا استقرار
این موارد برخی از عواملی هستند که میتوانند آموزش و استقرار مدل خودکار را آغاز کنند:
- پیام رسانی
- نظارت یا تقویم رویدادها
- تغییر دادهها
- تغییر کد آموزشی مدل
- تغییر کد برنامه
تست خودکار به کاربر کمک میکند تا مشکلات را برای رفع سریع خطاها و یادگیری زودهنگام کشف کند.
اتوماسیون با زیرساخت به عنوان کد (IaC) کارآمدتر است.
میتوان از ابزارهایی برای تعریف و مدیریت زیرساخت استفاده کرد. این امر کمک میکند تا کاربر مطمئن شود که قابل تکرار بوده و میتواند به صورت مداوم در محیط های مختلف مستقر شود.
3-6# X پیوسته
از طریق اتوماسیون، میتوان به صورتی مداوم آزمایشها را اجرا کرده و کد را در سراسر خط لوله ML مستقر کنید.
در MLOps، پیوسته به چهار فعالیتی اطلاق میشود که اگر تغییری در هر نقطه از سیستم ایجاد شود، به صورت مداوم اتفاق میافتد:
- یکپارچه سازی مداوم اعتبار و آزمایش کد را به دادهها و مدلهای در حال توسعه گسترش میدهد.
- تحویل مداوم به صورت خودکار مدل آموزش دیده یا سرویس پیش بینی مدل را مستقر میکند.
- آموزش مداوم به صورت خودکار مدلهای ML را برای استقرار مجدد بازآموزی میکند.
- نظارت مستمر مربوط به نظارت بر دادهها و مدل با استفاده از معیارهای مربوط به تجارت است.
4-6# حاکمیت مدل
حاکمیت، شامل مدیریت تمام جنبههای سیستمهای ML برای کارایی آنها است.
برای حاکمیت باید فعالیتهای زیادی همانند موارد زیر را انجام دهید:
- همکاری نزدیک بین دانشمندان داده، مهندسان و سهامداران کسب و کار را تقویت کنید.
- از اسناد واضح و کانالهای ارتباطی مؤثر برای اطمینان از همسو بودن همه استفاده کنید.
- مکانیسمهایی برای جمع آوری بازخورد در مورد پیش بینیهای مدل و بازآموزی بیشتر مدلها ایجاد کنید.
- مطمئن شوید که دادههای حساس محافظت میشوند، دسترسی به مدلها و زیرساختها ایمن است و الزامات انطباق رعایت میشوند.
همچنین ضروری است که یک فرآیند ساختاریافته برای بررسی، اعتبارسنجی و تأیید مدلها قبل از انتشار آنها وجود داشته باشد.
این امر میتواند، شامل بررسی انصاف، تعصب و ملاحظات اخلاقی باشد.
7# مزایا و چالشهای استفاده از MLOps چیست؟
مزایا و چالشهای استفاده از MLOps را در این بخش بررسی خواهیم کرد.
1-7# مزایای کلیدی MLOps چیست؟
MLOps حلقه مفقودی حیاتی است که به فناوری اطلاعات اجازه میدهد از نیازهای زیرساختی بسیار تخصصی زیرساخت ML پشتیبانی کند.
رویکرد MLOps چرخه ای بوده و به صورتی بسیار خودکار :
- زمان و پیچیدگی انتقال مدلها به تولید را کاهش میدهد.
- ارتباطات و همکاری را در بین تیمهایی که اغلب به صورت سیلو هستند، تقویت میکند، مانند: علم داده، توسعه و عملیات.
- رابط بین فرآیندهای تحقیق و توسعه و زیرساخت را به صورت کلی ساده کرده و به شکلی خاص استفاده از شتاب دهندههای سخت افزاری تخصصی مانند GPU را عملیاتی میکند.
- مسائل مدل را که برای سلامت بلندمدت برنامه حیاتی هستند، مانند نسخه سازی، ردیابی و نظارت را عملیاتی میکند.
- نظارت و درک زیرساختهای ML و محاسبه هزینهها را در همه مراحل، از توسعه تا تولید، آسان تر میکند.
- فرآیند ML را استاندارد کرده و آن را برای مقاصد مقرراتی و حاکمیتی قابل حسابرسی تر میکند.
2-7# چالشهای MLOps چیست؟
MLOps اگرچه برای مدیریت پروژههای یادگیری ماشینی حیاتی هستند؛ اما از منظر هزینه، پرسنل و منابع میتوانند چالش برانگیز باشند.
این چالشها عبارت اند از:
- هزینههای راه اندازی اولیه: راه اندازی اولیه MLOps با هزینههای قابل توجهی همراه است.
سازمانها باید روی زیرساختها، ابزارها و افراد مناسب سرمایه گذاری کنند.
هنگامی که این منابع تهیه شدند، سازمانها همچنین با چالشهای هزینه مرتبط با زمان مواجه خواهند شد و آماده سازی دادههای اولیه میتواند یک فرآیند طولانی و پرهزینه باشد. - انتخاب ابزار: یافتن ابزارهای مناسب برای پروژه یادگیری ماشینی به تخصص و زمان نیاز دارد.
با توجه به گستره وسیع گزینهها، حفظ مقیاس پذیری، قابلیتهای یکپارچه سازی و سهولت استفاده در بالاترین حد ممکن است. - الزامات مهارتی: MLOps یک فرآیند مشارکتی است که بر تخصص دانشمندان داده، مهندسان و متخصصان فناوری اطلاعات متکی است.
ساخت و مدیریت مدلهای یادگیری ماشین نیاز به مجموعهای از مهارتهای تخصصی دارد، بنابراین سازمانها باید روی پرسنل و آموزشهای مورد نظر سرمایه گذاری کنند. - تعمیر، نگهداری و مقیاس پذیری: حفظ خط لوله MLOps میتواند پیچیده باشد، به خصوص اگر سازمانها تعداد مدلها و منابع داده را افزایش دهند.
مقیاس بندی مدلهای یادگیری ماشینی میتواند، هم برای کارکنان و هم برای سیستمها منابع فشرده باشد.
پیدا کردن پلتفرم و مجموعه ابزار مناسب میتواند، تفاوت ایجاد کند.
نظرتون درباره این مقاله چیه؟
ما رو راهنمایی کنید تا اون رو کامل تر کنیم و نواقصش رو رفع کنیم.
توی بخش دیدگاه ها منتظر پیشنهادهای فوق العاده شما هستیم.