Data Science Pet Projects. FAQ |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-08-14 07:17
Меня зовут Клоков Алексей, сегодня поговорим о пет-проектах по анализу данных. Идея написать эту статью родилась после многочисленных вопросов о личных проектах в сообществе Open Data Science (ODS). Это моя третья статья на Хабре, до этого делал разбор алгоритма SVM и рассказывал о крутом NLP курсе от ребят из DeepPavlov. Итак, дадим определение пет-проекта и разберем частые вопросы:
Data science pet project – это внерабочая активность, целью которой является решение некоторой задачи с помощью обработки данных, улучшающая ваши профессиональные навыки
А еще в этой статье вы найдете идеи для новых петов и полезный код. Если остались вопросы – давайте обсудим в комментариях. Если вы хотите поделиться интересной историей про ваш пет – пишите в комментарии, постараюсь добавить в соответствующий раздел этой статьи. Приятного чтения! 1. Пет-проектами стоит заниматься, чтобы
2. Этапы разработки проекта
3. Поиск темы проекта и данных для анализа В пет-проектах по анализу данных тема неразрывно связана с данными. Эти два объекта (тема и данные) редко лежат вместе “на блюдечке с голубой каемочкой”. На мой взгляд, для успешного самостоятельного поиска необходимо несколько раз повторить следующую процедуру: Сначала необходимо зафиксировать один из двух объектов: тему или данные. После, на основе зафиксированного объекта, найти второй объект Сбор данных может принимать разный вид, например:
Поиск темы на основе данных может представлять такие активности, как:
Примеры 1 и 2 демонстрируют фиксирование темы, а после — поиска данных. Примеры 3 и 4 демонстрируют фиксирование данных, а после — поиска темы.
__поиск данных для примера 1
__поиск данных для примера 2
__поиск темы для примера 3
__поиск темы для примера 4
4. Где найти вычислительные ресурсы Если вы "сильный и независимый датасаентист" со своей GPU-картой и 32Гб RAM, то этот раздел не для вас. Но тем, кто не имеет хорошей вычислительной машины, не стоит отчаиваться:
5. Минимальный прод Если модели построены, то хочется начать ими пользоваться через удобный интерфейс и поделиться созданным продуктом с другими — демонстрация работы вашего проекта очень важна. Огонь, если вы можете показать демку в любой момент, например, другу в лифте или техкоманде на собесе. В идеале рекомендуется довести выкатку в «прод» до приложения, работающего 24/7. Приведу некоторые примеры инструментов:
Преимущество Streamlit/Gradio заключается в многофункциональном UI и бесплатном хостинге от авторов библиотеки или Huggingface. А самый простой и быстрый путь, на мой взгляд, это telegram bot. Библиотека telebot предоставляет очень удобное API для программирования действий бота. Далее приведу python-код, который при получении текстового сообщения пользователя отправляет в чат температуру видеокарт или ядер процессора компьютера, на котором он запущен. Этот шаблон легко переделать под ваши нужды, пользуйтесь и передавайте другим: import os import psutil #pip install psutil import telebot #pip install pyTelegramBotAPI token = '___your___tg_bot___token___' bot = telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, 'Напиши: gpu или cpu') @bot.message_handler(content_types=['text']) def send_text(message): action_function(message) def action_function(message): if message.text.lower() == 'gpu': comand = !nvidia-settings -q GPUCoreTemp output = [str(x).strip() for x in temp if 'gpu:' in x] bot.send_message(message.chat.id, output) elif message.text.lower() == 'cpu': output = str(psutil.sensors_temperatures()['coretemp'][1:]) bot.send_message(message.chat.id, output) else: bot.send_message(message.chat.id, 'unknown command') bot.polling() 6. Как оформить презентабельный вид проекта Рекомендую выложить материалы проекта, которые в будущем могут быть полезны вам и другим людям, в открытый доступ (например, на github) и хорошо задокументировать все наработки и результаты, чтобы:
Оформление репозитория делайте таким, чтобы “было не стыдно показать”. Все описания и инструкции должно быть однозначными, полными, воспроизводимыми. Предлагаю список пунктов (некоторые опциональны), которого старался придерживаться для оформления своих проектов: пример1, пример2.
7. Как и зачем искать коллабораторов Бесспорно, можно работать над проектом и одному. Но задача, на которую вы можете замахнуться, может оказаться огромной, неподъемной для одной пары рук. Каждая подзадача может являться отдельным проектом, может бросать вызов вашей мотивации и отнимать несколько недель размеренной работы — в этом случае вам не обойтись без таких же энтузиастов, как и вы. В команде единомышленников работать над проектом получается продуктивней, веселее и динамичней. Совместное обсуждение проблем и разносторонний подход к поиску решений помогает преодолеть любые трудности. В команде появляется ответственность к дедлайнам, так как работа товарища может зависеть от ваших результатов. Во время работы в команде стараюсь придерживаться правила: Разобрался сам – объясни товарищам Чтобы привлекать коллабораторов, нужно уметь коротко рассказывать о вашем проекте. В этом очень помогает заранее подготовленная речь, презентация и качественное оформление репозитория (см. прошлый раздел). Подход с поиском сокомандников может работать и в другую сторону: если не удается определиться со своим проектом, то почему бы не присоединиться к другому интересному пету? У меня получалось найти единомышленников:
8. Когда проходит ODS pet project хакатон Каждый год, в конце зимы 9. А теперь примеры пет-проектов, истории от участников ODS
Сообщение из чата DL_in_NLP: Вообще я собственными глазами наблюдал, как появился HF (без иронии). Дело было на EMNLP 2018 в Брюсселе. В чатике конференции то ли Вулф, то ли ещё кто-то, не помню уже, написали что-то вроде "ребята, мы хотим по пиву, а потом есть идеи покодить вечерком, кто с нами?". "Покодить вечерком" – это под впечатлением от доклада гугла с презентацией BERT на этой же конференции попробовать переписать его на PT. Ребята пыхтели пол-ночи и потом ещё пол-дня и появился pytorch-pretrained-bert. Ну а дальше всем известно)
Юрий сначала работал над барометром тональности новостей о криптовалютах, это был первый ML-проект в стартапе. Затем проект превратился в командный пет в рамках курса одс по MLOps. В хабр-статье yorko рассказывает как про технические, так и про организационные аспекты командной работы над пет-проектом.
Летом 2020 в канале петпроетов ods рассказывал о создании ML-агента для игры surviv.io на стыке CV и RL алгоритмов. Тогда я обещал поделиться наработками с сообществом, как только что-то годное получится. Кажется, такой день настал осенью 2021 года. Xочу рассказать о первом релизе нашего ML агента и дать возможность любому человеку запустить нашего бота и понаблюдать за его поведением. Что зарелизили: ML-бот, который умеет передвигаться, основываясь на входящем кадре-картинке и на векторе-состоянии инвентаря. Вот репозиторий с подробными инструкциями и описанием проекта. Зимой 2022 года поучаствовал в ODS pet proj хакатоне, смог найти классных единомышленников, с которыми провели ресерч и сделали нейронный энвайрмент, в котором обучили RL агента сближаться с предметами в этой же игре. Вот репозиторий проекта с красивыми гифками.
Мне мой небольшой пет помог (как мне кажется) устроиться на первую работу. После неудач в прохождении собесов на ML позиции, я решила сделать упор на изучение CV но через pet project. Взять интересную тему и учить только то что понадобиться для его выполнения. В итоге на практике получилось прокачаться лучше чем только по статьям и курсам. А во вторых с пет проджектом на собесах меня больше спрашивали про пет проджект (другого опыта у меня не было) и меньше по техническим вопросам. Я радостно рассказывала как косячила и исправляла свои ошибки, а интервьюеры радостно слушали. У меня был пет про классификацию птичек по фотографиям, обёрнутый в телеграмм бот. Он получился довольно всратый и я его забросила как только нашла работу. Но по хорошему надо вернуться и переделать.
Два года делала ГИС проектики в формате хобби, потом оформила в блог на медиуме и стала всем пихать. Люди действительно на них смотрели, но я отметила, что они запоминали не техническую часть, а тематическую, и вот эти темы оказывались кому-то близкими. Так было несколько раз. Когда подавалась на текущую работу, тоже этот блог все показала, и думаю это сильно помогло — коллеги обсуждали мои проекты между собой и со мной. Оказалось, что несколько из моих проектов совпадают с тем, чем компания занимается. Описание проекта в medium-статье
Не был никогда в позиции джуна, который ищет работу, как то само срослось, но в целом пет-проекты это хороший способ систематизировать определенные знания у себя в голове и при этом пошарить опыт, авось кому и поможет. При этом любой результат будет полезен — отреспектуют, значит все ок, покритикуют — еще лучше, ты переосмыслишь свой подход, доработаешь и на реальном проекте будет сильно проще. Со всех сторон профит. Например, когда экспериментировал с подходами к инференсу сеток на CPU написал вот эту статью и получил свои первые плюсики на хабре.
В октябре 2021 г. я закончил обучение в онлайн-школе по направлению data science. Уже тогда я четко понимал, что мне нужно хорошее портфолио проектов, чтобы претендовать на позицию джуна. В комьюнити ODS было свое направление по пет-проектам для начинающих специалистов, но идеи не находили отклика. Осенью я поучаствовал в хакатоне Райфайзен банк по предсказанию цен на недвижимость. Участвовал соло, вошел в топ-50, получил хороший опыт и проект в портфолио. Посмотрел на вакансии банка и увидел привлекательную позицию quantitive research analyst, на которой нужно было создавать рекомендательный сервис на основе сделок клиентов. Так и родилась идея пет-проекта. С 25 лет я активно инвестировал и тема была для меня близка. Для реализации нужно было собрать два датасета: один из сделок пользователей, второй из фундаментальных показателей ценных бумаг и фичей на их основе. Первый датасет синтетический. Найти приватные данные сделок пользователей сложно, я воспользовался статьей Т-Ж о портрете розничного инвестора в России и составил выборку из рандомных пользователей, которые раз в неделю совершали сделки по бумагам S&P-500 и топ-10 из индекса биржи SPB. Кол-во сделок также было рандомно, но ограничивалось целым числом в диапазоне от 1 до 7 в неделю. Второй датасет из акций S&P-500 собрать оказалось гораздо проще. Я давно пользовался сервисом finviz для оценки акций и спарсить его с помощью паука оказалось несложно. Данные из обоих датасетов я сохранял в Mongo DB. После этого я определил основные метрики, построил основные рекомендательные модели (ALS, Item-Item recommender, Cosine Recommender, Tf-idf) и оценил метрики по бейзлайнам. Вся работа заняла примерно 1.5-2 месяца. Закончил я примерно к середине февраля. А через неделю наша жизнь изменилась от слова совсем. Поэтому словил 2 фриза от компаний, в которые подавал свой пет-проект. В середине марта я прошел отбор на позицию дата-аналитика. Пет-проект сыграл большую роль на этапе отбора: будущий начальник был приятно удивлен, что я знаком с Mongo, а опыт участия в хакатонах помог с решением тестового задания. В планах потренировать на пет-проекте навыки MLOps, обогатить его данными из других источников, переделать синтетический датасет со сделками юзеров. Сейчас проект на паузе из-за высокой нагрузке на работе. Такие проекты помогают начинающим специалистам систематизировать свои навыки и обкатать их на реальных задачах. К тому же на интервью не нужно выдумывать повод для разговора, достаточно обсудить свой оригинальный пет-проект.
5 лет назад делал пет-проект, который много раз помогал на собесах. Описание проекта в хабр-статье
Два года пилил пет-проект про GAN/Deepfake, в процессе хорошо прокачался в в DL, описание проекта в хабр-статье.
Демка. Хочу немного рассказать о нашем стартапчике PTF-Lab (previously known as Punch To Face; currently known as Path To Future lab). Наше основное направление это virtual advertising и AR в спортивных и киберспортивных трансляциях. У PTF было очень много pivot'ов, тупок, взлётов, падений, и так далее. Начали мы проект в далёком 2014 году вместе с моим другом детства. Наша история, очень кратко: 1) 2012-2013: а как бы поприкольнее снимать и показывать спортивные мероприятия? (с) мой друг детства и партнёр в ПТФ. Комментарии на Хабре Лучшие публикации за день Источник: m.vk.com Комментарии: |
|