Термин Big Data (большие данные) подпорчен современным фантастическим преувеличением новых вещей. Как ИИ поработит людей, а блокчейн построит идеальную экономику — так и большие данные позволят знать абсолютно все про всех и видеть будущее.
Но реальность, как всегда, скучнее и прагматичнее. В больших данных нет никакой магии — как нет ее нигде — просто информации и связей между разными данными становится так много, что обрабатывать и анализировать все старыми способами становится слишком долго.
Появляются новые методы, вместе с ними — новые профессии. Декан факультета Big Data в GeekBrains Сергей Ширкин рассказал, что это за профессии, где они нужны, чем там надо заниматься и что надо уметь. Какие используются методы и технологии обработки больших данных, инструменты и сколько обычно платят специалистам.
Что такое «большие данные»
Вопрос «что называть большими данными» довольно путаный. Даже в публикациях научных журналов описания расходятся. Где-то миллионы наблюдений считаются «обычными» данными, а где-то большими называют уже сотни тысяч, потому что у каждого из наблюдений есть тысяча признаков. Поэтому данные решили условно разбить на три части — малые, средние и большие — по самому простому принципу: объему, который они занимают.
Малые данные — это считанные гигабайты. Средние — все, что около терабайта. Одна из основных характеристик больших данных — вес, который составляет примерно петабайт. Но путаницу это не убрало. Поэтому вот критерий еще проще: все, что не помещается на одном сервере — большие данные.
В малых, средних и больших данных разные принципы работы. Большие данные как правило хранятся в кластере сразу на нескольких серверах. Из-за этого даже простые действия выполняются сложнее.
Например, простая задача — найти среднее значение величины. Если это малые данные, мы просто все складываем и делим на количество. А в больших данных мы не можем собрать сразу всю информацию со всех серверов. Это сложно. Зачастую надо не данные тянуть к себе, а отправлять отдельную программу на каждый сервер. После работы этих программ образуются промежуточные результаты, и среднее значение определяется по ним.
Сергей Ширкин
Какие компании занимаются большими данными
Первыми с большими данными, либо с «биг дата», начали работать сотовые операторы и поисковые системы. У поисковиков становилось все больше и больше запросов, а текст тяжелее, чем цифры. На работу с абзацем текста уходит больше времени, чем с финансовой транзакцией. Пользователь ждет, что поисковик отработает запрос за долю секунды — недопустимо, чтобы он работал даже полминуты. Поэтому поисковики первые начали работать с распараллеливанием при работе с данными.
Чуть позже подключились различные финансовые организации и ритейл. Сами транзакции у них не такие объемные, но большие данные появляются за счет того, что транзакций очень много.
Количество данных растет вообще у всех. Например, у банков и раньше было много данных, но для них не всегда требовались принципы работы, как с большими. Затем банки стали больше работать с данными клиентов. Стали придумывать более гибкие вклады, кредиты, разные тарифы, стали плотнее анализировать транзакции. Для этого уже требовались быстрые способы работы.
Сейчас банки хотят анализировать не только внутреннюю информацию, но и стороннюю. Они хотят получать большие данные от того же ритейла, хотят знать, на что человек тратит деньги. На основе этой информации они пытаются делать коммерческие предложения.
Сейчас вся информация связывается между собой. Ритейлу, банкам, операторам связи и даже поисковикам — всем теперь интересны данные друг друга.
Каким должен быть специалист по большим данным
Поскольку данные расположены на кластере серверов, для их обработки используется более сложная инфраструктура. Это оказывает большую нагрузку на человека, который с ней работает — система должна быть очень надежной.
Сделать надежным один сервер легко. Но когда их несколько — вероятность падения возрастает пропорционально количеству, и так же растет и ответственность дата-инженера, который с этими данными работает.
Аналитик big data должен понимать, что он всегда может получить неполные или даже неправильные данные. Он написал программу, доверился ее результатам, а потом узнал, что из-за падения одного сервера из тысячи часть данных была отключена, и все выводы неверны.
Взять, к примеру, текстовый поиск. Допустим все слова расположены в алфавитном порядке на нескольких серверах (если говорить очень просто и условно). И вот отключился один из них, пропали все слова на букву «К». Поиск перестал выдавать слово «Кино». Следом пропадают все киноновости, и аналитик делает ложный вывод, что людей больше не интересуют кинотеатры.
Поэтому специалист по большим данным должен знать принципы работы от самых нижних уровней — серверов, экосистем, планировщиков задач — до самых верхнеуровневых программ — библиотек машинного обучения, статистического анализа и прочего. Он должен понимать принципы работы железа, компьютерного оборудования и всего, что настроено поверх него.
В остальном нужно знать все то же, что и при работе с малыми данным. Нужна математика, нужно уметь программировать и особенно хорошо знать алгоритмы распределенных вычислений, уметь приложить их к обычным принципам работы с данными и машинного обучения.
Какие используются инструменты и технологии big data
Поскольку данные хранятся на кластере, для работы с ними нужна особая инфраструктура. Самая популярная экосистема — это Hadoop. В ней может работать очень много разных систем: специальных библиотек, планировщиков, инструментов для машинного обучения и многого другое. Но в первую очередь эта система нужна, чтобы анализировать большие объемы данных за счет распределенных вычислений.
Например, мы ищем самый популярный твит среди данных разбитых на тысяче серверов. На одном сервере мы бы просто сделали таблицу и все. Здесь мы можем притащить все данные к себе и пересчитать. Но это не правильно, потому что очень долго.
Поэтому есть Hadoop с парадигмами Map Reduce и фреймворком Spark. Вместо того, чтобы тянуть данные к себе, они отправляют к этим данным участки программы. Работа идет параллельно, в тысячу потоков. Потом получается выборка из тысячи серверов на основе которой можно выбрать самый популярный твит.
Map Reduce более старая парадигма, Spark — новее. С его помощью достают данные из кластеров, и в нем же строят модели машинного обучения.
Какие профессии есть в сфере больших данных
Две основные профессии — это аналитики и дата-инженеры.
Аналитик прежде всего работает с информацией. Его интересуют табличные данные, он занимается моделями. В его обязанности входит агрегация, очистка, дополнение и визуализация данных. То есть, аналитик в биг дата — это связующее звено между информацией в сыром виде и бизнесом.
У аналитика есть два основных направления работы. Первое — он может преобразовывать полученную информацию, делать выводы и представлять ее в понятном виде.
Второе — аналитики разрабатывают приложения, которые будет работать и выдавать результат автоматически. Например, делать прогноз по рынку ценных бумаг каждый день.
Дата инженер — это более низкоуровневая специальность. Это человек, который должен обеспечить хранение, обработку и доставку информации аналитику. Но там, где идет поставка и очистка — их обязанности могут пересекаться
Bigdata-инженеру достается вся черная работа. Если отказали системы, или из кластера пропал один из серверов — подключается он. Это очень ответственная и стрессовая работа. Система может отключиться и в выходные, и в нерабочее время, и инженер должен оперативно предпринять меры.
Это две основные профессии, но есть и другие. Они появляются, когда к задачам, связанным с искусственным интеллектом, добавляются алгоритмы параллельных вычислений. Например, NLP-инженер. Это программист, который занимается обработкой естественного языка, особенно в случаях, когда надо не просто найти слова, а уловить смысл текста. Такие инженеры пишут программы для чат-ботов и диалоговых систем, голосовых помощников и автоматизированных колл-центров.
Есть ситуации, когда надо проклассифицировать миллиарды картинок, сделать модерацию, отсеять лишнее и найти похожее. Эти профессии больше пересекаются с компьютерным зрением.
Сколько времени занимает обучение
У нас обучение идет полтора года. Они разбиты на шесть четвертей. В одних идет упор на программирование, в других — на работу с базами данных, в третьих — на математику.
В отличии, например, от факультета ИИ, здесь поменьше математики. Нет такого сильного упора на математический анализ и линейную алгебру. Знания алгоритмов распределенных вычислений нужны больше, чем принципы матанализа.
Но полтора года достаточно для реальной работы с обработкой больших данных только если у человека был опыт работы с обычными данными и вообще в ИТ. Остальным студентам после окончания факультета рекомендуется поработать с малыми и средними данными. Только после этого специалиста могут допустить к работе с большими. После обучения стоит поработать дата-саентистом — поприменять машинное обучение на разных объемах данных.
Когда человек устраивается в большую компанию — даже если у него был опыт — чаще всего его не допустят до больших объемов данных сразу, потому что цена ошибки там намного выше. Ошибки в алгоритмах могут обнаружиться не сразу, и это приведет к большим потерям.
Какая зарплата считается адекватной для специалистов по большим данным
Сейчас есть очень большой кадровый голод среди дата-инженеров. Работа сложная, на человека ложится много ответственности, много стресса. Поэтому специалист со средним опытом получает около двухсот тысяч. Джуниор — от ста до двухсот.
У аналитика данных стартовая зарплата может быть чуть меньше. Но там нет работы сверх рабочего времени, и ему не будут звонить в нерабочее время из-за экстренных случаев.
Как готовиться к собеседованиям
Не нужно углубляться только в один предмет. На собеседованиях задают вопросы по статистике, по машинному обучению, программированию. Могут спросить про структуры больших данных, алгоритмы, применение, технологии, про кейсы из реальной жизни: упали сервера, случилась авария — как устранять? Могут быть вопросы по предметной сфере — то, что ближе к бизнесу
И если человек слишком углубился в одну математику, и на собеседовании не сделал простое задание по программированию, то шансы на трудоустройство снижаются. Лучше иметь средний уровень по каждому направлению, чем показать себя хорошо в одном, а в другом провалиться полностью.
Есть список вопросов, которые задают на 80 процентах собеседований. Если это машинное обучение — обязательно спросят про градиентный спуск. Если статистика — нужно будет рассказать про корреляцию и проверку гипотез. По программированию скорее всего дадут небольшую задачу средней сложности. А на задачах можно легко набить руку — просто побольше их решать.
Где набираться опыта самостоятельно
Python можно подтянуть на Питонтьютор, работы с базой данных — на SQL-EX. Там даются задачи, по которым на практике учатся делать запросы.
Высшая математика — Mathprofi. Там можно получить понятную информацию по математическому анализу, статистике и линейной алгебре. А если плохо со школьной программой, то есть сайт youclever.org
Распределенные же вычисления тренировать получится только на практике. Во-первых для этого нужна инфраструктура, во-вторых алгоритмы могут быстро устаревать. Сейчас постоянно появляется что-то новое.
Какие тренды обсуждает сообщество
Постепенно набирает силу еще одно направление, которое может привести к бурному росту количества данных — Интернет вещей (IoT). Большие данные такого рода поступают с датчиков устройств, объединенных в сеть, причем количество датчиков в начале следующего десятилетия должно достигнуть десятков миллиардов.
Устройства самые разные — от бытовых приборов до транспортных средств и промышленных станков, непрерывный поток информации от которых потребует дополнительной инфраструктуры и большого числа высококвалифицированных специалистов. Это означает, что в ближайшее время возникнет острый дефицит дата инженеров и аналитиков больших данных.
Комментарии