چندین بخش جهانی شروع به سرمایه گذاری بیشتر در یادگیری ماشین (ML) کرده اند.
مدلهای ML را میتوان در ابتدا توسط تیمهایی از متخصصان راهاندازی و راهاندازی کرد، اما یکی از بزرگترین موانع، انتقال دانش بهدستآمده به مدل بعدی است تا بتوان فرآیندها را گسترش داد.
برای بهبود و استاندارد کردن فرآیندهای درگیر در مدیریت چرخه عمر مدل، تکنیکهای MLOps به طور فزایندهای توسط تیمهایی که مدلهای یادگیری ماشین را ایجاد میکنند، استفاده میشوند.
به خواندن ادامه دهید تا درباره برخی از بهترین ابزارها و پلتفرمهای MLOps موجود امروز و اینکه چگونه میتوانند یادگیری ماشین را از دیدگاه ابزار، توسعهدهنده و رویهای آسانتر کنند، به خواندن ادامه دهید.
MLOps چیست؟
تکنیکی برای ایجاد خطمشیها، هنجارها و بهترین شیوهها برای مدلهای یادگیری ماشینی به عنوان «عملیات یادگیری ماشین» یا «MLOps» شناخته میشود.
هدف MLOps تضمین کل چرخه عمر توسعه ML - از مفهوم تا استقرار - بهجای سرمایهگذاری زمان و منابع زیادی در آن بدون استراتژی، بهطور دقیق مستند شده و برای بهترین نتایج مدیریت میشود.
هدف MLO ها تدوین بهترین شیوه ها به گونه ای است که توسعه یادگیری ماشین را برای اپراتورها و توسعه دهندگان ML مقیاس پذیرتر کند و همچنین کیفیت و امنیت مدل های ML را افزایش دهد.
برخی از MLOps به عنوان "DevOps برای یادگیری ماشین" یاد می کنند زیرا اصول DevOps را با موفقیت در زمینه تخصصی تر توسعه فناوری اعمال می کند.
این یک راه مفید برای فکر کردن در مورد MLO ها است زیرا مانند DevOps بر اشتراک دانش، همکاری و بهترین شیوه ها در میان تیم ها و ابزارها تاکید دارد.
MLOps به توسعه دهندگان، دانشمندان داده و تیم های عملیاتی چارچوبی برای همکاری و در نتیجه تولید قوی ترین مدل های ML ارائه می دهد.
چرا از ابزار MLOps استفاده کنیم؟
ابزارهای MLOps می توانند طیف وسیعی از وظایف را برای یک تیم ML انجام دهند، با این حال، آنها اغلب به دو گروه تقسیم می شوند: مدیریت پلت فرم و مدیریت اجزای فردی.
در حالی که برخی از محصولات MLOps تنها بر روی یک عملکرد اصلی متمرکز هستند، مانند مدیریت داده یا ابرداده، ابزارهای دیگر یک استراتژی فراگیرتر را اتخاذ می کنند و یک پلت فرم MLOps را برای کنترل چندین جنبه از چرخه حیات ML ارائه می دهند.
به دنبال راهحلهای MLOps باشید که به تیم شما در مدیریت این حوزههای توسعه ML کمک میکند، چه به دنبال متخصص یا ابزار گستردهتری باشید:
- مدیریت داده ها
- طراحی و مدلسازی
- مدیریت پروژه ها و محل کار
- استقرار مدل ML و نگهداری مداوم
- مدیریت چرخه حیات از ابتدا تا انتها، که معمولاً توسط پلتفرمهای MLOps با سرویس کامل ارائه میشود.
ابزار MLOps
1. MLFlow
چرخه حیات یادگیری ماشین توسط پلتفرم منبع باز MLflow کنترل می شود و شامل ثبت، استقرار و آزمایش مدل مرکزی است.
MLflow می تواند توسط هر تیم اندازه ای، هم به صورت فردی و هم به صورت جمعی استفاده شود. کتابخانه ها هیچ ارتباطی با ابزار ندارند.
هر زبان برنامه نویسی و کتابخانه یادگیری ماشینی می تواند از آن استفاده کند.
برای سادهتر کردن آموزش، استقرار و مدیریت برنامههای یادگیری ماشین، MLFlow با تعدادی از چارچوبهای یادگیری ماشین، از جمله TensorFlow و Pytorch.
علاوه بر این، MLflow APIهایی با کاربری آسان را ارائه می دهد که می توانند در هر برنامه یا کتابخانه موجود یادگیری ماشین گنجانده شوند.
MLflow دارای چهار ویژگی کلیدی است که ردیابی و آزمایش های برنامه ریزی را تسهیل می کند:
- ردیابی MLflow – یک API و UI برای ثبت پارامترهای کد یادگیری ماشین، نسخه ها، معیارها و مصنوعات و همچنین برای نمایش و تضاد نتایج بعدی
- پروژه های MLflow – بسته بندی کدهای یادگیری ماشین در قالبی قابل استفاده مجدد و قابل تکرار برای انتقال به تولید یا به اشتراک گذاری با سایر دانشمندان داده
- مدلهای MLflow – نگهداری و استقرار مدلها در طیف وسیعی از سیستمهای ارائه و استنتاج مدل از کتابخانههای مختلف ML
- MLflow Model Registry – یک فروشگاه مدل مرکزی که مدیریت مشارکتی کل طول عمر یک مدل MLflow را امکانپذیر میسازد، از جمله نسخهسازی مدل، انتقال مرحله، و حاشیهنویسی.
2. KubeFlow
جعبه ابزار ML برای Kubernetes Kubeflow نام دارد. بسته بندی و مدیریت ظروف داکر، به نگهداری کمک می کند سیستم های یادگیری ماشینی.
با سادهسازی ارکستراسیون اجرا و استقرار گردشهای کاری یادگیری ماشین، مقیاسپذیری مدلهای یادگیری ماشین را ارتقا میدهد.
این یک پروژه منبع باز است که شامل گروهی از ابزارها و چارچوب های مکمل با دقت انتخاب شده است که برای نیازهای مختلف ML طراحی شده است.
وظایف طولانی آموزش ML، آزمایش های دستی، تکرارپذیری و چالش های DevOps را می توان با Kubeflow Pipelines انجام داد.
برای چندین مرحله از یادگیری ماشین، از جمله آموزش، توسعه خط لوله، و نگهداری از نوت بوک های Jupyter، Kubeflow خدمات تخصصی و یکپارچه سازی ارائه می دهد.
مدیریت و ردیابی طول عمر بارهای کاری هوش مصنوعی و همچنین استقرار مدل های یادگیری ماشین (ML) و خطوط لوله داده در خوشه های Kubernetes را آسان می کند.
این ارائه می دهد:
- نوت بوک برای استفاده از SDK برای تعامل با سیستم
- یک رابط کاربری (UI) برای کنترل و نظارت بر اجراها، کارها و آزمایش ها
- برای طراحی سریع راه حل های انتها به انتها بدون نیاز به بازسازی هر بار و استفاده مجدد از اجزا و خطوط لوله.
- به عنوان یک جزء کلیدی Kubeflow یا به عنوان یک نصب مستقل، Kubeflow Pipelines ارائه می شود.
3. کنترل نسخه داده
یک راه حل کنترل نسخه منبع باز برای پروژه های یادگیری ماشین DVC یا Data Version Control نامیده می شود.
هر زبانی که انتخاب کنید، یک ابزار آزمایشی است که به تعریف خط لوله کمک می کند.
DVC از کد، نسخهسازی دادهها و تکرارپذیری استفاده میکند تا به شما کمک کند وقتی مشکلی را در نسخه قبلی مدل ML خود کشف کنید، در زمان خود صرفهجویی کنید.
علاوه بر این، می توانید از خطوط لوله DVC برای آموزش مدل خود و توزیع آن بین اعضای تیم خود استفاده کنید. سازماندهی و نسخه سازی کلان داده را می توان توسط DVC مدیریت کرد و داده ها را می توان به روشی به راحتی در دسترس ذخیره کرد.
اگرچه شامل برخی از ویژگیهای (محدود) ردیابی آزمایش است، اما بیشتر بر روی دادهها و نسخهسازی و مدیریت خط لوله تمرکز دارد.
این ارائه می دهد:
- ذخیره سازی آگنوستیک است، بنابراین می توان از انواع مختلف ذخیره سازی استفاده کرد.
- همچنین آمار ردیابی را ارائه می دهد.
- وسیله ای از پیش ساخته شده برای پیوستن مراحل ML به DAG و اجرای کل خط لوله از ابتدا تا انتها
- کل توسعه هر مدل ML را می توان با استفاده از کل کد و منشا داده دنبال کرد.
- تکرارپذیری با حفظ صادقانه پیکربندی اولیه، داده های ورودی و کد برنامه برای یک آزمایش.
4. پاچیدرم
Pachyderm یک برنامه کنترل نسخه برای یادگیری ماشین و علم داده، شبیه به DVC است.
علاوه بر این، زیرا با استفاده از آن ایجاد شده است داکر و کوبرنتس، می تواند برنامه های یادگیری ماشینی را بر روی هر پلت فرم ابری اجرا و استقرار دهد.
Pachyderm تضمین می کند که هر قطعه داده ای که در یک مدل یادگیری ماشین مصرف می شود می تواند ردیابی و نسخه شود.
برای ایجاد، توزیع، مدیریت و مراقبت از مدل های یادگیری ماشین استفاده می شود. یک رجیستری مدل، یک سیستم مدیریت مدل، و یک جعبه ابزار CLI همگی شامل می شوند.
توسعه دهندگان می توانند چرخه زندگی یادگیری ماشینی خود را با استفاده از پایه داده Pachyderm به طور خودکار و گسترش دهند، که همچنین تکرارپذیری را تضمین می کند.
این استاندارد از استانداردهای سختگیرانه حاکمیت داده پشتیبانی می کند، هزینه های پردازش و ذخیره سازی داده را کاهش می دهد و به کسب و کارها کمک می کند تا ابتکارات علم داده خود را سریعتر به بازار عرضه کنند.
5. پلی اکسون
با استفاده از پلتفرم Polyaxon، پروژههای یادگیری ماشین و برنامههای یادگیری عمیق را میتوان در کل چرخه زندگی خود تکرار و مدیریت کرد.
Polyaxon قادر به میزبانی و مدیریت ابزار است و می تواند در هر مرکز داده یا ارائه دهنده ابری قرار گیرد. مانند Torch، Tensorflow و MXNet که از محبوب ترین چارچوب های یادگیری عمیق پشتیبانی می کنند.
وقتی صحبت از ارکستراسیون به میان میآید، Polyaxon شما را قادر میسازد تا با برنامهریزی وظایف و آزمایشها از طریق CLI، داشبورد، SDK یا REST API، بهترین استفاده را از کلاستر خود ببرید.
این ارائه می دهد:
- در حال حاضر میتوانید از نسخه منبع باز استفاده کنید، اما این شامل گزینههایی برای شرکت نیز میشود.
- اگرچه چرخه زندگی کامل، از جمله ارکستراسیون اجرا را پوشش می دهد، اما توانایی بسیار بیشتری را دارد.
- با اسناد مرجع فنی، دستورالعملهای شروع، مطالب آموزشی، راهنماها، آموزشها، تغییرات و موارد دیگر، این یک پلتفرم کاملاً مستند است.
- با داشبورد بینش آزمایش، میتوان هر آزمایش بهینهسازی را زیر نظر داشت، دنبال کرد و ارزیابی کرد.
6. ستاره دنباله دار
Comet پلتفرمی برای یادگیری متا ماشین است که آزمایش ها و مدل ها را ردیابی، تضاد، توضیح و بهبود می بخشد.
همه آزمایشهای شما در یک مکان قابل مشاهده و مقایسه هستند.
این برای هر کار یادگیری ماشینی، هر جایی که کد شما اجرا می شود و با هر کتابخانه یادگیری ماشینی کار می کند.
Comet برای گروهها، افراد، مؤسسات دانشگاهی، کسبوکارها و هر کس دیگری که مایل به تجسم سریع آزمایشها، سادهسازی کار و انجام آزمایشها است، مناسب است.
دانشمندان و تیمهای داده میتوانند آزمایشها و مدلها را با استفاده از پلتفرم یادگیری فرا-ماشین مبتنی بر ابر Comet ردیابی، شفافسازی، بهبود و مقایسه کنند.
این ارائه می دهد:
- قابلیت های بسیاری برای اعضای تیم برای به اشتراک گذاشتن وظایف وجود دارد.
- دارای چندین ادغام است که اتصال آن به سایر فناوری ها را ساده می کند
- با کتابخانه های فعلی ML به خوبی عمل می کند
- مدیریت کاربر را بر عهده دارد
- مقایسه آزمایشها فعال است، از جمله مقایسه کد، فراپارامترها، معیارها، پیشبینیها، وابستگیها و معیارهای سیستم.
- ماژول های مجزایی را برای داده های بینایی، صوتی، متنی و جدولی ارائه می دهد که به شما امکان می دهد نمونه ها را تجسم کنید.
7. Optuna
Optuna سیستمی برای بهینه سازی هایپرپارامتر مستقل است که می تواند هم در یادگیری ماشین و هم در یادگیری عمیق و همچنین در زمینه های دیگر اعمال شود.
این شامل انواع الگوریتم های پیشرفته است که می توانید از بین آنها انتخاب کنید (یا پیوند دهید)، توزیع آموزش روی رایانه های متعدد را بسیار ساده می کند و تجسم نتایج جذابی را ارائه می دهد.
کتابخانههای معروف یادگیری ماشین مانند PyTorch، TensorFlow، Keras، FastAI، Sci-Kit-Learn، LightGBM و XGBoost همگی با آن ادغام شدهاند.
این الگوریتمهای پیشرفتهای را ارائه میکند که مشتریان را قادر میسازد تا با کاهش سریع نمونههایی که امیدوارکننده به نظر نمیرسند، سریعتر به نتایج دست پیدا کنند.
با استفاده از الگوریتم های مبتنی بر پایتون، به طور خودکار ابرپارامترهای ایده آل را جستجو می کند. Optuna جستجوی هایپرپارامتر موازی شده را در بسیاری از رشته ها بدون تغییر کد اصلی تشویق می کند.
این ارائه می دهد:
- از آموزش توزیع شده در یک خوشه و همچنین یک کامپیوتر (چند فرآیندی) (چند گره) پشتیبانی می کند.
- از چندین تکنیک پیرایش برای سرعت بخشیدن به همگرایی (و استفاده کمتر از محاسبات) پشتیبانی می کند.
- دارای انواع تجسم های قوی، مانند طرح برش، طرح کانتور، و مختصات موازی.
8. کدرو
Kedro یک چارچوب رایگان پایتون برای نوشتن کد است که میتواند برای پروژههای علم داده بهروزرسانی و نگهداری شود.
این ایده ها را از بهترین شیوه ها در مهندسی نرم افزار به کدهای یادگیری ماشین می آورد. پایتون پایه و اساس این ابزار ارکستراسیون گردش کار است.
برای سادهتر و دقیقتر کردن فرآیندهای ML خود، میتوانید گردشهای کاری تکرارپذیر، قابل نگهداری و مدولار ایجاد کنید.
Kedro اصول مهندسی نرم افزار مانند ماژولار بودن، تفکیک مسئولیت ها و نسخه سازی را در محیط یادگیری ماشین ترکیب می کند.
بر اساس Cookiecutter Data Science، چارچوب پروژه مشترک و سازگاری را ارائه می دهد.
تعدادی از رابط های داده ساده که برای ذخیره و بارگذاری داده ها در چندین سیستم فایل و فرمت فایل استفاده می شوند، توسط کاتالوگ داده مدیریت می شوند. پروژه های یادگیری ماشینی را موثرتر می کند و ایجاد خط لوله داده را ساده تر می کند.
این ارائه می دهد:
- Kedro امکان استقرار ماشین های پراکنده یا انفرادی را فراهم می کند.
- میتوانید وابستگیهای بین کد پایتون و تجسم گردش کار را با استفاده از انتزاع خط لوله خودکار کنید.
- این فناوری با استفاده از کدهای ماژولار و قابل استفاده مجدد، همکاری تیمی را در سطوح مختلف تسهیل می کند و بهره وری را در محیط کدنویسی بهبود می بخشد.
- هدف اصلی غلبه بر اشکالات نوت بوک های Jupyter، اسکریپت های یکباره و چسب کد با نوشتن برنامه نویسی علم داده قابل نگهداری است.
9. BentoML
ساخت نقاط پایانی API یادگیری ماشین با BentoML آسانتر شده است.
این یک زیرساخت معمولی و در عین حال فشرده برای انتقال مدل های یادگیری ماشینی آموخته شده به تولید فراهم می کند.
این به شما امکان می دهد مدل های آموخته شده را برای استفاده در یک محیط تولید بسته بندی کنید و آنها را با استفاده از هر چارچوب ML تفسیر کنید. هر دو سرویس دسته ای آفلاین و سرویس API آنلاین پشتیبانی می شوند.
سرور مدل با کارایی بالا و گردش کار انعطاف پذیر از ویژگی های BentoML هستند.
علاوه بر این، سرور میکرو بچینگ تطبیقی را ارائه می دهد. یک رویکرد واحد برای سازماندهی مدل ها و پیگیری مراحل استقرار توسط داشبورد UI ارائه شده است.
هیچ خرابی سرور وجود نخواهد داشت زیرا مکانیزم عملیاتی ماژولار است و پیکربندی قابل استفاده مجدد است. این یک پلت فرم انعطاف پذیر برای ارائه، سازماندهی و استقرار مدل های ML است.
این ارائه می دهد:
- دارای طراحی مدولار است که سازگار است.
- این امکان استقرار در چندین پلتفرم را فراهم می کند.
- نمی تواند به طور خودکار مقیاس افقی را مدیریت کند.
- این یک قالب مدل واحد، مدیریت مدل، بسته بندی مدل و ارائه مدل با کارایی بالا را امکان پذیر می کند.
10. سلدون
دانشمندان داده می توانند با استفاده از چارچوب منبع باز Seldon Core، مدل ها و آزمایش های یادگیری ماشین را در مقیاس در Kubernetes ایجاد، استقرار و مدیریت کنند.
TensorFlow، Sci-Kit-Learn، Spark، R، Java و H2O تنها تعدادی از ابزارهایی هستند که توسط آن پشتیبانی می شوند.
همچنین با Kubeflow و OpenShift RedHat ارتباط برقرار می کند. هسته سلدون مدلهای یادگیری ماشین (مدلهای ML) یا بستهبندیهای زبان (زبانهایی مانند پایتون، جاوا و غیره) را به میکروسرویسهای REST/GRPC تولیدی تبدیل میکند.
یکی از بهترین ابزارهای MLOps برای بهبود فرآیندهای یادگیری ماشینی همین ابزار است.
محفظه کردن مدل های ML و آزمایش قابلیت استفاده و امنیت با استفاده از Seldon Core ساده است.
این ارائه می دهد:
- استقرار مدل را می توان با چندین جایگزین ساده تر کرد، مانند استقرار قناری.
- برای درک اینکه چرا پیش بینی های خاصی انجام شده است، از توضیح دهنده های مدل استفاده کنید.
- در صورت بروز مشکل، با استفاده از سیستم هشدار، مراقب مدل های تولیدی باشید.
نتیجه
MLO ها می توانند به بهبود عملیات یادگیری ماشین کمک کنند. MLO ها می توانند استقرار را سرعت بخشند، جمع آوری داده ها و اشکال زدایی را ساده تر کنند و همکاری بین مهندسان و دانشمندان داده را بهبود بخشند.
برای اینکه بتوانید ابزار MLOps را انتخاب کنید که به بهترین وجه با نیازهای شما مطابقت دارد، این پست به بررسی 10 راه حل محبوب MLOps می پردازد که اکثر آنها منبع باز هستند.
پاسخ دهید