Недавно я глубоко погрузился в мир науки о данных, инфраструктуры данных и машинного обучения. Это дало мне великолепное представление об огромном количестве различных инструментов, которые все больше и больше фрагментируют ландшафт. См., Например, эту статью FirstMark, в которой ясно показан необъятный ландшафт. Более того, то, что наука о данных неразрывно связана с бизнесом, вероятно, для вас не новость. По этой причине многие компании начали нанимать специалистов по анализу данных. Однако как заставить науку о данных работать на вас - еще одна проблема, с которой компании учатся решать сегодня.

Не хватает времени? Прокрутите вниз до заключения.

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

Собирайте данные и храните их централизованно

Предположим, вы создаете классификатор для определения профиля риска потенциального клиента. Во-первых, вы хотите убедиться, что у вас есть данные. Вы можете использовать существующие источники данных, такие как Amazon Polarity или, в случае страховых компаний, страховую статистику ОЭСР. В качестве альтернативы вы можете создать свой собственный набор данных (например, из ERP) или создать комбинацию самостоятельно созданных и общедоступных данных. Затем данные должны быть централизованно организованы либо в хранилище данных (DWH), либо в (без) базах данных SQL. Однако многие организации по-прежнему имеют дело с озером данных или просто неорганизованными данными. Разница в том, что в озере данных данные не являются полностью структурированными / неорганизованными, необработанными и для которых еще нет конкретной цели. Хранилище данных - это хранилище структурированных данных, предназначенное для определенной цели.

При выборе подходящих DWH необходимо учитывать не только затраты, но и: хочу ли я, чтобы мои данные находились на серверах в США? Законы и правила разные. Или: что, если мы приобретем компанию с другим DWH, могу ли я провести анализ своих данных в разных местах? Также важно управление данными: как обеспечить надлежащую обработку данных в компании?

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

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

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

Процесс разработки модели

  1. Во-первых, вы начинаете с исследования данных. Это должно дать вам, как менеджеру по аналитике, приблизительное представление о том, какие существуют закономерности, какие могут быть выбросы, если таковые имеются, или выявить предвзятость в ваших данных. Вы можете выбрать случайное подмножество данных и построить гистограмму или кривую распределения, чтобы найти это. Используя эту информацию, вы можете строить гипотезы. Например. все мотоциклисты в возрасте 25 лет и младше имеют на 50% больше шансов потребовать страховые расходы.
  2. Во-вторых, вы проводите разработку функций. Проще говоря, вам интересно, какие переменные помогут вам сделать лучший прогноз и проверить свои гипотезы. Здесь применима известная поговорка мусор на входе, мусор на вынос. Например, если вы включите все возможные переменные, ваша производительность может снизиться в результате этого.
    В нашем случае мы могли бы включить такие переменные, как # исторические штрафы за превышение скорости или Обычная зона вождения (занято / тихо?)

    Этот процесс имеет решающее значение для получить хорошо работающую модель позже, но ее потребуется обновить, когда модель находится в производстве. Разработка функций может выполняться с использованием знаний предметной области и логических рассуждений, а также с использованием методов интеллектуального анализа данных. Существует множество ручных приемов, о которых вы можете прочитать подробнее. Если вы предпочитаете использовать для этого инструмент с низким кодом, RapidMiner - один из лучших доступных бесплатных инструментов. Подробнее о других инструментах с открытым исходным кодом.
  3. Затем для чистки, а также для обучения можно работать с множеством различных инструментов, в зависимости от их предпочтений. В своей среде я часто слышу об использовании Python, взаимодействующего с Jupyter Notebook, и различных библиотек, таких как Pandas и Numpy. Эти библиотеки упрощают выполнение определенных задач на предпочтительном языке программирования. Однако, как и в случае с проектированием функций, вы также можете использовать инструменты с низким уровнем кода.

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

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

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

Как поживает модель? Давайте оценим!

Оценка вашей модели имеет решающее значение как перед первым запуском модели, так и во время ее жизненного цикла. Правильно ли модель классифицирует профиль риска потенциального клиента? И как это работает с реальными данными? Если вас что-то не устраивает, вы можете настроить параметры модели и / или выполнить дополнительные работы по проектированию функций, а затем повторить попытку. Обычно это все еще происходит на вашем локальном компьютере или, в случае больших наборов данных, в облаке для обработки пиковых нагрузок (так что ваш компьютер не работает в течение нескольких часов). Примерами показателей оценки являются кривая ROC, оценка F1 и, проще говоря, точность. В последнее время справедливость и прозрачность становятся все более важными для «ответственного ИИ».

Вы обучили свою модель на своем обучающем наборе, который обычно составляет около 80% от общего набора данных, затем протестировали его на своем тестовом наборе, оставшиеся 20%. Если вас устраивает производительность, вы можете перейти к развертыванию в производственной среде. Здесь важно сделать вашу ИТ-команду счастливой введением новых интеграций и потоком данных через тщательно выстроенную инфраструктуру, а также обеспечить хорошую работу модели и в будущем. Подробнее об этом см. От PoC к производству.

Доволен? Время для настоящей сделки.

