Machine Learning Engineer: хто такий, чим займається та як ним стати
Досвід фахівців зі сфери та поради для новачків
Глобальна мета Machine Learning ― навчити машину розв'язувати різні складні завдання, полегшуючи та водночас покращуючи роботу людини. За допомогою Machine Learning можна передбачувати, діагностувати, викривати, розпізнавати та ще багато чого.
Про те, як працює сфера, чим займаються інженери машинного навчання і в яких сферах застосовують свої знання, ми поспілкувалися з лекторами курсу «Основи машинного навчання» Кристиною Ісаковою, Data Scientist у Holidu, та Дмитром Хмеленком, Software Engineer у Shopify.
Досьє:
- Кристина має понад 6 років досвіду роботи в Data Science і Machine Learning.
- Найбільше в роботі подобається співпраця з розумними та прогресивними людьми з усього світу та можливість постійно вивчати нові технології.
- Пишається кейсом розробки системи моніторингу та пошуку аномалій у псевдореальному часі. Цей продукт починався як проста система моніторингу для in-house використання командою та виріс до глобального інструменту компанії з різними метриками та рівнями сповіщення.
Досьє:
- Дмитро має 10+ років досвіду в розробці та 4 офіційні сертифікації від AWS.
- Найбільше в роботі подобається можливість креативити. Любить створювати та будувати нове, що дозволяє повною мірою реалізовувати потенціал.
- Пишається кейсом розробки системи оцінки користувачів за їхню публічну активність в стрічці новин продукту (алгоритми на основі ML розпізнавали потенційно неприйнятний контент) ― це дозволило зменшити кількість спаму.
Хто такий Machine Learning Engineer і чим він займається?
Кристина: Задача інженера машинного навчання ― розв'язати бізнес-проблему за допомогою алгоритмів машинного чи глибокого навчання. Інженер займається як розробкою, так і реалізацією (deploying) моделей, працює разом із бізнес-командами.
Дмитро: Інженер машинного навчання працює з обʼємами даних. Він використовує їх надалі для побудови інструментів, щоб автоматично ухвалювати рішення.
В яких сферах застосовують машинне навчання?
- К: Технології Machine Learning мають дуже широке застосування. Наведу кілька прикладів:
- в медицині ― технології image processing дозволяють проводити моніторинги й скринінги, діагностувати захворювання на ранніх стадіях;
- в ритейлі чи стримінгових сервісах ― рекомендаційні системи пропонують товари та послуги за допомогою алгоритмів машинного навчання, що значно підвищує Revenue компаній;
- в пристроях ― вмонтовані віртуальні асистенти;
- в бізнесі ― прогнозування (продажів, трафіку на сайті) допомагає планувати, ставити цілі компанії, ухвалювати рішення;
- в системах захисту ― технології face or fingerprint recognition допомагають викривати злодіїв і правопорушників;
- в перекладачах ― технології глибокого навчання дозволяють значно покращити якість перекладу;
- в побуті ― генерація зображень, текстів, музики.
На якому етапі розвитку ІТ-компанії виникає потреба у фічах на основі Machine Learning? Чи всім компаніям потрібні ці технології?
К: На будь-якому етапі можна наймати спеціаліста роботи з даними та алгоритмами машинного навчання. Навіть із невеликою кількістю даних можна починати будувати моделі, які працюватимуть на користь компанії та допомагатимуть в ухваленні рішень. Плюс можна використовувати відкриті дані, аналізувати продукт та створювати нові ідеї для покращення й оптимізації.
Д: З тим обсягом даних, що зараз існує, виникає потреба якось їх використовувати. Замість того, щоб, як у минулому, вручну аналізувати ці дані та ухвалювати рішення, це можна автоматизувати за допомогою машинного навчання. Для компаній це можливість оптимізувати витрати, бо аналіз даних і ухвалення рішень відбуватиметься автоматично.
З якими фахівцями Machine Learning Engineer взаємодіє найбільше?
К і Д: Бекенд-девелопери, інженери, аналітики, а також бізнес-стейкхолдери.
З чого складається скілсет інженера з машинного навчання?
- К: База ― це Python. Також до must have можна віднести:
- бібліотеки scikit-learn, pandas, NumPy, Matplotlib, Plotly, а також різні бібліотеки з реалізованими алгоритмами машинного навчання;
- навичку роботи з хмарними сервісами на кшталт AWS / Google Cloud / Microsoft Azure;
- знання статистики, лінійної алгебри, методів оптимізації, математичного аналізу.
З яких галузей найпростіше свічнутися в машинне навчання?
К: На мою думку, найпростіше це зробити аналітикам, дата-саєнтистам і бекенд-інженерам.
З чого починати світчерам з аналітики та розробки, щоби перейти в машинне навчання?
К: Один із гарних і дієвих способів ― знайти собі ментора. Наприклад, Women Who Code мають менторські програми для жінок. Можна подати заявку на роль ментора або менті, і вони вас поєднають із відповідною кандидаткою.
Мені колись сподобалися безкоштовні курси з машинного навчання на Udacity. Там гарно пояснювали матеріал і завжди були мініквізи наприкінці кожної теми, аби себе перевірити.
Також можу порекомендувати такі ресурси:
- Analytics Vidhya ― потужний сайт для аналітиків, саєнтистів та ML-інженерів
- TDS
- Machine Learning Mastery
І, звичайно, можу порадити наш курс «Основи машинного навчання». На ньому ми розповідатимемо про все, що за наявності бажання можна знайти та вивчити самостійно. Але звичайно, весь матеріал подається через призму нашого з Дімою робочого досвіду, ми даємо багато підказок та порад, які ми самі хотіли б отримати на старті.
А з чого почати новачкам, які взагалі ніколи не працювали в ІТ?
К: Можна почати з чогось зовсім простого ― наприклад, SQL. Це фактично друга мова дата-саєнтистів та ML-інженерів. SQL дозволяє вам брати дані з різних таблиць, поєднуючи їх та виконуючи різні агрегації.
Другим кроком я б радила взяти якийсь простий базовий курс із Python.
Далі можна, наприклад, дивитися на різні моделі машинного навчання та на те, які задачі вони розв'язують. Можна почати з black box, тобто розуміти, що подається на вхід, що отримаємо на виході, та взагалі яку проблему наразі розв'язуємо (прогнозуємо, кластеризуємо). А далі вже поглиблюватися та вивчати, як саме працює модель.
Зазвичай я раджу обрати одну галузь, яка є найцікавішою особисто для вас, та шукати й розв’язувати різні задачі з цієї галузі. Наприклад, ви лінгвіст, добре знаєте рідну мову та ще одну-дві іноземних. Чи цікаво вам, як технології сьогодні перекладають чи навіть пишуть власні тексти? Якщо так, то сфера NLP (natural language processing) повинна вас зачепити.
Яку пораду ви можете дати тим, хто починає вивчати тему?
Д: Я б рекомендував повторити деякі теми з математики, щоби було розуміння, як машинне навчання працює. Наприклад, як працювати з матрицями, що таке похідна і градієнт ― це основи. Без них, звичайно, можна почати, але з часом буде нерозуміння деяких механізмів.
Також мова програмування Python необхідна. Її знання потрібне на базовому рівні.
К: Починайте з того, що у вас є. У вас є друзі дата-саєнтисти чи інженери? Попитайте, як виглядає їхній робочий день. У вас є вдома комп'ютер та інтернет? Подивіться безкоштовні ресурси, які ми назвали.
Не намагайтесь охопити відразу все. Навпаки, звикайте до відчуття, що ваших знань завжди буде замало. Навчатися доведеться постійно, адже навчання ― це частина професії.
Дайте собі час, не кидайте навчання після першої невдачі. The skill it takes to create!