Чтобы войти в сферу машинного обучения, выполнение стандартных заданий и прохождение простых руководств сравнимо с попыткой победить в гонке Формулы-1 на карте.
Вы сможете двигаться, но не сможете соперничать и уж точно не выиграете.
Анализируя множество портфолио специалистов по машинному обучению и проводя собеседования с десятками кандидатов на реальные позиции в области данных и ML, можно утверждать: те, кого нанимают, создают проекты, выходящие за рамки базовых инструкций.
В этой статье разбираются конкретные типы проектов и подходы, которые действительно приводят к собеседованиям и предложениям о работе.
Они сложны.
Именно поэтому они эффективны.
Воспроизведение научной статьи
Подумайте об этом.
Статья по машинному обучению представляет собой итог нескольких месяцев труда ведущих экспертов в области, изложенный на нескольких страницах.
Объем знаний в таких работах огромен.
Если разобрать, проанализировать и самостоятельно реализовать эти статьи, представьте, сколько полезного можно освоить.
Это похоже на сборку гоночного автомобиля Формулы-1 по чертежам: инструменты могут отличаться от тех, что были у оригинальных инженеров, но понимание каждого элемента позволит разобраться в работе всей системы. Когда собственная версия заработает, уровень понимания гонки достигнет высот, недоступных большинству.
Реализация статьи позволит развить множество навыков:
- Понимание сложной математики, связанной с передовыми моделями.
- Создание продвинутых моделей с использованием кода с нуля или базовых библиотек.
- Развитие творческого мышления и применение собственных знаний к новым концепциям.
Важно, что почти 99% кандидатов не занимаются этим, поэтому такой подход сразу выделит среди остальных.
Однако это непросто, и это подтверждается личным опытом. Но простота сегодня не приведет к трудоустройству.
Процесс реализации статьи заслуживает отдельного материала, но вот ключевые этапы:
- Прочитайте статью. Затем перечитайте ее несколько раз, пока не поймете проблему, которую она решает, алгоритм, данные и значимость результатов — являются ли они неожиданными или предсказуемыми. В зависимости от опыта это может занять время.
- Если какие-то концепции непонятны, изучите их. Это не потеря времени, а заполнение пробелов в знаниях.
- Нарисуйте или запрограммируйте общую архитектуру: входы и выходы, приблизительный дизайн системы и структуру модели ML.
- Начните с самой простой части и добейтесь ее работы.
- Создайте грубый прототип.
- Оптимизируйте и постарайтесь воспроизвести результаты.
Рекомендуемые статьи для реализации:
- Attention Is All You Need
- An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale
- Language Models are Few-Shot Learners
- LoRA: Low-Rank Adaptation of Large Language Models
Эти работы в основном касаются глубокого обучения, но можно выбрать статьи по интересующей области.
Полезные ресурсы для поиска статей:
Решение собственной задачи
«Какие проекты стоит создавать»?
Это второй по популярности вопрос, первый касается внешности.
Дело в том, что многие не осознают: вопрос сформулирован неверно (проект, а не внешность).
Если указать точный проект, на собеседовании не будет истории.
Что говорить?
«Кто-то в интернете посоветовал его сделать»
Это не лучший вариант.
Проект, который выделится, будет личным и мотивирующим для решения. Это интереснее и проявится на собеседовании.
Пример проекта
Приведу пример выдающегося проекта.
Эта история упоминалась ранее, но стоит повторить, чтобы подчеркнуть тип проектов.
В предыдущей компании набирали младшего специалиста по данным для задач операционного исследования.
Выбранный кандидат представил проект, напрямую связанный с ролью и интересующий его.
Интересуясь фэнтези-футболом (NFL), он разработал алгоритм оптимизации для распределения игроков по неделям.
Он пошел дальше, изучив статьи в журналах о других решениях и реализовав некоторые идеи. Видна связь с научными статьями!
Фреймворк для создания
Вот простой подход, чтобы придумать подобный проект.
- Перечислите не менее пяти интересов вне работы.
- Для каждой темы запишите пять вопросов, которые хотели бы решить. Итого 25 идей.
- Подумайте, как машинное обучение поможет ответить на них. Будьте креативны, даже если идея кажется сложной, но избегайте фантастики вроде роботов-собак.
- Выберите наиболее вдохновляющий вопрос. Идеально — тот, что чуть выходит за пределы текущих навыков, чтобы по-настоящему научиться и выйти из зоны комфорта.
Это займет 10 минут, и даст идею проекта для трудоустройства.
Добавление сложности и масштаба
Однако сама идея может не хватить. Проект нуждается в сложности и масштабе.
Это можно продемонстрировать по-разному.
- Развернуть проект полностью с использованием production-кода, облачных систем вроде AWS, контейнеризацией алгоритма через Docker и Kubernetes.
- Применить сложный алгоритм или фреймворк на переднем крае. Изучение научных статей идеально для этого!
- Сделать проект интерактивным для пользователей, например, как веб-приложение.
- Создать набор моделей для решения разных задач.
Вариантов много, легко растеряться.
Начните и учитесь по ходу. Этого достаточно.
Дополнительные идеи
Если по каким-то причинам предыдущие варианты не подходят, хотя они действительно приведут к найму, вот другие предложения по проектам.
- Попросите ИИ предложить проект с подходящим промптом.
- Участвуйте в соревновании на Kaggle, но для выделения нужно хорошо разместиться.
- Используйте базовую модель ИИ для личной задачи.
- Реализуйте алгоритмы машинного обучения с нуля на Numpy или лучше — только на чистом Python.
Если нужно больше деталей, вот конкретные варианты:
- Обучение с подкреплением для Pac-Man или другой игры.
- Создание языковой модели с нуля.
- Модель компьютерного зрения для классификации любых изображений.
- Анализ настроений в соцсетях по конкретной теме.
- Система рекомендаций для любимого приложения.
- Тонкая настройка LLM для специфического случая.
Опять же, идеи общие, чтобы проект стал личным и выделился.