نکات کلیدی
- یک سیستم مدیریت ML یکپارچه نیازمند هماهنگی دقیق چندین مؤلفه، از ردیابی آزمایش با MLflow تا ارائه مدل با FastAPI است.
- تصویرسازی تعاملی از طریق Streamlit، نمونهسازی سریع، اعتبارسنجی و ارتباط با ذینفعان را امکانپذیر میسازد و هم به عنوان یک ابزار توسعه و هم به عنوان بستری برای تجزیه و تحلیل رفتار مدل عمل میکند.
- از فناوریهای کانتینریسازی مانند Docker و Kubernetes برای مدیریت منابع و الزامات مقیاسبندی، به ویژه برای سرویس نظارت، استفاده کنید.
- تثلیث نظارت (Prometheus، Grafana و Evidently AI) با ترکیب معیارهای زیرساخت، قابلیتهای تجسم و نظارت ویژه ML، دیدهبانی جامع سیستم را برای اطمینان از عملکرد مطمئن مدل فراهم میکند.
- رویکرد دوگانه تشخیص رانش داده و تجزیه و تحلیل توضیحات افزودنی Shapley (SHAP) درک عمیقی از رفتار مدل و الگوهای اهمیت ویژگی بین تراکنشهای کوچک و بزرگ را امکانپذیر میسازد و منجر به تشخیص تقلب قابل تفسیرتر و قابل اعتمادتر میشود.
خطوط لوله یادگیری ماشین شامل چندین مؤلفه کلیدی است: پیش پردازش داده ها، آزمایش مدل، آموزش، استقرار و ارزیابی. مهندسان یادگیری ماشین اغلب در محیط های تولید با چالش های قابل توجهی روبرو هستند، مانند دشواری تکثیر کد از نوت بوک ها و یافتن نسخه مدل صحیح هنگام انتقال مدل ها از نوت بوک های توسعه یافته توسط دانشمندان داده.
برای استقرار یک نمونه اولیه در تولید، ما نیازمند بررسی دقیق جنبه های مختلف، مانند بازسازی کد برای مقیاس پذیری، پیاده سازی کنترل نسخه، کانتینری سازی و تست خودکار با ادغام مداوم هستیم. اتخاذ یک ذهنیت تولید محور و شیوه های مشاهده پذیری در مراحل اولیه توسعه مدل می تواند فرآیند استقرار را به طور قابل توجهی تسهیل کند. ما می توانیم سیستم های یادگیری ماشین قوی تر و قابل نگهداری تری ایجاد کنیم که برای کاربردهای دنیای واقعی مناسب تر هستند.
ساخت بنیان ML
همانطور که در شکل 1 زیر نشان داده شده است، یک خط لوله یادگیری ماشین با پردازش داده ها شروع می شود، جایی که اطلاعات خام جمع آوری و برای تجزیه و تحلیل پردازش می شوند. بعد، در مرحله آزمایش و آموزش، دانشمندان داده الگوریتم ها، تکنیک های مهندسی ویژگی و معماری های مدل را برای یادگیری الگوها بررسی می کنند. سپس، مدل آموزش دیده در مرحله استنتاج مستقر می شود تا بر اساس داده های ورودی جدید از طریق API ها پیش بینی کند.
ساخت یک خط لوله ML قابل مشاهده
این مقاله یک خط لوله ML و قابلیت مشاهده آن را برای تشخیص تقلب کارت اعتباری در دنیای واقعی نشان می دهد. هنگامی که مشتریان کارت های دیجیتال خود را می کشند، انتظار دارند یک تصمیم فوری - تأیید یا رد - دریافت کنند. در پشت این تصمیم یک ثانیه ای، یک سیستم پیچیده یادگیری ماشین قرار دارد که باید دقیق، قابل مشاهده، قابل نگهداری و قابل اعتماد باشد. این مقاله به بررسی چگونگی ساخت یک سیستم تشخیص تقلب قابل مشاهده، به اشتراک گذاری بینش های عملی از توسعه تا نظارت بر تولید می پردازد.
مجموعه داده تقلب کارت اعتباری مبتنی بر تراکنشهای دنیای واقعی است که در سپتامبر 2013 توسط دارندگان کارت اروپایی انجام شده است. با این حال، این یک نسخه ساده شده و از پیش پردازش شده است، و این برنامه نمونه، گردش کار انتقال از توسعه مدل محلی به یک پلتفرم متمرکز را نشان می دهد. این فرآیند برای سیستمهای تشخیص تقلب در دنیای واقعی اعمال میشود، جایی که جزئیات گسترده تراکنش و ویژگیهای از پیش مهندسی شده، مشابه ساختار مجموعه داده Kaggle، برای آموزش مدلهایی استفاده میشوند که تراکنشهای متقلبانه را پیشبینی میکنند.
تمرکز بر ساخت یک پلتفرم و گردش کار قابل مشاهده است، نه عملکرد نهایی مدل خاص در دادههای تقلب دنیای واقعی. مجموعه داده همچنین اطلاعاتی در مورد مبلغ تراکنش، زمان و ویژگیهای از قبل پردازش شده (V1-V28)، اجزای اصلی به دست آمده با PCA ارائه میکند. scikit-learn، یک کتابخانه پایتون یادگیری ماشین متن باز، برای توسعه یک مدل رگرسیون لجستیک برای داده های کارت اعتباری استفاده شد.
این مدل احتمال تقلب در ترجمه را پیش بینی می کند. بدون تمرکز زیاد بر توسعه مدل، بیایید درک کنیم که چگونه از توسعه مدل محلی به یک پلتفرم آزمایش متمرکز و مقیاس پذیر، که پیمایش در فرآیند پیچیده ایجاد و پیاده سازی مدل را تسهیل می کند، منتقل شویم.
کانتینری سازی
این یک تمرین خوب است که با در نظر گرفتن مقیاس پذیری از ابتدای یک پروژه طراحی کنید، با استفاده از یک ابزار کانتینری سازی مانند Docker برای اطمینان از اینکه کد برنامه می تواند در هر مکانی اجرا شود. در داخل کانتینر Docker، هر مؤلفه با وابستگی ها و محیط های زمان اجرا لازم کپسوله شده است تا از یکپارچگی سیستم و توانایی مقیاس بندی در محیط های مختلف اطمینان حاصل شود. این سیستم از Apache Kafka به عنوان یک پلتفرم پخش رویداد توزیع شده برای مدیریت داده های تراکنش در زمان واقعی استفاده می کند. قابلیت مقیاس بندی افقی Docker و توانایی Kafka برای پردازش جریان های بزرگ داده به سیستم اجازه می دهد تا حتی تحت بار سنگین نیز سازگار و کارآمد باقی بماند. ما هنگام پیاده سازی خط لوله استنتاج، داده های پخش را دوباره بررسی خواهیم کرد.
مزایای اصلی کانتینرهای داکر این است که آنها:
- کارآمد در منابع (بدون ماشین مجازی).
- مستقل از پلتفرم
- نیازها را با استفاده از تصاویر پایه ساده کنید.
.dockerfile نحوه ساخت برنامه را شرح می دهد که به عنوان یک پروژه GitHub در دسترس است. مدل تشخیص تقلب دارای چندین مؤلفه است که هر کدام در یک کانتینر جداگانه قرار می گیرند و در docker-compose.yml منعکس می شوند. شکل 2 را ببینید تا درک کنید که چگونه کانتینرهای داکر برای پشتیبانی از آزمایش و خطوط لوله استنتاج برای مدل تشخیص تقلب ساختار یافته اند.
ردیابی آزمایش & ثبت مدل با MLflow
ساخت یک خط لوله ML قابل بازتولید: MLflow ستون فقرات ردیابی آزمایش و مدیریت ثبت مدل سیستم تشخیص تقلب ما است. با تنظیم MLflow با "mlflow.set_tracking_uri("http://mlflow:5001")", ما یک مکان متمرکز برای همه آزمایش ها و مدل های خود ایجاد می کنیم. هر آزمایش با استفاده از mlflow.set_experiment("fraud_detection") تحت فضای نام "fraud_detection" سازماندهی می شود تا رویکردهای مختلف مدل سازی از هم جدا شوند.
ما از قابلیت های ردیابی اجرای MLflow هنگام آموزش مدل های خود از طریق مدیر زمینه "mlflow.start_run()" استفاده می کنیم. این به ما امکان می دهد تمام اطلاعات مربوط به هر جلسه آموزشی را ثبت کنیم. در هر اجرا، پارامترهای مدل مانند نوع مدل، روش مقیاس بندی، تعداد ویژگی ها و معیارهای عملکرد مانند دقت، دقت و فراخوانی، یک رکورد جامع از هر آزمایش ایجاد می کنند. پس از آموزش موفقیت آمیز، مدل ها با استفاده از "mlflow.sklearn.log_model()" با یک نسخه و نام خاص ثبت می شوند. ثبت مدل یک تاریخچه واضح از نسخه های مدل را حفظ می کند و پیگیری نسخه های مرحله بندی و تولید و ویژگی های عملکرد آنها را آسان می کند.
راه اندازی ردیابی آزمایش: mlflow.set_tracking_uri("http://mlflow:5001") mlflow.set_experiment("fraud_detection") with mlflow.start_run(run_name=run_name) as run: # برچسب های ساختار یافته را در اینجا اضافه کنید # کد آموزشی شما در اینجا # ورود به سیستم مدل به ثبت mlflow.sklearn.log_model( sk_model=self.model, artifact_path="model", signature=signature, registered_model_name="fraud_detection_model" ) برای ساخت و اجرای کانتینر داکر به طوری که در ثبت MLflow قابل دسترسی باشد
# ساخت کانتینر docker-compose build # شروع خدمات به ترتیب صحیح docker-compose up -d mlflow docker-compose run --rm train با این تنظیم، ما تمام اطلاعات مربوط به هر جلسه آموزشی را ثبت می کنیم. در هر اجرا، پارامترهای مدل مانند نوع مدل، روش مقیاسبندی، تعداد ویژگیها و معیارهای عملکرد مانند دقت، دقت و فراخوانی، یک رکورد جامع از هر آزمایش ایجاد میکنند، همانطور که در شکل 3 نشان داده شده است. پس از آموزش موفقیتآمیز، مدلها با استفاده از "mlflow.sklearn.log_model()" با یک نسخه و نام خاص ثبت میشوند. ثبت مدل یک تاریخچه واضح از نسخههای مدل و معیارهای عملکرد آنها را حفظ میکند و ردیابی نسخه مرحلهبندی و تولید را آسان میکند.
یکی از با ارزش ترین جنبه های پیاده سازی آزمایش و ثبت مدل، توانایی آن در مقایسه آزمایش های مختلف است. شکل 4 یک مخزن متمرکز برای تمام آزمایش های مدل را نشان می دهد و از محیط های محلی مانند اسکریپت های مستقل، نوت بوک ها یا سایر محیط ها دور می شود. دانشمندان داده می توانند به راحتی عملکرد نسخه های مختلف مدل را مقایسه کنند، تأثیر تغییرات پارامتر را تجزیه و تحلیل کنند و تصمیمات آگاهانه ای در مورد اینکه کدام مدل ها را برای ارتقاء تولید انتخاب کنند، بگیرند. این رویکرد سیستماتیک برای ردیابی آزمایش تضمین می کند که سیستم تشخیص تقلب ما قابل بازتولید، قابل نگهداری و آماده تولید باقی می ماند.
ساخت یک نسخه ی نمایشی تعاملی با Streamlit
Streamlit به دلیل سادگی و ویژگی های قدرتمندش، یک انتخاب عالی برای ایجاد نسخه های نمایشی تعاملی یادگیری ماشین است. می توان از آن به طور خلاقانه برای راه اندازی ویژگی های کلیدی مانند تشخیص تقلب در زمان واقعی، کنترل های ورودی تعاملی برای جزئیات تراکنش، امتیازهای احتمال بصری، تجسم اهمیت ویژگی، تجزیه و تحلیل دقیق تراکنش و موارد دیگر استفاده کرد.
اجزای کلیدی
این برنامه به اجزای ضروری ساختار یافته است که با هم کار می کنند تا یک رابط نسخه ی نمایشی UI تشخیص تقلب جامع را در برنامه Streamlit ارائه دهند:
- بارگیری مدل: ادغام یکپارچه با MLflow
- رابط کاربری: طرح تمیز و دو ستونی برای پارامترهای ورودی
- پیشبینیهای بیدرنگ: بازخورد فوری در مورد ریسک تراکنش
- تجزیه و تحلیل بصری: نمودارهای تعاملی که اهمیت ویژگی را نشان میدهند
- رسیدگی به خطا: مدیریت خطای قوی با پیام های کاربر پسند
برای ساخت نسخه ی نمایشی برنامه تشخیص تقلب streamlit، اسکریپت به این صورت خواهد بود
# کتابخانه ها را در اینجا وارد کنید def load_models(): mlflow.set_tracking_uri("http://mlflow:5001") ? این پورت در فایل docker-compose.yml تعریف می شود # مدل ها را از ثبت MLFlow در اینجا بارگیری کنید # ایجاد برنامه نمایشی Streamlit def main(): st.title("زمین بازی مدل تشخیص تقلب") # مدل MLflow را بارگیری کنید model = load_models() # فرم ورودی با دو ستون st.subheader("جزئیات تراکنش") col1, col2 = st.columns(2) # ورودی مبلغ تراکنش with col1: amount = st.number_input( "مبلغ تراکنش ($)", min_value=0.0, value=100.0 ) # ورودی توالی زمانی with col2: time_value = st.slider( "ثانیه ها از اولین تراکنش", min_value=0, max_value=172800 # 48 ساعت ) # توضیحات در مورد ویژگی زمان را از اینجا اضافه کنید برای چرخاندن برنامه نمایشی تشخیص تقلب streamlit، به سادگی دستور زیر را اجرا کنید: برنامه streamlit در پورت اختصاص داده شده در فایل docker-compose.yml برای streamlit_playground key زنده خواهد بود. سپس، رابط کاربری را همانطور که در شکل 5 نشان داده شده است، خواهید دید.
docker-compose up streamlit_playground
تجزیه و تحلیل ویژگی در زمان واقعی با Streamlit
یکی دیگر از مزایای بزرگ، ساخت تجزیه و تحلیل بصری است که اهمیت مدل را نشان می دهد. مدل تمام ویژگی ها را با هم در نظر می گیرد تا پیش بینی خود را انجام دهد، و احتمال نهایی تقلب از الگوی ترکیبی همه ویژگی ها ناشی می شود. دانستن اینکه کدام مقادیر ویژگی، همانطور که در شکل 6 نشان داده شده است، یا ویژگی هایی که بر احتمال تقلب تأثیر می گذارند، به شدت به مدل سود می رساند و به بهبود بیشتر آن کمک می کند.
- نوارها مقادیر ویژگی را نشان می دهند، نه احتمالات تقلب
- مقادیر آبی/مثبت و مقادیر قرمز/منفی الگوهای مختلف تراکنش را نشان می دهند.
- مدل یاد می گیرد که کدام ترکیبی از این الگوها نشان دهنده تقلب است
- یک مقدار آبی (مثبت) به ناچار به معنای تقلب نیست
- این ترکیبی از همه ویژگی ها است که پیش بینی نهایی را تعیین می کند
مزایای عملی نسخه ی نمایشی Streamlit
- نمونه سازی سریع: رفتار مدل را با ورودی های مختلف فورا آزمایش می کند
- اعتبارسنجی: تکرار سریع و تأیید آسان عملکرد مدل در سناریوهای مختلف
- نظارت بر مدل: تشخیص زودهنگام رانش مدل یا رفتارهای غیرمنتظره
- تست فرضیه: فرضیات مربوط به اهمیت ویژگی و تصمیمات مدل را اعتبارسنجی کنید
- مستندسازی: مستندسازی زنده رفتار مدل و ویژگی ها
- همکاری: پلتفرم مشترک برای بحث های تیمی در مورد رفتار مدل
- آموزش: روشی عالی برای پیاده سازی اعضای جدید تیم در پروژه
ساخت خط لوله استنتاج
ما باید یک خط لوله استنتاج بسازیم تا پیش بینی های مدل را برای کاربر در دسترس قرار دهیم. سرویس Fast API نقطه پایانی اصلی برای پیش بینی های تشخیص تقلب در زمان واقعی است که از طریق فایل docker-compose.yml هماهنگ شده است. این با MLflow ارتباط برقرار می کند تا آخرین فایل ترشی مدل تولید شده از آموزش را بارگیری کند و درخواست های تراکنش ورودی را پردازش کند. Apache Kafka برای قابلیت های پخش استفاده می شود. سرویس پخش پایه و اساس پردازش داده در زمان واقعی را فراهم می کند. این جریان های تراکنش را با استفاده از Kafka و Zookeeper مدیریت می کند و پیاده سازی های آینده نظارت در زمان واقعی و به روز رسانی مداوم مدل را امکان پذیر می کند.
جریان استنتاج زمانی شروع می شود که یک درخواست تراکنش به نقطه پایانی API ما برخورد می کند. سرویس FastAPI آخرین فایل مدل را از ثبت مدل MLflow با استفاده از URI ردیابی پیکربندی شده (http://mlflow:5001) بارگیری می کند. این تنظیم تضمین می کند که جدیدترین مدل تولید برای پیش بینی استفاده می شود در حالی که کنترل نسخه و قابلیت بازتولید را حفظ می کند.
هر پیش بینی با شناسه منحصر به فرد، ویژگی های ورودی، نتیجه پیش بینی و زمان پردازش ثبت می شود. این نقاط داده برای نظارت بر عملکرد مدل و تشخیص رانش های مختلف در تولید، مانند تغییرات در ویژگی ها و عملکرد، یا حتی برای اطمینان از کیفیت داده ها بسیار مهم هستند.
مدیریت منابع و مقیاس بندی
پیکربندی docker-compose شامل مدیریت دقیق منابع، به ویژه برای سرویس نظارت است که محاسبات پیچیده و تولید گزارش را انجام می دهد. ما محدودیت های حافظه خاصی را تا 4G و 2G برای رزرو حافظه اختصاص داده ایم تا از عملکرد پایدار اطمینان حاصل کنیم:
این تنظیم به خط لوله استنتاج ما اجازه می دهد تا بارهای تولید را مدیریت کند در حالی که نظارت بر عملکرد قابل اعتماد را حفظ می کند. جدا کردن نگرانی ها بین سرویس ها (API، پخش، نظارت) امکان مقیاس بندی و نگهداری مستقل هر مؤلفه را فراهم می کند.
خط لوله استنتاج سیستم تشخیص تقلب ما که با FastAPI و MLflow ساخته شده است، به عنوان یک پایه قوی برای پیش بینی های در زمان واقعی عمل می کند. یک سرور واحد فقط می تواند تعداد محدودی از درخواست های همزمان را با افزایش حجم تراکنش ها و سخت تر شدن الزامات زمان پاسخگویی مدیریت کند. علاوه بر این، رویکرد ارائه مدل ما که مدل را از MLflow برای پیش بینی بارگیری می کند، باید برای سناریوهای توزیع شده بهینه شود. بنابراین، ما باید از یک معماری تک نمونه ای به یک سیستم توزیع شده قادر به مدیریت میلیون ها تراکنش و در عین حال حفظ زمان پاسخگویی زیر ثانیه تکامل یابیم. پیاده سازی کامل مقیاس بندی افقی یک سفر مترقی است که نیاز به برنامه ریزی و اجرای دقیق دارد. بیایید ابزارهای ضروری را که پایه و اساس یک سیستم تشخیص تقلب مقیاس پذیر را تشکیل می دهند، بررسی کنیم.
Kubernetes: پایه و اساس مقیاس بندی افقی
Kubernetes انتخاب طبیعی برای هماهنگ کردن خدمات تشخیص تقلب و ارائه استقرار، مقیاس بندی و مدیریت خودکار برنامه های کانتینری شده ما است. توانایی آن در مدیریت بهروزرسانیهای چرخشی، خود ترمیم کانتینرهای ناموفق و مدیریت کارآمد منابع، آن را برای حفظ عملکرد ثابت در چندین نمونه از API تشخیص تقلب ما ایدهآل میکند. علاوه بر Kubernetes، ابزارهای متعادل کننده بار و مدیریت سرویس مانند NGINX Ingress Controller باید برای توزیع ترافیک و Istio برای قابلیت های مش سرویس در نظر گرفته شوند.
در حالی که پیاده سازی Kubernetes شایسته غواصی عمیق خود است، نکته کلیدی این است که این مؤلفه ها را به تدریج با افزایش حجم تراکنش معرفی کنیم.
جریان: پردازش ناهمزمان با Kafka
ادغام Apache Kafka برای پردازش ناهمزمان است، به ویژه برای وظایفی که حیاتی زمانی نیستند، اما برای عملیات های تحلیلی یا پسا پردازش مورد نیاز هستند. پیامهایی از پیشبینیهای مدل گرفته میشوند و به Kafka ارسال میشوند که کارهای گرانقیمت مانند ذخیره نتایج یا استخراج ویژگیها را بارگذاری میکند. این جداسازی وظایف، پاسخگویی خط لوله اصلی پیشبینی را بهبود میبخشد.
از این رو، ما باید از جریانهای کافکا و ساختار دادهها به خوبی آگاه باشیم، زیرا از جریانهای کافکا برای سیستم تشخیص تقلب در یک محیط تولید استفاده میشود.
دیدبانی خط لوله ML
دیده بانی خط لوله یادگیری ماشین چیزی فراتر از نظارت صرف است: این یک رویکرد جامع برای نظارت بر معیارهای کلیدی برای اطمینان از رفتار پیش بینی شده است. نظارت به عنوان یک جزء متمایز طراحی شده است که به دقت به خروجی سیستم در زمان واقعی نگاه می کند. معماری یکپارچه که در شکل 7 نشان داده شده است، هماهنگی دقیق سیستم های مختلف برای نظارت موثر را نشان می دهد. این شامل تجزیه و تحلیل الگوهای داده، شناسایی ناهنجاری ها و اطمینان از ثبات خدمات است. این رویکرد با نظارت بر پارامترهای کلیدی مانند نرخ درخواست، زمان پاسخگویی و نرخ خطا به ما امکان می دهد از مشکلات احتمالی قبل از اینکه به عملکرد تأثیر بگذارند مطلع شویم.
در این معماری، دادههای تولید (پیشبینیها، ورودیها) جمعآوری، تجزیه و با استفاده از Prometheus ذخیره میشوند. داشبوردها با استفاده از Grafana ساخته میشوند، که امکان بررسی و هشدار سریع را بر اساس مقادیر آستانه از پیش تعریف شده فراهم میکند. علاوه بر این، ما از Evidently AI برای نظارت بر رانش داده و رانش مفهوم استفاده میکنیم و گزارشهای خودکار دورهای تولید میکنیم که به طور مداوم تغییرات در کیفیت مدل را ارزیابی میکنند. ما خط لوله دیدهبانی خود را با ادغام Prometheus، Grafana و Evidently AI به اوج میرسانیم.
Prometheus: نظارت زیرساخت
Prometheus بر ارائه بینشی در مورد معیارهای زیرساخت مانند استفاده از CPU، مصرف حافظه و ترافیک شبکه تمرکز دارد. عملکرد خط لوله تشخیص تقلب را ارزیابی و اطمینان میدهد که خدمات ضروری منابع کافی برای کارکرد بهینه را دارند. به عنوان مثال، نوسانات ناگهانی در استفاده از CPU یا حافظه میتواند نشان دهنده مشکلات زیربنایی باشد. یک رویکرد دوگانه را در نظر بگیرید که در آن هم بر زیرساخت و هم بر جنبه های خاص ML نظارت می کنید.
Grafana: تجسم بصری
Grafana با قابلیتهای تجسمی گسترده خود، داشبوردهای ایجاد شده از داده های Prometheus را برای تجسم عملکرد سیستم و روندها ارائه میکند. برای ارائه یک بررسی اجمالی از معیارهای تاریخی به عنوان مثال، زمان پاسخگویی مدل های تشخیص تقلب و شناسایی الگوها، در این صورت. قابلیت های تجسم Grafana به نظارت زیرساخت با ارائه داشبوردهای شخصی سازی شده گسترش می یابد.
Evidently AI: نظارت بر مدل ML
Evidently AI با تولید گزارشهایی که رانش دادهها و افت کیفیت مدل را نشان میدهد، یک دیدهبانی خاص ML ارائه میدهد. می تواند تفاوت هایی را در داده های آموزشی و داده های زمان واقعی شناسایی کند. به عنوان مثال، در مدل تشخیص تقلب، می تواند نظارت کند که آیا الگوهای تراکنش با الگوهای آموزش متفاوت است و در نتیجه دقت مدل را به خطر می اندازد. اجرای بازرسی های منظم و کامل بر معیارهای کلیدی برای قابلیت اطمینان کلی بسیار مهم است.
درک رفتار مدل در تراکنش های کوچک و بزرگ
ترکیب دو استراتژی، درک عمیقی از رفتار مدل را امکان پذیر می کند. اول، رانش داده به ما اجازه می دهد تا تغییرات در ورودی های مدل را به طور کلی تشخیص دهیم و مطمئن شویم که مدل در محدوده داده ای که برای آن آموزش دیده است، استفاده می شود. دوم، با استفاده از SHAP (توضیحات افزودنی Shapley) می توانیم تعیین کنیم که کدام ویژگی های ورودی بیشترین تاثیر را بر پیش بینی مدل در تراکنش های خاص دارند. این به ما کمک میکند بفهمیم که آیا مدل همانطور که انتظار داریم تصمیم میگیرد یا خیر.
پیاده سازی گردش کار نظارت مستمر برای سیستم های یادگیری ماشین برای قابلیت اطمینان و دقت مستمر ضروری است. این به ما امکان می دهد در مورد چگونگی و چرایی رانش عملکرد مدل بیشتر بدانیم، خط لوله آموزش را بهبود بخشیم و حتی رفتار مشتری را بهتر درک کنیم. این رویکرد نظارتی، به علاوه هشدار پیشگیرانه، دید کاملی را برای ایجاد سیستمهای یادگیری ماشین قابل مشاهده ارائه میدهد.
نتیجه گیری
این مقاله راهنمایی برای سیستمهای یادگیری ماشین قابل مشاهده از توسعه تا نظارت ارائه میکند. با ردیابی با MLflow، ارائه با FastAPI، دید بصری تعاملی با Streamlit، کانتینری کردن با Docker و نظارت جامع با Prometheus، Grafana و Evidently AI، می توان یک سیستم قوی ایجاد کرد. در نهایت، ما کشف کردیم که ساخت سیستم های یادگیری ماشین قابل مشاهده تر به معنای اطمینان از مقیاس پذیری و عملیاتی بودن نیست، بلکه ایجاد اعتماد و اطمینان به دقت و قابلیت اطمینان این سیستم ها است. سیستمهای یادگیری ماشین قابل مشاهده و مقیاسپذیر تنها با ایجاد نظارت قوی بر خطوط لوله داده، مدلها و خدمات امکانپذیر هستند.