Устранение неполадок машинного обучения сегодня слишком сложно (но так быть не должно)

Поскольку специалисты по машинному обучению внедряют в производство все больше моделей, ставки на производительность моделей выше, чем когда-либо, а ошибки обходятся дороже.

Часть первая: от отсутствия мониторинга к мониторингу

Перефразируя распространенную мудрость, если модель машинного обучения работает в производственной среде и никто не жалуется, означает ли это, что модель идеальна? К сожалению, производственные модели обычно не используются, если только они не приводят к негативным последствиям для бизнеса.

Давайте посмотрим на примере того, что может произойти сегодня:

Как инженер по машинному обучению (MLE) в финтех-компании, вы поддерживаете модель обнаружения мошенничества. Он работает уже неделю, и вы наслаждаетесь утренним кофе, когда менеджер по продукту (PM) срочно жалуется на то, что в службу поддержки клиентов значительно увеличилось количество звонков с жалобами на мошеннические транзакции.

Это обходится компании в целое состояние в транзакциях с возвратом платежей. Компания тратит десятки тысяч долларов каждый час, и вы должны исправить это сейчас.

Глоток. Это ваша модель? Инженеры-программисты говорят вам, что проблема не на их стороне.

Вы пишете собственный запрос для извлечения данных из журналов последних миллионов прогнозов, сделанных вашей моделью за последние три дня. Выполнение запроса занимает некоторое время, вы экспортируете данные, выполняете минимальную предварительную обработку, импортируете их в блокнот Jupyter и, в конечном итоге, начинаете вычислять соответствующие метрики для извлеченных вами образцов данных.

С общими данными проблем не возникает. Ваш PM и клиенты все еще жалуются, но все, что вы видите, это, возможно, небольшое увеличение мошеннической активности.

Больше метрик, больше анализа, больше разговоров с другими. Что-то происходит, просто непонятно. Итак, вы начинаете копаться в данных, чтобы найти общий шаблон мошеннических транзакций, который отсутствует в модели. Вы пишете специальные сценарии для нарезки данных.

На это уходят дни или недели всепоглощающих усилий. Все остальное, над чем вы работали, теперь приостановлено, пока эта проблема не будет решена, потому что: 1) вы лучше всех знаете модель; и 2) каждый плохой прогноз снижает доход компании.

В конце концов, вы видите что-то странное. Если разобрать по географическому признаку, в Калифорнии дела обстоят несколько хуже, чем несколько дней назад. Вы выбираете Калифорнию и понимаете, что некоторые идентификаторы продавцов принадлежат мошенникам, которых ваша модель не замечала. Вы переучиваете свою модель на этих новых продавцах и спасаете положение.

Этот пример помогает нам увидеть, что сегодня требуется для устранения неполадок в модели машинного обучения. Это во много раз сложнее, чем устранение неполадок в традиционном программном обеспечении. Мы отправляем AI вслепую.

Существует множество инструментов и методов мониторинга для традиционной разработки программного обеспечения, таких как Datadog и New Relic, которые автоматически выявляют проблемы с производительностью. Но как выглядит мониторинг для моделей машинного обучения?

Мониторинг производительности машинного обучения

Во-первых, давайте убедимся, что у нас есть определение того, что такое мониторинг: мониторинг на самом базовом уровне — это данные о том, как работают ваши системы; он требует, чтобы данные были доступны для хранения, доступа и отображения каким-либо разумным образом.

Какие данные необходимы для мониторинга производительности?

Чтобы отслеживать производительность моделей машинного обучения, вы должны начать с прогноза и фактического.

Модель должна делать некоторые прогнозы. Это может быть прогнозирование расчетного времени прибытия (ETA), когда поездка должна прибыть в приложении для совместного использования. Это также может быть сумма кредита, чтобы дать определенному человеку. Модель может предсказать, будет ли дождь в четверг. На фундаментальном уровне это то, что делают системы машинного обучения: они используют данные для прогнозирования.

Поскольку вам нужно предсказать реальный мир, и вы хотите, чтобы этот прогноз был точным, также полезно смотреть на фактические данные (также известные как истинные основания). Актуальность — это правильный ответ — это то, что на самом деле произошло в реальном мире. Ваша машина прибыла через пять минут, иначе в четверг шел дождь. Без сравнения с фактическими данными очень сложно количественно оценить, как работает модель, пока ваши клиенты не жалуются.

