دادهها و رویکردهای طراحیشده برای پردازش آنها روزبهروز در حال پیچیدهتر شدن هستند. شرکتها بیش از هر زمان دیگری به دادهها دسترسی دارند، اما بسیاری از آنها هنوز از پتانسیل کافی برای دستیابی به بینش مناسب از دادههای خود برخوردار نیستند. یادگیری ماشین (Machine Learning) برای پر کردن این شکاف میتواند نقش بسزایی داشته باشد. بااینحال، وابستگی زیاد به فرایندهای دستی مشکلاتی را برای چرخه عمر در مرحله استقرار به همراه داشته است. MLOps یک روش طراحیشده برای حل چالش استقرار محسوب میشود که در این مقاله قصد بررسی کامل آن را داریم. مطالعه مقاله پیش رو به شما کمک میکند تا دید جامعی از عملیات یادگیری ماشین (Machine Learning Operations) یا بهاختصار MLOps به دست آورید.
MLOps چیست؟ عملیات یادگیری ماشین
MLOps مخفف عبارت Machine Learning Operations به معنای عملیات یادگیری ماشین است و به مجموعهای از اقداماتی گفته میشود که جریان کار (Workflow) و استقرار یادگیری ماشین (ML) را تا حد امکان خودکار و آسان میکند. یادگیری ماشین و هوش مصنوعی (AI) قابلیتهای عمدهای هستند که شما میتوانید برای حل مشکلات پیچیده دنیای واقعی و ارائه ارزش به مشتریانتان پیادهسازی کنید.
MLOps یک فرهنگ و شیوه یادگیری ماشین است که توسعه (Dev) اپلیکیشن یادگیری ماشین را با عملیات (Ops) و استقرار سیستم ML یکپارچه میکند. سازمان شما میتواند از MLOps برای خودکارسازی و استانداردسازی فرایندها در طول چرخه عمر ML بهره ببرد. این فرایندها شامل توسعه مدل، تست، یکپارچهسازی، انتشار و مدیریت زیرساخت میشود.
هدف MLOps پر کردن شکاف بین توسعه و عملیات برای یادگیری ماشین است تا اطمینان حاصل کند که مدلهای ML به روشی سازگار و قابل اعتماد توسعه یافتهاند، تست شدهاند و استقرار پیدا کردهاند. بهطور خلاصه، MLOps به فرایند مدیریت چرخه عمر یادگیری ماشین، از توسعه تا استقرار و نظارت اشاره دارد که شامل وظایف زیر میشود:
- ردیابی آزمایش: پیگیری آزمایشها و نتایج برای شناسایی بهترین مدلها
- استقرار مدل: استقرار مدلها برای تولید و در دسترس قرار دادن آنها برای اپلیکیشنها
- نظارت بر مدل: نظارت بر مدلها برای تشخیص هرگونه مشکل یا کاهش عملکرد
- بازآموزی (Retraining) مدل: بازآموزی مدلها با دادههای جدید برای بهبود عملکرد آنها و کاهش خطاهای احتمالی
برای آشنایی بیشتر با نقش هوش مصنوعی در پردازش ابری به این مقاله مراجعه کنید.
ضرورت MLOps
MLOps برای مدیریت چرخه عمر ML و اطمینان از موثر بودن فرایند توسعه، استقرار و نگهداری مدلهای ML ضروری است. همچنین MLOps برای مدیریت سیستماتیک و همزمان انتشار مدلهای جدید ML با تغییرات دادهها و کد اپلیکیشن اهمیت بسیاری دارد. بدون MLOps سازمانها ممکن است با چالشهای متعددی از جمله موارد زیر روبهرو شوند:
- افزایش ریسک خطاها: فرایندهای دستی ممکن است منجر به بروز خطا و ناسازگاری در چرخه عمر یادگیری ماشین شوند که میتواند بر دقت و قابلیت اطمینان مدلهای ML تاثیر بگذارد.
- عدم مقیاسپذیری: با افزایش پیچیدگی و اندازه مجموعه دادهها و مدلهای ML، مدیریت فرایندهای دستی و مقیاسپذیری موثر عملیات یادگیری ماشین سختتر یا بعضاً غیرممکن میشود.
- کاهش بهرهوری: فرایندهای دستی میتوانند زمانبر و ناکارآمد باشند و سرعت توسعه و استقرار مدلهای ML را کاهش دهند.
- عدم همکاری: فرایندهای دستی میتوانند همکاری موثر دانشمندان داده (Data scientist)، مهندسان و تیمهای عملیات را دشوار کنند و منجر به تعارضهای سازمانی و ایجاد اختلال در ارتباطات شوند.
MLOps با ارائه یک چارچوب و مجموعهای از ابزارها برای خودکارسازی و مدیریت چرخه عمر ML به حل این چالشها میپردازد. عملیات یادگیری ماشین امکان توسعه، استقرار و نگهداری مدلهای ML را بهطور کارآمدتر، قابل اعتمادتر و مقیاسپذیرتر برای سازمانها فراهم میکند.
اصول کلیدی MLOps چیست؟
در این بخش قرار است به اصول کلیدی MLOps بپردازیم. رعایت اصول زیر به شما کمک میکند تا یک محیط قوی و کارآمد ایجاد کنید تا بهطور کامل از پتانسیل یادگیری ماشین بهره ببرید.
1. کنترل نسخه (Version control)
فرایند کنترل نسخه شامل ردیابی تغییرات در داراییهای یادگیری ماشین است تا بتوانید نتایج را بازتولید کرده و در صورت نیاز به نتایج قبلی بازگردید. هر کد آموزشی ML یا مشخصات مدل از مرحله بررسی کد عبور میکند. آنها بهگونهای نسخهبندی میشوند که آموزش مدلهای ML قابل تکرار و ممیزی باشد.
تکرارپذیری در یک جریان کار ML در هر مرحله، از پردازش دادهها گرفته تا استقرار مدل ML، اهمیت فراوانی دارد؛ یعنی هر فاز باید نتایج یکسانی را باتوجه به ورودی یکسان تولید کند.
2. خودکارسازی (Automation)
برای اطمینان از تکرارپذیری، ثبات و مقیاسپذیری، مراحل مختلف در خط لوله (Pipeline) یادگیری ماشین را خودکار کنید. این مراحل شامل دریافت دادهها، پیشپردازش، آموزش مدل، اعتبارسنجی و استقرار میشوند.
از جمله عواملی که میتوانند آغازگر آموزش و استقرار مدل خودکار باشند، میتوانیم به موارد زیر اشاره کنیم:
- پیامرسانی
- نظارت یا زمانبندی رویدادها
- تغییر دادهها
- تغییر کد آموزش مدل
- تغییر کد اپلیکیشن
تست خودکار به شما کمک میکند تا مشکلات را برای رفع سریع خطاها و یادگیری زود هنگام کشف کنید. اتوماسیون با زیرساخت بهعنوان کد (Infrastructure as a Code (IaC)) کارآمدتر است. شما میتوانید از ابزارهایی برای تعریف و مدیریت زیرساخت استفاده کنید. این کار به اطمینان از تکرارپذیری و همچنین استقرار مداوم در محیطهای مختلف کمک میکند.
3. X مداوم (Continuous X)
از طریق اتوماسیون، شما میتوانید بهطور مداوم تستها را اجرا کرده و کد را در سراسر خط لوله ML خود مستقر کنید. در MLOps، مداوم (Continuous) به چهار فعالیت زیر اشاره دارد که اگر تغییری در هر قسمت از سیستم ایجاد شود، بهطور پیوسته اتفاق میافتد:
- یکپارچهسازی مداوم (Continuous integration) اعتبار و تست کد را به دادهها و مدلها در خط لوله گسترش میدهد.
- تحویل مداوم (Continuous delivery) بهطور خودکار سرویس پیشبینی مدل یا مدل آموزشدیده جدید را مستقر میکند.
- آموزش مداوم (Continuous training) بهطور خودکار مدلهای ML را برای استقرار مجدد دوباره آموزش میدهد.
- نظارت مداوم (Continuous monitoring) به نظارت بر دادهها و نظارت بر مدل با استفاده از معیارهای مربوط به کسبوکار در ارتباط است.
4. حاکمیت مدل (Model governance)
حاکمیت شامل مدیریت همهجانبه سیستمهای ML برای کارایی است. برای حاکمیت باید کارهای متعددی انجام دهید که در ادامه به آنها اشاره میکنیم:
- تقویت همکاری نزدیک بین دانشمندان داده (Data scientist)، مهندسان و سهامداران کسبوکار
- استفاده از اسناد واضح و کانالهای ارتباطی موثر برای اطمینان از همسو بودن فعالیت همه افراد
- ایجاد مکانیسمهایی برای جمعآوری بازخورد درباره پیشبینی مدل و بازآموزی بیشتر مدلها
- اطمینان از محافظت از دادههای حساس، امنیت دسترسی به مدلها و زیرساختها و رعایت الزامات
علاوهبر این، وجود یک فرایند ساختاریافته برای بازبینی، اعتبارسنجی و تایید مدلها قبل از انتشار آنها ضروری است.
آشنایی با مزایای MLOps
یادگیری ماشین به سازمانها در تجزیه و تحلیل دادهها و به دست آوردن بینشهایی برای تصمیمگیری کمک میکند. بااینحال، یادگیری ماشین یک روش نوآورانه و تجربی است که همواره چالشهایی به همراه دارد. حفاظت از دادهها، بودجه محدود، کمبود مهارتها و تکنولوژی در حال تکامل از جمله مواردی است که محدودیتهایی برای موفقیت یک پروژه به وجود میآورد. بدون کنترل و راهنمایی، هزینهها ممکن است از کنترل خارج شود و تیمهای علم داده (Data science) نیز به نتایج دلخواهشان نرسند.
MLOps یک نقشه برای هدایت پروژههای یادگیری ماشین به سمت موفقیت، بدون توجه به محدودیتها ارائه میدهد. از جمله مزایای کلیدی MLOps میتوانیم به موارد زیر اشاره کنیم:
عرضه سریعتر محصول به بازار
MLOps چارچوبی را برای سازمان فراهم میکند تا سریعتر و کارآمدتر به اهداف علم داده خود دست پیدا کند. توسعهدهندگان و مدیران میتوانند با استفاده از MLOps در مدیریت مدل، استراتژیکتر و چابکتر شوند. همچنین مهندسان یادگیری ماشین قادر خواهند بود زیرساختها را از طریق فایلهای پیکربندی اعلامی برای شروع روانتر پروژهها فراهم کنند.
ایجاد و استقرار خودکار مدل باعث میشود عرضه محصول به بازار سریعتر و با هزینههای عملیاتی کمتر انجام شود. دانشمندان داده میتوانند بهسرعت دادههای سازمان را بررسی کنند تا ارزش کسبوکاری بیشتری برای همه به ارمغان آورند.
بهبود بهرهوری
روشهای MLOps باعث افزایش بهرهوری و تسریع توسعه مدلهای یادگیری ماشین میشود. بهعنوان مثال، شما میتوانید محیط توسعه یا آزمایش را استاندارد کنید؛ سپس بهعنوان مهندس ML نیز پروژههای جدید را راهاندازی کرده و از مدلهای یادگیری ماشین در سراسر اپلیکیشنها بهطور مجدد استفاده کنید. ایجاد فرایندهای تکرارپذیر برای آزمایش سریع و آموزش مدل نیز با استفاده از روشهای MLOps امکانپذیر است. تیمهای مهندسی نرمافزار میتوانند از طریق چرخه عمر توسعه نرمافزار ML، برای بهرهوری بیشتر با یکدیگر همکاری و هماهنگی کنند.
استقرار مدل کارآمد
MLOps عیبیابی و مدیریت مدل را در تولید بهبود میبخشد. بهعنوان مثال، مهندسان نرمافزار میتوانند بر عملکرد مدل نظارت کرده و رفتار را برای عیبیابی بازتولید کنند. آنها میتوانند نسخههای مدل را ردیابی و بهطور مرکزی مدیریت کرده و در نهایت مورد مناسب را برای اهداف کسبوکاری مختلف انتخاب کنند. با ادغام جریان کاری مدل با خطوط لوله یکپارچهسازی و تحویل پیوسته (CI/CD)، کاهش عملکرد را محدود کرده و کیفیت مدلتان را حفظ خواهید کرد.
پیادهسازی MLOps در سازمان چگونه است؟
باتوجهبه بلوغ اتوماسیون در سازمان شما، سه سطح برای پیادهسازی MLOps وجود دارد که در ادامه قصد بررسی آنها را داریم:
سطح 0: بدون MLOps
سطح 0 جایی است که اکثر سازمانها در نقطه شروع در این مرحله قرار دارند. مدلها اغلب توسط دانشمندان داده بهصورت دستی مستقر شده و بهصورت جداگانه مدیریت میشوند. در واقع کلیه مراحل از جمله آمادهسازی دادهها، آموزش ML و عملکرد و اعتبارسنجی مدل دستی انجام میشود. تیمهای علم داده ممکن است مدلها را فقط چند بار در سال آموزش دهند. این رویکرد ناکارآمد و مستعد خطا است و با رشد پروژهها، مقیاسپذیری آن دشوار میشود.
سطح 1: اتوماسیون خط لوله ML
اسکریپتها و خطوط لوله اصلی CI/CD وظایف ضروری مانند پیشپردازش دادهها، آموزش و استقرار مدل را انجام میدهند. این سطح از عملیات کارایی و سازگاری را به همراه دارد و هدف از آن آموزش مداوم مدل با خودکارسازی خط لوله ML است.
در سطح 0، شما یک مدل آموزشدیده را برای تولید مستقر میکنید. در مقابل، برای سطح 1، شما به استقرار یک خط لوله آموزشی میپردازید که برای ارائه مدل آموزشدیده به سایر اپلیکیشنهای شما، بهطور مکرر اجرا میشود. در این سطح شما حداقل به تحویل مداوم (Continuous delivery) سرویس پیشبینی مدل دست پیدا میکنید.
بلوغ سطح 1 از ویژگیهای زیر برخوردار است:
- مراحل آزمایش سریع ML شامل اتوماسیون قابل توجه است.
- آموزش مداوم مدل در تولید با دادههای تازه بهعنوان محرکهای زنده خط لوله
- پیادهسازی خط لوله یکسان در محیطهای توسعه، پیشتولید و تولید
تیمهای مهندسی شما با همکاری دانشمندان داده مولفههای کد ماژولارشدهای ایجاد میکنند که قابل استفاده مجدد، قابل ترکیببندی و بهطور بالقوه قابل اشتراکگذاری در خطوط لوله ML باشد. شما میتوانید یک منبع ویژگی متمرکز ایجاد کنید که فضای ذخیرهسازی، دسترسی و تعریف ویژگیها را برای آموزش و ارائه ML استاندارد میکند. بهعلاوه، شما میتوانید فرا دادهها (Metadata) مانند اطلاعات مربوط به هر اجرای خط لوله و دادههای تکرارپذیر را مدیریت کنید.
سطح 2: یکپارچهسازی خط لوله CI/CD
خط لوله ML بهطور یکپارچه با خطوط لوله CI/CD موجود ادغام شده است. این سطح یکپارچهسازی، تحویل و استقرار مداوم مدل را امکانپذیر میکند و باعث روانتر و سریعتر شدن فرایند میشود. سطح 2 MLOps برای سازمانهایی است که میخواهند بیشتر آزمایش کنند و بهطور مکرر مدلهای جدیدی ایجاد کنند که نیاز به آموزش مداوم دارند. این سطح برای شرکتهای تکنولوژیمحوری مناسب است که مدلهایشان را در چند دقیقه بهروزرسانی میکنند، آنها را ساعتی یا روزانه دوباره آموزش میدهند و بهطور همزمان آنها را در هزاران سرور دوباره مستقر میکنند.
ازآنجاییکه چندین مدل خط لوله ML در حال اجرا وجود دارد، راهاندازی سطح 2 MLOps به تمام تنظیمات سطح 1 MLOps و موارد زیر نیاز دارد:
- یک هماهنگکننده (Orchestrator) پایپلاین ML
- یک رجیستری مدل برای ردیابی چندین مدل
برای اطمینان از تحویل مداوم مدل، سه مرحله زیر در مقیاس برای چندین خط لوله ML تکرار میشود:
1. ایجاد خط لوله
شما میتوانید ضمن اطمینان از هماهنگی مراحل آزمایش، بهطور مکرر مدلسازی جدید و الگوریتمهای جدید ML را امتحان کنید. این مرحله کد منبع را برای خطوط لوله ML خروجی میدهد و شما میتوانید کد را در مخزن (Repository) منبع ذخیره کنید.
2. استقرار خط لوله
در این مرحله، شما باید کد منبع را بسازید و آزمایشهایی را جهت به دست آوردن اجزای خط لوله برای استقرار اجرا کنید. خروجی این مرحله، یک خط لوله مستقرشده با پیادهسازی مدل جدید خواهد بود.
3. ارائه خط لوله
در نهایت، میتوانید خط لوله را بهعنوان یک سرویس پیشبینی برای اپلیکیشنهای خود ارائه دهید. در این مرحله باید آمار سرویس پیشبینی مدل مستقرشده را از دادههای زنده جمعآوری کنید. خروجی این گام محرکی برای اجرای خط لوله یا یک چرخه آزمایش جدید است.
MLOps و DevOps چه تفاوتهایی با یکدیگر دارند؟
MLOps و DevOps هر دو روشهایی هستند که با هدف بهبود فرایندهای توسعه، استقرار و نظارت بر اپلیکیشنهای نرمافزاری انجام میشوند.
DevOps مجموعهای از اقدامات است که به سازمانها کمک میکند تا شکاف بین تیمهای توسعه نرمافزار و عملیات را پر کنند. عملیات توسعه بر سادهسازی توسعه، تست و استقرار اپلیکیشنهای نرمافزاری سنتی تمرکز دارد و برای خودکارسازی فرایندها و بهبود سرعت و کیفیت تحویل نرمافزار بر همکاری بین تیمهای توسعه و عملیات تاکید میکند. بنابراین میتوان گفت DevOps باعث ارتقای فرهنگ همکاری برای دستیابی سریعتر به چرخههای انتشار، بهبود کیفیت اپلیکیشن و استفاده کارآمدتر از منابع میشود.
در مقابل، MLOps مجموعهای از بهترین شیوهها است که بهطور خاص برای پروژههای یادگیری ماشین طراحی شده است. هرچند استقرار و یکپارچهسازی نرمافزار سنتی میتواند نسبتا ساده باشد، مدلهای ML چالشهای منحصربهفردی دارند؛ از جمله: جمعآوری دادهها، آموزش مدل، اعتبارسنجی، استقرار و نظارت و بازآموزی مداوم.
بهطور خلاصه، تفاوت MLOps و DevOps عبارتاند از:
- حوزه: DevOps بر چرخه عمر توسعه نرمافزار و MLOps بر چرخه عمر ML تمرکز دارد.
- پیچیدگی: مدلهای ML اغلب پیچیدهتر از اپلیکیشنهای نرمافزار سنتی هستند و به ابزارها و تکنیکهایی برای توسعه و استقرار نیاز دارند.
- دادهها: مدلهای ML برای آموزش و استنباط به دادهها متکی هستند که چالشهایی را برای مدیریت و پردازش دادهها به وجود میآورد.
- مقررات: مدلهای ML ممکن است مشمول الزامات مقرراتی باشند که میتوانند بر فرایند توسعه و استقرار تاثیر بگذارند.
علیرغم تفاوتهای MLOps و DevOps، این دو مجموعه روش از اصول مشترکی مانند اهمیت همکاری، اتوماسیون و بهبود مستمر برخوردار هستند. سازمانهایی که شیوههای DevOps را اتخاذ کردهاند، اغلب میتوانند از این روشها هنگام پیادهسازی MLOps هم استفاده کنند.
منبع: AWS | Google Cloud | IBM