Резидентська програма Яндекса, або Як досвідченому бекендеру стати ML-інженером

Резидентська програма Яндекса, або Як досвідченому бекендеру стати ML-інженером

Яндекс відкриває резидентську програму з машинного навчання для досвідчених бекенд-розробників. Якщо ви багато писали на C++/Python і хочете застосувати ці знання в ML — ми навчимо вас займатися практичними дослідженнями і виділимо досвідчених кураторів. Ви попрацюєте над ключовими сервісами Яндекса та отримаєте навички в таких областях, як лінійні моделі та градієнтний бустинг, рекомендаційні системи, нейромережі для аналізу зображень, тексту та звуку. Ще ви дізнаєтеся, як правильно оцінювати свої моделі за допомогою метрик в офлайні та онлайн.

Тривалість програми – один рік, протягом якого учасники працюватимуть в управлінні машинного інтелекту та досліджень Яндекса, а також відвідуватимуть лекції та семінари. Участь оплачується та передбачає повну зайнятість: 40 годин на тиждень, починаючи з 1 липня цього року. Прийом заявок вже відкрито та триватиме до 1 травня. 

А тепер докладніше — про те, яку аудиторію ми чекаємо, яким буде робочий процес і загалом, як бекенд-фахівцю перейти на кар'єру в ML.

спрямованість

Residency Programs є у багатьох компаній, включаючи, наприклад, Google та Facebook. В основному вони націлені на фахівців молодшого та середнього рівня, які намагаються зробити крок у бік ML-досліджень. Наша програма – для іншої аудиторії. Ми запрошуємо бекенд-розробників, які вже набули достатньо досвіду і точно знають, що у своїх компетенціях їм потрібно зрушуватись у бік ML, отримати практичні навички – а не навички вченого – у вирішенні промислових завдань машинного навчання. Це не означає, що ми не підтримуємо молодих дослідників. Для них ми організували окрему програму. премію імені Іллі Сегаловича, яка також дозволяє попрацювати в Яндексі.

Де резидент має працювати

Ми в управлінні машинного інтелекту та досліджень самі розробляємо ідеї проектів. Основне джерело натхнення – наукова література, статті, тренди спільноти дослідників. Я та мої колеги аналізуємо прочитане, дивимося, як можна покращити чи розширити методи, запропоновані вченими. При цьому кожен з нас враховує свою сферу знань та інтересів, формулює завдання виходячи з напрямків, які вважає важливими. На стику результатів зовнішніх досліджень та власних компетенцій зазвичай народжується ідея проекту.

Така система хороша тим, що багато в чому вирішує технологічні завдання сервісів Яндекса ще до їхнього виникнення. Коли перед сервісом постає проблема, його представники приходять до нас, щоб швидше за все взяти вже підготовлені нами технології, які залишається тільки правильно застосувати в продукті. Якщо ж щось не готове — ми принаймні швидко згадаємо, звідки можна почати копати, в яких статтях шукати рішення. Як відомо, науковий підхід – це стояти на плечах гігантів.

Що належить робити

У Яндексі — і навіть у нашому управлінні — розвиваються всі актуальні напрями ML. Наше завдання — покращувати якість найрізноманітніших продуктів, і це є стимулом перевіряти все нове. До того ж, регулярно з'являються нові сервіси. Так що в лекційній програмі є всі ключові напрямки машинного навчання в промисловій розробці, які добре себе зарекомендували. При складанні моєї частини курсу я використав досвід викладання в Школі аналізу даних, а також матеріали та напрацювання інших викладачів ШАДу. Знаю, що колеги робили так само.

У перші місяці навчання за програмою курсу складатиме приблизно 30% вашого робочого часу, потім – близько 10%. Однак важливо розуміти, що робота із самими ML-моделями продовжить займати приблизно вчетверо менше, ніж усі супутні процеси. До них відноситься підготовка бекенда, отримання даних, написання pipeline для їх передобробки, оптимізація коду, адаптація під специфічне залізо і т. д. вирішити завдання від початку до кінця. Навіть з готовою моделлю напевно потрібно зробити ще ряд дій: розпаралелити її виконання по кількох машинах, підготувати реалізацію у вигляді ручки, бібліотеки або компоненти самого сервісу.

Вибір студента
Якщо у вас склалося враження, що в ML-інженери краще йти, спочатку попрацювавши розробником бекенда, це не так. Вступити в той же ШАД без реального досвіду розробки сервісів, навчитися і стати вкрай затребуваним на ринку — чудовий варіант. Багато фахівців в Яндексі опинилися на нинішніх позиціях саме таким шляхом. Якщо ж якась компанія готова запропонувати вам роботу в області ML одразу після інституту - ймовірно, теж варто прийняти пропозицію. Намагайтеся потрапити в хорошу команду до досвідченого наставника і приготуйтеся багато вчитися.

Що зазвичай заважає зайнятися ML

Якщо бекендер прагне стати ML-інженером, він без урахування резидентської програми може вибрати з двох напрямків розвитку.

По-перше — навчитися в рамках якогось освітнього курсу. Уроки на Coursera наблизять вас до розуміння базових методик, але щоб зануритися в професію достатньо, необхідно приділити їй набагато більше часу. Наприклад, закінчити ШАД. У різні роки в ШАДі було різне число курсів безпосередньо з машинного навчання — у середньому близько восьми. Кожен із них справді важливий і корисний, у тому числі на думку випускників. 

По-друге, можна взяти участь у бойових проектах, де потрібно реалізувати той чи інший ML-алгоритм. Однак на ринку IT-розробки таких проектів дуже мало: здебільшого машинне навчання не використовується. Навіть у банках, які активно вивчають пов'язані з ML можливості, аналізом даних займаються одиниці. Якщо вам не вдалося приєднатися до однієї з подібних команд, залишається або завести свій власний проект (де, швидше за все, дедлайни ви ставитимете собі самі, а це має мало спільного з бойовими продакшен-завданнями), або почати змагатися на Kaggle.

Справді, об'єднатися з іншими учасниками спільноти та пробувати себе у конкурсах порівняно нескладно — особливо якщо підкріпити свої навички тренуваннями та курсами на Coursera. Кожен конкурс має дедлайн — він служитиме для вас стимулом і готуватиме до схожої системи в IT-компаніях. Це хороший шлях, який, втім, теж трохи відірваний від реальних процесів. На Kaggle вам дають передопрацьовані, хай і не завжди ідеальні дані; не пропонують думати про внесок у продукт; а найголовніше — не вимагають рішень, які підходять для продакшену. Ваші алгоритми, ймовірно, виявляться працездатними і будуть володіти високою точністю, але ваші моделі та код будуть схожі на зшитого з різних частин Франкенштейна — у бойовому проекті вся ця конструкція працюватиме надто повільно, важко оновлюватись і розширюватись (наприклад, мовні та голосові алгоритми завжди частково листуються у міру розвитку мови). Компанії зацікавлені в тому, щоб перераховану роботу могли зробити не тільки ви самі (зрозуміло, що вам як автору рішення це під силу), але й будь-хто з колег. Про різницю між спортивним та промисловим програмуванням сказано багато, і Kaggle виховує саме "спортсменів" - нехай і робить це дуже добре, дозволяючи набути частини досвіду.

Я описав дві можливі лінії розвитку – навчання через освітні програми та навчання «в бою», наприклад, на Kaggle. Резидентська програма є поєднання цих двох способів. На вас чекають лекції та семінари рівня ШАДу, а також справді бойові проекти.

Джерело: habr.com

Додати коментар або відгук