استقرار یک مدل یادگیری ماشینی به چه معناست؟

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


من اخیرا از جامعه توییتر در مورد بزرگ‌ترین نقاط درد یادگیری ماشینی آن‌ها سوال کردم و اینکه تیمشان قصد دارند در سال ۲۰۲۰ روی چه چیزی کار کنند. یکی از رایج‌ترین نقاط درد ذکر شده، استقرار مدل‌های یادگیری ماشینی بود. به طور خاص، «چگونه مدل‌های یادگیری ماشین را به شیوه‌ای خودکار، قابل تکرار و قابل حسابرسی گسترش می‌دهید؟»

سوال خوبی است!

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

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

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

قبل از بحث در مورد هر ابزاری، اجازه دهید با این پرسش شروع کنیم: استقرار یک مدل به چه معناست؟

استقرار یک مدل یادگیری ماشینی به چه معناست؟

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

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

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

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

راه‌اندازی پروژه‌های یادگیری ماشین. یادگیری عمیق تمام پشته
راه‌اندازی پروژه‌های یادگیری ماشین. یادگیری عمیق تمام پشته


یک مدل یادگیری ماشینی تنها زمانی می‌تواند ارزش به یک سازمان اضافه کند که بینش آن مدل به طور معمول در دسترس کاربران قرار گیرد که برای آن ساخته شده‌است. فرآیند گرفتن مدل یادگیری ماشین آموزش‌دیده و در دسترس قرار دادن پیش‌بینی‌های آن برای کاربران یا سیستم‌های دیگر به عنوان کاربرد شناخته می‌شود. استقرار کاملا متمایز از وظایف یادگیری ماشین معمولی مانند مهندسی ویژگی، انتخاب مدل، یا ارزیابی مدل است.

به این ترتیب، استقرار در میان دانشمندان داده و مهندسان یادگیری ماشینی که فاقد پیشینه در مهندسی نرم‌افزار یا DevOps هستند، به خوبی درک نمی‌شود. اما خوشبختانه این مهارت‌ها خیلی سخت نیستند. در عمل، هر دانشمند داده می‌تواند یاد بگیرد که چگونه مدل‌های خود را برای تولید بکار ببرد.

شما چگونه تصمیم می‌گیرید که چگونه مستقر کنید؟

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

مثال استقرار ۱: استقرار یک مدل امتیاز‌دهی پیشرو

فرض کنید یک دانشمند داده یک مدل نمره امتیازدهی پیشرو را برای گروهی از تحلیلگران فنی که به خوبی در SQL مهارت دارند، ساخته‌است. تحلیل گران به دنبال گروه‌بندی مشتریان احتمالی جدید به باکت‌هایی براساس احتمال تبدیل آن‌ها به مشتریان هستند.

هر روز صبح آن‌ها می‌خواهند از داده‌های پایگاه‌داده برای ایجاد / به روز رسانی داشبوردهای که در ابزار BI نگهداری می‌کنند، استفاده کنند.

از آنجا که تحلیلگران SQL را می‌شناسند و انتظار دارند که امتیازات مدل در پایگاه‌داده ذخیره شود، «استقرار» مدل امتیازدهی پیشرو به معنی ایجاد امتیازات اصلی روزانه برای سرفصل‌های جدید و ذخیره آن‌ها در پایگاه‌داده تحلیل‌گران است.

جنبه‌های کلیدی این آماده‌سازی عبارتند از:

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

یک موقعیت کمی پیچیده‌تر را در نظر بگیرید.

رئیس فروش درباره این مدل اطلاعات کسب کرده و می‌خواهد دیدگاه‌های مدل را در اختیار مدیران اجرایی حساب خود قرار دهد. به طور طبیعی و بسیار ناراحت‌کننده برای ما، مدیران حساب SQL را نمی‌دانند، بنابراین ذخیره پیش‌بینی‌ها در یک پایگاه‌داده در این مورد کافی نیست.