Но получение фактов не является тривиальной задачей. Здесь четыре случая:

1. Быстрые фактические данные. В самом простом случае фактические значения отображаются для каждого прогноза, и существует прямая связь между прогнозами и фактическими значениями, что позволяет напрямую анализировать производительность вашей модели в производственной среде. Это может произойти, например, в случае прогнозирования ETA вашей поездки. В какой-то момент поездка прибудет, и вы будете знать, сколько времени это заняло и соответствует ли фактическое время вашему прогнозу.

2. Задержанные фактические значения. На приведенной ниже диаграмме мы видим, что фактические значения для модели в конечном итоге определяются, но они появляются слишком поздно для желаемого анализа.

Когда эта фактическая задержка достаточно мала, этот сценарий не слишком сильно отличается от быстрых фактических значений. У владельца модели по-прежнему есть разумная частота для измерения показателей производительности и соответствующего обновления модели, как это было бы в сценарии с фактическими данными в реальном времени.

Однако в системах, где получение фактических данных происходит со значительной задержкой, командам может потребоваться использовать прокси-показатели. Прокси-метрики — это альтернативные сигналы, которые коррелируют с фактическими данными, которые вы пытаетесь приблизить.

Например, представьте, что вы используете модель для определения того, какие потребители с наибольшей вероятностью не выплатят задолженность по кредитной карте. Потенциальным косвенным показателем в этом сценарии может быть процент клиентов, которым вы одолжили кредит, которые просрочили платеж.

3. Причинно-следственное влияние на фактические данные (предвзятые фактические данные): не все фактические данные одинаковы. В некоторых случаях команды получают фактические данные в реальном времени, но прогнозы модели существенно влияют на результат. Возьмем пример кредитования: когда вы решите предоставить кредиты определенным заявителям, вы получите фактические суммы по этим заявителям, а не по тем, которых вы отклонили. Таким образом, вы никогда не узнаете, точно ли ваша модель предсказала дефолт отклоненных заявителей.

4. Нет фактических данных. Отсутствие фактических данных, которые можно было бы связать с производительностью модели, является наихудшим сценарием для группы моделирования. Один из способов получить наземные достоверные данные — нанять людей-аннотаторов или маркировщиков. Мониторинг дрейфа в выходных прогнозах также можно использовать для сигнализации об аберрантном поведении модели, даже если фактические значения отсутствуют.

Более подробно об этих сценариях см. в «Практике мониторинга производительности вашей модели в производстве

Сбор ваших прогнозов и фактических данных — это первый шаг. Но для полноценного мониторинга вам нужна формула для сравнения ваших прогнозов и ваших фактических данных — вам нужна правильная метрика.

Каковы правильные показатели для моей модели?

Правильная метрика для мониторинга любой модели зависит от варианта использования вашей модели. Давайте посмотрим на некоторые примеры.

Мошенничество

Модель мошенничества особенно трудно оценить с помощью простых мер точности, поскольку набор данных крайне несбалансирован (подавляющее большинство транзакций не являются мошенническими). Вместо этого мы можем измерить:

  • Вспомнить или указать, какая часть выявленных вашей моделью примеров мошенничества действительно положительна.
  • Ложноотрицательный показатель измеряет мошенничество, которое модель не смогла точно предсказать. Это ключевой показатель эффективности, поскольку он является самым дорогим для организаций с точки зрения прямых финансовых потерь, приводящих к возвратным платежам и другим хищениям средств.
  • Коэффициент ложноположительных результатов — или уровень, при котором модель предсказывает мошенничество для транзакции, которая на самом деле не является мошеннической, — также важен, поскольку причинение неудобств клиентам влечет за собой собственные косвенные издержки, будь то здравоохранение, где претензия пациента отказ или потребительский кредит, когда покупатель задерживается при покупке продуктов.

Прогнозирование спроса

