Чтобы пробиться в машинное обучение, недостаточно ограничиваться шаблонными проектами и следовать базовым руководствам
Это всё равно что пытаться выиграть гонку «Формулы-1» на картинге. Вы будете двигаться, но не сможете конкурировать и, конечно, не победите.
Я рассмотрел сотни портфолио специалистов по машинному обучению и провёл собеседования с десятками кандидатов на реальные должности в области анализа данных и машинного обучения. И могу сказать вам следующее: нанимают тех, кто создаёт проекты, выходящие за рамки учебных пособий.
Поэтому в этой статье я разберу конкретные типы проектов и фреймворков, которые действительно помогают получить интервью и предложения о работе.
Они непросты. Но именно поэтому они работают.
Переосмыслите исследовательскую работу
Представьте себе.
Исследовательская работа по машинному обучению — это кульминация нескольких месяцев работы ведущих специалистов в этой области, изложенная на нескольких страницах текста.
Объём знаний в этих работах огромен.
Если вы разберёте, рассмотрите и реализуете эти работы самостоятельно, представьте, сколько вы узнаете.
Это похоже на попытку собрать автомобиль «Формулы-1» по чертежам — у вас могут быть не те инструменты, что у оригинальных инженеров, но, понимая каждый болт и гайку, вы узнаете, как работает вся машина. И когда вы наконец запустите свою версию, вы поймёте гонки на уровне, которого большинство людей никогда не достигнет.
Реализация работы научит вас многим навыкам:
- Способность понимать сложную математику, связанную с передовыми моделями.
- Способность реализовывать сложные модели с помощью кода с нуля или с помощью простых библиотек.
- Способность мыслить творчески и применять свои знания для воплощения новых идей.
И самое главное — большинство, а точнее, почти 99% кандидатов не делают этого, так что вы мгновенно выделитесь.
Однако это непросто, и я могу сказать вам это по собственному опыту. Но лёгкость не поможет вам получить работу в наши дни.
Теперь то, как вы будете реализовывать работу, может стать целым постом, но позвольте мне кратко рассказать вам о ключевых шагах:
- Прочитайте работу. Затем перечитайте её, и ещё раз, и ещё, пока полностью не поймёте, что работа пыталась решить, какой алгоритм использовался, какие данные и почему результаты были значимыми, шокирующими или ожидаемыми. В зависимости от вашего опыта это может занять некоторое время.
- Если вы не понимаете определённых концепций, изучите их. Это не будет пустой тратой времени, поскольку вы активно закрываете пробелы в знаниях, которые у вас есть.
- Набросайте/закодируйте высокоуровневую архитектуру, например, входные и выходные данные, приблизительный дизайн всей системы и структуру модели машинного обучения.
- Начните с реализации простейшей части и добейтесь её работы.
- Создайте грубый рабочий прототип.
- Оптимизируйте и попытайтесь воспроизвести результаты.
Некоторые работы, которые я рекомендую реализовать:
В основном это работы в области глубокого обучения, но вы можете найти работы, относящиеся к области, которую вы хотите изучать.
Некоторые полезные веб-сайты для поиска работ:
Решите свою проблему
«Какие проекты мне следует создать?»
Это второй по распространённости вопрос, который мне задают, первый — как я стал таким красивым!
Дело в том, что большинство людей не понимают, что вопрос задан неверно (вопрос о проекте, а не о красоте).
Если бы я дал вам конкретный проект, в интервью не было бы истории.
Что вы скажете?
«О, какой-то парень из интернета сказал, что я должен это построить»
Не совсем удачный сценарий.
Проект, который выделится, будет глубоко личным для вас, и вы будете мотивированы решить его. Это гораздо лучше и интереснее, и это будет заметно во время интервью.
Пример проекта
Позвольте мне привести вам пример отличного проекта.
Я упоминал об этой истории в предыдущем посте, но повторюсь, чтобы по-настоящему подчеркнуть тип проектов, которые вам следует создавать.
В моей предыдущей компании мы нанимали младшего специалиста по данным для работы над проблемами исследования операций.
Кандидат, которого мы в итоге наняли, имел выдающийся проект, который был напрямую связан с работой и проблемой, которую они были заинтересованы решить.
У него был интерес к фэнтези-футболу (НФЛ), и он разработал собственный алгоритм оптимизации для лучшего распределения своих выборов игроков каждую неделю.
Он даже зашёл дальше, прочитав журнальные статьи о решениях других людей и реализовав некоторые идеи. Смотрите ссылку с исследовательскими работами!
Мой фреймворк
Вот простой фреймворк, которому вы можете следовать, чтобы придумать подобный проект.
- Перечислите не менее пяти вещей, которые вас интересуют вне работы.
- Для каждой темы запишите пять вопросов, на которые вам было бы интересно ответить или решить. Таким образом, у вас будет 25 потенциальных вопросов.
- Теперь подумайте, как машинное обучение может помочь ответить на эти вопросы. Не беспокойтесь, если вопрос кажется совершенно невозможным; будьте креативны. Однако, очевидно, не пытайтесь создать роботов-собак или что-то в этом роде!
- Наконец, выберите один вопрос, который волнует вас больше всего. В идеале выберите что-то, что кажется вам немного недостижимым; так вы действительно узнаете и выйдете из зоны комфорта.
Это упражнение займёт у вас 10 минут, так что у вас нет оправдания не делать этого, и даст вам идею проекта, которая поможет вам устроиться на работу.
Создание сложности и масштаба
Однако одной идеи недостаточно. Для этого проекту нужна некоторая сложность и масштаб.
Это можно показать и выразить по-разному.
- Вы можете развернуть проект от начала до конца, используя производственный код, облачные системы, такие как AWS, и контейнеризацию алгоритма с помощью Docker и Kubernetes.
- Вы можете использовать действительно сложный, современный алгоритм или фреймворк. Чтение исследовательских работ отлично подходит для этого!
- Вы можете сделать так, чтобы пользователи могли взаимодействовать с проектом, например, через онлайн-приложение.
- Вы можете сделать так, чтобы он решал множество задач, например, набор моделей.
Есть много вариантов, и легко растеряться.
Начните и учитесь по ходу дела. Это всё, что вам нужно сделать.
Другие идеи
Если по какой-то причине вам не нравится делать вышеописанное, даже если это действительно поможет вам устроиться на работу, вот список дополнительных идей для проектов.
- Попросите ИИ придумать проект; конечно, дайте ему подходящую подсказку.
- Участвуйте в соревнованиях на Kaggle, но вам нужно занять хорошее место, чтобы выделиться.
- Используйте модель искусственного интеллекта/фундаментальную модель для решения личной проблемы.
- Закодируйте алгоритмы машинного обучения с нуля, используя базовый Numpy или, ещё лучше, только нативный Python.
Теперь, если вы хотите, чтобы я дал вам более подробные указания, вот список более детальных проектов, которые можно попробовать:
- Обучение с подкреплением для Pac-Man или любой другой игры.
- Создание языковой модели с нуля.
- Модель компьютерного зрения для классификации изображений чего угодно.
- Анализ настроений на платформе социальных сетей по определённой теме.
- Система рекомендаций для приложения, которое вам нравится.
- Доработка LLM для конкретного случая использования.
Опять же, я даю общие идеи, потому что они должны быть личными для вас, чтобы действительно выделяться.
После того как вы создали эти проекты, вы готовы начать подавать заявки на работу!
Но чтобы действительно пройти собеседование, вам понадобится надёжное резюме.
Так что же отличает резюме, которое игнорируют, от того, которое замечают?
Узнайте об этом в моём предыдущем посте ниже.
Ещё кое-что!
Я предлагаю индивидуальные коучинговые звонки, где мы можем обсудить всё, что вам нужно — будь то проекты, советы по карьере или просто определение вашего следующего шага. Я здесь, чтобы помочь вам двигаться вперёд!
