РАБОТА · 16 мая 2018, 09:00 · DianaVasileva - Author в dev.by
Зачем победитель Kaggle и TopCoder переехал в Минск из Питера

Александр Буслаев — инженер алгоритмов компьютерного зрения, выпускник ИТМО в Санкт-Петербурге, четырёхкратный победитель соревнований по машинному обучению на площадках Kaggle, TopCoder и других. В одном из конкурсов он выиграл $25 тысяч. Недавно инженер присоединился к минской команде mapbox, которая создаёт SDK для беспилотников.      

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

Как несчастный случай привёл в Data Science

Александр, количество твоих побед на соревнованиях по машинному обучению, наверное, открывает тебе дорогу практически в любую ИТ-компанию и страну. Почему выбрал Минск?

Я давно думал о переезде. В Петербурге совсем плохо с погодой, в Москве я бы не хотел жить, а больше в России негде работать. Минск относительно недалеко находится, и пока мне здесь нравится. Уже заселились в съёмную квартиру вместе с кошкой и вещами. Но я считаю, что полностью переезд будет завершён в момент покупки собственного жилья.

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

Как началась твоя карьера в ИТ?

Родился я в Западной Украине, а жил в Тольятти. В школе у меня была предрасположенность к физике и математике. В 11-м классе участвовал в олимпиаде по информатике и занял первое место, не умея программировать. Меня пригласили съездить в Петербург. После этой поездки я решил поступать в ИТМО на кафедру компьютерных технологий, где готовят чемпионов соревнований по программированию. Конкретно на неё я не попал, но поступил на похожую кафедру.

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

Потом работал в LG Electronics, правда, не очень долго. Там я успел сделать несколько интересных вещей, одна из них — система HDR для телефонов LG. Она делает фотографию с тремя разными выдержками и склеивает их в одну. После этого занимался восстановлением линий электропередач в 3D по фотографиям.

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

33 тысячи просмотров поста в LinkedIn. Кто больше?

Расскажи о своём первом соревновании по машинному обучению: это был триумф или провал?

Первым было соревнование по подсчёту морских котиков на аэрофотоснимках на платформе Kaggle. Участвовать в нём я решил после того, как посмотрел ролик, где парень решает задачи по детекции, и подумал: а чем я хуже? В то время как раз вышел Tensorflow Object Detection, позволявший решать ML задачи практически без программирования.

Первый раз я участвовал один, потому что меня ещё никто не знал, а сам я не привык напрашиваться в команду. В итоге занял 13-е место (всего было 385 участников). После этого меня стали приглашать в команды. При первом командном сражении заняли 7-е место, затем было фиаско, а после него началось победное шествие. В трёх конкурсах подряд были первые места: одна победа в команде и две — сольных.

Почувствовал ли всплеск интереса к тебе в LinkedIn после череды побед на соревнованиях?

Предложений о работе, конечно, прибавилось. Особенно это стало заметно, когда я начал афишировать победы. Пост о последнем конкурсе набрал 33 тысячи просмотров и 550 лайков в LinkedIn. Также после статьи на habr стали обращать на меня внимание, звать на интервью. Но mapbox опередил всех.

Как работодатели относились к твоему участию в соревнованиях  поощряли или, наоборот, порицали: мол, лучше бы работой занимался?

После первого конкурса хвалили. А потом я перестал им об этом говорить. Я считаю, что от того, что люди участвуют в соревнованиях, выигрывают все: и работодатели, и сотрудники. Придуманные на конкурсе методы и подходы лично мне потом удавалось не раз применить на рабочем проекте.

Это и есть то, ради чего ты участвуешь в соревнованиях?

У меня такой подход к жизни: если у кого-то что-то получается, значит, и у меня должно. На работе ты сделал задачу, но не понимаешь, насколько хорошо. А в соревнованиях можно максимально объективно понять, насколько ты силён, сравнив свой результат с чужим. Ещё было желание утвердиться: первые четыре года я не получал желаемого результата на работе, а на соревнованиях сходу начало получаться.  Это дало прилив сил.

