За последнее десятилетие такие термины, как «Наука о данных», «Большие данные», «Озеро данных», «Машинное обучение», «ИИ» и т. Д., Вышли на передний план (а иногда и снова отступили) в повседневной лексике. в самых разных отраслях. Однако, несмотря на их широкое использование (или, возможно, именно из-за этого!), Похоже, нет единого мнения о том, что означают многие из этих терминов. Я не хочу участвовать в расширенных спорах о согласованной номенклатуре, но есть два часто используемых термина, которые представляют для меня особый интерес: «специалист по данным» и «инженер по машинному обучению».
В самом широком смысле оба этих термина можно понимать как относящиеся к «технически квалифицированным людям, которые создают решения для машинного обучения». «Специалист по данным» - это термин, который с годами стал ассоциироваться со своего рода универсальным математиком или статистиком, который также может немного кодировать и знает, как интерпретировать и визуализировать данные. В последнее время термин «инженер по машинному обучению» стал ассоциироваться с разработчиками программного обеспечения, которые попутно освоили математику.
Хотя в этих интерпретациях, безусловно, есть доля правды, я не нахожу ни одну из них особенно полезной. Поэтому, рискуя усугубить путаницу, я хочу проиллюстрировать свою интерпретацию того, что влекут за собой эти роли, с помощью небольшой притчи о двух бесстрашных приключениях - одного ученого, другого и инженера, - которые направляются в неизведанное и неизведанное. возможно бесконечная пустыня, в поисках нефти…
По задачам инженер и ученый по-разному оснащены.
Ученый путешествует легко. У него есть рюкзак, компас, лопата и какое-то простое, но точное измерительное оборудование. Он совершает несколько вылазок в пустыню, но не очень глубоко, но достаточно глубоко, чтобы понять, какое направление выглядит наиболее многообещающим. Через несколько дней после проведения измерений и рытья ям лопатой он понял, где может быть масло.
С другой стороны, инженер приносит с собой тяжелую и сложную технику. Пока его не интересует, где можно найти нефть. Тем не менее, как только он будет найден, ему придется его перевезти, поэтому первые несколько дней он тратит на разработку чертежа трубопровода.
Сотрудничество позволяет двум исследователям объединить свои сильные стороны и стать более эффективными.
Через несколько дней исследователи совещаются, и ученый заявляет, что в следующие несколько дней он совершит более глубокие набеги, поскольку теперь он гораздо более уверен в том, где найти нефть. Когда ученый отправляется в путь, инженер запускает свое оборудование и, следуя по стопам ученого, приступает к строительству первой секции трубопровода. В конце концов он догоняет ученого, обнаружившего небольшой колодец!
Вместе они устанавливают буровую установку на месте и соединяют ее с трубопроводом. Этот конвейер делает работу ученого намного более эффективной, и хотя они еще не нашли по-настоящему крупную скважину, эта меньшая скважина уже может принести некоторую прибыль, и инженер может использовать ее для тестирования своего конвейера.
После нескольких месяцев безупречного сотрудничества оба исследователя готовы к первому большому прорыву.
Готовясь к следующему этапу своего приключения, инженер конструирует легкую буровую установку и инструктирует ученого, как ею пользоваться. Вооружившись этой специализированной буровой установкой, ученый теперь может вскрывать скважины без присутствия инженера. Какое-то время ученый продолжает поиск новых скважин, а инженер продолжает подключать их к трубопроводу.
Затем инженер также проектирует легкие трубы, которые ученый может подключить к трубопроводу без помощи инженера. Это позволяет ученому значительно ускорить свои исследования и одновременно дает инженеру возможность перепроектировать большие части конвейера, тем самым делая их более стабильными и эффективными.
Точно так же ученый разрабатывает новый стандартизированный набор измерений для инженера, чтобы встроить его в протоколы измерений главного концентратора, чтобы ученому больше не нужно было ездить на буровые площадки, чтобы контролировать их работу.
После месяцев упорной работы они достигли большой нефтяной скважины, которую искали. Вместе они прикрепляют колодец к трубопроводу и устанавливают сложное измерительное оборудование. К настоящему моменту распорядок дня хорошо налажен. Измерьте, просверлите, прикрепите, накачайте, измерьте. Выполнено. В мгновение ока хлынет большая нефтяная скважина.
Через некоторое время их пути расходятся - инженер остается на месте, а ученый вносит свой вклад в проект за пределами площадки.
Вскоре после этого ученый собирает вещи и отправляется домой. Он больше не нужен на месте, но он по-прежнему будет доступен для анализа измерений, произведенных в скважине.
Инженер остается немного дольше. Он еще не доволен тем, что вся система работает идеально. Приезжает бригада операторов, и вместе они устраняют все оставшиеся неровности. Затем инженер передает систему операторам и направляется домой, обещая вернуть, если возникнут проблемы.
Воссоединение ученого и инженера.
Наши два исследователя скоро снова встретятся. Они размышляют о своем маленьком приключении в пустыне и вместе начинают строить планы на следующую эскападу - очевидно, в Арктике может быть нефть, и они готовы это выяснить!
Специалисты по анализу данных и инженеры по машинному обучению выполняют разные роли.
Возможно, вы сможете распознать из приведенной выше истории некоторые элементы, которые входят в успешный проект машинного обучения.
Я выбрал эту небольшую притчу о двух исследователях, потому что считаю, что машинное обучение - даже несмотря на то, что за последние пять-десять лет оно значительно продвинулось, - остается областью, которая в значительной степени требует набегов на неизведанную территорию. Я считаю, что дух исследования (быстрое прототипирование) так же актуален, как и пять лет назад, но также становится все более важным начинать закладывать основу для продуктивных систем (быстрое масштабирование) прямо в начале проекта.
В качестве двух своих исследователей я выбрал ученого (данные) и инженера (машинного обучения), чтобы продемонстрировать важность их сотрудничества для быстрого и эффективного предоставления ценности.
Несомненно, существует множество различных определений для этих двух ролей, но для меня ключевой определяющей характеристикой является то, что специалист по данным - это тот, кто спрашивает: «Какой алгоритм является наилучшим для решения этой проблемы?» и пытается ответить на этот вопрос, быстро проверяя различные гипотезы (ища нефтяные скважины). Инженер по машинному обучению, с другой стороны, спрашивает: «Какая система лучше всего поможет нам решить проблему?» и пытается ответить на этот вопрос, создавая автоматизированный процесс (строительство нефтепровода), который можно использовать для ускорения проверки гипотез.
Несмотря на разные роли между специалистом по анализу данных и инженером по машинному обучению, их сотрудничество имеет решающее значение для проектов машинного обучения.
Независимо от того, точны ли эти два определения на 100%, важно то, какое сотрудничество возникает, когда встречаются два талантливых профессионала с таким типом мышления. В моем примере специалист по анализу данных ищет новые модели архитектуры, чтобы попробовать; новые способы измерения производительности; новые источники данных и т. д., в то время как инженер по машинному обучению ищет способы интегрировать работу специалиста по данным в масштабируемую систему. По мере масштабирования системы специалист по анализу данных становится более эффективным, потому что у него появляются лучшие инструменты для работы. Инженер по машинному обучению становится более эффективным, потому что инструменты, которые он создает, используются для получения все более ценных результатов.
Инженеры по машинному обучению пишут программное обеспечение, а специалисты по данным - сценарии.
Различия между обеими профессиями также можно увидеть в написанном ими коде. Конечно, оба актера должны быть хорошими программистами. Не только инженеры по машинному обучению должны уметь писать высококачественный код. Конечно, специалисту по данным не обязательно уметь создавать сложную программную систему, но он или она должны уметь создавать четко структурированный, хорошо документированный и легко поддерживаемый код!
При этом для специалиста по данным основное внимание будет уделяться быстрым результатам, а не созданию устойчивого программного обеспечения. Таким образом, предпочтительный инструмент для специалистов по данным - поскольку все это обычно происходит в мире Python - будет широко использовать Jupyter Notebooks, которые активно поддерживают исследовательский способ работы; конечным продуктом такой работы обычно являются прототипы скриптов.
Однако инженер по машинному обучению пишет программное обеспечение. Я не могу подчеркнуть это достаточно. (Если вы отлично разбираетесь в машинном обучении и создаете четко структурированные, хорошо документированные и легко поддерживаемые скрипты, то вы лучший специалист по данным, которого мы в Alexander Thamm могли бы попросить в проекте, а не инженер по машинному обучению!). Инженер по машинному обучению фокусируется на создании программного обеспечения, которое можно быстро масштабировать. Многое из этого также будет иметь место в мире Python, а это означает, что в качестве предпочтительного инструмента обычно будут использоваться такие IDE, как PyCharm. (Однако он выходит за рамки Python, поскольку масштабирование также означает знание того, как использовать инструменты, которые организуют ресурсы для обучения моделей и обслуживают обученные модели для систем конечных пользователей, но это обсуждение в другой раз).
Различные этапы проекта требуют разного участия инженеров по машинному обучению и специалистов по данным.
Последнее, о чем стоит поговорить, - это этапы проекта и кто и когда участвует. Если мы рассмотрим развитие проекта, которое проходит через фазы «гипотеза»; «Доказательство концепции»; "прототип"; «Производство» - тогда возникает соблазн сказать, что первые два являются областью специалистов по обработке данных, а два последних - областью инженеров по машинному обучению. Я согласен лишь частично.
Ученый и инженер стоят на краю пустыни, вглядываются вдаль и гадают, может ли там быть нефть: это фаза «гипотез». Ученый, бегающий по пустыне, выкапывающий лопатой множество маленьких ям, чтобы увидеть первые признаки нефти, в то время как инженер рисует чертежи своего трубопровода, - это то, что я бы назвал «доказательством концепции». Строящийся полноценный трубопровод и первая открытая скважина - это то, что я бы назвал «прототипом». И крупномасштабную, полностью доработанную и высокоэффективную систему, обслуживаемую командой операторов, которую я бы назвал «производственной».
Инженер по машинному обучению и специалист по анализу данных имеют жизненно важное значение на протяжении всего проекта.
Так что, возможно, правильный способ взглянуть на это - признать, что каждый из этапов потребует ввода от обеих ролей, но то, как этот ввод выглядит, изменится. В частности, вначале инженер по машинному обучению будет очень зависеть от исследований, проводимых специалистом по данным, а позже специалист по анализу данных будет очень зависеть от инструментов, которые создает инженер по машинному обучению. Но каждый из них останется актуальным - по сути, жизненно важным - на всем протяжении.
И в самом конце оба перейдут к следующему этапу, который, вероятно, будет еще одним исследовательским путешествием - на этот раз в Арктику?