Хабрахабр

Большие данные — большая ответственность, большой стресс и большие деньги

image

Как ИИ поработит людей, а блокчейн построит идеальную экономику — так и большие данные позволят знать абсолютно все про всех и видеть будущее. Термин Big Data подпорчен современным фантастическим преувеличением новых вещей.

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

Вместе с ними — новые профессии. Появляются новые методы. Какие используются инструменты и сколько обычно платят специалистам.
Декан факультета аналитики Big Data в GeekBrains Сергей Ширкин рассказал, что это за профессии, где они нужны, чем там надо заниматься и что надо уметь.

Что такое «большие данные»

Вопрос «что называть большими данными» довольно путаный. Даже в публикациях научных журналов описания расходятся. Где-то миллионы наблюдений считаются «обычными» данными, а где-то большими называют уже сотни тысяч, потому что у каждого из наблюдений есть тысяча признаков. Поэтому данные решили условно разбить на три части — малые, средние и большие — по самому простому принципу: объему, который они занимают.

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

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

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


Сергей Ширкин

Какие компании занимаются большими данными

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

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

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

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

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

Каким должен быть специалист по большим данным

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

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

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

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

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

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

Какие используются инструменты

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

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

Вместо того, чтобы тянуть данные к себе, они отправляют к этим данным участки программы. Поэтому есть Hadoop с парадигмами Map Reduce и фреймворком Spark. Потом получается выборка из тысячи серверов на основе которой можно выбрать самый популярный твит. Работа идет параллельно, в тысячу потоков.

С его помощью достают данные из кластеров, и в нем же строят модели машинного обучения. Map Reduce более старая парадигма, Spark — новее.

Какие профессии есть в сфере больших данных

Две основные профессии — это аналитики и дата-инженеры.

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

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

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

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

Если отказали системы, или из кластера пропал один из серверов — подключается он. Дата-инженеру достается вся черная работа. Система может отключиться и в выходные, и в нерабочее время, и инженер должен оперативно предпринять меры. Это очень ответственная и стрессовая работа.

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

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

Сколько времени занимает обучение

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

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

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

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

Какая зарплата считается адекватной для специалистов по большим данным

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

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

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

Как готовиться к собеседованиям

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

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

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

Где набираться опыта самостоятельно

Python можно подтянуть на Питонтьютое, работы с базой данных — на SQL-EX. Там даются задачи, по которым на практике учатся делать запросы.

Там можно получить понятную информацию по математическому анализу, статистике и линейной алгебре. Высшая математика — Mathprofi. А если плохо со школьной программой, то есть сайт youclever.org.

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

Какие тренды обсуждает сообщество

Постепенно набирает силу еще одно направление, которое может привести к бурному росту количества данных — Интернет вещей (IoT). Данные такого рода поступают с датчиков устройств, объединенных в сеть, причем количество датчиков в начале следующего десятилетия должно достигнуть десятков миллиардов.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть