Автор: Мо Мессиди, опытный руководитель DataOps в Headspace с десятилетним опытом работы как в стартапах, так и на предприятиях. Его миссия - помочь организациям ввести в действие свои данные.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Модели проходят единичные испытания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод

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

Первоначально опубликовано Мо Мессиди, консультантом по MLOps, здесь: https://medium.com/@messidi-mo/the-mlops-playbook-a-simple-set-of-best-practices-for-ensuring-reliability-of -ml-systems-bc53bc84ff07