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

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

Грубо говоря, есть два сценария: проект машинного обучения приносит прибыль вашей организации или вызывает затраты. Как опытный фанатик ML я бы рассмотрел первый вариант. У вас есть финансирование для проекта машинного обучения, вы знаете, что собираетесь улучшить или решить, и у вас есть реалистичные ожидания. Предположим, у вас есть несколько ИТ-команд, несколько программистов, веб-разработчиков, аналитиков данных и т. д., но нет инженеров по машинному обучению. Единственный вопрос, который у вас сейчас есть: нанять ли мне профессиональную компанию с опытом в области машинного обучения или, может быть, мне следует инвестировать в персонал моей компании?»». В этой статье я постараюсь ответить на этот вопрос.

Что лучше: нанять внешнюю компанию или нанять сотрудников?

Поскольку я работал экспертом по машинному обучению в обоих сценариях (в качестве эксперта на аутсорсе и в материнской компании), я могу объективно описать плюсы и минусы обоих. Как Data Scientist мне нравятся числа, называемые «функциями». Поэтому для принятия решения у вас должны быть какие-то аргументы. Есть много факторов, которые могут изменить решение.

Каковы наиболее важные факторы при принятии этого решения?

Я мог бы перечислить множество факторов, но обычно вам придется ответить на следующие вопросы:
1. Собирается ли ваша компания инвестировать в технологии машинного обучения в долгосрочной перспективе?
2. Есть ли в вашей компании ИТ-специалисты (т. е. программисты)?
3. Можно ли передать данные обучения внешней компании?
4. Является ли проект высокоприоритетным с коротким ETA?
5. Является ли это стратегическим проектом?

Если вы ответите «да» на первый вопрос, вам придется учитывать затраты и стратегию вашей организации. Если вы знаете, что будет больше проектов ИИ, то это отличная возможность создать собственную команду специалистов по данным. На протяжении своей карьеры я работал в небольшой компании (около 20 сотрудников), которая наращивала компетенции с помощью такого проекта от клиента. На тот момент они были стартапом без опытных сотрудников. Проект был достаточно долгим (около года), мы использовали эту возможность для наращивания своих компетенций, и в итоге клиент остался без понимания того, как работают модели. Через два года они начали нанимать собственных инженеров по машинному обучению, то есть потеряли 2 года. Но если ваш проект запланирован на 2 месяца, то, вероятно, вам придется привлечь стороннюю компанию с действительно опытным персоналом (лучше подтвердить его), который работает над вещами, связанными с предметной областью проекта (не только с опытом работы с ML).

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

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

Если проект имеет высокий приоритет, а ETA короткое (четвертый вопрос), то у вас, вероятно, нет другого выбора, кроме как нанять внешний ресурс для выполнения работы (очевидно, если ничто не препятствует этому).

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

Несколько слов о реальности, безопасности данных, исходном коде и продуктах.

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

Какие риски в этом случае?

Ваши данные и исходный код решения могут утечь, если сторонняя компания не будет обеспечивать высокое качество управления данными, и, поверьте мне, большинство компаний со штатом ‹100 сотрудников плохо следуют процессам (если таковые имеются). Я видел ситуацию, когда мои коллеги из небольшой компании (в которой я работал в то время) копировали данные клиента на внешние серверы, которые были доступны отовсюду (к тому же многие специалисты по данным используют также внешние решения). Скажу больше, один из владельцев компании применил решение, сделанное для клиента X, к проблеме клиента Y и снова продал (вы действительно хотите спонсировать продукт для аутсорсинговой компании?). Компетенции? Мой работодатель много раз обманывал клиента по поводу компетенций команды, говоря, что мы специалисты во всем, и клиенты почему-то в это верили. Такие вещи случаются в небольших компаниях. Я не хочу мешать вам передавать проекты сторонним компаниям, но хочу предупредить вас, каковы риски этого решения и что вы должны учитывать, прежде чем делать это.

Спросите себя, действительно ли вы хотите экспортировать знания о своих данных.

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

Иногда стоит обратиться к аутсорсингу.

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

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

Многие исследователи из университетов или глобальных корпораций публикуют свои проекты, часто делясь исходными кодами (например, github). Может быть, кто-то уже решил вашу проблему, и все, что вам нужно сделать, это просто настроить решение под свои нужды? В этом случае ваш технический персонал даже без знаний ML может справиться с этим. Я включаю это, потому что я участвовал во многих проектах, и единственное, что нужно было сделать, это git clone xyz и создать оболочку. Пожалуйста, примите это во внимание.

Сводка

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

Последние слова, пожалуйста, помните, что стоимость вашей компании может быть описана следующим уравнением:

ценность компании = данные + продукты + рабочая сила