Введение

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

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

Прежде чем говорить о проблемах ML, давайте разберемся, что означает ML?

Что такое машинное обучение?

Машинное обучение — это область искусственного интеллекта, которая в широком смысле определяется как способность машины имитировать разумное поведение человека. Системы искусственного интеллекта (ИИ) используются для выполнения сложных задач способом, аналогичным тому, как люди решают проблемы.

В 1950-х годах пионер ИИ Артур Самуэль определил его как область исследования, которая дает компьютерам возможность учиться без явного программирования.

Когда кто-то думает об ML с точки зрения непрофессионала, это приводит к следующему процессу:

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

Машинное обучение широко используется в программах Computer Vision, интеллектуальном анализе данных, обнаружении мошенничества и многих других подобных областях. По типу обучения машинное обучение в первую очередь включает 3 ключевые категории:

· Контролируемое обучение. Здесь входные данные помечены/помечены, и модель машинного обучения сравнивает результаты между обученными и тестовыми данными, чтобы предсказать точность модели.

· Обучение без присмотра. Здесь входные данные не помечены, и модель ML будет повышать эффективность в течение определенного периода времени, поскольку в систему добавляется все больше и больше данных.

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

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

Рис. 1. Типы алгоритмов машинного обучения и примеры использования

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

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

У этого решения есть несколько аспектов, которые заставят вас осознать проблемы развертывания такого решения в масштабе, и некоторые из таких проблем перечислены здесь:

1) Выбор решения в соответствии с требованиями заказчика: эта задача актуальна для любой проблемы; где нужно иметь четкое представление о решении, которое предлагается по требованию заказчика. Ниже приведены несколько областей, в которых развивается комплексное решение:

а. Тип бизнес-кейса: перед решением проблемы необходимо понять, понимаете ли вы, в чем заключается проблема, как ее решить и чем она будет полезна для бизнеса. Любая проблема, которая не решает бизнес-требований, не стоит решать.

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

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

Нужно понимать, что многие проблемы, решаемые с помощью машинного обучения, на самом деле не рассматривались как проблемы. Они появились как расширенные функции, которые в конечном итоге стали обязательными функциями. Продолжая наш пример с Netflix, рекомендации фильмов никогда не были первоначальным списком функций Netflix. Благодаря спискам рекомендаций Netflix понял, что они могут лучше взаимодействовать с клиентами, и именно так появилась эта функция. Следовательно, для реализации таких функций; нужны не только специалисты по AI/ML; но также и эксперты в предметной области, а в случае с людьми из кинобизнеса, которые понимают психологию клиентов.

2) Развертывание модели и операции машинного обучения (MLOps)

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

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

Ожидается от бизнеса, что модель работает точно почти каждый раз, и это будет напрямую означать точность модели 99% +. При обучении моделей машинного обучения важно убедиться, что набор данных достаточно разнообразен, а также достаточно дисперсии для достижения более высокой степени точности. На момент производства нельзя сказать, что модель работает эффективно и точно только на 60-70%. Если это так, то модель должна быть повторно обучена, повторно развернута и измерена для повышения эффективности.

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

MLOps или ML Ops — это парадигма, направленная на надежное и эффективное развертывание и поддержку моделей машинного обучения в рабочей среде. Это слово представляет собой сочетание «машинного обучения» и практики непрерывной разработки DevOps в области программного обеспечения.

-Википедия

3 этапа MLOps показаны на рис. 2 ниже, включая «Проектирование приложения на основе ML», «Экспериментирование и разработка ML» и «Операции ML».

Рис. 2. Этапы операций машинного обучения

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

3) Организационная структура операций машинного обучения

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

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

4) Корреляция показателей разработки и развертывания модели

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

5) Узкое место в инструментах и ​​инфраструктуре для развертывания модели и MLOps

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

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

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

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

6) Размер и масштаб модели до и после развертывания

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

Много раз можно было бы учитывать требования к инфраструктуре модели; но количество раз/запросов не учитывается.

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

Заключение

Проблемы машинного обучения возникают недавно, и в ближайшие несколько лет они будут расти. Данные — это новый «Бог», и можно открыть новые знания и возможности, только если ключ к использованию данных будет эффективным. Именно здесь нынешние вызовы позволят нам проложить путь к новым проблемам. Благодаря нашим многолетним знаниям в области искусственного интеллекта и машинного обучения только сейчас раскрывается истинный потенциал из-за значительных изменений, произошедших за последние несколько десятилетий. Наше отношение к данным, машинам и искусственному интеллекту в целом изменилось от скептического до новой обретенной надежды на все новое будущее. Тем не менее, проблемы носят исполнительский характер; это будет иметь большое значение, чтобы изменить наши методы работы и добиться кардинальных изменений в будущем.

Ссылки:

https://www.alexanderthamm.com/en/data-science-glossary/machine-learning-model/

https://blogs.nvidia.com/blog/2020/09/03/что-есть-млопс/

https://neptune.ai/blog/model-deployment-challenges-lessons-from-ml-engineers

https://www.wordstream.com/blog/ws/2017/07/28/machine-learning-applications

https://www.analyticsvidhya.com/blog/2023/03/mlops-for-natural-language-processing-nlp/

https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning

https://ml-ops.org/content/mlops-principles#:~:text=%20complete%20MLOps%20process%20включает разработку%20программного обеспечения%20ML%2Dpowered%20