Промышленные решения, основанные на машинном обучении — это гораздо больше, чем просто модель. Три ключевые концепции, охватывающие управление версиями, тестирование и конвейеры, являются основой для операций машинного обучения (MLOps), которые помогают группам по анализу данных быстрее и увереннее выпускать модели.
Фото Келли Сиккема на Unsplash.
MLOps представляет собой комплекс операций машинного обучения. Это практики, направленные на то, чтобы машинное обучение в промышленной среде было эффективным и бесперебойным. Хотя термин MLOps еще только зарождается, он проводит параллели с DevOps в том смысле, что это не отдельная технология, а общее понимание того, как делать вещи правильным образом.
Общие принципы MLOps поощряют аналитиков воспринимать машинное обучение не как отдельные научные эксперименты, а как непрерывный процесс разработки, запуска и поддержки систем машинного обучения для реального использования. Машинное обучение должно быть коллективным, воспроизводимым, непрерывным и протестированным.
Практическая реализация MLOps включает в себя как принятие определенных передовых методов, так и создание инфраструктуры, поддерживающей эти передовые методы. Давайте рассмотрим три способа, которыми MLOps меняет процесс разработки машинного обучения: его влияние на управление версиями, способы встраивания средств защиты и необходимость сосредоточиться на конвейере машинного обучения.
Контроль версий нужен не только для кода
Когда дело доходит до использования машинного обучения в организации, контроль версий должен быть главным приоритетом. Однако эта концепция применима не только к коду, который управляет моделями.
Контроль версий машинного обучения должен охватывать код, базовые данные и параметры, используемые при обучении алгоритма. Этот процесс жизненно важен для обеспечения масштабируемости и воспроизводимости.
Контроль версий для машинного обучения не ограничивается только кодом, как в традиционном программном обеспечении. Контрольный список воспроизводимости служит хорошей отправной точкой для отслеживания того, что ваша система MLOps должна уметь документировать.
Во-первых, давайте обсудим контроль версий в коде, поскольку большинству специалистов по данным он знаком. Будь то код реализации, используемый для системной интеграции, или код моделирования, который позволяет разрабатывать алгоритмы машинного обучения, должна быть четкая документация любых внесенных изменений. Эта область чаще всего хорошо покрывается, например, использованием Git.
Контроль версий также должен применяться к данным, используемым для обучения моделей. Сценарии и пользователи постоянно меняются и адаптируются, поэтому логично, что ваши данные не всегда будут выглядеть одинаково.
Это постоянное изменение означает, что мы всегда должны переучивать модели и проверять их точность с новыми данными. В результате необходим надлежащий контроль версий для обеспечения воспроизводимости.
Развиваются не только данные, которые мы используем для построения моделей, но и метаданные. Метаданные относятся к собранной информации о базовых данных и обучении модели — они рассказывают нам, как прошел процесс обучения вашей модели. Данные использовались как ожидалось? Какой точности достигла модель?
Метаданные могут измениться, даже если исходные данные не изменились. Метаданные должны быть строго версионироваться, потому что вам понадобится эталон для последующего обучения моделей.
Наконец, для самой модели тоже должен быть надлежащий контроль версий. Как у каждого специалист по данным, ваша цель — постоянно повышать точность и надежность моделей машинного обучения, поэтому развивающийся алгоритм должен иметь собственное управление версиями. Это часто называют реестром моделей.
Технология MLOps поощряет контроль версий для всех компонентов, упомянутых выше, как стандартную практику, и большинство платформ MLOps позволяют легко реализовать это. При правильном управлении версиями вы всегда обеспечиваете воспроизводимость, что имеет решающее значение для управления и обмена знаниями.
Встраивайте предохранители в код
Когда дело доходит до обеспечения безопасности в процессе машинного обучения, она должна быть в коде, а не в вашей голове!
Стремитесь любой ценой избегать ручных или непоследовательных процессов. Все процедуры для сбора данных, тестирования данных и развертывания модели должны быть записаны в коде, а не в документации процесса, чтобы вы могли быть уверены, что каждая итерация модели будет соответствовать требуемым стандартам.
Например, очень важно то, как вы тренируете модель машинного обучения. В результате любое небольшое изменение в том, как обучается модель, может привести к проблемам и несогласованности в прогнозах, которые она делает. Из-за этого риска важно встроить эти меры безопасности непосредственно в код.
Тестирование данных часто проводится ручным способом, но должно быть программным.
В конвейер машинного обучения должен быть записан код, который защищает то, как должны выглядеть обучающие данные (тесты перед обучением) и как должна работать обученная модель (тесты после обучения). Это включает в себя параметры того, какими должны быть ожидаемые прогнозы — это даст вам уверенность в том, что продуктовые модели соответствуют всем установленным вами правилам.
Самое замечательное в реализации платформы MLOps заключается в том, что все эти шаги самодокументируются и могут использоваться повторно — по крайней мере, до уровня самодокументирования кода. Защитные меры могут быть легко перепрофилированы для других сценариев использования машинного обучения, и могут применяться те же стандарты, например, точность модели.
Продукт — это конвейер, а не модель
Третья концепция MLOps, которую следует осознать, заключается в том, что продуктом является конвейер машинного обучения, а не сама модель. Эта реализация часто характеризуется моделью зрелости, когда организация переходит от ручного процесса к автоматизированному конвейеру.
Конечная цель конвейера машинного обучения — создать самовосстанавливающуюся систему.
Модель машинного обучения важна для решения бизнес-задач и удовлетворения насущных потребностей организации. Однако необходимо признать, что модель носит временный характер, в отличие от системы, которая ее производит.
Базовые данные, которые поддерживают модель, будут быстро меняться, и модель будет дрейфовать. Это означает, что в конечном итоге модель придется переобучать и корректировать, чтобы обеспечить точные результаты в новой среде.
В результате конвейер, который производит точные и эффективные модели машинного обучения, должен быть продуктом, на создание которого специалисты по данным должны сосредоточить все свое внимание. Итак, что же такое конвейер машинного обучения?
Без MLOps и налаженного конвейера машинного обучения обновление моделей будет трудоемким и трудным. Вместо того, чтобы выполнять эти задачи по отдельности и решать проблемы только по мере их возникновения, конвейер устраняет эту проблему. В нем изложена четкая структура и принципы управления обновлениями и изменениями модели.
Конвейер машинного обучения включает в себя сбор и предварительную обработку данных, обучение модели машинного обучения, перенос ее в производство и постоянный мониторинг для повторного запуска обучения при снижении точности. Хорошо построенный конвейер помогает масштабировать этот процесс по всей организации, чтобы вы могли максимально использовать производственные модели и гарантировать, что эти возможности всегда работают на должном уровне.
Развитый конвейер машинного обучения также позволяет вам контролировать, как модели реализуются и используются в бизнесе. Это также улучшает взаимодействие между отделами и позволит другим обращаться к конвейеру, а не к ручным рабочим процессам, чтобы определить, нужно ли вносить изменения. Точно так же он убирает узкие места в производстве и позволяет максимально эффективно использовать возможности в области анализа данных.
Подводя итог, можно сказать, что есть три основных концепции MLOps, которые должен понимать каждый.
Контроль версий необходим на протяжении всего процесса машинного обучения. Это включает не только код, но и данные, параметры и метаданные.
Защитные меры должны работать автоматически — не рискуйте результатами своих моделей машинного обучения, полагаясь на ручные или непоследовательные процессы.
Наконец, продукт — это конвейер, а не модель машинного обучения. Развитый конвейер - единственный способ поддерживать машинное обучение продуктового уровня в долгосрочной перспективе.
Об авторе: Хенрик Скогстрём возглавляет внедрение платформы Valohai MLOpsсреде и подробно пишет о передовых методах машинного обучения в производственной. До Валохая Хенрик работал менеджером по продукту в Quest Analytics, чтобы улучшить доступность здравоохранения в США. Запущенный в 2017 году, Valohai является пионером в области MLOps и помогает таким компаниям, как Twitter, LEGO Group и JFrog, быстрее запускать свои модели в производство.