چگونه ML مهندسی نرم افزار را به چالش می کشد

عکس پروفایل Joost Visser Hacker Noon

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

هنگام ساخت سیستم های نرم افزاری شامل اجزای یادگیری ماشین (ML) ، این روش مهندسی نرم افزار سنتی با سه ویژگی متمایز به چالش می کشد:

  • عدم اطمینان ذاتی: اجزای ML نوع جدیدی را وارد می کنند عدم قطعیت به سیستم های نرم افزاری وارد شوید. در حالی که از توسعه دهندگان و معماران نرم افزار برای طراحی ، ساخت و آزمایش سیستم های خود استفاده می شود تا بتوانند با عوامل خارجی عدم اطمینان (تأخیر شبکه ، رفتار کاربر غیر قابل پیش بینی ، سخت افزار غیرقابل اطمینان) کنار بیایند ، اکنون باید با درونی؛ داخلی م componentsلفه هایی که به روشی غیر قطعی رفتار می کنند. م componentsلفه های ML ورودی های خروجی را در یک نقشه نشان می دهند احتمالی روش. به عنوان مثال یک م -لفه تشخیص تصویر را در نظر بگیرید ، که ورودی را به جای یک نتیجه واضح ، به عنوان یک گربه یا سگ طبقه بندی می کند.
  • رفتار داده محور: رفتار اجزای ML تنها به طور جزئی توسط منطقی که یک برنامه نویس می نویسد تعیین می شود. در عوض ، رفتار است آموخته شده از داده ها. این وابستگی عظیم به (حجم زیادی از داده) که از اوایل مرحله توسعه است ، روند توسعه و استقرار را تغییر می دهد …