
Как создавать алгоритмы машинного обучения, которые действительно работают
20 апреля 2022 г.Машинное обучение стало обязательным инструментом для любой серьезной команды по работе с данными: оно позволяет дополнять процессы, генерировать более разумные и точные прогнозы и в целом улучшать наши возможности использования данных.
Однако обсуждение приложений машинного обучения в теории сильно отличается от фактического применения машинных моделей обучения в масштабе производства. В этой статье мы рассмотрим общие проблемы и соответствующие решения, чтобы сделать машинное обучение множителем силы для вашей организации данных.
4 причины, по которым проекты машинного обучения терпят неудачу
От создания вашего велосипедного маршрута на выходные на Google Maps до помощи в поиске вашего следующего шоу на Netflix, машинное обучение (ML) превратилось далеко за пределы теоретического модного слова в мощную технологию, которую большинство из нас использует каждый день.
Для современного бизнеса аппетит к машинному обучению никогда не был таким сильным. Но в то время как некоторые отрасли претерпели изменения благодаря автоматизации, ставшей возможной благодаря машинному обучению, подумайте обнаружение мошенничества в финансах и персональные рекомендации по продуктам в электронной коммерции — суровая правда заключается в том, что многие проекты машинного обучения терпят неудачу еще до того, как увидят свет.
В октябре 2020 года сообщение Gartner, что только 53% проектов переходят от прототипа к производству — и это в организациях с некоторым уровнем ИИ опыт. Для компаний, которые все еще работают над развитием культуры, основанной на данных, это число, вероятно, намного выше, с [некоторыми оценками частоты неудач] (https://venturebeat.com/2019/07/19/why-do-87-of- данные-научные-проекты-никогда-не-вводят-в-производство/) взлетели почти до 90%.
Технологические компании, ориентированные на данные, такие как Google, Facebook и Amazon, меняют нашу повседневную жизнь с помощью машинного обучения, в то время как многие другие хорошо финансируемые и очень талантливые команды все еще пытаются реализовать свои инициативы. Но почему это происходит? И как мы можем это исправить?
Мы рассказываем о четырех самых больших проблемах, с которыми сталкиваются современные группы обработки данных при масштабном внедрении машинного обучения, и о том, как их преодолеть.
Несоответствие между фактическими потребностями бизнеса и целями машинного обучения
![Когда ваши бизнес-цели и цели машинного обучения не совпадают, все ваши лучшие планы обречены на провал, как и модель, которую вы обучали на устаревших данных. Изображение предоставлено Чарльзом Делювио из Unsplash.]
Первая задача — стратегическая, а не техническая: начать с решения, а не с четко определенной проблемы.
По мере того, как компании стремятся внедрить машинное обучение в свои организации, руководители могут нанимать специалистов по данным и специалистов по машинному обучению для автоматизации или улучшать процессы без зрелого понимания того, какие проблемы действительно подходят для ML для решения.
И даже когда бизнес-задача хорошо подходит для машинного обучения, без общего определения того, как выглядит успех, проекты могут месяцами томиться в режиме экспериментов, пока заинтересованные стороны ждут идеализированного уровня машинного совершенства, который никогда не будет достигнут.
Машинное обучение — это не волшебство, оно не решит все проблемы идеально и по своей природе должно продолжать развиваться с течением времени. Иногда [модель] (https://hackernoon.com/model-centric-vs-data-centric-approaches-in-machine-learning), просто достигающая тех же результатов, что и люди, является достойным проектом — ошибки и все такое.
Прежде чем приступить к любому проекту, спросите свою команду или заинтересованные стороны:
- Какую бизнес-задачу мы пытаемся решить?
- Почему мы считаем, что машинное обучение — правильный путь?
-
- Каков измеримый порог ценности для бизнеса, которого пытается достичь этот проект?*
- Как выглядит «достаточно хорошо»?
Без этих четких общих определений, сформулированных с самого начала, многие достойные проекты машинного обучения никогда не будут реализованы, а ценные ресурсы будут потрачены впустую. Решите бизнес-проблему с помощью машинного обучения, а не просто приступайте к проекту машинного обучения, чтобы поставить галочку напротив машинного обучения.
Обучение модели машинного обучения, которое не обобщает
С четко определенной бизнес-проблемой и целевыми показателями успеха ваши потенциальные ловушки становятся более техническими. На этапе обучения модели проблемы, связанные с вашими обучающими данными или соответствием модели, являются наиболее вероятными причинами будущих неудач.
Целью обучения модели является разработка модели, которая может обобщать или делать точные прогнозы при наличии новых данных, поскольку она понимает отношения между точками данных и может определить тенденции.
Ваш обучающий набор данных должен быть чистым, объемным и отражать данные в реальном времени, которые ваша модель должна обрабатывать после запуска в производство. Нигде не видел чистых данных в производственной среде. Будьте готовы потратить много времени на очистку, маркировку и разработку функций только для того, чтобы подготовить данные.
Репрезентативные данные обучения также являются ключевыми: если ваши данные обучения не отражают фактические наборы данных, с которыми столкнется ваша модель, вы можете получить модель, которая не будет работать после того, как вы достигнете тестирования или производства.
Еще одна проблема, которая может возникнуть во время обучения, — это переобучение и недообучивание. Переобучение происходит, когда модель изучает слишком много и выдает результаты, которые слишком близко соответствуют вашим обучающим данным.
Недообучение — это просто противоположное: ваша модель не учится достаточно, чтобы делать полезные прогнозы даже на самих обучающих данных, не говоря уже о новых данных, с которыми она столкнется при тестировании или производстве.
Вопросы тестирования и проверки машинного обучения
Когда вы тестируете и проверяете свои модели, могут возникнуть новые проблемы из-за объединения нескольких потоков данных и внесения обновлений для повышения производительности. Изменения в источниках данных, параметрах модели и разработка функций — все это оставляет место для ошибок.
Это также может быть этап, когда вы обнаружите переоснащение или недообучение в своей модели — модель, которая прекрасно работала во время обучения, но не дала полезных результатов во время тестирования, может быть переоснащена.
Даже в таких компаниях, как Google, где много инженеров по машинному обучению, сюрпризы в ваших моделях продуктов могут — и будут — возникать.
Развертывание машинного обучения и проблемы с обслуживанием
Развертывание проектов машинного обучения редко бывает простым, и команды, как правило, не могут использовать для этого согласованные рабочие процессы — поскольку проекты машинного обучения решают широкий спектр бизнес-задач, существует также широкий спектр способов их размещения и развертывания.
Например, некоторым проектам требуются пакетные прогнозы на регулярной основе, в то время как другим необходимо генерировать и предоставлять прогнозы по запросу, когда приложение отправляет запрос API для прогнозирования с использованием модели. (Отчасти поэтому сложно заставить модели применяться к разным вариантам использования, как бы привлекательно это ни звучало для руководителей, которые могут рассматривать модели машинного обучения как нечто большее, чем волшебство, а не узконаправленные функции.)
Кроме того, для некоторых проектов машинного обучения может потребоваться много ресурсов, и межфункциональным группам необходимо согласовать приоритеты развертывания. У инженеров есть не так много вещей, которые они могут реализовать, и, как мы уже говорили, проекты машинного обучения — это гораздо больше, чем модели и алгоритмы: для успешного развертывания большинству из них потребуется инфраструктура, оповещение, обслуживание и многое другое.
Вот почему так важно с самого начала четко сформулировать бизнес-проблему, договориться о том, как выглядит успех, разработать комплексное решение и иметь общее представление о ценности вашего проекта машинного обучения по сравнению с другими приоритетами. Без этого стратегического плана ваш проект может никогда не получить инженерные ресурсы, необходимые для того, чтобы, наконец, выйти на производство.
Например, Netflix никогда не запускал в производство свой [алгоритм рекомендаций, выигравший приз в миллион долларов] (https://www.wired.com/2012/04/netflix-prize-costs/) из-за сложности реализации модели-победителя: вместо этого выбрав другое представление, которое было проще интегрировать.
Тактика масштабируемого машинного обучения в продакшене
![Машинное обучение — это не волшебство, но оно мощное, и его часто неправильно понимают. Изображение предоставлено агентством Кобу на Unsplash.] (https://cdn.hackernoon.com//images/DttJtZIouwez0hRqxMq7CdRoQP83-2022-04-19T17:34:56.264Z-cl26fevpk004b0as6gz890c9a)
Помимо стратегического планирования и кадрового обеспечения, существуют конкретные шаги, которые вы можете предпринять, чтобы масштабировать производство машинного обучения.
Опирайтесь на облако
Если ваши команды работают локально, а не в облаке, пришло время измениться. Работа в облаке — это «связующий элемент», который позволяет синхронизировать рабочие процессы обучения и развертывания моделей.
Большинство поставщиков и инструментов с открытым исходным кодом разрабатываются для облака, и автоматизировать процессы становится намного проще. Тестирование, обучение, проверка и развертывание модели должны быть повторяемым процессом, он не должен переходить из локального кода Python в производственную среду.
Используйте подход DevOps
Точно так же, как мы говорили о применении практик DevOps к данным, например настройка SLA для данных и измеряя состояние данных по столпам наблюдаемости, команды машинного обучения могут пойти по стопам DevOps, внедрив Модель непрерывной интеграции (CI) и непрерывной доставки (CD) , представляя Непрерывное обучение (CT). Настраивая гибкие циклы сборки и инструменты, команды машинного обучения могут быстрее вносить изменения в кодовую базу и повышать общую производительность.
Как и в случае с лучшими практиками DevOps, командам машинного обучения следует использовать контейнеризацию, чтобы последовательно запускать программное обеспечение на устройствах любого типа и упростить для инженеров производственную работу. Поддержание согласованного и видимого процесса сборки, который чаще развертывает небольшие изменения, позволяет команде работать более слаженно и лучше понимать, что работает хорошо, а что нет. Наглядность также помогает потенциальным «привратникам» кода доверять процессу сборки и ускорять рабочий процесс команды машинного обучения.
Вложение времени в создание стратегической MLOps команды и процессов поможет снизить вероятность того, что проект застопорится до начала производства, и сделать осуществимыми непрерывные улучшения — настроить каждый проект на долгосрочный успех.
Инвестируйте в наблюдаемость и мониторинг
Наконец, основное правило машинного обучения заключается в том, что ваши результаты будут настолько хороши, насколько хороши ваши входные данные. Здоровые данные абсолютно необходимы для машинного обучения. Без чистых данных и работающих пайплайнов модели не смогут работать в полной мере и могут не дать точных прогнозов.
И когда вы полагаетесь на ML для принятия важных бизнес-решений, вы не хотите узнавать о сломанном конвейере или неточных данных после того, как эти результаты уже получены.
Вот почему наблюдаемость данных, которая обеспечивает полное понимание и всесторонний мониторинг работоспособности данных — и, в первую очередь, может предотвратить попадание неверных данных в ваши модели машинного обучения — стоит вложений.
Масштабное производство машинного обучения
![Вам не нужно разрабатывать следующую камеру безопасности, активируемую движением, чтобы оказать влияние на ваше машинное обучение. Изображение предоставлено Мэтью Генри из Unsplash.]
Машинное обучение — это не волшебство, но оно мощное, и его часто неправильно понимают.
Тем не менее, при правильном сочетании стратегии, процессов и технологий машинное обучение может обеспечить конкурентные преимущества и стимулировать рост во всех отраслях.
Даже если вы не разрабатываете следующий алгоритм обнаружения мошенничества или виртуального личного помощника, мы надеемся, что эти рекомендации помогут вам на пути к (успешному!) развертыванию машинного обучения в масштабе.
Также опубликовано здесь
Оригинал