شرکت یلپ به‌تازگی چارچوب داخلی جدیدی به نام Training Orchestrator را معرفی کرده است تا اسکریپت‌های پراکنده آموزش تیم‌های مختلف را جایگزین کند. این ابزار با استفاده از یک مدل اجرایی مبتنی بر پیکربندی و گراف جهت‌دار بدون دور (DAG)، چالش‌های رایج پلتفرم‌های بزرگ یادگیری ماشین را هدف قرار می‌دهد.

چالش‌های اسکریپت‌های سنتی در آموزش مدل‌ها

پیش از این، هر تیم یادگیری ماشین کاربردی در یلپ، سیستم هماهنگ‌سازی (Orchestration) اختصاصی خود را توسعه می‌داد که نتیجه‌ آن کدهای تکراری، پیکربندی‌های ناهماهنگ و سیستم‌های نظارتی شکننده بود. آموزش مدل‌ها به‌صورت اسکریپت‌های یکپارچه و کاملاً وابسته به خوشه‌های اسپارک (Spark) اجرا می‌شد. این وابستگی شدید مانع از اجرای محلی کدها می‌شد و قابلیت تست و سرعت توسعه را به‌شدت کاهش می‌داد. برای بررسی نتیجه یک تغییر کوچک در کد، توسعه‌دهندگان مجبور بودند یک وظیفه اسپارک ارسال کرده و مدت‌ها منتظر راه‌اندازی کانتینرها و خوشه‌ها بمانند تا در نهایت متوجه شوند آیا خطایی رخ داده است یا خیر. پراکندگی منطق اعتبارسنجی در اسکریپت‌ها و فقدان ردیابی منشأ (Provenance)، بازتولید اجراهای گذشته را در محیط‌های مختلف تقریباً غیرممکن می‌کرد.

معماری گراف جهت‌دار بدون دور در هماهنگ‌سازی یادگیری ماشین

جداسازی منطق آموزش از زیرساخت اجرایی

چارچوب جدید Training Orchestrator، مفهوم «چه چیزی اجرا شود» را از «چگونگی اجرای آن» جدا می‌کند. در این سیستم، خطوط لوله (Pipelines) از اشیاء پیکربندی مبتنی بر پای‌دنتیک (Pydantic) بهره می‌برند. این اشیاء شامل پیکربندی هماهنگ‌ساز، پیکربندی اجرای MLflow و تنظیمات گام‌های مختلف هستند که همگی در زمان ایجاد اعتبارسنجی می‌شوند تا از هدررفت منابع محاسباتی جلوگیری شود. هماهنگ‌ساز با استفاده از وابستگی‌های تعریف‌شده میان گام‌ها، یک گراف جهت‌دار بدون دور می‌سازد و گام‌ها را به ترتیب توپولوژیکی اجرا می‌کند.

اضافه شدن یک زمینه مشترک برای اسپارک و MLflow به تعاریف گام‌ها اجازه می‌دهد بدون نیاز به تغییر کد، چه در محیط محلی، چه در ژوپیتر (Jupyter) و چه در محیط عملیاتی اجرا شوند. هر گام یک کلاس تنظیمات را به یک تابع تعریف‌شده توسط کاربر متصل می‌کند و از طریق یک طرح ورودی/خروجی مشخص می‌کند چه داده‌ای دریافت و چه داده‌ای را بازمی‌گرداند. به‌عنوان مثال، گام PrepareDataStep یک مجموعه داده خام دریافت کرده و مجموعه داده‌ای پردازش‌شده را تحویل می‌دهد. این معماری به تیم‌ها امکان می‌دهد به‌سادگی منطق پیش‌پردازش را تغییر دهند، نسخه‌های مختلف مدل را به‌طور همزمان اجرا کنند و توابع را در خطوط لوله مختلف بدون دستکاری کدهای هماهنگ‌سازی بازاستفاده کنند.

سرعت در اعتبارسنجی و توسعه محلی

اعتبارسنجی طرح (Schema Validation) به‌سرعت ناهماهنگی‌های پیکربندی را شناسایی می‌کند و مسائلی مانند اتصال اشتباه ورودی‌ها و خروجی‌ها یا پارامترهای خارج از محدوده را در عرض چند ثانیه علامت‌گذاری می‌کند؛ فرآیندی که پیش از این ساعت‌ها طول می‌کشید تا در میان اجرای یک وظیفه اسپارک کشف شود. از آنجا که گام‌ها از زیرساخت جدا شده‌اند، توسعه‌دهندگان می‌توانند خطوط لوله کامل را با داده‌های نمونه روی سیستم خود اجرا کرده و برای هر گام تست واحد (Unit Test) بنویسند. همچنین، ذخیره‌سازی (Caching) ورودی‌ها برای گام‌های بارگذاری داده، زمان تست یکپارچگی را به‌شدت کاهش می‌دهد.

پیکربندی کامل هر اجرا به‌طور خودکار به‌عنوان یک آرتیفکت در MLflow ثبت می‌شود تا اجرای مجدد و بازپخش آن تنها با استفاده از همین رکورد واحد امکان‌پذیر باشد. قابلیت‌هایی نظیر اعلان‌های Slack و ردیابی اجرای MLflow که پیش از این برای هر تیم به‌صورت دستی توسعه داده می‌شد، اکنون تنها با تنظیم چند پارامتر پیکربندی در دسترس هستند.

ارسال اعلان‌ها و ردیابی اجرای مدل‌ها در MLflow

ادغام با پلتفرم یادگیری ماشین یلپ

این هماهنگ‌ساز جدید به‌خوبی با پلتفرم یادگیری ماشین یلپ ادغام شده و فروشگاه‌های ویژگی (Feature Stores)، شبکه‌های عصبی مشترک، کتابخانه‌های درخت‌های گرادیان تقویت‌شده و MLflow را برای ردیابی و استقرار به هم متصل می‌کند. تیم هسته یادگیری ماشین یلپ، این چارچوب را لایه حیاتی هماهنگ‌سازی می‌داند که پروژه‌های فنی به آن نیاز داشتند. هرچند Training Orchestrator یک ابزار داخلی است و به‌عنوان پروژه متن‌باز منتشر نخواهد شد، اما یلپ برنامه‌ریزی کرده تا گام‌های مشخصی برای ارزیابی، مقایسه و تفسیرپذیری مدل‌ها اضافه کند. ردیابی تبار (Lineage Tracking) نیز در لایه هماهنگ‌سازی پیاده‌سازی خواهد شد تا این سیستم بدون نیاز به مهاجرت‌های پیچیده، به خطوط لوله فعلی گسترش یابد.

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

تلاش‌های یلپ نمونه‌ای از یک روند گسترده‌تر در صنعت است؛ شرکتی نظیر نتفلیکس نیز با استفاده از ابزار Metaflow و اضافه‌کردن اشیاء پیکربندی، رفتار خطوط لوله مختلف را مدیریت می‌کند. آینده پلتفرم‌های یادگیری ماشین به‌سمتی حرکت می‌کند که توسعه‌دهندگان به جای درگیر شدن با پیچیدگی‌های زیرساختی، تمرکز خود را صرف طراحی مدل‌ها و استخراج ارزش از داده‌ها کنند.