Многие модели построены, оценены и согласованы для использования в производстве. Специалист по данным доволен, менеджер тоже. Похоже на отличный брак. В академических кругах, откуда возникли алгоритмы, все заканчивается здесь, перед промышленным развертыванием. В этом конкретном случае вы хотите дать оценку профиля риска (и, следовательно, затрат на страхование) в течение нескольких секунд после того, как потенциальный клиент предоставил свою информацию, например, на вашем веб-сайте. Однако, по данным VentureBeat, 87% моделей машинного обучения никогда не попадают в производство.

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

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

Часто проблемы, подобные приведенным ниже, задерживают развертывание.

  • Масштабируемость
    Когда объем данных ваших моделей увеличится, и вы, возможно, захотите расширить конвейер, вам потребуется масштабирование. Готова ли ваша инфраструктура к масштабированию? Есть ли у вас инструменты для отслеживания проблем с производительностью и масштабируемостью, которые могут возникнуть со временем?
  • Управление языками обработки данных и рабочими языками
    Если Python и R являются общими языками для написания вашей модели, C ++ и Java являются рабочими языками. Например, перенос Python на C ++ затруднен. Также проверка ошибок и тестирование не смогут преодолеть языковой барьер.
  • Мониторинг и прозрачность
    С производственной моделью машинного обучения многое может пойти не так. В отличие от традиционного программного обеспечения, поведение системы машинного обучения зависит не только от кода, но и от данных и самой модели (параметров). Могут возникнуть такие проблемы, как перекос данных (обучающие данные недостаточно представляют реальные данные), изменения в поведении клиентов или функция, недоступная в производственной среде.
  • Робустифицируйте для продакшена. Как уже упоминалось, ваш специалист по данным пишет код, чтобы создать лучшую модель. Это не означает, что он достаточно надежен для работы в (n) (ИТ) производственной среде. Часто этот шаг требует значительного переписывания, интеграции в существующую ИТ-архитектуру и трудностей с доступом к производственным данным.
  • Модели подвержены постоянному изменению
    Вряд ли ваш специалист по обработке данных напишет модель (код), протестирует ее на своем тестовом наборе и завершит работу. Очень часто модель (или ее параметры) нуждаются в корректировке во время развертывания в промежуточной или производственной среде. Это итеративный процесс, поэтому вы хотите максимально упростить проверку производительности, скорректировать код и повторить попытку. Если он работает хорошо, немедленно отправьте его в рабочую среду.
  • Переносимость
    С появлением мультиоблачных стратегий, а не привязанностью к одному поставщику, вы хотите легко переносить свое программное обеспечение из одного места в другое. Это может создать препятствия для DS при создании моделей и их развертывании.
  • ML работает в пиках
    Ваша модель может запускаться один раз каждые несколько минут, часов или дней. Вы не хотите платить за серверы, если вы ими не пользуетесь. Это сложная задача - увеличивать и уменьшать масштаб и только распределять по мере использования.

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

  1. Вы можете выбрать основных поставщиков облачных услуг.
    Sagemaker (AWS), службы машинного обучения (Azure) или AutoML (Google). Обычно это хорошо работает, когда у вас есть много специалистов по обработке данных, DevOps и внутренние знания об этом облаке. В случае, если вы только начали создавать свою команду по науке о данных или находитесь на пути к созданию нескольких моделей и вскоре захотите их развернуть, вы можете выбрать другой вариант.

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

3. Создайте весь конвейер CI / CD для анализа данных (непрерывная интеграция, непрерывное развертывание) самостоятельно. Обычно это занимает месяцы и требует от вас постоянного выполнения обновлений, исправления ошибок, интеграции новых функций.

Интегрируйте свои результаты

Когда вам удалось развернуть модель классификации рисков в производственной среде, вы почти готовы. Иногда компании требуется, чтобы результаты отображались на панели инструментов или передавались в приложение. Выходные данные вашей модели можно сохранить в базе данных, из которой вы можете подключить ее к предпочтительному инструменту бизнес-аналитики, например PowerBI или Tableau. В качестве альтернативы вы можете использовать API-интерфейсы, чтобы связать его со своим веб-сайтом, чтобы пользователи могли заполнить свои данные и увидеть свою премию за риск. Tableau используется более опытными пользователями, немного сложнее в освоении и часто используется средними и крупными компаниями с большим объемом данных. PowerBI прост в использовании, используется компаниями любого типа и может обрабатывать ограниченный объем данных. Вы также можете использовать, например, Plotly, который является более техническим, чем PowerBI / Tableau, но более легким в использовании и более удобным для самих специалистов по данным.

Заключение

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

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

2. Подумайте заранее о том, где и как вы централизируете свои данные. Для многих организаций (слишком) поздно, но это не значит, что об этом нельзя говорить и оставить как есть. Многие фирмы сейчас тратят большие суммы денег и много времени на централизацию данных, сшивание баз данных и извлечение выгоды с помощью науки о данных. Также подумайте, в соответствии с какими законами и постановлениями вы хотите хранить свои данные: США или ЕС? И каково ваше управление данными?

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

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

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

6. Наконец, подумайте, нужно ли интегрировать вывод. Если да, выполните интеграцию, например, с инструмент визуализации или приложите его к приложению, чтобы бизнес мог извлечь выгоду из ваших усилий в области науки о данных. Что касается панелей мониторинга: используйте PowerBI, если вы сравнительно малы и новичок в визуализации, в противном случае я рекомендую Tableau больше. Если ваши специалисты по данным хотят контролировать ситуацию, подумайте о Plotly.

Хотите быть в курсе схожих тем? Следите за нашим блогом на Medium или сайте.