Два месяца на обучение модели

Как обычно проходят соревнования по машинному обучению?

Проходят они онлайн и длятся в среднем два месяца. Команды, как правило, сборные. Последний раз я был в команде с ребятами из Германии, Омска и Питера. А чуть раньше — с парнем, который живёт в США, приходилось работать в три смены.

Решать задачи нужно на своих машинах. На первом соревновании у меня не было нормального «железа», ответы предсказывал по три дня. После этого я пришёл на работу и сказал: «ребята, смотрите, как я могу» — и мне выдали рабочий компьютер с четырьмя видеокартами. А чуть позже я купил хорошую машину с двумя мощными видеокартами, каждая из которых стоила $1 тысячу.

Как распределяются роли в сборной команде?

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

Кто ставит задачи?

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

В одной из своих статей на habr ты писал о том, что организаторы часто допускают ошибки в данных. Приведёшь пример?

Часто встречаются неточности в разметке данных (почти всегда это тормозит решение задачи). Разметка — это то, что делается людьми, поэтому она всегда не идеальна. Недавно проходил конкурс, в котором я хотел поучаствовать, но, увидев разметку, передумал: шоссе не было размечено. Из-за такого безобразия нейронные сети сходят с ума, а призовые места распределяются рандомно.

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

Соревнования проходят удалённо. Можно ли воспользоваться обходными путями, чтобы достичь максимального значения метрик?

Проследить за тобой не могут. Но, если человек делает что-то нелегально, в конце это должно вскрыться. На Kaggle, например, не очень много внимания уделяют проверке кода, а на TopCoder в некоторых соревнованиях к этому подходят серьёзно. Организаторы воспроизводят решение и, если метрика сильно расходится на любом наборе данных, тебе говорят: «потрудитесь объяснить». Использовать внешние данные обычно не запрещено, но на них нужно оставить ссылку на форуме, чтобы другие участники конкурса тоже могли ими воспользоваться.

Новичкам в соревнованиях ты советуешь «брать за основу чужие решения, разбираться в них и пытаться улучшить». А с чего сам начинал?

Я начинал подготовку на Coursera. Первый курс очень известный — машинное обучение от Andrew Ng. Второй — нейронные сети на Stepik, он тоже довольно сильный. Сейчас я бы порекомендовал специализацию по машинному обучению от МФТИ и Яндекса.

Заработок на соревнованиях

Что обычно вручают победителям соревнований в качестве награды?

Обычно деньги: от тысячи до нескольких миллионов долларов. Мой самый большой трофей — $25 тысяч. За последний конкурс в дополнение к деньгам хотели дать суперкомпьютер, но пришлось объяснить, что у нас сборная команда. Тогда организаторы решили вручить по 4 видеокарты, каждая из которых стоит $3 тысячи.

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

Во-первых, это не так надёжно, как работа. Соревнования с хорошими призами проходят не так часто. Во-вторых, конкуренция достаточно высокая. Если за первое место дают, например, $25 тысяч, то за второе уже $10 тысяч. Плюс на конкурсах не ставят такие глобальные задачи, как на работе. Понятно, что твоё решение, возможно, будут использовать, но ты понятия не имеешь, где и как. Поэтому мне больше нравится классическая работа.

Есть ли зависимость между количеством завоёванных наград и продвижением по карьерной лестнице, зарплатой?

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

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

Тема автономных авто «самая горячая на рынке»

Если выбирать между работой в стартапе и корпорации, что интересней?

Я работал в LG Electronics, и с тех пор мне не очень нравятся большие компании.

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

Как mapbox удалось переманить тебя из Петербурга в Минск?  

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

Как проходило собеседование?

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

Чем ты будешь заниматься в команде?

Буду учить тяжёлые нейронные сети под автомобили и разметку данных. Задача не из простых: нужно  собрать хороший набор данных и сделать так, чтобы алгоритмы могли обрабатывать большой спектр дорожных ситуаций. Команда собирается хорошая, думаю, у нас есть шанс догнать и обогнать уже существующих игроков.

 

