Оценка времени, стоимости и результатов проекта приложения ML

Опубликовано: 2019-11-20

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

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

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

Машинное обучение похоже на двустороннюю монету .

С одной стороны, это помогает устранить неопределенности процессов. Но с другой стороны , его развитие полно неуверенности.

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

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

Решение ( вероятно, единственное ) этой трудности — черно-белая оценка времени, стоимости и результатов проекта приложения машинного обучения.

Но прежде чем мы перейдем к этим разделам, давайте сначала посмотрим, что делает трудность и горение ночных свечей того стоит.

Почему вашему приложению нужна платформа машинного обучения?

Вы можете подумать, почему мы говорим о структуре посреди оценок времени, стоимости и результатов.

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

Для предложения персонализированного опыта

Для включения расширенного поиска m

Для прогнозирования поведения пользователей

Для лучшей безопасности

Для глубокого вовлечения пользователей

Исходя из этих причин, время, стоимость и результат будут зависеть соответственно.

Типы моделей машинного обучения

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

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

Контролируемое обучение

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

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

Неконтролируемое обучение

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

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

Обучение с подкреплением

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

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

Жизненный цикл проекта машинного обучения

ML-разработка-жизненный цикл-1

Жизненный цикл графика результатов проекта машинного обучения обычно выглядит следующим образом:

Настройка плана проекта ML

  • Определить задачу и требования
  • Определить осуществимость проекта
  • Обсудите общие компромиссы модели
  • Создайте кодовую базу проекта

Сбор и маркировка данных

  • Создайте документацию по маркировке
  • Создайте конвейер приема данных
  • Проверка качества данных

Исследование модели

  • Установите базовый уровень производительности модели
  • Создайте простую модель с исходным конвейером данных
  • Попробуйте параллельные идеи на ранних стадиях
  • Найдите модель SoTA для проблемной области, если она есть, и воспроизведите результаты.

Уточнение модели

  • Делайте модельно-ориентированные оптимизации
  • Отладка моделей по мере добавления сложности
  • Проведите анализ ошибок для выявления режимов отказа.

Тестируйте и оценивайте

  • Оцените модель на тестовом распределении
  • Пересмотрите метрику оценки модели, чтобы убедиться, что она стимулирует желаемое поведение пользователей.
  • Напишите тесты для функции вывода модели, конвейера входных данных, явных сценариев, ожидаемых в производстве.

Развертывание модели

  • Предоставьте модель через REST API
  • Разверните новую модель для подмножества пользователей, чтобы убедиться, что все идет гладко перед окончательным развертыванием.
  • Есть возможность откатить модели на предыдущую версию
  • Отслеживайте данные в реальном времени.

Обслуживание модели

  • Переобучите модель для предотвращения устаревания модели
  • Обучите команду, если есть передача права собственности на модель

Как оценить объем проекта машинного обучения?

Команда машинного обучения Appinventiv после изучения типа машинного обучения и жизненного цикла разработки переходит к определению оценки проекта приложения машинного обучения по следующим этапам:

Фаза 1 – Открытие (от 7 до 14 дней)

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

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

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

Затем разработчики должны оценить, способны ли они контролировать алгоритмы — возвращает ли он правильный ответ каждый раз, когда делается прогноз.

Результат — Постановка задачи, которая определяет, является ли проект тривиальным или сложным.

Фаза 2 – Исследование (от 6 до 8 недель)

Целью этого этапа является создание Proof of Concept, который затем можно установить как API. После обучения базовой модели наша команда экспертов по машинному обучению оценивает производительность готового к производству решения.

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

Результат – доказательство концепции

Фаза 3 – Разработка (4+ месяцев)

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

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

На этом этапе наши разработчики работают спринтами и решают, что нужно сделать после каждой отдельной итерации. Результаты каждого спринта можно эффективно предсказать.

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

Результат — готовое к производству решение машинного обучения.

Фаза 4 – Улучшение (непрерывно)

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

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

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

Факторы, влияющие на общую стоимость

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

Проблемы, связанные с данными

Развитие надежного машинного обучения зависит не только от феноменального кодирования, но и от качества и количества обучающей информации.

  1. Отсутствие подходящих данных
  2. Сложные процедуры извлечения, преобразования, загрузки
  3. Обработка неструктурированных данных

Проблемы с производительностью

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

  1. Точность варьируется
  2. Производительность алгоритмов обработки

Как мы оцениваем стоимость проекта машинного обучения?

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

В основном существует три типа проектов машинного обучения , которые играют роль в ответе на вопрос, сколько стоит машинное обучение:

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

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

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

Давайте теперь перейдем к той части, где мы оцениваем стоимость проекта ML.

Стоимость данных

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

Теперь, когда такие сервисы, как Scale и Mechanical Turk от Amazon, могут помочь вам в сборе и аннотировании данных, как насчет качества?

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

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

Стоимость исследования

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

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

Стоимость производства

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

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

Одним из ключевых факторов, который люди склонны упускать из виду при разработке проекта машинного обучения, является необходимость прохождения постоянной поддержки в течение всего жизненного цикла проекта. Данные, поступающие из API, должны быть правильно очищены и аннотированы. Затем модели необходимо обучить на новых данных и протестировать, развернуть.

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

Проблемы в разработке приложений для машинного обучения

ML-project-challenges

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

Проблемы для проектов машинного обучения могут варьироваться от:

  • Решение о том, какой набор функций станет функциями машинного обучения
  • Дефицит талантов в области искусственного интеллекта и машинного обучения
  • Получение наборов данных стоит дорого
  • Для достижения удовлетворительных результатов требуется время

Вывод

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

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

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

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

Часто задаваемые вопросы об оценке проекта приложения для машинного обучения

Вопрос. Зачем использовать машинное обучение при разработке приложения?

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

  • Предлагая персонализированный опыт
  • Расширенный поиск
  • Прогнозирование поведения пользователя
  • Более глубокое вовлечение пользователей

В. Как машинное обучение может помочь вашему бизнесу?

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

Машинное обучение может быть секретной формулой, которая приближает компании к своим клиентам именно так, как они хотят.

Вопрос. Как оценить рентабельность инвестиций в разработку проекта машинного обучения?

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

В. Какая платформа лучше для проекта машинного обучения?

Ваш выбор, связываться ли с компанией, занимающейся разработкой приложений для Android, или с разработчиками iOS, будет полностью зависеть от вашей пользовательской базы и намерений — будь то получение прибыли или ценность.