Яндекс Глазами Стажера

Лето – пора отпусков, отпусков и, конечно же, стажировок.

Будучи студентом третьего курса факультета «Прикладная математика и информатика» Иркутского государственного университета, они меня больше всего интересовали.

Мне посчастливилось присоединиться к сервису компьютерного зрения Яндекса на три месяца.

В этом посте я хочу рассказать вам, что такое быть стажёром в Яндексе, какие на самом деле перед ним стоят задачи и что вы за всё это получите.

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



Яндекс глазами стажера

Команда компьютерного зрения и я в серой футболке



Как это началось

Трудности меня ждали еще на этапе заполнения анкеты – несколько часов кропотливой работы по заполнению форм были безжалостно уничтожены ночным обновлением системы.

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

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

Пообщавшись с сотрудниками Яндекса «за жизнь» и обсудив возможные задачи, я приступил к работе над новым тестовым заданием — построение классификатора текста.

Два итоговых собеседования, месяц ожидания и вот – заветный звонок с предложением пройти стажировку в период с 16 июня по 15 сентября.

Осталось только собрать чемодан.

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

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



О работе

Сначала несколько слов о том, зачем Яндексу сервис компьютерного зрения.

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

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

Так почему бы нам не научить компьютеры распознавать изображения? Несмотря на то, что в 1966 году такая задача выглядела как летний проект для группы студентов MIT , лучшие умы планеты до сих пор борются с этим.

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

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



Яндекс глазами стажера

Стоит отметить, что стажеры Яндекса — полноценные сотрудники, и поставленные перед ними задачи такие же, как если бы они уже были в штате.

Конкретно у нас на кафедре стажерам ставят самые интересные задачи.

Например, мне предоставили возможность не только работать над внутренними инструментами, но и самому обучать нейросети для Яндекс.

Маркета (распознавание нежелательной рекламы) и Авто.

ру (определение угла наклона автомобиля).

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

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

Это позволяет быстро вникнуть в эту область и сразу приступить к работе.

В моем случае «сразу» — это примерно две недели, за которые я разобрался во всем многообразии технологий компьютерного зрения внутри Яндекса, и еще две недели на то, чтобы отправить первый коммит на code review. Огромное спасибо моему наставнику и другим коллегам, которые часами рассказывали мне, как сделать то, на что у них ушло бы несколько минут! Когда задача поставлена и метрики качества понятны, начинается этап сбора данных.

Обычно это сотни тысяч или даже миллионы изображений, на сбор которых уходят дни.

Редко приходится обучать нейросеть с нуля.

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

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

Теоретически этот подход очень хорошо работает для типичных задач — вроде тех, что делал я.

Но, как известно, «в теории нет разницы между теорией и практикой, а на практике есть».

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

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



Яндекс глазами стажера

Отдельно хотелось бы поговорить о команде и сотрудниках Яндекс.

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

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

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

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

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

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

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

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

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

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

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



Яндекс глазами стажера



Жизнь и будни стажера

Летом меня вместе с другими стажерами и участниками образовательных проектов Яндекса поселили в центре Москвы, благодаря чему дорога до офиса заняла около получаса.

Иногда нам организовывали различные мероприятия, например, пешеходную экскурсию по городу или совместное подписание NDA :) Что мне больше всего запомнилось из дня летней стажировки: много беготни, решения логических задачек, а в конце - пицца и футболки! Ну а где еще вам предложат расшифровать сообщение на Whitespace? Конечно, Яндекс организует мероприятия не только для своих стажеров, но и для всех сотрудников.

Ещё мне запомнилось лето 2016 года к Летним Олимпийским играм, к которым Яндекс подготовил несколько спецпроектов, часть из которых была придумана на внутреннем хакатоне.

Так уж получилось, что первую стажировку я чуть не закончила корпоративом, а вторую стажировку начала с празднования на новогоднем корпоративе.

Зимой мне удалось съездить на экскурсию по офису.

Может показаться, что стажировка – это весело – и это так!


Исходя из своего опыта, хотелось бы отметить плюсы и минусы стажировки в Яндексе: Те моменты, которые, на мой взгляд, можно назвать недостатками:
  1. Специфика опыта.

    Яндекс — технологическая компания, и многие интересные проблемы уже решены.

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

  2. Мотивация.

    После работы над решением сложных и интересных задач очень сложно заставить себя вернуться к обычной учебе в университете.

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

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

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

    Яндекс поддерживает стремление сотрудников расти профессионально: здесь вас ждут различные мероприятия и мастер-классы по программированию, собственная библиотека, регулярные командировки на конференции.

    В службе компьютерного зрения практически каждый сотрудник раз в год ездит на одну из топовых конференций, таких как NIPS, ICML, ICLR, CVPR и т. д. Но для того, чтобы знать самые передовые разработки в своей области, вам не обязательно иметь куда-то съездить – регулярные семинары с анализом научных статей позволяют всегда быть в курсе последних результатов.

  2. Офис.

    Честно говоря, иногда мне вообще не хочется выходить из офиса.

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

    Благо, офис работает круглосуточно, и вы всегда можете прийти поиграть в пинг-понг или настольный теннис (или поработать).



Яндекс глазами стажера

Я думаю, это крутой опыт. Яндекс каждый год набирает летних стажеров.

Теперь еще есть возможность провести лето с пользой - прием заявок ребята заканчивают обучение первого мая.

Если вы хотите пройти стажировку в Москве, вам, как и мне год назад, оплатят проезд и проживание.

А если в вашем городе есть офис разработки Яндекса, то вам не придется никуда уезжать.

Теги: #Образовательный процесс в IT #стажировка в Яндексе #нейронные сети #компьютерное зрение

Вместе с данным постом часто просматривают: