آزمایش برای استقرار مدل های یادگیری ماشینی

شما آماده استقرار هستید! اگر فقط استقرار یک مدل به آسانی فشار دادن یک دکمه قرمز بزرگ بود. هنگام استقرار، می خواهید خط لوله شما بدون مشکل اجرا، به روز رسانی و سرویس دهی شود. این نیازها منجر به الزامات و راه حل های مورد بحث در این صفحه می شود.

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

بدون شک شما می خواهید به بهبود پیش بینی ظاهر تک شاخ خود ادامه دهید. فرض کنید کد مهندسی ویژگی را برای ویژگی "زمان روز" تغییر می دهید. چگونه تست می کنید که کد صحیح است؟ شما تصمیم می گیرید دوباره مدل خود را آموزش دهید و ببینید آیا به همان نتیجه می رسید یا خیر. اوه نه، متوجه شدید که آموزش مدل شما قابل تکرار نیست. شما مصمم به ادامه پیش بینی ظاهر تکشاخ هستید، بیشتر تحقیق کنید. با دنبال کردن مراحل زیر متوجه می شوید که می توانید به تکرارپذیری دست پیدا کنید:

  • به طور قطعی مولد اعداد تصادفی (RNG) را بکارید. برای جزئیات، به تصادفی سازی در تولید داده از دوره آماده سازی داده ها و مهندسی ویژگی در ML مراجعه کنید.

  • اجزای مدل را در یک ترتیب ثابت مقداردهی کنید تا مطمئن شوید که اجزا در هر اجرا همان عدد تصادفی را از RNG دریافت می‌کنند. کتابخانه های ML معمولاً این نیاز را به طور خودکار انجام می دهند.

  • به طور متوسط ​​چندین اجرا از مدل.

  • از کنترل نسخه حتی برای تکرارهای اولیه استفاده کنید تا بتوانید هنگام بررسی مدل یا خط لوله خود کد و پارامترها را مشخص کنید.

حتی پس از انجام این مراحل، می توانید منابع دیگری از عدم جبر داشته باشید.

آزمایش به‌روزرسانی‌های مدل برای تماس‌های مشخصات و API

پس از به‌روزرسانی مدل خود به Unicorn Predictor 2.0، باید مدل جدید را از نظر صحت الگوریتمی، همراه با هرگونه تغییر در تماس‌های API آزمایش کنید. بیایید بحث کنیم که چگونه.

تست تماس های API

چگونه به‌روزرسانی‌های تماس‌های API را آزمایش می‌کنید؟ مطمئناً، شما می توانید مدل خود را دوباره آموزش دهید، اما این زمان زیادی است. در عوض، یک تست واحد بنویسید تا داده‌های ورودی تصادفی تولید کند و یک مرحله از گرادیان نزول را اجرا کنید. شما می خواهید مرحله بدون خطاهای زمان اجرا کامل شود.

تست درستی الگوریتمی

یک مدل نه تنها باید به درستی پیش بینی کند، بلکه باید این کار را انجام دهد، زیرا از نظر الگوریتمی درست است، نه خوش شانس. برای مثال، اگر 99 درصد ایمیل‌ها اسپم نباشند، طبقه‌بندی همه ایمیل‌ها به‌عنوان غیر هرزنامه به طور تصادفی 99 درصد دقت دارد. بنابراین، باید مدل خود را از نظر صحت الگوریتمی بررسی کنید. این مراحل را دنبال کنید:

  • مدل خود را برای چند تکرار آموزش دهید و بررسی کنید که ضرر کاهش می یابد.
  • الگوریتم خود را بدون منظم سازی آموزش دهید. اگر مدل شما به اندازه کافی پیچیده باشد، داده های آموزشی را حفظ می کند و ضرر تمرین شما نزدیک به 0 خواهد بود.
  • محاسبات فرعی خاص الگوریتم خود را آزمایش کنید. به عنوان مثال، می توانید آزمایش کنید که بخشی از RNN شما یک بار در هر عنصر داده ورودی اجرا می شود.

تست های یکپارچه سازی را برای اجزای خط لوله بنویسید

در خط لوله ML، تغییرات در یک جزء می تواند باعث ایجاد خطا در اجزای دیگر شود. با نوشتن آزمایشی که کل خط لوله را از انتها به انتها اجرا می کند، بررسی کنید که اجزا با هم کار کنند. به چنین آزمونی تست یکپارچه سازی می گویند.

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

قبل از ارائه، کیفیت مدل را تأیید کنید

قبل از اینکه نسخه مدل جدید را به تولید برسانید، این دو نوع کاهش کیفیت را آزمایش کنید:

  • تخریب ناگهانی: یک اشکال در نسخه جدید می تواند باعث کاهش قابل توجه کیفیت شود. نسخه های جدید را با بررسی کیفیت آنها در برابر نسخه قبلی اعتبار سنجی کنید.

  • تخریب آهسته: آزمایش شما برای تخریب ناگهانی ممکن است کاهش آهسته کیفیت مدل را در چندین نسخه تشخیص ندهد. درعوض، اطمینان حاصل کنید که پیش‌بینی‌های مدل شما در مجموعه داده اعتبارسنجی یک آستانه ثابت را برآورده می‌کند. اگر مجموعه داده اعتبارسنجی شما از داده‌های زنده منحرف می‌شود، سپس مجموعه داده اعتبارسنجی خود را به‌روزرسانی کنید و مطمئن شوید که مدل شما همچنان از آستانه کیفیت یکسانی برخوردار است.

قبل از ارائه، سازگاری Model-Infra را تأیید کنید

اگر مدل شما سریعتر از سرور شما به‌روزرسانی شود، مدل شما وابستگی‌های نرم‌افزاری متفاوتی از سرور شما خواهد داشت که به طور بالقوه باعث ناسازگاری می‌شود. اطمینان حاصل کنید که عملیات استفاده شده توسط مدل در سرور وجود دارد، با مرحله بندی مدل در یک نسخه جعبه ایمنی سرور.