Model Monitoring
Оновлено: 31.07.2023
Що таке моніторинг моделей
Моніторинг моделей машинного навчання пов'язаний з тим, як ми відстежуємо і розуміємо успіх наших моделей у розробці як з точки зору науки про дані, так і з операційної точки зору. Коли настає час запускати модель у виробництво після практики та тестування в експериментальному середовищі, на результати роботи вашої моделі вплине перехід від експериментального до реального середовища. Важливо пам'ятати, що модель створюється для того, щоб служити бізнес-цілям і створювати додаткову цінність для компанії. Як наслідок, вона повинна відповідати наступним основним бізнес-вимогам:
- Ми хочемо, щоб моделі завжди були стабільними та зручними для використання.
- Ми хочемо, щоб моделі продовжували бути актуальними в розробці.
Чому важливий моніторинг моделей?
Моніторинг моделі машинного навчання повинен бути налаштований таким чином, щоб надавати своєчасні сповіщення про численні проблеми, які можуть виникнути з моделлю машинного навчання. Реалізації машинного навчання повинні відстежуватися в рамках парадигми MLOps, щоб відстежувати стан моделі та вживати заходів, коли показники продуктивності погіршуються. Ось деякі з проблем, які можуть виникнути:
Перекіс виникає, коли навчальні дані не відображають реальні дані. Це означає, що воно виникає, коли дані, використані для навчання моделі на етапі експерименту, не відображають дані, отримані в реальному застосунку/системі.
Це може статися з різних причин:
- Навчальні дані було створено неправильно.
- Файл не знаходиться у виробництві: Коли це трапляється, ми повинні або видалити елемент, або створити його заново, включивши інші елементи, які вже є у виробництві, або замінити його аналогічним елементом, який вже існує.
- Невідповідність між дослідницькими та реальними даними: У дослідницькому середовищі дані, які ми використовували для навчання наших моделей, надходили з одного джерела, тоді як реальні дані надходили з іншого.
- Залежності даних: Моделі можуть поглинати змінні, що зберігаються або генеруються іншими системами. Вони можуть змінювати спосіб генерування даних, і, на жаль, про це не завжди чітко повідомляється
- Постійні зміни в навколишньому середовищі: Якщо для навчання моделей використовуватимуться історичні дані, ми повинні враховувати той факт, що люди та їхні дії будуть відрізнятися в сьогоденні.
- Гонка озброєнь: іноземні уряди, шахраї та інші погані актори можуть активно шукати недоліки в моделі і змінювати свої атаки відповідно до цих недоліків. Іноді це називають "гонкою озброєнь".
- Смаки клієнтів змінюються під впливом моди, політики, етики та інших факторів, що впливають на поведінку клієнтів. Це ризик, який необхідно постійно відстежувати, особливо в рекомендаційних системах ML.
Коли моделі автоматично навчаються на даних, отриманих під час розробки, виникає складніша проблема. Якщо дані якимось чином викривлені або спотворені, моделі, які на них навчаються, будуть працювати погано.
Вищезазначені причини та проблеми, які може вирішити моніторинг моделей машинного навчання, є дуже вагомими.
Як виміряти ефективність моделі?
Звісно, точність наших моделей, що розробляються, є для нас дуже важливою, тому моніторинг моделей є важливим, і саме тут вступає в гру моніторинг моделей науки про дані.
Однак у багатьох ситуаціях дізнатися точність і виміряти продуктивність моделі одразу неможливо. Розглянемо наступний приклад моделі машинного навчання, призначеної для виявлення шахрайства: Єдиний спосіб перевірити її точність у прогнозуванні нових реальних інцидентів - це провести кримінальне розслідування або інші тести.
Багато інших сфер, де ми не отримуємо прямих даних, стикаються з подібними проблемами (наприклад, прогнозування ризиків захворювань, майбутньої вартості нерухомості, прогнозування кредитних ризиків, прогнозування фондових ринків у довгостроковій перспективі). З огляду на ці обмеження, моніторинг проксі-значень у виробництві для забезпечення точності моделі має сенс.
Ось деякі з найкращих практик моніторингу моделей:
Ми можемо перевірити, що вхідні значення потрапляють в допустимий набір або діапазон, а частоти кожного відповідного значення в цьому наборі збігаються з тим, що ми бачили в минулому, маючи набір очікуваних значень для вхідної функції.
Ми будемо вмикати або вимикати функції нульового вводу в залежності від конфігурації нашої моделі. Ми можемо відстежувати подібні речі. Якщо ознаки, які ми вважаємо загалом нульовими, починають змінюватися, це може означати упередженість даних або зміну в поведінці клієнтів, і все це вимагає подальшого розслідування. Ще одна причина, чому ви повинні стежити за машинним навчанням. Ми можемо порівнювати розподіли прогнозів нашої моделі зі статистичними тестами в автоматизованому або ручному режимі.
Це просте місце для моніторингу, про яке часто забувають: Легко відстежувати, яку версію вашої моделі було реалізовано, оскільки помилки конфігурації трапляються.