Почему это обязательно?
Моим первым проектом по науке о данных была модель машинного обучения, которая прогнозирует цены на подержанные автомобили. Основными этапами проекта были:
- Парсинг объявлений о подержанных автомобилях на веб-сайте
- Очистка и предварительная обработка очищенных данных
- Исследовательский анализ данных
- Создание модели
- Оценка модели
Конечный результат был вполне удовлетворительным с показателем R-квадрата 0,9. Я имею в виду, что это превзошло мои ожидания, учитывая, что это был мой первый проект. Я написал статью об этом проекте, если вы хотите прочитать о нем больше.
Примечание. Эта история изначально опубликована на datasciencehowto.com.
Такие проекты отлично подходят для обучения и практики. В этом проекте я провел много времени, используя Pandas, Scikit-Learn, Beautiful Soup и Seaborn, которые являются очень популярными библиотеками Python для обработки данных.
Этот проект стал для меня отличным учебным опытом, и я почувствовал, что принял правильное решение начать изучать науку о данных.
Однако это был также незавершенный проект. Я сделал все шаги, упомянутые выше, в блокноте Jupyter, и проект так и не был запущен в производство. Никто больше не использовал его в качестве сервиса прогнозирования цен.
Я думаю, что это самая сложная часть машинного обучения в реальной жизни. Создать модель и делать с ее помощью прогнозы не очень сложно. Развертывание его в рабочей среде и работа с ним как с непрерывным сервисом — это другой мир.
Создание такой системы машинного обучения требует множества различных типов операций, которые необходимо синхронизировать и работать в тандеме. Этот процесс относится к операциям машинного обучения, также известным как MLOps.
Возможно, вы слышали о DevOps, который является обычной практикой при создании крупномасштабных программных систем. MLOps можно рассматривать как DevOps для систем машинного обучения.
Мотивация для MLOps
Хотя создание модели машинного обучения в блокноте Jupyter полезно для обучения, оно далеко от создания какой-либо ценности для бизнеса. С другой стороны, создание системы машинного обучения, которая постоянно работает в производственной среде, — это то, что действительно делает машинное обучение ценным.
Давайте на минутку подумаем о том, как мой проект по прогнозированию цен на подержанные автомобили может быть полезен для бизнеса. Если у вас есть бизнес по покупке и продаже подержанных автомобилей, вы можете использовать его для поиска автомобилей, стоимость которых ниже рыночной. Затем вы будете использовать машинное обучение для улучшения своего бизнеса и увеличения прибыли.
Еще одним ценным активом, использующим эту модель, может быть веб-сайт. Люди будут использовать ваш веб-сайт, чтобы узнать цену на свои автомобили в соответствии с текущими рыночными условиями.
И то, и другое не может быть достигнуто с помощью модели машинного обучения, которая была создана и обучена хотя бы раз в блокноте Jupyter.
Проблемы для MLOps
Я думаю, мы все согласны с тем, что MLOps является фундаментальным требованием для превращения машинного обучения в полезный и полезный инструмент. Неудивительно, что это непростая задача.
Основными проблемами для MLOps являются масштабируемость, контроль версий и разрушение модели. Чтобы преодолеть эти проблемы, системы машинного обучения рассматриваются как программные системы и работают по принципам DevOps. Важно отметить, что код машинного обучения — это очень небольшая часть всей системы машинного обучения.
Два основных принципа DevOps — непрерывная интеграция (CI) и непрерывная доставка (CD) — применимы и к MLOps. В дополнение к этому в игру вступает третий игрок, который занимается непрерывным обучением (CT).
CI требует от вас тестирования и проверки кода и компонентов. В системе машинного обучения вам также необходимо выполнить это с данными. Проверка данных может основываться на схеме. Например, если во входных данных есть новый или отсутствующий столбец, вся система может выйти из строя. Скрипты проверки данных должны обрабатывать такие проблемы.
Вам также необходимо проверить значения и предпринять необходимые действия, если значения отличаются намного больше, чем ожидаемые значения. В этом случае лучше отказаться от новых данных и пропустить обучение модели.
Непрерывное обучение имеет жизненно важное значение для всех систем машинного обучения. В нашем случае прогнозирования цен на подержанные автомобили существует несколько факторов, влияющих на цены автомобилей, таких как рыночные условия, уровень инфляции, глобальные тенденции и так далее. Таким образом, вы не можете использовать модель, которая была обучена давно. Чтобы точно отражать текущие условия, вам необходимо постоянно переобучать модель.
В типичной системе машинного обучения используется множество различных программных инструментов и библиотек. Таким образом, система контроля версий должна быть принята в вашем рабочем процессе.
Вам также необходимо будет отслеживать и оценивать результаты модели. Машинное обучение носит экспериментальный характер. Нет никакой гарантии, что ваша модель всегда будет давать точные и надежные результаты.
И последнее, но не менее важное: все они должны быть масштабируемыми и работать эффективно. У вас может быть самая точная модель, но если она не масштабируема, велика вероятность того, что ваш продукт или услуга потерпят неудачу.
MLOps — это ключ к переходу ваших моделей в системы машинного обучения. То, что мы упомянули в этой статье, охватывает только основные моменты в этой области. В MLOps используется широкий спектр инструментов и пакетов. Я буду писать об этих инструментах и о том, как их использовать на практике. Оставайтесь с нами, чтобы узнать больше MLOps.
Вы можете стать участником Medium, чтобы разблокировать полный доступ к моим материалам, а также к остальной части Medium. Если вы уже подписались, не забудьте подписаться, если хотите получать электронные письма всякий раз, когда я публикую новую статью.
Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.