مدیر محصول تعیین می‌کند که امتیازات اصلی باید در ابزار CRM قابل‌مشاهده باشند که مدیران اجرایی حساب برای افزودن ارزش کسب‌وکار از آن استفاده می‌کنند.

جنبه‌های استقرار ۱ و ۲ از مثال قبلی (ایجاد پیش‌بینی برای گروهی از لیدها و انجام این کار یک‌بار در روز) هنوز معتبر هستند، اما جنبه ۳ معتبر نیست. آماده‌سازی شامل داشتن جریان امتیازات از پایگاه‌داده به ابزار CRM است. این امر مستلزم ایجاد ETL های اضافی خواهد بود.

مثال استقرار ۲: طراحی سیستم پیشنهاد دهنده

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

سناریوی ۱: شرکت می‌خواهد توصیه‌های محصول را به کاربران بعد از ورود آن‌ها به وب یا برنامه‌های کاربردی تلفن همراه نمایش دهد. پیش‌بینی‌ها باید به محض درخواست موجود باشند، که می‌تواند در هر زمانی از روز باشد. این امر یک محدودیت تاخیر را در استقرار ما قرار می‌دهد، که بر این تاثیر می‌گذارد که آیا ما می‌توانیم پیش‌بینی‌هایی را به عنوان لاگ‌های کاربر در حین فعالیت (on the fly) تولید کنیم، یا اینکه ما باید پیش‌بینی‌های را از قبل تولید و ذخیره کنیم. این روش استقرار باید پیش‌بینی‌های مدل را هم برای برنامه‌های کاربردی موبایل و هم برای برنامه‌های کاربردی وب در دسترس قرار می‌دهد. بنابراین جدا کردن استقرار ما از هر یک از این کاربردها مطلوب است.

سناریوی ۲: شرکت می‌خواهد ۵ توصیه به ایمیل‌های بازاریابی خود به مشتریان موجود اضافه کند. این ایمیل‌ها دو بار در هفته برای کاربران ارسال می‌شوند؛ یک ایمیل بعد از ظهر دوشنبه ارسال می‌شود و ایمیل دیگر صبح جمعه ارسال می‌شود. در این مورد، توصیه‌ها را می توان برای همه کاربران به طور همزمان محاسبه کرد و به کار برد. الزامات تاخیر در مقایسه با سناریوی قبلی بسیار کم‌تر جدی هستند. ذخیره این توصیه‌ها در پایگاه‌داده کافی است. فرآیند ایجاد ایمیل‌ها می‌تواند توصیه‌های کاربر در این پایگاه‌داده را بررسی کرده و ۵ مورد برتر را به ایمیل‌های شخصی شده اضافه نماید.

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

  • پیش‌بینی‌ها با چه نرخی باید تولید شوند
  • آیا باید پیش‌بینی‌ها را برای یک نمونه در یک زمان تولید کرد یا مجموعه‌ای از نمونه‌ها
  • تعداد کاربردهایی که به مدل دسترسی خواهند داشت
  • الزامات تاخیر زمانی این کاربردها

نتیجه‌گیری

استقرار خودکار مدل‌های یادگیری ماشین یکی از بزرگ‌ترین نقاط درد پیش روی دانشمندان داده و مهندسان یادگیری ماشین در سال ۲۰۲۰ است. از آنجا که مدل‌ها تنها زمانی می‌توانند به یک سازمان ارزش بخشند که بینش‌ها به طور منظم برای کاربران نهایی در دسترس باشند، ضروری است که متخصصان یادگیری ماشینی درک کنند که چگونه مدل‌های خود را به سادگی و به طور موثر به کار گیرند. اولین گام در تعیین چگونگی استقرار یک مدل، درک چگونگی تعامل کاربران نهایی با پیش‌بینی‌های آن مدل است.

منتشرشده در: سایت kdnuggets به تاریخ فوریه ۲۰۲۰
نویسنده: Luigi Patruno
لینک مقاله اصلی:https://www.kdnuggets.com/2020/02/deploy-machine-learning-model.html

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