Machine Learning инженер: что/где/как изучать, чтобы въехать |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2024-02-03 15:56 Привет, хаброчеловек! В этой статье мы обсудим путь среднестатистического обывателя в Machine Learning, а именно — как стать ML-инженером. Поговорим о специфике области, какие требуются знания и скиллы, что нужно делать и с чего начать. Перед началом пару годных ресурсов в тему:
Поехали! Вообще, для желающих погрузиться в ML у меня есть канал с массой годноты, welcome — ai_machinelearning_big_data. И вот список каналов с массой реальных кейсов, ответов на вопросы ML и не только. Навигация Кто такой ML-инженер?
Как стать ML-инженером?
Кто такой ML-инженер? Перед обсуждением пути в ML-инженеры было бы неплохо описать, а кто же это такой, и в чём суть профессии. Разница между Machine Learning Engineer и Data Scientist Вот 4 основных вида машинного обучения: классическое, обучение с подкреплением, ансамбли, нейросети. И всевозможные подвиды этих 4 с названиями известных алгоритмов. ![]() В чём разница между 4 основными видами машинного обучения: ![]() А это детальное рассмотрение одного из 4 основных видов ML — классического обучения: ![]() Сперва определимся в чем разница между Machine Learning Engineer и Data Scientist. Если Data Scientist может больше работать над моделированием и сосредотачивается на тонкостях алгоритмов, то Machine Learning Engineer более часто работает над развертыванием той же модели в производственной среде. Или же ML-инженер работает над автоматизацией процесса обучения, мониторинга, сбора признаков. Конечно, в небольших компаниях граница может размываться, и все эти обязанности может выполнять один специалист. Однако с ростом организации узкая специализация становится неизбежной, поэтому задачи распределяются между дата-сайнтистом и ML-инженером. В общем, одной из основных задач ML-специалиста является развёртывание моделей в производство для постоянной работы. Плюс поддержание работоспособности модели, оптимизация, повышение производительности. По сути, работа ML-инженера больше похожа на работу разраба ПО, чем на работу типичного дата-сайнтиста. Он должен писать производительный, покрытый тестами код, с которым могли бы работать другие люди. И если используемая модель перестаёт работать, то её возвращением к жизни опять же занимается ML-инженер. Если описать в парадигме «знать-уметь», то ML-инженер:
Чем занимается ML-инженер Жизненный цикл модели машинного обучения ![]() Как мы выяснили, Machine Learning Engineer гораздо чаще занимается внедрением модели в продакшен. Именно этим он и отличается от специалистов по обработке/анализу данных. На первый взгляд может показаться, что ML-инженер занимается только эксплуатацией моделей машинного обучения. Конечно, это не совсем так, инженер по машинному обучению может работать над оптимизацией алгоритмов машинного обучения, повышением их производительности, полностью перестраивать их. Некоторые (чаще маленькие) компании предпочитают всестороннего Data Scientist, который способен как работать с алгоритмами машинного обучения так и внедрять эти решения в продакшен. Но чем компания больше, с большей вероятностью предпочтут разделить эти две роли. Одному человеку может быть сложно сделать все от начала до конца, поэтому наличие двух специалистов, один из которых занимается построением модели, а другой — ее развертыванием, часто является более эффективным подходом. Примеры простых задач, с которыми может сталкиваться ML-инженер:
А вот ниже отдельные области, где внедрение ML-моделей идёт быстрыми темпами и не планирует останавливаться — это медицина, георазведка, финансовая/банковская сфера, поисковые системы, сфера рекламы/анализа покупателей. Подробное описание задач из этих областей ниже. Задачи медицинской диагностики Объект: пациент в определённый момент времени. Классы: диагноз или способ лечения или исход заболевания. Примеры признаков:
Особенности задачи:
Задачи распознавания месторождений Объект: геологический район (рудное поле) Классы: есть или нет полезное ископаемое. Примеры признаков:
Особенности задачи:
Задача кредитного скоринга Объект: заявка на выдачу банком кредита. Классы: выдавать кредит или нет Примеры признаков:
Особенности задачи:
Задача предсказания оттока клиентов (на примере мобильного оператора) Объект: абонент в определённый момент времени. Классы: уйдёт или не уйдёт в следующем месяце. Примеры признаков:
Особенности задачи:
Задачи биометрической идентификации личности
Особенности задач:
Задача ранжирования поисковой выдачи Объект: короткий текстовый запрос, документ Классы: релевантен или не релевантен, разметка делается людьми асессорами. Примеры количественных признаков:
Особенности задачи:
Что должен уметь ML-инженер Окей, мы выяснили, кто такой ML-инженер, что входит в его обязанности и чем он занимается. Теперь о скиллах и знаниях, которыми он должен обладать, чтобы успешно решать задачи. ML-инженер работает на стыке computer science и data science. Это требует от него знаний основ алгоритмов, структур данных. Нужно уметь писать продуктовый и поддерживаемый код, покрытый тестами. Для ML-инженера важно знание отдельных областей data science для построения эффективных систем, например, знание computer vision или natural language processing. Существует множество инструментов, которые необходимы для работы, в частности, для развёртывания моделей. Это конечно Docker, Flask, MLFlow, Airflow, FastAPI и ещё масса других. Отдельно выделю облачные платформы: AWS, Microsoft Azure. Облачные сервисы сейчас крайне популярны и всё больше компаний, проектов и стартапов разворачивают модели в облаках. А вот так выглядят 25 важнейших инструментов ML-инженера судя по вакансиям: ![]() Чуть подробнее о некоторых инструментах.
И про облака:
Из языков наиболее важными являются Python и C++. Питон, как обычно, для того, чтобы быстро пилить фичи, C++ — для повышения скорости работы модели. C++ постепенно заменяется всеми любимым Rust, поэтому знания раста было бы неплохим бонусом и конкурентным преимуществом. Как стать ML-инженером? Что освоить? Итак, мы обсудили, кто такой ML-инженер, что входит в список его задач, и какие проблемы он решает. Собственно, после описания конечного результата гораздо проще ответить на вопрос «Как стать ML-инженером?» Очевидно, нужно сперва изучить хотя бы 10 инструментов из списка выше:
"Изучить" — подразумевает огромное количество практики, нужно писать код, тестить популярные ML-библиотеки, пощупать реальные проекты с гитхаба, написать пару своих проектов. Как ни крути, аккаунт на гитхабе для многих рекрутёров является важным показателем. Больше практики, только так теория закрепится в голове. Можно опираться на реальные ML-проекты с ютуба, делать их параллельно с автором; вот скажем прогнозирование стоимости домов: ![]() Как подготовиться к собесу? Готовиться к собеседованию лучше, исходя из конкретных секций/частей. Итак, вот что попадается на собесе:
Разберём некоторые пункты чуть подробнее. Базовые вопросы. Чтобы подготовиться, можно использовать это:
Алгоритмическая секция. На собесах любят давать алгоритмы, а значит Leetcode — ваш лучший друг на этапе подготовки. Хабростатья в тему — «Пройти LeetCode за год: roadmap». Разумеется, не нужно проходить весь литкод, достаточно самостоятельно нарешать около 150 средних (medium) задач. Ну и можно штук 30 сложных (hard), для большинства собесов (кроме гугла :] ) этого будет достаточно. Делать упор нужно не на запоминании конкретного решения, а на понимании общих идей, алгоритмов, приёмов. Благо на литкоде есть целый раздел с теорией. Вообще, важно не только уметь правильно/быстро решать алгоритмические задачи; для успешного собеседования стоит вначале выяснить политику оценивания. Должен ли я проверить алгоритм вручную, поправить все баги и только потом запускать — или я могу запускать свой код, сколько хочу, с самого начала? На собеседованиях можно столкнуться с обоими вариантами, лучше узнать это заранее, а не в середине собеса. Помимо литкода для подготовки к алгоритмам можно использовать:
Вопросы по ML теории. Чтобы разобраться в теории машинного обучения, можно использовать эти ресурсы:
Основная теория Machine learning включает в себя:
Разумеется, не стоит детально углубляться в каждый из пунктов, достаточно иметь общее поверхностное представление. Полезные ресурсы для понимания Machine Learning в целом:
FAQ — популярные вопросы/ответы Достаточно ли знаний МатАна и линейной алгебры для карьеры в области машинного обучения? Изучение machine learning на Python. Можно совет? С чего начать изучать глубокое обучение? С чего начать изучение искусственного интеллекта? Machine Learning и Big Data за три дня? Какие есть книги по нейронным сетям и ИИ? А вот они — заветные вакансии в сфере Machine Learning (взято с Хабр Карьеры, здесь). На большинство позиций, правда, берут Middle+, но в отдельные стартапы можно заскочить и джуну. ![]() Список литературы в дополнение к ресурсам выше — если впитать часть информации из этих книг, можно преисполниться в своём познании: ![]() «Машинное обучение. Портфолио реальных проектов» — Алексей Григорьев Автор описывает реалистичные, практичные сценарии машинного обучения, а также предельно понятно раскрывает ключевые концепции. Вы разберете интересные проекты, такие как сервис прогнозирования цен на автомобили с использованием линейной регрессии, сервис прогнозирования оттока клиентов и ещё много других интересных проектов. ![]() «Python и машинное обучение» — Себастьян Рашка Книга для новичков, осваивающих Python и машинное обучение. Издание содержит подробные мануалы даже по таким нюансам, как установка специализированного приложения Jupyter Notebook. ![]() «Создаем нейронную сеть» — Тарик Рашид Здесь много наглядных материалов на тему того, как работают конкретные архитектуры сетей, а еще понятно излагаются базовые принципы, которые закладывались в эту технологию. Вывести их самому, по примерам в открытом доступе, довольно сложно. ![]() «Глубокое обучение. Погружение в мир нейронных сетей» — Николенко С. И. Отличная книга, чтобы узнать о ML в целом. За последние годы она уже стала классикой по ML на русском языке, читается легко — почти как художественная. ![]() «Глубокое обучение» — Ян Гудфеллоу Это хардкор, для тех, кто хочет разобраться в глубинах.. ![]() «Алгоритмы: построение и анализ» — Т. Кормен Тут описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. ![]() «Математические основы машинного обучения и прогнозирования» — Владимир Вьюгин Это пособие рассчитано на студентов и аспирантов и в доступной форме излагает математические основы, необходимые для дальнейшей работы с машинным обучением. Тут раскрываются азы статистической теории машинного обучения, игр с предсказаниями и прогнозирования с применением экспертной стратегии. ![]() «Верховный алгоритм» — Педро Домингос Классика) Педро Домингос рассказывает о Machine Learning и о том, как они используют идеи из различных областей — нейробиологии, физики, статистики, биологии, — чтобы помогать людям решать сложные задачи и упрощать рутину с помощью алгоритмов. ![]() «Крупномасштабное машинное обучение вместе с Python» — Бастиан Шарден, Лука Массарон, Альберто Боскетти Авторы утверждают, что благодаря книге читатель научится самостоятельно строить модели машинного обучения и развертывать крупномасштабные приложения для прогнозирования. Здесь рассказывается, что такое вычислительная парадигма MapReduce и как работать с машинными алгоритмами на платформах Hadoop и Spark на языке Python. Напоследок оставлю вот такую подробную roadmap (жёлтым цветом отмечен необходимый минимум; оригинал). Она не кликабельная, но зато наглядно показывает, что и где прокачивать: ![]() Что ещё можно глянуть по ML:
Источник: habr.com Комментарии: |
|