Фото: Андрей Давыдчик

Источник: dev.by
Нашли в тексте ошибку — выделите её и нажмите Ctrl+Enter.
Новые комментарии
Сама идея писать очередную CRM без идеи и инвестиций вгоняет меня в уныние, девочка пытается изобрести велосипед, который был изобретен еще 20 лет назад. Ничего не имею против перла, когда я пришел в веб в 2001 это был вполне современный язык, но технологии меняются, я попробовал много нового и скажу откровенно - перл устарел. Непонятно откуда такое презрение к "галерам", ведь это отличная возможность научиться работать и освоить технологии, в том числе и кодом заказчиков. Ну а если ты в своем болоте гниешь 20 лет, то естественно что и сайты у тебя будут в стиле 90ых. Бред про SEO и Ajax даже комментировать не хочется... учитывая тот факт, что ajax'у тоже не меньше 20 лет. p.s. Ну и на спектруме приходилось программировать, не только на бейсике, но и на асме и работы были вполне серьезные, проекты компилировались по 10 минут. но ведь это не означает что надо было стоять на месте и развиваться только в этом направлении
Alexandr_Voznyak
23.05.2018 в 00:53
«Никогда не вкалывала на галерах». Разработчица пишет на «реликтовом» Perl и 25 лет работает в семейном бизнесе
Мода тут ни при чём, просто когда-то перл был крутым инструментом - не было всяких пхп, а перл был высокоуровневым языком, с кучей библиотек на cpan, готовые либы для веба и так далее, можно было мириться с его дефектами, тем более, что переходили на него сишники, которым не привыкать. А в какой-то момент нормально спроектированные языки вроде питона догнали и значительно перегнали, в итоге перл лишился этих преимуществ, а новых не приобрёл. Я в какой-то момент понял, что просто не могу дальше его использовать, когда есть такие языки как питон. Не могу себя пересилить, ибо нет ответа на вопрос зачем использовать уродливый язык, зачем делать вот так if (any {$_ == $elem} @arr) { когда можно делать так if elem in arr: ? Это частный пример, но таких примеров тьма, не говоря уже о всяких use strict и другой магии которую нужно знать, чтобы было как в нормальных языках по умолчанию, когда-то даже заметку писал - https://habr.com/post/327408/.
worldmind
22.05.2018 в 23:46
«Никогда не вкалывала на галерах». Разработчица пишет на «реликтовом» Perl и 25 лет работает в семейном бизнесе

Обсуждение

B993ebcd20d5803b01e1810b59038c5b?1526961238
+12

Интересно читать интервью с действительно толковыми людьми без пафоса :-) Респект Александру

885c1f24448e85326a060b11282a2f63?1522432608
+2

интересное интервью! спасибо

9d873028274d465dfa5aa366850decc3?1526827650
Alexey Zelenovsky
– Senior Java Developer в Luxoft

+6

>>> соревнование по подсчёту морских котиков

Воу воу, это были морские львы!

Очень крутая область разработки, и интересно читать про то, как люди в нее входят. Тот случай, когда никто не скажет: "Зачем учить эти алгоритмы". Примечательно, что герой выбрал Минск, имея возможность, поехать куда угодно с такими результатами.

Missing

таких героев. думаю, немного на всю Беларусь. после Короткевича все остальные еще менее известны и редко дают интервью. если не считать одного отмороженного

B993ebcd20d5803b01e1810b59038c5b?1526961238

Да хватает умных хардкорных ребят у нас (могу сходу назвать пару десятков таких имен, которые никогда не фигурировали на dev.by), просто журналисты о них не знают, они знают только тех, кто светится на конференциях, юзергруппах, тусовках и прочих коворкингах - но это вполне логично. Хардкорные ребята пишут в это время код (или тренят сеточки :D).

Missing

Саша молодцом! )


Авторизуйтесь, чтобы оставлять комментарии

Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.
datahata — хостинг в Беларуси