Стоит использовать машинное обучение в моей компании? Контрольный список для принятия решения об использовании прикладного машинного обучения
Предупреждаем, что данная статья основана на личных наблюдениях за командами, занимающимися машинным обучением, а не на академическом исследовании всей отрасли. Для большего понимания ситуации, автор работает над проектом “Cortex”, платформы с открытым исходным кодом для развертывания моделей в производстве.
Машинное обучение находится на достаточно непростом этапе развития.
Его жизнеспособность уже была неоднократно доказана — все самые популярные мобильные приложения используют машинное обучение в том или ином смысле, но экосистема еще не развилась до такой степени, чтобы даже непосвященные могли его использовать.
Командам трудно решить, когда внедрять машинное обучение, особенно если в команде нет специалистов в data science. Разработчики программного обеспечения, как правило, обладающие высоким уровнем знаний в области машинного обучения, часто не имеют достаточных знаний в своей области, чтобы понять, могут ли проблемы их компании быть решены с помощью ML.
Цель этой статьи — представить список вопросов, на которые можно ответить только да или нет, которые будут интересны командам, заинтересованным в использовании Машинного Обучения. Речь идет не об обсуждении проблем, которые теоретически могут быть решены с помощью машинного обучения. Мы хотим помочь понять командам, у которых нет собственных дата сайентистов, будет ли использование машинного обучения эффективно именно для их компании.
1. Кто-нибудь уже решил подобную проблему с помощью машинного обучения?
Без опытных разработчиков машинного обучения или специалистов в data science, самым сложным для вас вопросом будет: «возможно ли вообще решить эту проблему с помощью машинного обучения?».
У вас есть три варианта:
- Стать экспертом в области машинного обучения, чтобы анализировать проблему и проверять жизнеспособность машинного обучения как решения.
- Нанять специалиста по машинному обучению, который может сделать все вышеперечисленное за вас.
- Посмотреть, не решил ли уже кто-нибудь подобную проблему с помощью ML.
Первые два будут стоить вам значительных затрат времени или денег, а последнее может занять у вас всего один день сёрфинга в интернете.
Посмотрев на тенденции, которые есть сейчас в ИТ- сфере, вы также сможете понять с чего стоит начать. Маловероятно, что, при условии отсутствия в вашей команде дата сайентиста, вы будете разрабатывать собственную архитектуру модели для этой задачи. Если вы хотите создать агента поддержки, посмотрите на опыт других компаний (вы неизбежно столкнетесь с Rasa и Google’s Meena).
Получение представления о том, какие модели и подходы использовались для решения таких проблем, как ваша, даст вам представление о том, с чего вам следует начать. Например, Роберт Люсьен (Robert Lucian) — инженер, создавший популярную программу для чтения номеров DIY. Его решение опиралось на несколько ранее существовавших моделей для обнаружения объектов и извлечения текста: Как вы можете видеть из его статьи (https://clck.ru/MpihH ), он начал внедрение машинного обучения в свой проект с исследования того, что другие люди использовали для решения подобных задач. В конце концов он нашёл модель, которая была тонко настроена специально для номерных знаков, а также эффективную модель для извлечения текста. Он смог довольно быстро запустить и то, и другое в производство.
2. Есть ли у вас подходящий источник данных, даже если не ваш собственный?
Если ваша проблема не может быть решена с помощью предварительно обученных моделей, вам понадобятся некоторые соответствующие данные для обучения.
Если вы строите собственную рекомендательную систему, вам понадобятся данные об атрибутах профиля пользователя, а также о его зрительских привычках. Если вы создаете агента клиентской поддержки, вам понадобятся документы для обучения. Для того чтобы модель была адаптирована к вашему профилю, вам также понадобятся данные для ее обучения.
Однако, эти данные не обязательно должны быть вашими собстенными. Даже если вы не собирали сложные данные от своих пользователей, все равно могут быть общедоступные источники данных, которые вы можете использовать. Например, AI Dungeon — это текстовая игра на основе ML, которая несколько месяцев назад стала вирусной:
Игра дает результаты наравне с современными моделями, несмотря на то, что инженер, стоящий за ней (Ник Уолтон), тонко настраивает свою модель, используя всего 50 МБ текста, взятого с сайта chooseyourstory.com. Такой подход сработал благодаря трансферу обучения, методике, в которой «знания» модели — в данном случае, GPT-2 от OpenAI — переносятся на новую модель, тонко настраиваемую на более специфический профиль (например, гусеничную фантастику из подземелья) с использованием меньшего набора данных.
3. Есть ли очевидные преимущества использования машинного обучения по сравнению с другими решениями?
Во многих ситуациях машинное обучение является инструментом для работы, но не обязательно наиболее подходящим. Если машинное обучение не дает ощутимых преимуществ в производительности по сравнению с другими решениями, оно не стоит дополнительных накладных расходов.
Вы можете проанализировать это довольно просто, задав несколько вопросов.
- Во-первых, есть ли другие решения вашей проблемы, кроме машинного обучения?
Для многих проблем, таких как распознавание речи или некоторые приложения для компьютерного зрения, машинное обучение в настоящее время является единственным жизнеспособным решением.
- Во-вторых, можете ли вы воспроизводить качество работы ML с помощью других решений?
Допустим, вы строите систему рекомендаций. Если вы не собираете много информации о пользователях, и у вас есть только 100 сообщений в блогах, которые вы можете порекомендовать, вы, вероятно, можете использовать базовую систему тэгов (т.е. если пользователю нравится Javascript, показывать ему статьи с тэгом «Javascript»):
Однако, если Вы курируете огромную библиотеку контента и у Вас есть надежные данные о пользователе, машинное обучение является уникальным по своей способности давать персонализированные рекомендации.
- Наконец, может ли ваше другое решение масштабироваться, как и машинное обучение?
Одним из главных обещаний ML является то, что она достаточно динамична, чтобы удалить человека из процессов, которые традиционно требуют некоторого ручного вмешательства. Например, управление инвентаризацией — это тяжелый процесс. Продукты часто имеют неполную информацию, перечисленную непоследовательными способами. В результате часто требуется ручная обработка.
Для небольших количеств продуктов ручная обработка является хорошей альтернативой машинному обучению — но в бОльшем масштабе, она становится просто нежизнеспособна. Для обработки одного миллиона продуктов потребовалось бы много часов работы многих людей, в то время как такой продукт, как Glisten, использующий машинное обучение для разбора данных о продукте, может сделать это за считанные минуты.
Подходящее время и место для использования машинного обучения
Проблема заключается в том, что зачастую “крутость” машинного обучения приводит к тому, что его применяют даже в когда в этом нет особого смысла, что способствует общему скептическому отношению к машинному обучению, которое многие воспринимают сейчас как «просто очередную шумиху».
Реальность такова, что, как и любая другая популярная технология, бывают случаи использования, когда машинное обучение является идеальным решением, и когда — нет. Понимание, есть ли необходимость использоваться машинное обучение или нет, может быть самой трудной частью для начала работы — особенно, если у вас нет опыта в этой области — но мы надеемся, что статья поможет вам выбрать правильный путь.