Что ищут рекрутеры в портфолио специалистов по машинному обучению?
Делиться

Портфолио по машинному обучению — это новое резюме, заменяющее собой реальный опыт работы.
Но прямо сейчас ваши проекты либо бесполезны и не приносят результата, либо вы просто не воспринимаете их всерьез, и именно поэтому вас не приглашают на собеседования.
В этой статье я подробно расскажу о типах проектов, которые действительно востребованы ведущими компаниями, чтобы вы могли перестать отправлять бесперспективные заявки и начать назначать собеседования.
Давайте превратим ваше портфолио в магнит для приглашений на собеседования, каким оно и должно быть.
3-5 простых проектов
Абсолютный базовый уровень для вашего портфолио — 3–5 «простых» или «легких» проектов.
Это не обязательно повлияет на ваши шансы получить работу, но придаст вашему портфолио первоначальный вес.
Рассматривайте эти простые упражнения как «разминку» в спортзале. Это не тяжёлая атлетика, которая серьёзно наращивает мышечную массу, но они закладывают фундаментальные основы техники, обеспечивают последовательность и дисциплину, необходимые перед тем, как приступить к основной задаче.
Главная цель этих проектов — дать вам возможность творить и создавать без пошагового руководства, а также по-настоящему научить вас творчески мыслить о том, как решать проблемы.
Речь также идет о «имидже» и обеспечении того, чтобы ваше резюме, профили на GitHub и LinkedIn выглядели активными и содержали достаточно информации.
Однако на создание таких небольших проектов следует потратить около месяца, убедившись, что они достаточно качественные и не созданы наспех с помощью ChatGPT.
Цель состоит в создании широкого спектра проектов, каждый из которых будет использовать различные инструменты, наборы данных и алгоритмы машинного обучения.
Если вам нужна порция вдохновения, загляните в этот репозиторий, который я создал почти 5 лет назад. В нём собраны примеры подобных простых проектов, когда я пытался устроиться на свою первую работу.
GitHub – egorhowell/Data-Science-Projects: Подборка небольших проектов в области анализа данных.
Подборка небольших проектов в области анализа данных. Внесите свой вклад в разработку проекта egorhowell/Data-Science-Projects, создав репозиторий на github.com.
Могу сказать одно: по сегодняшним меркам эти проекты, вероятно, не соответствуют уровню, поскольку конкуренция в этой области становится все более ожесточенной.
Итак, ниже приведён список ключевых целей, которым должны соответствовать ваши простые проекты, чтобы быть эффективными:
- Разнообразие алгоритмов — постарайтесь включить градиентный бустинг деревьев , нейронные сети и алгоритмы кластеризации, такие как K-средние и DBSCAN. в ваших проектах.
- Новые данные — Гораздо лучше получить более сложный и реалистичный набор данных, отражающий данные, с которыми вы столкнетесь в реальном мире. Это произведет еще большее впечатление на работодателей и интервьюеров, напрямую продемонстрировав ваши навыки в области анализа данных и машинного обучения.
- Личный подход — Чтобы определить, на какие темы следует ориентироваться в ваших проектах, лучше всего начать с ответов на конкретные вопросы, ответы на которые, по вашему мнению, будет интересно получить из данных. Личный подход всегда лучше.
Проект «под ключ»
Если вы хотите работать в области машинного обучения, вам необходимо уметь развертывать свой алгоритм.
«Модель в блокноте Jupyter не имеет никакой коммерческой ценности».
Вы, вероятно, слышали эту фразу от меня и других людей много раз.
Наличие самой совершенной, самой современной и навороченной модели трансформатора абсолютно ничего не значит, если она не используется для принятия реальных решений.
Компании и менеджеры по найму это знают, и, честно говоря, их волнует только то, приносит ли ваша бизнес-модель им прибыль или экономию, и растет ли их реальная прибыль.
Это действительно настолько упрощенный подход.
Итак, вы хотите продемонстрировать потенциальным работодателям, что умеете создавать и внедрять алгоритмы от начала до конца, представив это в своем портфолио.
В идеале ваш проект должен включать следующее:
- Сбор и хранение данных.
- Предварительная обработка данных.
- Обучение и оценка моделей.
- Развертывание модели (через API, веб-приложение, VPS и т. д.).
- Анализ и представление ваших результатов.
Этот проект часто оказывается самым сложным для начинающих, поскольку требует повышения квалификации и изучения основ разработки программного обеспечения.
Вот некоторые вещи, которые вам нужно будет изучить:
- Контейнеризация с помощью таких инструментов, как Docker и Kubernetes .
- Конвейеры и платформы CI/CD, такие как CircleCI .
- Система контроля версий с использованием Git .
- Качественно написанный код с модульными тестами , проверкой синтаксиса , форматированием и строгой типизацией .
- Облачные платформы, такие как AWS , GCP и Azure .
- Программы для работы с базами данных, такие как SupaBase .
- Инструменты для оркестрации рабочих процессов, такие как Airflow , Argo и Metaflow .
- А также можно поэкспериментировать с инструментами отслеживания, такими как MLflow или Weights & Biases .
Чего я не хочу, так это чтобы вы испугались и растерялись от этого списка.
Начните с малого и осваивайте основы по ходу дела; вам, конечно, не понадобится использовать всё, что я только что упомянул.
И, как всегда, постарайтесь сделать всё максимально личным; это поможет вам сохранить мотивацию, и это гораздо более убедительный аргумент на собеседовании.
Если вам нужен реальный пример, посмотрите одно из моих предыдущих видео на YouTube, где я подробно рассказываю о полном проекте, который я создал для прогнозирования цен на акции и последующей оптимизации моего портфеля.
Научно-ориентированный проект
Я часто рекомендую людям добавить в свое портфолио элемент исследовательской работы.
Один из методов — повторное использование интересующей их исследовательской работы.
В процессе вы многому научитесь:
- Понимать сложную математику, связанную с передовыми моделями.
- Разрабатывайте сложные модели с нуля или используя простые библиотеки.
- Мыслить творчески и применять собственные знания для создания новых идей.
- Улучшите свое понимание современных тенденций в этой области и того, над чем работают ведущие исследователи.
И самое приятное, что большинство, буквально 99%, кандидатов этого не делают, поэтому вы мгновенно выделитесь из толпы.
Некоторые полезные сайты для поиска статей:
- Актуальные статьи — Huggingface
- Статьи недели ML
- ArXiv
Переработать статью — очень сложная задача. Я пытался несколько раз в прошлом, и мне так и не удалось добиться 100% успеха, но я многому научился в процессе.
Еще один способ включить исследования в свое портфолио — это чтение и анализ научных статей, будь то написание статей в интернете или участие в научном кружке.
Последний подход я внедрил в своей предыдущей компании, и он оказался полезным. Я представил ряд докладов, например:
- AlphaTensor — Открытие более быстрых алгоритмов умножения матриц с помощью обучения с подкреплением
- Grokking: Обобщение, выходящее за рамки переобучения на небольших алгоритмических наборах данных.
- Meta's Cicero — Игра на уровне человека в игре «Дипломатия» за счет сочетания языковых моделей со стратегическим мышлением.
- Нейронные сети — это деревья решений.
Это научило меня переводить некоторые из самых сложных технических тем современности в понятную часовую презентацию.
Это навык, который очень востребован компаниями, поскольку многие специалисты в этой области им не обладают.
Если в вашей компании сейчас нет возможности создать что-то подобное, существует множество групп в Discord и других социальных сетях.
Я бы порекомендовал группу в Discord под ником Янника Килчера. Он исследователь и инженер в области машинного обучения, который создает видеоролики на YouTube, где разбирает научные статьи.
Пишите технические статьи
Большинство людей считают, что их статьи должны быть «новаторскими».
А что, если я скажу вам, что это всего лишь отговорка, и вашему блогу не обязательно быть уникальным, чтобы получить работу?
Если вы посмотрите мои публикации, то увидите, что большинство из них посвящены фундаментальным концепциям статистики, анализа данных и машинного обучения.
На сегодняшний день я написал более 150 технических статей и более 60 статей с советами по вопросам карьеры.
Изначально я создавал их исключительно для себя, чтобы лучше узнать эту область; мне было все равно, понравятся они другим или нет, поскольку они предназначались только для меня.
Вам тоже следует придерживаться такого подхода.
Начните с того, чтобы задокументировать то, что вы сейчас изучаете или хотите изучить. Не нужно ничего усложнять.
Ведение блога приносит множество преимуществ для вашей карьеры и расширяет ваши возможности:
- Закрепляет понимание концепций.
- Помогает мыслить и развивать коммуникативные навыки.
- Проявляет инициативность и интерес к данной области.
- Это буквально поможет вам получить работу и приглашение на собеседование. Со мной это случилось!
Ваш блог — это источник пассивного дохода для вашей карьеры. Чем раньше вы в него инвестируете, тем больше будет отдача.
Я рекомендую вам начать вести блог здесь, на Towards Data Science, поскольку он очень прост в использовании, имеет большое сообщество специалистов по анализу данных и уже обладает готовой аудиторией.
Существуют и другие, более ориентированные на разработчиков платформы, такие как Hashnode , или вы даже можете вести блог на собственном веб-сайте, используя такие платформы, как WordPress или Ghost .
Вы даже можете создать свой собственный блог с нуля, используя HTML, CSS и JavaScript!
Если вы хотите узнать больше, у меня есть целая статья о том, как начать и вести технический блог, с которой вы можете ознакомиться ниже:
Источник: towardsdatascience.com























