Архив недели @Scitator
Понедельник
Hi guys, nice project.
Сергей Колесников, ака @Scitator, ака @catalyst_core Lead.
Занимаюсь ML машинерией последние лет 5-6,
есть coolstory за "if-else" AI, ML, DL, CV, NLP, RecSys, Speech Recognition и RL ♥️
Основной интерес - sequential decision making и lifelong learning.
И, конечно же, спасибо @phystech_en, @yandex, @Reason8ai, @dbrainio и @tinkoff_bank за все многообразие этого экспириенса.
Overall, до ML, а также в процессе ML, успел попробовать себя в
- Backend - not bad,
- Frontend - no, please no,
- Mobile - занятно, но не зашло для меня
- GameDev - топчик, все хочу что-то запилить да еще и с RL
Так что путь к DS был довольно запутан и тернист.
В DS сфере успел и код пописать, и продакшены поподнимать, и процессы повыстраивать.
Было даже пару-тройку успешный соревнований, куча разных курсов - некоторый вел/веду сам -, и немного academic experience и написания статей.
Честно говоря, специального плана у меня нет, поэтому давайте устроим неделю воспоминаний, why not?
Каждый день - один год из "путя датасаентиста".
А в воскресенье - финалочка, ответы на все вопросы, подведение итогов и вот это все.
Всем ♥️
А пока, day 1 - сбор запросов, захните ♥️, что считаете наиболее интересным:
Как вообще начать ML,
что, где, зачем?
Языки DS,
R means RIP?
Competitions
просто гуси, или право имеют?
Indistry
бизнес, деньги, 2 коммита
Academia и философский PhD
"if-else" AI
хоть что-то у тебя работает
Machine Learning
где value, Лебовски?
Deep Learning
Seg2Seg: Unet is all u net
Reinforcement Learning
а ты точно сходишься?
Academia vs Startup vs Corporation
3 стула или opprotunities?
DS mentoring
кнуты и пряники
Personal productivity
гори-гори ясно, чтобы не погасло!
А также все другие темы, о которых я забыл... или забил 😜
Пишите в тред, ставьте ♥️, выбирайте топчик!
Вторник
Day 2 или @dsunderhood все не пишет, why so?
мы релизим, везде,
на работе, в open source, вообще везде
пожалуй, самая топовая часть текущей позиции - возможность поработать со всеми областями ML
NLP - чаты: текстовые, речевые, каждый со своей спецификой 🤓
CV - биометрия, liveness, распознавание всего и вся 🔎
RecSys - таблички и банки = ❤️
RL - да, и такое возможно 😉
в open source круто, что можно сделать реальный impact на всех и сразу, для души
да и просто поделать что-то руками самому 😀
имхо, это иногда крайне важно на руководящей/менеджерской позиции
вспонимаешь с чего начал, понижаешь overestimate по срокам для команд
да и банально - разнообразие после совещаний и митингов
короче говоря, ну неплохо ведь, а?
github.com/catalyst-team/…
минималистично, понятно,
и кастомизируемо, при желании
в общем - самому приятно
мораль - занимайтесь тем, что действительно нравится
и делайте это для души
все остальное приложится
но будем придерживаться плана,
надо бы за 2016 год рассказать
итак, немного свободного времени,
так что погнали,
2016 год (надо ведь закончить 2020м)
я заканчивал бакалавр МФТИ ФАЛТ
дада, Факультет аэромеханики и летательной техники
никакого Data Science или Machine Learning
no hype
вычматы, урматы, теормех и try аэродинамика 💪
зато по классике физхета были очень крутые курсы по теорверу, статистике, оптимизации и остальным нехайповым основам Machine Learning
так как я был lucky enought, чтобы не перенасытиться Data Science на всевозможных курсах физтеха, я изучал все самостоятельно
особо далеко не ходил - просто прошел немного @coursera и NLP cource от DeepHackLab на @phystech_en
- Data Science Specialization от Johns Hopkins University
- Machine Learning Specialization от University of Washington
- Машинное обучение и анализ данных от @yandex, конечно же
занятный факт,
сертификаты все еще работают
coursera.org/account/accomp…
собственно, благодаря этим курсам знаю еще и R
до всех этих ваших нейросеточек он даже был достойным конкурентом python
не рекламы ради, но у Johns Hopkins была действительно крутая специализация, и очень топовый финальный проект - Next word prediction
по биграммам, триграммам, etc предсказать следующее слово, которое введет человек
github.com/Scitator/R-Cap…
только статистика, и никаких transformers :)
scitator.shinyapps.io/NextWordPredic…
PS. оно еще работает 🔥🔥🔥
основным моментом 2016го - был переход в магистратуру на ФИВТ и начало try data science path на @phystech_en и @Reason8ai
как перейти с ФАЛТ на ФИВТ?
все очень просто - берете и звоните зав.каф. понравившейся вам кафедры 😎
знакомитесь, обсуждаете background и хотелки
договаривайтесь о тестовых и прочей бюрократии
собственно да, несмотря на то, что все еще физтех,
проверки на знание матана, статистики и информатики никто не отменял 🤓
самое топовое был конечно же финальный проект с возможным будущим научником - выдали статью 2хлетней давности по иерархической классификации... обуви
надо было побить результаты
срок - 3 недели
2016,
иерархическая классификация обуви
в лучших традициях - с белым фоном.... иногда
2 недели и кучу попробованных sift features based классификаторов спустя, статья все еще не сдавалась
sklearn не помогал, метрики выше не поднимались, горшочек не варил
и тут я решил попробовать Tensorflow, в 2016м
по туториалу енкодинка картиночек через их собсвенный формат в другой их формат
короче говоря, извлек vgg фичи 😂
и сразу же получил на них результаты, много лучше приведенных в статье 🎉
еще немного grid search + красивостей
готово, easy
так я уверовал в нейросеточки 🖤
try data science path тоже начался благодаря курсам: очень круто закочил NLP course, хотя доехать на физтех смог лишь раз😂, все удаленно
минутка пиара,
@m12sl - очень крутой спец CV, CNN-master и вообще душа компании, физик, с кучей историй
@madrugad0 - try researcher, поднимал NLP с колен, когда это было совсем еще не модно
короче говоря, очень рад это знакомству, профессионалы своего дела
общаемся до сих пор, приятно
а на этой радостной ноте предлагаю на сегодня закончить, всем ❤️
Среда
Кажется @Twitter не нравятся такие долгие треды...
итак, немного свободного времени, так что погнали, 2016 год (надо ведь закончить 2020м)
Продолжение вчерашних coolstory 🚀 twitter.com/Scitator/statu…
Давайте проверим гипотезу про @Twitter и вчерашние треды от @dsunderhood перенесем сюда
Вчера, начало 😂 twitter.com/Scitator/statu…
продолжая всю эту тему с воспоминаниями,
еще один любопытный сервис
sourcerer.io/scitator
что ж, продолжим, 2017 год ждет
- Магистратура,
- ШАД,
- NLP,
- военка,
- tensorflow,
- kaggle
- и NIPS
за магистратуру тред
если коротко,
магистратура ФИВТ МФТИ - это полезно
с учетом того, что true Machine Learning курсов от Yandex, Mail, etc etc у меня в бакалавриате не было, было интересно
познакомился с такими топами индустрии как Виктор Кантор, Алексей Драль и Эмили Драль
собственно, Эмили и была мои научником в магистратуре
в остальном - стандартная магистратура с философией, историей информатики и робастными методами статистики :Harold:
nothing special
за ШАД
благодаря кафедре АТП (Алгоритмы Технологий Програмирования)
был доступ к ШАДу и курсы оттуда
Python, C++, ML, DL, RL, биоинформатика
C++ ШАДа - это божественно ❤️
то чувство, которое испытываешь в 2 часа ночи,
проходя авто-тесты на решение,
непередаваемо
особенно круто, когда что-то падает на 98 тесте из 100
остальное - много проще
курс по Deep Learning переписывал с theano на tensorfow,
учил GANы, Style transfer, красиво
RL курс также перебивал на tensorflow,
даже в contributors добавили, приятно
github.com/yandexdatascho…
RL курс прошел настолько хорошо, что по итогу стал Teacher Assistant на coursera.org/learn/practica…
и помогал его запускать
запускать курсы на coursera... неудобно
больше не хочется 😀
про NLP
собственно, в это же время я работал в @Reason8ai,
делали такую шутку как AutoFAQ
если коротко, хотелось автоматизировать ответы на частозадаваемые вопросы и обрабатывать обращениия с помощью Machine Learning
собстенно, задумка совершенно верная, ибо люди и колл-центры - это жесть как дорого
да и согласитесь, хочется, чтобы человек занимался более творческой деятельностью, а не просто на частозадаваемые вопросы
рутину - оптимизируем, логично
тут то я и познакомился со всем многоорбразием NLP:
word2vec, tf-idf, seq2seq, LDA, gensim, BigARTM
на заметку,
tf-idf все еще топ,
надо просто умметь варить
тогда же познакомился с @aphex34,
и пользовали с ним CNN + self-attention на текстах, когда это было не модно
идея простая - над time series делаем softmax, а потом берем взвешенное среднее, получаем хорошее представлениие для текста любой длины
а если например стоит задача предсказания похожести текстов - можно делать batch_dot_product и опять attention + mean для представления "похожести текстов"
короче говоря, main point из BERT,
занятно, не правда ли?
собственно, разными трюками и тюнами этой придумки мы и мерялись во время DeepHack Turing 2017
kaggle.com/c/human-or-mac…
про военку
и tensorflow
так уж исторически случилось,
что я еще проскочил на военную кафедру физтеха
monsieur офицер запаса
а это значит сборы,
месяц повышенной физической активности
и прогулки, прогулки на воздухе
в 40градустную жару
по плацу
божественно
overall, за время сборов произошло еще ряд занимательный coolstory,
но он этом лучше не в этом twitter :)
а еще за время сборов у меня были аж 2 недели, когда я совершенно не видел ноутбука,
ощущения странные, не надо так
потом я не выдержал и начал контрибьютить в tensorflow
github.com/tensorflow/ten…
работал на задачами seq2seq, пилил разные реализации
понадобилось доработать tensorflow estimator data API
зато Seq2Seq учился довольно просто и понятно:
github.com/Scitator/YATS2…
все еще никаких BERT'ов,
старовер
за NIPS
2017й был поворотным годом для конференции NIPS и для направления Reinforcement Learnning
ибо в этом году запустился первый competition по RL под конференцию NIPS!
так как ШАД RL был успешно закончен, а любовь к RL только возрастала,
надо было участвовать
кроме этого, я еще познакомился с Михаилом Павловым, который уже имел опыт участия в RL соревнования с 5vision
Миша - просто максимально умный,
окончил аспирантуру химического факультета МГУ,
и имхо, весь Data Science после это был для него крайне прост :)
как и RL
объединив усилия, мы с ним начали решать этот компетишен
у нас был один комп с 36 cpu-threads на двоих,
AAA conference, мы готовились как могли
для решения конкурса нам требовалось обучить человекоподобного агенда ходить и бегать в среде максимально быстро и преодолевая препятствия
сама среда была разработана лабораторий нейронбиомеханики Стендфорда
и была максимально корректно-реалистична,
в отличие от аналогов
решение RL соревнований - процесс непредсказуемый,
приходится много разбираться не только в теории этого самого RL,
но еще и в практической реализации
ибо от того, насколько эффективно ты имплементируешь алгоритм может зависеть сойдется ли он или нет
в RL нет так называемого датасета, на котором ты обучаешься
датасет надо собирать самому, взаимодействуя со средой (симулятором)
и от того, насколько быстро ты это делаешь зависит сколько новых данных, нового опыта видит твой агент
короче говоря, thanks to design of RL problem,
появляются дополнительные мета-гиперпараметры, которая также сильно влияют на процесс обучения, но которые много сложнее отследить
по итогу, мы заняли почетное 3е место
crowdai.org/challenges/nip…
как это выглядело
source code, если кому интересно
Pytorch, уже тогда
github.com/Scitator/Run-S…
2е место взяли товарищи из Peking University
github.com/hzwer/NIPS2017…
а 1е - NNAISENSE, команда Шмидхубера
youtube.com/watch?v=8xLghM…
собственно, таким образом начался мой NIPS competition путь
и немного противостояний со Шмидхубером :)
Четверг
четверг это...
когда первый созвон у тебя в 9 утра,
а последний - в 21:30 вечера
не устал, но, кажется, лучше и отдохнуть немного
так что всем добра,
давайте 2018й на завтра перенесем
еще сегодня был RL reading group семинар
всем, кто интересуется RL - рекомендую к ознакомлению
в этом году запустили реально крутую инициативу по Advanced Reinforcement Learning
youtube.com/channel/UC6KYP…
ну, или так
t.me/theoreticalrl
😂
наконец за release Catalyst 20.04 отписал
но это уже так,
t.me/catalyst_team
😂😂😂
короче говоря, четверг - это всегда насыщено
возможно, не только четверг :)
и чтобы закончить красиво,
"шмель, вид сзади"
Суббота
что ж, 2018 год, надо вспоминать
- NIPS 2017 и Applied Machine Learning Days 2018
- Speech in the wild
- AAAI конференция, USA visa и Алма-Ата
- Dbrain
- Sonic RL
- CV in the wild
- DeepHack
- Catalyst.DL
- NeurIPS 2018
- Catalyst.RL
- Canada visa
- Хакатоны
итак, продолжая NIPS 2017,
и переходя в AMLD 2018
во-первых, стал немного академиком,
у нас появилась статья в NIPS сборике
link.springer.com/chapter/10.100…
конференция NIPS - топ1 по всему AI/ML/DL,
по количеству людей - уж точно,
так что опубликоваться там - приятно
во-вторых,
пригласили на Applied Machine Learning Days,
конференцию проводили организаторы соревнования
конференция проходила в Лозанне, Швейцария
и в 2018 годы была в первый раз
Лозанна - это красиво
готично
и тихо
можно увидеть Францию,
пусть и издалека
всем советую к посещению, тепло, вино, экологично
настолько чистый воздух,
что первые 2 дня после прилета - я просто к нему привыкал
собственно, сама конференция - топ
много знакомств с людьми worldwide,
хороший такой new experience и exploration
@kidzik, @MeMohanty, @MasterScratv - 🖖
нам с Мишей надо было рассказать за наше решение на конференции
так что мой опыт публичных выступлений начался с презентации решения по reinforcement learning на европейской конференции перед залом с кучей людей из разных направлений бизнеса
😅😅😅
и на память,
NIPS 2017 Learning to Run team & participants
еще одним приятным продолжением NIPS была конференция AAAI, на которую мы подались со статьей по Neuromusculoskeletal RL и тоже прошли
конференция была в USA, визы в Москве не давали,
так я и посетил Алма-Аты
даже 2 раза, потому что попал на доп проверку ибо Artificial Intelligence, Machine Learning и вообще подозрительная личность-академик
короче говоря, не пытайтесь объяснить "Adapting Reinforcement Learning Methods for Neuromusculoskeletal Environments" на проверке,
кроме круглых глаз вы ничего не получите
"аналитик, таблички в excel пербираю" - это понятно
"мы научили человекоподобного агента с помошью RL ходить в физиологически корректном симуляторе для решения проблемы искривленной походки людей" - нифига не понятно
про Speech
одним из занятных пивотов @Reason8ai - был переход от текста к звуку,
т.е. AutoFAQ как технологический продукт был +- завершен и надо было двигаться дальше
собственно, следующим продуктом стал reason8 - приложение для ведения эффективных митингов, встреч и переговоров
суть была в том, чтобы записывать митинг на телефон, а по итогу получать транскрибированный скрипт, разбитый по спикерам
в идеале еще с action points и summary
и вот тут все начинает попахивать general AI :)
text summarisation - все еще задача сложная
overall, какой опыт получен? что там в этом вашем звуке?
во-первых, звук очень прихотлив к датасету и готов переучиться под все, что угодно - микрофон, его frequency, язык, произношение, гендер, окружение при записи
т.е. augmentations - must have
во-вторых, разобрался в том, как технически работает весь этот ваш звук, моно, стерео, mfcc, спектрограммы
audacity - one love в этом всем, до сих пор использую при работе со звуком - audacityteam.org
слава Open Source
в-третьих, всевозможный CNN + attention отлично работают на задачах cocktail party problem, speaker identification, speech recognition
собственно - wavenet и ко, потом так и полетели
а еще cocktail party problem можно решать чистой физикой 100% идеально,
т.е. 2 человека могут орать в телефон одновременно, а на выходе получится идеальное их разделение на 2 отдельные дорожки
no DL required
из side effect полезных вещей - разобрался в правильном проведении мититнгов и вообще как они устроены: зачем, почему, etc
agenda, meeting notes, timing - полезные скилы вне зависимости от рода деятельности
ведь общаться и проводить встречи - везде надо
еще немного попинал
kaggle.com/c/tensorflow-s…
и начал писать разные @tensorflow и @pytorch фреймворки для автоматизации кучи экспериментов
я понял, что у меня происходит слишком много всякого разного, поэтому давайте буду сокращать coolstories
если что - ping me, if you can
t.me/scitator
twitter.com/Scitator
количество непрочитанных растет, милорд,
но что поделать
за разные хакатоны 2018
совместно с Мишей Павловым, мы брали Retro Contest от OpenAI, обучали RL агента играть в неизвестный уровник Sonic the hedgehog
openai.com/blog/retro-con…
чуть-чуть не дотащили до 3го места, закончили на 4м
openai.com/blog/first-ret…
благодаря этому контесту заинтересовался Meta Learning и Lifelong learning
т.е. направлениями, которые позволяют вашим агентам/сеточкам/whatever продолжать учить
совместно с @iwitaly тащили DeepHack Chat,
создавали бота, который бы мог разговаривать и общаться как реальный человек, отыграть роль, так сказать
завершили это дело 2ми
deephack.me/leaderboard_ha…
хозяйке на заметку, elastic search - топ 😀
но в разработке чат-бота - лишь его малая часть,
там все много интереснее
был интересный evaluation - ты общался с ботом, а потом проходил тест на его background :)
важно было, чтобы бот этот backgournd умел хорошо проявлять
где-то между двумя этими событиями я защитил магистерский диплом,
somehow магистратура прошла настолько хорошо, что теперь я обладатель красного диплома МФТИ, занятном
последним хакатоном, в декабре, был МТС aion hack,
надо было обучить машинку проезжать трассу как можно быстрее и не съезжать с нее
gym.openai.com/envs/CarRacing…
по сути, мы применили наработки с NeurIPS 2018 и Catalyst.RL под новую среду и условия
конечно же, ряд вещей пришлось допилить :)
и, конечно же, мы сделали красивую презу под все это дело, со Шмидхубером и World Models,
собственно, world models то мы и реализовали
docs.google.com/presentation/d…
за Catalyst, NeurIPS 2018 и прочие прикольные штуки
надо признать, что благодаря всем этим воспоминаниям, начинаю понимать откуда пошел Catalyst
этить колотить, что-то много проектов, все разные
понятно дело это надо как-то систематизировать и генерализировать
при большой любви к автоматическому перебору всего, что тольк можно - без фреймворка не обойтись
да и просто прокликивать ячейки в ноутбуке, обучая очередную модель классификации.... как-то не круто, надо лучше
задача человека - сформулировать гипотезу, продумать условия экспериментов, собрать данные, закинуть все это дело в котел и проанализировать результат
потом перейти к новой гипотезе
короче говоря, Lean Startup way
long story short, после 2х лет общения с @tensorflow, я перекатился на @pytorch
как можно понять, количество проектов не особо снизилось, а вот отсутствие какого-либо high-level API - вдарило, ибо за всей кучей low-level кода никогда не уследишь
да и разнообразия по пайплайнам в DL не то, чтобы много - классификация, сегметация в основном
что картинок, что текста
надо было, чтобы все было вопроизводимо, иначе как этому доверять?
и легко конфигурируемо, иначе как проводить кучу экспериментов?
еще я большой сторонник конфиг-файлов, ибо
- количество гиперпараметров эксперитмента столь большое, что без конфига просто не обойтись
- на больших проектах так и так они будут
- понять конфиг - много проще, чем перечитывать весь код
например,
github.com/catalyst-team/…
все части эксперимента описаны - модель, лосс, оптимизатор,
условия эксперимента - тоже, 1 stage обучения в 10 эпох, с Adam'ом и метрикой точности
все части эксперимента декомпозированы, с возможностью переиспользования
но это все мое имхо
при ведении всех текущих проектов (коих меньше все еще не становится),
такой подход СИЛЬНО упрощает понимание того, что происходит во время эксперимента
посмотрел конфиг - понял все, если что - глянул пару новых компонент,
опять же, мое личное имхо
еще отлично работает с логированием, ибо grid search в git истории кидать примерно бесплезно - это невозможно проанализировать... я пытался,
а вот сохранить в папку с логами конфиг и код - easy
сейчас еще активно открываем Notebook API, чтобы можно было делать the same, но прямо из python кода
github.com/catalyst-team/…
ладно, опять растекаюсь мыслью по древу,
про @catalyst_core и Open Source вообще можно ряд статей написать
за все pitfalls и best practices, который ждут на этом пути
вообще надо больше документации за свои инициативы писать, понял я :)
теперь try за NeuIPS 2018,
в общем, после 2017 года и 3го места,
понятное дело хотелось проверить удача это или правда можно 3е место в world competition по RL получить
таким образом я взялся за NeurIPS 2018: AI for Prosthetics Challenge
задача 2018 года осложнялась тем, что весь симулятор теперь был 3D и скелет радостно падал куда только мог :)
еще вместо простого бега прямо и быстро, надо было бежать по вечноменяющемуся направлению с заданной скорость - да, она тоже менялась
спасало то, что в 2018 году вышло много работ по continuous action space алгоритмам, которые можно было попробовать
после решения 2017 года было хорошее понимание того, что потребуется для всего того многообразия экспериментов, которые предстояло провести
откровенно говоря, для RL я всячески пытался найти фреймворк для проведения экспериментов, но так и не смог этого сделать
лучшим был Ray, но за 2 месяца его постоянно доработки (улучешние их реализаций DDPG и TD3 алгоритмов), какого-либо результата получить так и не смог
плюнув на все - вспомнил общую архитектуру решения за 2017 год, докинул туда базы данных для корректнго distributed training и получил Catalyst.RL
на все это дело ушло 2 недели, по результатам - обученный агент занял 3е место с полпинка,
впереди еще было 2 месяца соревнования и куча доработок
докинув туда еще разные реализации, DDPG, SAC, TD3 с разными трюками - получили 3е место,
уступив только Baidu и Шмиидхуберу, once again
хотя отрыв от последних был всего 2 очка из 10000, занятно
собственно, решение as usual - открыто,
github.com/Scitator/neuri…
как и сам фреймворк,
github.com/catalyst-team/…
да, Catalyst.RL был вынесен из @catalyst_core не так давно в отдельную сущность
сравнение с аналогами,
docs.google.com/spreadsheets/d…
и, конечно же, paper
arxiv.org/abs/1902.02441
накрутили мы очень много,
все еще поражаюсь sample efficiency нашей
и если кому-то интересна тема sample efficiency или distributed RL - пишите, пообщаемся
есть небольшой опыт в этом деле :)
Воскресенье
что ж, mission complete,
моя остановочка
на самом деле не успел рассказать еще очень многое,
но, положим, для MVP сойдет :)
всем ❤️ и спасибо за внимание,
stay tuned, пишите
t.me/scitator
twitter.com/Scitator
наверное, перекачу треды воспоминаний туда