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

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

Этап А: Разработка модели

  • Код модели, данные, параметры и показатели контролируются версиями

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

  • Простая модель не лучше

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

  • Качество модели достаточно для всех важных срезов данных

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

  • Модель тестируется на предмет включения

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

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

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

Этап B: Развертывание модели

  • Обучение воспроизводимо

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

  • Модели проходят модульное тестирование

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

  • Конвейеры машинного обучения протестированы на интеграцию

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

  • Модели развертываются с помощью канареечного процесса

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

  • Процедура отката существует и регулярно практикуется

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

Этап C: Мониторинг модели

  • Изменения зависимостей отслеживаются

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

  • Функции обучения и обслуживания отслеживаются и сравниваются

Явление, называемое «перекосом обучения/обслуживания», возникает, когда пути кода, генерирующие входные данные модели, различаются во время обучения и вывода.

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

  • Числовая стабильность отслеживается и тестируется

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

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

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

  • Онлайн-прокси для показателей качества офлайн-моделей отслеживаются

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

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

Вывод

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