Как да наблюдавате вашите модели и кои инструменти с отворен код да използвате

Не е лесно да се изгради модел за машинно обучение. Още по-трудно е да се внедри услуга в производство. Но дори и да сте успели да залепите всички тръбопроводи заедно, нещата не спират до тук.

След като моделът се използва, веднага трябва да помислим за безпроблемната му работа. В края на краищата сега доставя бизнес стойност! Всяко прекъсване на производителността на модела директно се превръща в действителна бизнес загуба.

Трябва да се уверим, че моделът работи. Не само като част от софтуера, който връща отговора на API, но и като система за машинно обучение, на която можем да се доверим при вземането на решения.

Това означава, че трябва да наблюдаваме нашите модели. И има още неща за търсене!

Ако ML в производството ви е хванал неподготвени, ето списък за това какво да държите под око.

1. Здраве на услугата

Услугата за машинно обучение все още е услуга. Вашата компания вероятно има установен процес за наблюдение на софтуера, който можете да използвате повторно. Ако моделът работи в реално време, той се нуждае от правилно известяване и отговорни хора на повикване.

Дори да се занимавате само с партидни модели, не правете изключение! Все още трябва да проследяваме стандартни показатели за здравето като използване на паметта, натоварване на процесора и т.н.

Нашата цел е да гарантираме, че услугата работи и спазваме необходимите ограничения, като скоростта на реакция.

Инструмент с отворен код за проверка: Grafana.

2. Качество и цялост на данните

Нещо не е наред с модела за машинно обучение? В по-голямата част от случаите „данните са виновни“.

Тръбопроводите и моделите нагоре по веригата се счупват. Потребителите правят необявена промяна на схемата. Данните могат да изчезнат при източника, физическите сензори се повредят. Списъкът продължава.

Поради това е изключително важно да потвърдим, че входните данни отговарят на нашите очаквания. Проверките могат да включват съответствие с обхвата, разпространение на данни, статистика на характеристиките, корелации или всяко поведение, което считаме за „нормално“ за нашия набор от данни.

Нашата цел е да потвърдим, че подаваме данните, които моделът може да обработва. Преди да върне ненадежден отговор.

Инструмент с отворен код за проверка: Големи очаквания.

3. Дрейф на данни и цели

Нещата се променят. Дори когато имаме работа с много стабилни процеси. Почти всеки модел на машинно обучение има тази неудобна черта: той ще се влоши с времето.

Може да изпитаме „Дрейф на данни“, когато моделът получи данни, които не е виждал в обучението. Представете си потребители, идващи от различна възрастова група, маркетингов канал или географска област.

Ако моделите в реалния свят се променят, започва Concept Drift.Помислете за нещо случайно като глобална пандемия, засягаща цялото поведение на клиентите. Или нов конкурентен продукт на пазара, предлагащ щедро безплатно ниво. Променя начина, по който потребителите реагират на вашите маркетингови кампании.

Крайната мярка и на двата дрифта е влошаването на качеството на модела. Но понякога действителните стойности все още не са известни и не можем да ги изчислим директно. В този случай има водещи индикатори за проследяване. Можем да наблюдаваме дали свойствата на входните данни или целевата функция са се променили.

Например, можете да проследявате разпределенията както за ключовите характеристики на модела, така и за прогнозата на модела. След това задействайте предупреждение, ако се различават значително от минала времева рамка.

Нашата цел е да получим ранни сигнали, че светът или данните са се променили и е време да актуализираме нашия модел.

Инструмент с отворен код за проверка: Очевидно.

4. Производителност на модела

Най-прекият начин да разберете дали вашият модел работи добре е да сравните прогнозите си с действителните стойности. Можете да използвате същите показатели от фазата на обучение на модела, било то Precision/Recall за класификация, RMSE за регресия и т.н. Ако нещо се случи с качеството на данните или моделите в реалния свят, ще видим, че показателите пълзят надолу.

Тук има няколко предупреждения.