Прогнозирование спроса прогнозирует потребительский спрос за заданный период времени. Например, интернет-магазину, продающему компьютерные корпуса, может потребоваться спрогнозировать спрос, чтобы убедиться, что они могут удовлетворить потребности клиентов и не покупать слишком много товаров. Как и другие модели прогнозирования временных рядов, она лучше всего описывается такими показателями, как ME, MAE, MAPE и MSE.

  • Средняя ошибка (ME) — это средняя историческая ошибка (систематическая ошибка). Положительное значение означает завышенный прогноз, а отрицательное значение означает заниженный прогноз. Хотя средняя ошибка обычно не является функцией потерь, для которой модели оптимизируются при обучении, тот факт, что она измеряет погрешность, часто полезен для мониторинга влияния на бизнес.
  • Средняя абсолютная ошибка (MAE) – это разница абсолютного значения между прогнозами модели и фактическими значениями, усредненная по набору данных. Это отличный первый взгляд на производительность модели, поскольку она не искажена экстремальными ошибками нескольких прогнозов.
  • Средняя абсолютная ошибка в процентах (MAPE) измеряет среднюю величину ошибки, создаваемой моделью. Это одна из наиболее распространенных метрик точности предсказания модели.
  • Среднеквадратическая ошибка (MSE) – это разница между предсказаниями модели и фактическими значениями, возведенная в квадрат и усредненная по набору данных. MSE используется для проверки того, насколько близки прогнозируемые значения к фактическим значениям. Как и в случае со среднеквадратичной ошибкой (RMSE), эта мера придает больший вес крупным ошибкам и, следовательно, может быть полезна в тех случаях, когда компания может захотеть сильно наказать большие ошибки или выбросы.

Другие варианты использования

Существует множество вариантов использования машинного обучения и связанных с ними показателей модели — от моделей рейтинг кликов до пожизненной ценности. Доступны дополнительные ресурсы по метрикам моделей по вариантам использования.

Каковы правильные пороги?

Итак, теперь у вас есть метрика, и вы столкнулись с новой проблемой: насколько хорошо достаточно хорошо? Что такое хороший показатель точности? Является ли мой ложноотрицательный уровень слишком высоким? Что считается хорошим AUC?

Абсолютные меры очень трудно определить. Вместо этого специалисты по машинному обучению должны полагаться на относительные показатели. В частности, вы должны определить базовую эффективность. Пока вы обучаете модель, вашим базовым уровнем может быть более старая модель, которую вы произвели, современная модель из литературы или человеческая деятельность. Но как только модель запущена в производство, она становится эталоном. Если у вас есть 3% ложноотрицательных результатов в первый день, а затем 10% ложноотрицательных результатов сегодня, вы должны разбудить своих инженеров!

Часто первоначальная производительность — это не то, что фактически используется; вместо этого вы можете использовать скользящую производительность за 30 дней.

Когда модель значительно смещается (стандартное отклонение или более), должно быть активировано оповещение. Это должна быть автоматическая настройка, основанная на базовом наборе данных, чтобы вы могли заранее получать предупреждения.

Заключение и что дальше

За последнее десятилетие модели машинного обучения были быстро внедрены, решая очень сложные проблемы с большими последствиями для бизнеса. Системы машинного обучения обычно строятся поверх конвейеров данных и других сложных инженерных систем, которые передают модели данные, необходимые для прогнозирования. Но прогнозы — это только начало. Для надежной работы этих систем в производстве вам необходим мониторинг производительности для постоянной оценки точности и качества вашей модели.

Конечно, одного мониторинга недостаточно. Если вы находитесь на этом этапе, вы можете получить предупреждение до того, как ваши клиенты пожалуются на всплеск мошеннических транзакций, но вы все еще не знаете, как легко это исправить. Во второй части этой серии блогов мы рассмотрим современный и менее болезненный подход к оценке производительности модели и устранению неполадок: полный стек наблюдаемости машинного обучения с отслеживанием производительности машинного обучения.

Связаться с нами

Если этот блог привлек ваше внимание и вы хотите узнать больше о наблюдаемости машинного обучения и мониторинге моделей, ознакомьтесь с другими нашими блогами и ресурсами по мониторингу машинного обучения! Не стесняйтесь обращаться к нам с любыми вопросами или комментариями и найти наши открытые вакансии здесь, если вы заинтересованы в том, чтобы присоединиться к веселой, рок-звездной команде инженеров, чтобы помочь сделать модели успешными в производстве!