Machine Learning: як побудувати кар'єру в IT
І що для цього треба знати

Згідно з LinkedIn 2018 Emerging Jobs Report, минулого року попит на Machine Learning Engineers на ринку праці США збільшився у 12 разів. Україна прямує за світовими трендами, а також активно розвиває стартап-екосистему, тому ті, хто займається машинним навчанням, затребувані на місцевому ринку. Крім того, часто українські фахівці працюють з іноземними компаніями. CEO компанії Verbit Том Лівнє розповідає, хто може знайти роботу в галузях, пов'язаних з машинним навчанням, і як це зробити.
Робота фахівців з машинного навчання добре оплачується і дозволяє постійно розвиватися в професії. Технології Machine Learning дійсно створюють майбутнє і змінюють світ. Тому все більше людей замислюються про те, щоб побудувати кар'єру в цій сфері.
Що таке машинне навчання? Розділ штучного інтелекту, що займається пошуком алгоритмів розв'язання завдань програмними методами. Причому саме тих завдань, для яких такі алгоритми невідомі.
Фахівці з машинного навчання (залежно від напрямку їх роботи) створюють алгоритми прийняття рішень для комп'ютерів, знаходять закономірності в масивах даних, аналізують і візуалізують отриману інформацію.
Чому ML-навички затребувані? Зацікавленість ML-індустрією зростає – за прогнозами International Data Corporation, до 2021 року витрати на AI- і ML-індустрію складуть $57,6 млрд, тоді як у 2017 році вони дорівнювали $12 млрд.
Уся сфера Machine Learning розвивається, фахівці, пов'язані з нею, можуть бути потрібні в різних компаніях, при цьому важлива не наявність диплома або сертифіката, а реальні знання і вміння, які людина може застосувати на практиці.
Компанії та державні структури збирають величезну кількість даних, але тільки зараз технології дозволяють працювати з цією інформацією і отримувати вигоду для розвитку практично будь-якій галузі. Крім того, комп'ютери зараз працюють дуже швидко, а бібліотеки досить прості, щоб навіть невелика команда ML-фахівців могла провести результативне дослідження.
Що потрібно знати про концепцію? Не поспішайте освіжати знання або отримувати нові. Рекомендуємо спочатку розібратися, що повинен розуміти і вміти фахівець з машинного навчання.
Розуміння основ і навички програмування (Python, R): що таке структури даних і які їхні типи (дерева, стеки, графіки, багатовимірні масиви), що таке алгоритми пошуку і сортування, динамічне програмування, комп'ютерна архітектура; вміння оперувати базовими поняттями обчислюваних і складності. Теоретичні знання потрібно вміти застосовувати на практиці.
Знання теорії ймовірності та статистики: як обчислюються і що відображають медіана, середня і дисперсія; у чому суть теореми Байєса; що таке довірчий інтервал; види розподілів.
У фахівців високого рівня повинні бути компетенції в сфері обробки природної мови і computer vision, а також досвід роботи з bigdata-інструментами (Apache Spark, Hive, Hadoop, MapReduce, HDFS) і різними бібліотеками Python і R.
Спектр спеціальностей, які займаються машинним навчанням, не обмежується ML-інженерами. До цього списку також входять:
Data Scientists – фахівці в інтерпретації даних, що мають навички програмування та математичного моделювання. Вони можуть конструювати алгоритми машинного навчання і нові моделі даних, а також працювати з ними.
Data Analysts, які просівають дані та намагаються встановити, про що каже інформація, які існують числові закономірності та які рішення можна прийняти на основі цих висновків. Також вони візуалізують дані.
Data Engineers, чиє основне завдання – підготовка баз даних (серед іншого – зведення розрізнених джерел даних в одну базу і уніфікацію форматів).
З чого потрібно почати? Перш за все вам потрібна теоретична база, підкріплена реальними прикладами.
Кращий онлайн-курс з машинного навчання для новачків створив Ендрю Ин, експерт у галузі штучного інтелекту, професор Стенфорда, кофаундер Coursera і кофаундер Google Brain. Після цього радимо звернути увагу на спеціалізацію з Deep Learning (глибинні навчання) того ж автора. Книги теж будуть корисні. Наприклад, «Глибоке навчання на Python» Франсуа Шоллє і Think Stats: Probability and Statistics for Programmers. Зверніть увагу – щоб розуміти зміст більшості книг і курсів, вам знадобиться гарна англійська (не нижче Intermediate).
Але для того, щоб розвинути компетенції в галузі машинного навчання і знайти роботу, недостатньо проходить онлайн-курси, відвідувати професійні конференції і читати статті (хоча без цього не обійтися). Головне – практика. Візьміть участь у змаганні на платформі Kaggle або спробуйте створити свій проект на основі даних у відкритому доступі. Навіть якщо ніякого подальшого розвитку цей проект не отримає, у вас буде кейс, про який можна розповісти на співбесіді.
Щоб не створювати проект поодинці та попрацювати в команді, намагайтеся влитися в ком'юніті. Приходьте на мітапи і лекції, беріть участь у хакатонах (до речі, ось і кейс!), приєднуйтесь до спільнот на Facebook.
Як підготуватися до співбесіди? Співбесіди у великих технологічних компаніях часто будуються за однією схемою, а маленькі стартапи також поступово переймають цю модель. Тому ще до job interview здобувач може приблизно уявити, до чого готуватися.
Найм зазвичай проходить у 3–4 етапи і включає співбесіду з HR-фахівцем, безпосереднім керівником та/або топ-менеджерами компанії, а також виконання тестового завдання. У київському офісі Verbit.ai, який зараз у пошуку ML-інженерів, з кандидатом спілкуються впродовж чотирьох етапів. Спочатку претендент на вакансію зустрічається з HR-рекрутером, потім проходить професійне інтерв'ю, потім спілкується з безпосереднім керівником, а на наступному етапі – зі CTO або віце-президентом з технологій.
Які етапи підготовки? Якщо це не tech-гігант, а стартап, вам потрібно розібратися в тому, який продукт випускає компанія, а також прочитати доступну інформацію про неї.
Сформулюйте кілька питань: як організована робота ML-команди, чи займається вона маркуванням даних самостійно, яке середовище розробки використовується.
Освіжіть свої знання в галузі, на якій спеціалізується компанія. Будьте готові вирішити невеликі завдання, пов'язані з обробкою та оцінкою даних, наприклад, визначити клас проблем ML або побудувати модель. Напевно, вам поставлять теоретичні питання – про дерева рішень, хеш-таблиці або бібліотеки. Докладний список питань і відповідей є у блозі Springboard.
Якщо у вас відеоінтерв'ю, заздалегідь переконаєтеся, що навушники, мікрофон і камера працюють, робіть дзвінок у місці зі стабільним інтернетом. Технічні неполадки відволікатимуть і вас, і представників компанії.
Не соромтеся проявити себе. Пам'ятайте, що на співбесіді ви продаєте навички компанії, і це той випадок, коли зайва скромність може вам нашкодити. Детально розповідайте про релевантний досвід – складіть список своїх досягнень і фейлів заздалегідь, щоб не розгубитися, відповідаючи на питання про успішні кейси або невдачі.
Стати фахівцем з машинного навчання може і людина, яка раніше не мала досвіду в IT. Але тоді на підготовку піде набагато більше часу. Отримання нової спеціальності буде проблематично поєднувати з роботою.
Перш ніж приступати, зважте всі плюси і мінуси для себе і складіть алгоритм дій. Будьте терплячі – не чекайте швидких результатів. Вірте у свій успіх і докладайте зусиль для досягнення цілей. Згодом все вийде.
Автори матеріалів OpenMind, як правило, зовнішні експерти та дописувачі, що готують матеріал на замовлення редакції. Але їхня точка зору може не збігатися з точкою зору редакції Mind.
Водночас редакція несе відповідальність за достовірність та відповідність викладеної думки реальності, зокрема, здійснює факт-чекінг наведених тверджень та первинну перевірку автора.
Mind також ретельно вибирає теми та колонки, що можуть бути опубліковані в розділі OpenMind, та опрацьовує їх згідно зі стандартами редакції.