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

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

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

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

Хотя этот оптимистичный настрой «предположим, что все работает, как ожидалось» может работать в тех случаях, когда результаты не так важны, он может иметь катастрофические последствия в сценариях с более сильным воздействием.

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

Как думать об автоматическом мониторинге

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

Теоретически это просто. Вы настраиваете систему мониторинга, и она отправляет вам предупреждение, когда точность вашей системы падает ниже определенного порога.

На самом деле все сложнее. У вас может быть вручную аннотированный «золотой» набор данных для обучения, но в процессе производства вы не знаете, ошибается ли ваша модель: если бы вы это сделали, вам не понадобилась бы модель в первое место.

Три стратегии для моделей мониторинга

Чтобы рассчитать точность своих прогнозов, вы можете выполнить одно из следующих действий:

  • Отслеживайте показатель, который коррелирует с точностью. Если классификатор спама обычно предсказывает 30% сообщений как спам, но однажды предсказывает, например, 75%, то, вероятно, не было большого роста фактического спама; более вероятно, что модель не работает.
  • Образец "человек в петле". Например, вы можете вручную проверить 5% всех прогнозов и отслеживать их точность.
  • Ретроспективный мониторинг. Если вы делаете прогнозы на будущее, например, выздоровеет ли пациент через месяц, то позже вы сможете проверить свою точность.

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

Автоматическая переподготовка и развертывание ваших моделей

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

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

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

В разработке программного обеспечения распространены CI / CD или структура «непрерывная интеграция / непрерывное развертывание». Это означает, что вы настроили все так, чтобы новый код можно было автоматически интегрировать в существующий, протестировать и развернуть.

В MLOps вы также хотите переобучить свои модели, поэтому вам понадобится CT / CI / CD или «непрерывное обучение / непрерывная интеграция / непрерывное развертывание».

Вам нужно будет заранее потратить время на настройку конвейера CT / CI / CD, но, по нашему опыту, большинство команд слишком долго делают что-то вручную.

Инструменты, которые можно использовать против распада модели

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

  • Префект как инструмент рабочего процесса и потока данных. Это позволяет нам определять график задач, которые нужно запустить, а затем автоматически выполнять их, отслеживая и повторно запуская при необходимости. Вы можете узнать больше о том, что нам нравится в Prefect. Prefect занимается не только автоматическим переподготовкой моделей, но и запланированным мониторингом, который помогает нам анализировать и обнаруживать разрушение.
  • Feast как специализированный магазин. С Feast вы можете отслеживать изменения данных и обмениваться функциями между моделями. Узнайте больше о магазинах функций в нашей статье Выбор магазина функций.
  • Селдон для обслуживания моделей. С помощью Seldon вы можете легко превратить любую модель в API и масштабировать ее, не создавая обслуживающий код с нуля.

Вам нужна помощь в настройке MLOps для вашей исследовательской группы?

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