Първо, основната истина или действителните етикети често идват със закъснение. Например, ако правите прогнозите си за дълъг хоризонт или има забавяне в предоставянето на данни. Понякога се нуждаете от допълнителни усилия, за да маркирате нови данни, за да проверите дали прогнозите ви са верни. В този случай има смисъл първо да се проследяват данни и отклонение на целта като ранно предупреждение.

Второ, трябва да се проследи не само качеството на модела, но и свързан бизнес KPI. Намаляването на ROC AUC не казва пряко колко влияе, да речем, върху маркетинговите реализации. Жизненоважно е да свържете качеството на модела с бизнес показателя или да намерите някои интерпретируеми прокси.

Трето, вашите показатели за качество трябва да отговарят на случая на употреба. Например показателят за точност далеч не е идеален, ако имате небалансирани класове. При проблеми с регресията може да се интересувате от знака за грешка. Следователно трябва да проследявате не само абсолютните стойности, но и разпределението на грешките. Също така е от решаващо значение да се прави разлика между случайни отклонения и реално разпадане.

Така че подбирайте своите показатели мъдро!

Нашата цел е да проследим колко добре моделът служи на предназначението си и как да го коригираме, когато нещата се объркат.

Инструмент с отворен код за проверка: Очевидно.

5. Изпълнение по сегменти

За много модели настройката за наблюдение, описана по-горе, ще бъде достатъчна. Но ако се занимавате с по-критични случаи на употреба, има повече елементи за проверка.

Например къде моделът прави повече грешки и къде работи най-добре?

Вие може вече да знаете някои конкретни сегменти за проследяване:като точността на модела за вашите първокласни клиенти спрямо общата база. Това ще изисква персонализиран показател за качество, изчислен само за обектите в сегмента, който дефинирате.

В други случаи би имало смисъл да търсите сегменти с ниска ефективност проактивно. Представете си, че вашият модел за ценообразуване на недвижими имоти постоянно предлага по-високи от действителните котировки в определена географска област. Това е нещо, което искате да забележите!

В зависимост от случая на използване, можем да се справим с него, като добавим последваща обработка или бизнес логика върху изхода на модела. Или чрез възстановяване на модела, за да отчете сегмента с ниска ефективност.

Нашата цел е да отидем отвъд обобщената производителност и да разберем качеството на модела на конкретни части от данни.

6. Пристрастност/Справедливост

Когато става дума за финанси, здравеопазване, образование и други области, където решенията на модела могат да имат сериозни последици, трябва да проучваме нашите модели още повече.

Например, производителността на модела може да варира за различните демографски групи въз основа на тяхното представяне в данните за обучение. Създателите на модели трябва да са наясно с това въздействие и да разполагат с инструменти за смекчаване на несправедливостта заедно с регулаторите и заинтересованите страни.

За целта трябва да проследим подходящи показатели като паритет в степента на точност. Прилага се както за валидиране на модела, така и за текущо наблюдение на производството. И така, още няколко показателя към таблото за управление!

Нашата цел е да осигурим справедливо отношение към всички подгрупи и да проследим съответствието.

Инструмент с отворен код за проверка: Fairlearn.

7. Отклонения

Знаем, че моделите правят грешки. В някои случаи на употреба, като насочване на реклами, вероятно не ни интересува дали отделните въведени данни изглеждат странни или обичайни. Докато те не представляват значим сегмент, моделът се проваля!

В други приложения може да искаме да знаем за всеки такъв случай. За да минимизираме грешките, можем да проектираме набор от правила за справяне с извънредни стойности. Например, изпратете ги за ръчен преглед, вместо да вземате автоматично решение. В този случай се нуждаем от начин да ги открием и маркираме съответно.

Нашата цел е да етикетираме аномални входни данни, при които прогнозите на модела могат да бъдат ненадеждни.

Инструмент с отворен код за проверка: Seldon Alibi-Detect

Мониторингът може да звучи скучно. Но е от съществено значение машинното обучение да работи в реалния свят. Не чакайте моделът да се провали, за да създадете първото си табло!

Първоначално публикувано на https://www.kdnuggets.com и в съавторство с Emeli Dral.

За повече съдържание относно производственото машинно обучение вижте нашият блог и практически уроци за наблюдение и валидиране на машинно обучение.