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

  • Убедитесь, что входные данные для обучения имеют достаточное качество. Для автоматического определения качества данных можно использовать традиционные подходы к проверке данных с помощью схем или методов машинного обучения. Для последнего случая, в дополнение к корпоративным инструментам, существуют библиотеки с открытым исходным кодом с такой функциональностью, как Проверка данных TensorFlow, Большие надежды или Amazon Deequ.
  • Обучающие данные должны соответствовать определенным требованиям конфиденциальности: используйте библиотеки, которые автоматически обнаруживают этот тип данных в вашем процессе ETL, например piicatcher, или используйте более продвинутые подходы, такие как NLP. Существует интересный пакет Python с открытым исходным кодом от Microsoft под названием Presidio, который использует несколько методов для обнаружения такого типа информации.
  • Код, используемый для обработки входных данных, также должен быть проанализирован и протестирован, так как он также может содержать ошибки. Актуальные инструменты анализа кода имеют плагины для анализа ошибок, уязвимостей и безопасности наиболее часто используемых языков при анализе данных, таких как python, R, Scala или SQL.

Тесты разработки модели

Как и на этапе обработки данных, также необходимо адекватно протестировать этап разработки модели:

  • Все коды, используемые для разработки модели, должны быть проанализированы, протестированы и проверены: существуют инструменты разработки программного обеспечения, которые могут анализировать обучающий код, чтобы найти уязвимости, некачественный код, возможные проблемы с производительностью, тестовое покрытие, и т.д. Например, для SonarQube доступны плагины для R и Python.
  • Чтобы проверить эволюцию модели, вы можете использовать такие инструменты, как MLFlow, для автоматической регистрации всех поездов и подтверждения улучшения производительности или точности модели, прежде чем запускать ее в производство.
  • С помощью таких инструментов можно автоматизировать сравнение результатов моделирования с более простыми моделями, чтобы убедиться, что более сложные разработки более эффективны, чем более простые.
  • Можно проверить распределение данных ваших наборов данных, чтобы можно было проверить производительность модели во всем диапазоне данных, например, используя тесты распределения.

Инфраструктура машинного обучения

Если есть возможность автоматически воспроизвести весь процесс обучения, то почти все тесты ML Infrastructure можно автоматизировать:

  • Такие инструменты, как MLFlow, дают возможность проверить качество модели перед ее развертыванием, например, установить минимальные пороги предсказания и сравнить с предыдущими моделями.
  • Используйте стратегии прогрессивного развертывания (Canary, A/B), чтобы убедиться, что новая версия развернутой модели повышает точность по сравнению с предыдущей или не имеет проблем с производительностью, с такими инструментами, как ELK.
  • При использовании подхода CI/CD, когда весь цикл развертывания автоматизирован, можно использовать автоматизированные стратегии отката, чтобы разрешить откат к предыдущим версиям в случае возникновения проблем в производственной среде.

Мониторинг тестов

Есть несколько тестов мониторинга, которые также могут быть реализованы автоматически:

  • Для каждой разработанной модели обучайте более простую модель с теми же данными, которые могут обнаруживать изменения в шаблоне данных (например, новую переменную, значительное изменение в распределении и т. д.). Это может оказать большое влияние на производительность развернутой модели.
  • Может быть реализована автоматическая проверка по каталогу моделей, чтобы убедиться, чтонет моделей, которые не обучались в течение длительного времени, чтобы переобучить их и проверить, не потеряли ли они производительность, что обучение потоки все еще доступны и т. д.
  • С помощью таких инструментов, как ELK, упомянутых в предыдущем пункте, можно отслеживать производительность модели при выполнении, время обучения, пропускную способность и т. д.

Архитектура ИИ

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

Основные характеристики, которыми должна обладать такая архитектура с подходом MLOps:

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

Этот тип архитектуры можно реализовать с помощью стандартного набора инструментов DevOps и новых инструментов, предоставляемых основными облачными поставщиками (например, Sagemaker, Databricks, AzureML или Google AI Platform).

Выводы

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

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