معرفی
«امالفلو» (MLflow) یک پلتفرم متنباز برای مدیریت چرخه عمر پروژههای یادگیری ماشین است. این ابزار به تیمها کمک میکند اطلاعات مربوط به آزمایشها، پارامترها، معیارهای ارزیابی، فایلهای خروجی و نسخههای مختلف مدل را بهصورت ساختاریافته و قابلردیابی ثبت و مدیریت کنند.
در پروژههای واقعی، توسعه مدل فقط به اجرای چند نوتبوک و ثبت یک عدد دقت محدود نمیشود. با استفاده از بخش «رهگیری آزمایشها» (Tracking) میتوان جزئیات هر اجرا را ثبت کرد. این اطلاعات میتواند شامل ابرپارامترها، معیارهای ارزیابی و آرتیفکتها (artifact) مانند فایل مدل، نمودارها یا گزارشهای تحلیلی باشد. برای افزایش بازتولیدپذیری نیز بهتر است شناسه «کامیت» (commit) کد، نسخه داده و اطلاعات محیط اجرا بهعنوان متادیتا یا تگ در هر اجرا ذخیره شوند.
کنترل نسخه کد با «گیت» (Git) نقش مهمی در مدیریت آزمایشها دارد. ثبت شناسه کامیت در کنار هر اجرا مشخص میکند که نتایج به کدام نسخه از کد مربوط هستند. به همین شکل، ثبت نسخه یا شناسه مجموعهداده به تیم کمک میکند منشأ دادههای مورد استفاده در هر آزمایش را دنبال کند. امالفلو این اطلاعات را نگهداری میکند، اما جایگزین ابزارهای تخصصی کنترل نسخه کد یا داده نیست.
قابلیتهایی مانند «رهگیری آزمایشها» (Tracking)، «پروژهها» (Projects)، «مدلها» (Models) و «رجیستری مدل» (Model Registry) امکان مدیریت متمرکز آزمایشها و مدلها را فراهم میکنند. این قابلیتها مقایسه اجراهای مختلف، انتخاب مدل مناسب و مدیریت نسخههای مدل را سادهتر میکنند. به همین دلیل، امالفلو در میان دانشمندان داده، مهندسان یادگیری ماشین و تیمهای «امالاپس» (MLOps) کاربرد گستردهای دارد. همچنین میتوان آن را روی زیرساخت اختصاصی سازمان اجرا کرد و به یک ارائهدهنده ابری خاص وابسته نبود.
شروع عملی با یک پروژه پایتون (Python)
در یک پروژه پایتون، ابتدا یک «آزمایش» (experiment) ایجاد کنید و برای هر بار آموزش مدل یک «اجرا» (run) جدید ثبت کنید. در هر اجرا بهتر است اطلاعاتی مانند نوع مدل، ابرپارامترهای اصلی، معیارهای ارزیابی، شناسه کامیت و نسخه داده ذخیره شوند. سپس فایل مدل و آرتیفکتهایی مانند ماتریس درهمریختگی، نمودار معیارها یا گزارش ارزیابی را ثبت کنید.
زمانی که در رابط امالفلو چند اجرای مختلف را در یک آزمایش مشاهده میکنید و امکان مقایسه پارامترها، معیارها و آرتیفکتهای آنها وجود دارد، فرایند ثبت آزمایشها بهدرستی انجام شده است. پس از بررسی نتایج و اطلاعات ثبتشده، میتوان مدل منتخب را به رجیستری مدل منتقل کرد تا برای مراحل بعدی توسعه یا استقرار آماده باشد.
امالفلو جایگزین کامل ابزارهای مدیریت داده، ارکستراسیون زیرساخت یا پایش سرویس نیست. مهمترین نقش آن ثبت منظم آزمایشها و مدیریت نسخههای مدل است. به همین دلیل معمولاً در کنار ابزارهایی مانند «داکر» (Docker)، «کوبرنتیز» (Kubernetes) و سامانههای استقرار مدل مورد استفاده قرار میگیرد.
ویژگیهای کلیدی
برای آشنایی بهتر با این ابزار، توجه به موارد زیر میتواند مفید باشد.
-
ثبت آزمایشها و اجراها
اطلاعات هر اجرا، از جمله پارامترها، معیارهای ارزیابی، آرتیفکتها و فایلهای مدل را ثبت میکند تا بتوان نتایج آزمایشهای مختلف را بهصورت منظم مقایسه کرد.
-
رابط کاربری برای مقایسه نتایج
رابط وب امالفلو امکان مشاهده اجراها، مقایسه معیارها و بررسی تفاوت پارامترهای مدلها را فراهم میکند و از پراکنده شدن نتایج در فایلها و نوتبوکهای مختلف جلوگیری میکند.
-
مدیریت نسخه مدل با Model Registry
نسخههای مختلف مدل را همراه با توضیحات، تگها و وضعیت آنها مدیریت میکند تا مشخص باشد کدام مدل برای ارزیابی یا استقرار انتخاب شده است.
-
بستهبندی مدلها
مدل را همراه با اطلاعات لازم برای بارگذاری و اجرا در قالب استاندارد «مدلهای امالفلو» (MLflow Models) ذخیره میکند و از کتابخانههای مختلف یادگیری ماشین پشتیبانی دارد.
-
پشتیبانی از کتابخانههای رایج یادگیری ماشین
با ابزارهایی مانند «سایکیت لرن» (scikit-learn)، «پایتورچ» (PyTorch)، «تنسورفلو» (TensorFlow) و سایر مدلهای پایتونی یکپارچه میشود و ثبت مدلها و معیارها را سادهتر میکند.
-
امکان اجرای محلی یا روی زیرساخت تیم
میتوان امالفلو را برای یادگیری و آزمایش بهصورت محلی اجرا کرد یا برای استفاده تیمی، سرور رهگیری آزمایشها و فضای ذخیرهسازی آرتیفکتها را روی زیرساخت اختصاصی راهاندازی کرد.
کاربردها
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
مقایسه آزمایشهای آموزش مدل
زمانی که چند الگوریتم، مجموعه ویژگی یا ترکیب ابرپارامتر را بررسی میکنید، ثبت هر اجرا به شما کمک میکند بهترین مدل را بر اساس دادههای ثبتشده انتخاب کنید.
-
تحویل مدل از پژوهش به استقرار
مدل تاییدشده را میتوان در رجیستری مدل ثبت کرد تا تیم استقرار دقیقاً بداند از کدام نسخه باید در محیط عملیاتی استفاده شود.
-
بازتولید نتایج
ثبت پارامترها، معیارها، آرتیفکتها، شناسه کامیت و نسخه داده باعث میشود بتوان یک نتیجه را در آینده دوباره بررسی یا بازتولید کرد.
-
تمرین MLOps در پروژه نمونهکار
استفاده از امالفلو در پروژههای پیشبینی یا طبقهبندی میتواند توانایی شما در مستندسازی آزمایشها، مدیریت مدل و پیگیری نتایج را نشان دهد.
-
همکاری میان دانشمند داده و مهندس یادگیری ماشین
دانشمندان داده میتوانند نتایج آزمایشها را ثبت کنند و مهندسان یادگیری ماشین نسخه مدل، وابستگیها و اطلاعات موردنیاز برای استقرار را از یک مرجع مشترک دریافت کنند.
پرسشهای رایج درباره امالفلو
در این بخش، به تعدادی از پرسشهای رایج درباره این ابزار پاسخ داده شده است.
آیا برای استفاده از MLflow باید MLOps را کامل بلد باشم؟
خیر. میتوانید ابتدا فقط از بخش «رهگیری آزمایشها» (Tracking) در یک پروژه پایتون استفاده کنید و پارامترها و معیارهای آزمایش را ثبت کنید. سپس بهمرور سراغ رجیستری مدل و فرایندهای تیمیتر بروید.
MLflow با Jupyter Notebook چه تفاوتی دارد؟
ژوپیتر نوتبوک محیطی برای توسعه، تحلیل و اجرای کد است. امالفلو برای ثبت، مدیریت و مقایسه آزمایشها و مدلها استفاده میشود. این دو ابزار معمولاً در کنار یکدیگر به کار میروند.
آیا MLflow فقط با Python کار میکند؟
پایتون رایجترین زبان برای استفاده از امالفلو است و بیشتر نمونهها و کتابخانههای آن بر پایه پایتون توسعه یافتهاند. بااینحال، این ابزار برای ثبت اجراها و یکپارچهسازی با محیطهای دیگر نیز امکاناتی ارائه میدهد.
آیا MLflow خودش مدل را آموزش یا مستقر میکند؟
خیر. امالفلو جایگزین کتابخانههای آموزش مدل یا زیرساخت استقرار نیست. وظیفه اصلی آن ثبت آزمایشها، مدیریت مدلها و نگهداری اطلاعات مرتبط با چرخه توسعه مدل است.
برای نمونهکار یادگیری ماشین، MLflow چه ارزشی دارد؟
استفاده از امالفلو نشان میدهد که میتوانید آزمایشها را مستندسازی کنید، نتایج را مقایسه کنید و نسخههای مختلف مدل را مدیریت کنید. البته این موضوع جای مهارت مدلسازی، ارزیابی و استقرار را نمیگیرد و مکمل آنها است.