Архив недели @blisstweeting
Понедельник
Всем привет! Меня зовут Филипп Филиппак, я продюсер по образованию. На 5 курсе начал кодить и пошёл во фронтенд, потом понял, что не хватает сложности — тогда я подтянул математику и пошёл в ML. Сейчас работаю в Polyn Technology: обучаю нейронки, которые потом будут аналоговыми.
В общей сложности работаю в IT около 10 лет, последние два года — в машинном обучении, но большую часть этого времени занимался поднятием инфраструктуры данных в двух компаниях, и непосредственно ML-задачи были связаны в основном с финансами, что мне совсем не близко.
Недавно начал работать в Polyn Technology (polyn.ai), где мы делаем neuromorphic analog signal processing, или NASP. Это технология, которая позволяет печатать нейронки в виде чипов с аналоговыми вычислениями, что сильно сокращает энергопотребление.
После обеда выложу расписание на неделю и расскажу поподробнее, как мальчик из творческой семьи, играющий на пианино и скрипке, обрёл себя в бездушных компьютерах.
Тред (Филипп Филиппак)
Расписание на неделю:
Сегодня ближе к вечеру расскажу про то, как так произошло, что я решил из практически чистого гуманитария переквалифицироваться в технаря, и каким был мой путь в IT. Основные вехи, чему я учился, какие книги повлияли и так далее.
Завтра расскажу про то, чему и как я учился в ML, как пригождаются навыки из других жизней типа музыкалки, а также про свои первые две работы (в финансах и крипте) и почему я считаю, что это скука смертная.
В среду будет день трибьютов: расскажу, какие проекты мне очень нравятся, поделюсь полезными (и, надеюсь, для кого-то новыми) штуками и чем-то, что в принципе считаю важным и крутым.
Четверг — матановый день. Буду жаловаться на то, сколько ж всего нужно выучить, говорить про то, что уже изучил, ну, и какие области больше всего привлекают (как в математике, так и в машинном обучении).
В пятницу расскажу про самые крутые и самые стыдные моменты на собеседованиях, возможно, не только в ML (иногда моменты из обеих категорий происходили в рамках одного интервью).
Для субботы и воскресенья тем пока нет. Верю, что они придут в процессе и в обсуждениях, да и вообще, я открыт к предложениям и вопросам!
Всем хорошей недели, кстати! 😉
Тред (Филипп Филиппак)
Что ж, пора! С самого детства меня воспитывали исключительно в гуманитарном ключе. Точные науки и математику никто не считал важными, основной акцент всегда был на литературе, живописи, музыке. Духовное развитие, в общем.
Я ходил в музыкальную школу, немного рисовал, пару раз короткое время ходил на танцы, один раз пришёл на занятие по балету. Где-то в 12 лет мне подарили книжку по нумерологии, и понеслось... Это совсем оффтопик, но если интересно, можете почитать: unstableorbits.substack.com/p/cringiatus
С математикой в школе было всё замечательно до первого класса, поскольку, как мы знаем, сложение — это ~задача предсказания текста. А начиная с 5 класса с математикой был полный швах. К тому же, первые три класса отбили всякое желание учиться в школе вообще (было скучно).
Зато у меня были хорошие социальные навыки и договороспособность, поэтому школу я в итоге закончил без троек. (Для четвёрки по биологии пришлось пропалывать клумбы.)
К счастью, я успел отучиться в последний год перед тем, как ввели ЕГЭ по математике, иначе бы гарантированно получил справку. Буквально: я не умел, скажем, делить дроби друг на друга или возводить их в степень. Не умел до момента, когда решил идти в ML, кстати. То есть, до ~2017.
В общем, в школе я занимался ерундой. И в ВУЗе тоже, даже рассказывать там особо не о чем. Только на летних каникулах перед последним курсом один приятель посоветовал мне заняться программированием. Даже не заняться, а так, попробовать кодить. Чисто ради развлечения.
А ещё на этих же каникулах я сдавал хвосты по информатике в институте — появились они у тех, кто не участвовал в проекте "сделай сайт про кино и раскрути среди ВГИКовцев". И вот тут звёзды сошлись.
У меня был друг из магической тусовки (а вы что думали, мир кишит волшебниками), который знал PHP. С ним и ещё несколькими ребятами мы решили создать не просто сайт о кино, а настощую социальную сеть для кинематографистов. Что-то вроде LinkedIn, только со спецификой.
Недолго думая, мы начали СОЗИДАТЬ. На старте я не знал ничего: ни HTML/CSS, ни JS, ни того, как вообще поднять домен, хостинг и так далее. На финише я чувствовал себя примерно так:
Кроме парня, который знал PHP и немного MySQL, я просто не представлял, где искать информацию. Про Хабр, StackOverflow и всё остальное я узнал намного позже, когда начал работать. Начал я с книги по Java (!), в которой было приложение с кратким описанием JavaScript (!)
Короче, выкатили мы первую версию. Невероятное уродство — это лучший способ описать тот шедевр дизайна, который, к сожалению, не сохранился. Вторая итерация была получше, и в ней за пару месяцев зарегистрировалось ~300 человек и пара десятков компаний.
К сожалению, поскольку у нас не было опыта и понимания, как вообще делать такие вещи, то, хоть с технической стороной мы и справились, делать на том сайте было решительно нечего, а мы тратили время на фичи, которые были не нужны. Зато через год я немного знал JavaScript.
Дальше я понял, что люблю программировать, и было лето, полное undefined и NaN, а осенью я устроился на первую работу. Рассказывать про фронтенд особо не интересно, где-то через 5 лет я устроился в криптостартап Waves, через полгода отвечал там за разработку клиентского кошелька.
Там я, наконец, созрел для новых горизонтов. Во фронтенде на тот момент для меня было мало сложностей и много рутины, и я давно смотрел на машинное обучение. Но смотрел всегда издалека, потому что было страшно: там же математика, а я её не знаю просто вот совсем.
Я познакомился с математиком, который взялся меня менторить, прорешал за полтора года около 2000 задач (большая часть была уровня средней школы, зато появилась интуиция о том, как всё работает в этой математике). Попробовал походить в НМУ, но, конечно, дропнул.
Доработав в Waves, я взял gap year и продолжил учиться, учиться и ещё раз учиться: прошёл курсы по ML, статистике, матану, линалу, дискретным структурам. Пробовал решать Kaggle, но это получалось тогда ещё очень плохо. А в конце года устроился на работу в трейдинговый стартап.
Тут начинается грустная часть истории о том, как я 2 года стагнировал в плане ML-скиллов, но про это расскажу завтра. Сейчас покидаю немного книг и курсов, но только если вы этого хотите!
🤔
88.2%
Давай ссылки!🤔
11.8%
Не, не хотим ничего...Вторник
Окей, погнали. Попробую ограничиться небольшим количеством ссылок. Вот этот курс по теории графов и комбинаторике рекомендую решительно всем, вне зависимости от того, чем занимаетесь. stepik.org/course/83
Учебники по алгебре и геометрии Александра Шеня:
biblio.mccme.ru/node/3259
biblio.mccme.ru/node/5900
Вот эта книга по deep learning. У меня она есть в бумаге, но я её ещё не дочитал, каюсь.
deeplearningbook.org
Предположу, что среди подписчиков этого аккаунта есть те, кто хотел бы заняться ML, но, как и я когда-то, не знает самых азов математики. Помимо упомянутых выше книг Шеня, вот этот сборник задач был просто сокровищем.
labirint.ru/books/231812/
Окей, последнее, что порекомендую — это вот эти два курса, по компььютерному зрению и NLP.
stepik.org/course/50352
stepik.org/course/54098
Тред (Филипп Филиппак)
Что ж, пора! С самого детства меня воспитывали исключительно в гуманитарном ключе. Точные науки и математику никто не считал важными, основной акцент всегда был на литературе, живописи, музыке. Духовное развитие, в общем. pic.twitter.com/E1n49onwl0
Кстати, раз уж вчера упомянул вечную дихотомию "гуманитарии vs технари", уточню, что я считаю её ложной и надуманной. Конечно, многие люди тяготеют к одному из аттракторов, но мы все, согласно терминологии Дэвида Дойча, являемся universal explainers и способны ко всякому знанию. twitter.com/dsunderhood/st…
Заодно порекомендую восхитительную книгу об эпистемологии и философии науки: The Beginning of Infinity. Она местами занудная, и может показаться, что автор давит авторитетом, но количество ценных мыслей и вдохновения, которое она даёт, полностью искупают эти недостатки.
Тут начинается грустная часть истории о том, как я 2 года стагнировал в плане ML-скиллов, но про это расскажу завтра. Сейчас покидаю немного книг и курсов, но только если вы этого хотите!
Продолжаем! Итак, мне было уныло работать в финансах, поскольку львиную долю времени занимали 1) создание инфраструктуры для сбора данных и 2) рутинная проверка всех базовых моделей на этих данных. Ну, там, SVM и прочие встроенные в scikit-learn модели. twitter.com/dsunderhood/st…
Про результаты этих проверок я ещё года три не смогу говорить из-за NDA, но зато могу сказать про свои эмоции: я был разочарован. Очень.
В процессе поиска идей я понял, что финансовый ML ужасно скучный по причине того, что там практически нет сигнала в данных, почти всё состоит из шума.
Мой идеал задач в ML — это когда сигнал виден невооружённым взглядом, но не вполне ясно, как научить компьютер его распознавать. Вот тут есть структурная сложность, а ещё пригождается инженерная смекалочка.
Например, все разговаривают на человеческих языках, многие водят машину, выполняют всяческую работу — полезный сигнал в избытке. И именно идеи о том, как его обуздать, и ценны.
ML в финансах — это такая статистика, которую ещё и применять надо к задаче, кажущейся мне безумно унылой. Ну, доход максимизировать... Такое себе занятие, когда можно мир настоящего превращать в мир будущего.
В криптостартапе к рутинности сбора данных добавилась боль от бардака в API криптобирж. Это просто отдельный ад, где мало документации, иногда она на китайском, сервера падают, собрать данные за неразрывный отрезок времени почти невозможно, крайние случаи в данных сломаны.
Единственная сильно полезная вещь, которую я вынес — это умение делать кросс-валидацию на временных данных, но это произошло в первую неделю на первой работе, поэтому можно понять, почему я был расстроен и демотивирован всё остальное время там.
При этом, я опасался уходить с первой работы, поскольку мой опыт в реальных задачах не рос, а уверенности в своих скиллах, полученных в процессе обучения, было не очень много.
На втором месте была очень классная команда, и поначалу мы надеялись, что в крипте-то больше информации не утилизировано рынком, можно найти тот самый сигнал (мы, к слову, делали там темпоральный арбитраж). Не тут-то было.
Там ещё случился курьёз, когда простая модель у одного из аналитиков показала >75% точности (грубо говоря, в бинарном "вырастет или упадёт цена токена"), а потом выяснилось, что данные из будущего оказались в обучающей выборке.
Так что вот теперь я занимаюсь задачами из мира людей, с видимым или слышимым сигналом, и безмерно этому рад. Как будто из депрессивного серого мира попал на карнавал смысла.
Планировал написать, как пригождаются навыки из музыкальной школы. Ну, во-первых, усидчивость. На работу в Waves (фронтендером) меня взяли в том числе потому, что я в резюме написал про скрипку. И будущий начальник сказал, что, мол, если он это выдержал, то и тут справится.
Во-вторых, есть исследования, утверждающие, что музыкальное образование способствует развитию мышления. Что ж, если так, то я не зря отмотал там 13 (тринадцать) лет. ncbi.nlm.nih.gov/pmc/articles/P…
Хотелось бы написать, что "в-третьих, после музыкалки не страшно выходить на сцену", но нет, это как раз было самым травмирующим, потом пришлось много работать над собой, чтобы научиться выступать с докладами и прочее.
Тред (Филипп Филиппак)
Среда
Сегодня в течение дня буду делиться ссылками на крутые проекты в области ML, с фокусом на тех, которые способствуют расширению кругозора. В конце дня бонусом покажу пару очень классных сайтов по математике.
Первый в списке — State of AI Report. Ежегодный отчёт про AI и ML с разбивкой по 4 категориям: Research, Talent, Industry, Politics. 10/10. stateof.ai
Distill. Восхитительный проект, фокусирующийся на интерпретируемости моделей и ясном объяснении идей. Тоже 10/10. distill.pub
Missing the Distill Circuits Thread (distill.pub/2020/circuits/)? My colleagues and I at @AnthropicAI are starting a similar project focused on transformer language models: transformer-circuits.pub twitter.com/AnthropicAI/st…
Только я упомянул про Distill, как его создатель написал, что они с коллегами запускают похожий проект, который будет посвящён языковым моделям на базе Transformer. Очень здорово! twitter.com/ch402/status/1…
Вот ещё классный проект AI Dungeon: разные языковые (уже не только их) модели файнтюнят на фэнтези и sci-fi, чтобы потом делать что-то вроде виртуального D&D гейм-мастера. Год назад играл в бесплатном режиме, было шизофазично, но круто. play.aidungeon.io
Хотел поделиться сайтом Open Problem Garden, он посвящён нерешённым математическим задачам. Но он, к сожалению, не работает. Дам ссылку всё равно, вдруг когда-нибудь вернётся: openproblemgarden.org
Тред (Филипп Филиппак)
Четверг
О, а давайте начнём четверг с ваших вопросов! Не только про машинное обучение. Спрашивайте всё, про что вам интересно узнать.
@dsunderhood Как выстроить правильную последовательность в изучении всего необходимого? Например: начинать с линейной алгебры, основы пайтон и введение в теорию вероятности, затем добавить то и это…
Хитрость в том, что нет глобальной правильной последовательности. Есть "граф зависимостей" с локальным порядком изучения, но в нём очень многие вещи можно распараллелить. Например, программирование, матан, линал и теорвер никак друг другу не мешают. twitter.com/stockholm_rosi…
@dsunderhood Как это всё учить? Меня поражает огромное количество учебных материалов, которые абсолютно бесполезны, т.к. сугубо теоретические. Там нет никакой практики и ни строчки кода и формализм на формализм.
Это плюс-минус всегда так, особенно когда за новую область берёшься. Лайфхак: стараться находить самые понятные материалы по теме (сейчас для примера пару ссылок в тред кину). twitter.com/TavgenJaroslav…
Вот, например, блог с круто иллюстрированными разборами разных штук: от теории информации до конкретных нейросетевых архитектур. colah.github.io/posts/2015-09-…
Distill. Восхитительный проект, фокусирующийся на интерпретируемости моделей и ясном объяснении идей. Тоже 10/10. distill.pub
Кстати, от автора Distill, про который вчера было. twitter.com/dsunderhood/st…
Вот ещё крутой блог с иллюстрациями по многим модным языковым моделям. jalammar.github.io/a-visual-guide…
@dsunderhood Выгорела от дата саенса - точнее от того что мне в последнее время под этим соусом попадается. То нанимают как дата саентиста, а по факту дата инженерингом приходится заниматься. То менеджеры вырывают из состояния потока сообщениями, нормально не покодить. Куда и как двигаться?
Думаю, что можно пойти в ресёрч, но кажется, что большинство компаний с крутым ресёрчем живут не в России. Навскидку: @AnthropicAI, @CohereAI, @oughtinc, @genintelligent и, конечно, @OpenAI. Это то, к чему я в перспективе стремлюсь. twitter.com/XOR0sha2wine/s…
@dsunderhood Вы уже пользовались vektonn.io?))
Нет, не слышал даже про этот сервис. Классная штука, кажется, но в текущей работе не вижу применений, по крайней мере, с ходу. twitter.com/dmarkov/status…
Тред (Филипп Филиппак)
Пятница
Простите, что я немного пропал. Обещал про боль в изучении математики, будет про боль. Возможно, не только в математике, но и вообще.
Самое сложное в переходе от нетехнического мышления к техническому — это умение в формальность. Описать алгоритм (строго), доказать теорему (тоже строго). Это жутко непривычно, когда кажется, что "всё же и так ясно".
Когда, наконец, начинаешь так делать, приходит осознание, сколько ошибок допускаешь, если не проверяешь идеи, расписывая их. Ещё в обычной жизни стало понятно, зачем нужны, например, чеклисты, пайплайны задач в трекере и так далее.
Оговорюсь, что математическая интуиция тоже очень важна, потому что она позволяет быстро генерировать и отметать те самые гипотезы, которые впоследствии тщательно проверяются.
Теперь по дисциплинам внутри математики. Хуже всего мне всегда давались алгебра и теория чисел, лучше всего — комбинаторика и теория графов. Под "хуже" и "лучше" здесь я подразумеваю скорость сопутствующего ментального истощения.
Возможно, комбинаторика и теория графов кажутся мне более физически представленными, то есть, ближе к неким объектам реального мира (кстати, за геометрией я такого не наблюдал, она для меня ближе к алгебре по ощущениям).
Помимо вышеупомянутых легче воспринимаемых вещей, большая часть новых идей даётся сложно. Очень болезненно изучать методы dimensionality reduction. PCA, t-SNE, вот это всё. Ещё одна боль — это задачи численной оптимизации, вроде BFGS. Конкретно этот алгоритм не копал пока что.
Довольно тяжело было понять, куда должны течь градиенты при умножении тензоров. Сейчас с этим уже сильно легче, и даже shape rotation внутри моделей поддаётся без особых кошмаров.
Хотя когда-то казалось чем-то нереальным. В принципе, если взглянуть на первые пару лет в программировании, сейчас все те задачи я бы решил намного быстрее и разумнее.
Ещё о прошлом, чуть похвастаюсь. Несколько раз смотрел на свой код спустя 3-4 года с момента написания и понимал, что как работает. То есть, вопреки всем историям, можно писать код так, что ты его поймёшь впоследствии.
Возможно, склонность к такому написанию кода сильно подстегнула профессиональный рост.
Теперь по дисциплинам внутри математики. Хуже всего мне всегда давались алгебра и теория чисел, лучше всего — комбинаторика и теория графов. Под "хуже" и "лучше" здесь я подразумеваю скорость сопутствующего ментального истощения.
Кстати, кому ещё теория чисел тяжело даётся? twitter.com/dsunderhood/st…
Суббота
@dsunderhood А матан? Или он в алгебре у вас?
Матан даётся средне, не могу назвать его болью. В целом, понятия типа производных, пределов и интегралов кажутся довольно интуитивными, но бывают затыки в прикладных моментах. twitter.com/c0ntr0ller/sta…
Тред (Филипп Филиппак)
Сегодня (уже почти завтра) начинаю рассказывать про стыдные случаи на собеседованиях. Начнём с самого давнего, то есть, с JavaScript.
Дальше я понял, что люблю программировать, и было лето, полное undefined и NaN, а осенью я устроился на первую работу. Рассказывать про фронтенд особо не интересно, где-то через 5 лет я устроился в криптостартап Waves, через полгода отвечал там за разработку клиентского кошелька.
Когда я только начинал кодить, многие вещи были не то чтобы не очевидны — я просто не думал, что они в принципе могут существовать. Одной из таких вещей были логгеры и инструменты для дебага. twitter.com/dsunderhood/st…
Отправив резюме в некую геймдев-компанию, которая занималась браузерными играми, я сумел ответить на вопросы по телефону, и меня позвали на собеседование. Я не особо волновался, поскольку научился уже писать игру "Жизнь" Джона Конвея и ещё пару простеньких алгоритмов.
Воскресенье
Чего я тогда не знал, так это что будет, если:
1 + undefined
NaN + "1"
"1" + NaN
...и тому подобные фокусы. Ну, у меня как-то сформировалось понимание, что не стоит смешивать типы, и я их не смешивал.
И ещё я на тот момент из литературы прочитал только книгу Флэнагана 2004 года и не знал про console.log() — выводил всю отладочную инфу через alert("пыщь-пыщь").
Очевидно, что на работу меня тогда не позвали, а я провёл следующие несколько дней в осознании того, что можно погуглить а) что бывает на собеседованиях и б) какие вообще есть вещи вокруг языка, на котором я пишу.
Другая неловкая история связана с обувью. В некоторый период жизни я ходил в берцах, просто потому что удобно и в городе, и в лесу. И вот как-то у меня стёрлись шнурки, и, так как за новыми нужно было ехать в центр города, то я купил 10 метров бечёвки в хозмаге напротив.
Проблема была в том, что чёрной бечёвки не было, и я купил белую. Хорошо, что был уже 2014 год, и не так много людей помнили, кто ещё носил берцы с белыми шнурками (подсказка: они ещё брились налысо). И вот я прихожу на собеседование, а мне и говорят, мол, поясни за шнурки.
Я удивился, но рассказал всё как есть. Посмеялись. Через пару дней сделали оффер.
Что-то не могу вспомнить каких-то ещё сильно ярких случаев с собеседований...
Тред (Филипп Филиппак)
О, а давайте начнём четверг с ваших вопросов! Не только про машинное обучение. Спрашивайте всё, про что вам интересно узнать.
Что ж, сегодня последний день. Спасибо всем, что были со мной и читали занудненькие истории и рекомендации! Было здорово поделиться и поотвечать на ваши вопросы. Если есть ещё — задавайте, до вечера полно времени.
Вот прошлый тред с вопросами: twitter.com/dsunderhood/st…
И да, попозже ещё сделаю мета-тред со ссылками на все эпизоды этой недели.
Кстати.
Всех с наступающим Новым годом! ❄️
Желаю отличных праздников и хорошего отдыха перед покорением новых горизонтов, побольше крутых статей и чтобы ваша работа приносила радость и удовлетворение!
Всем привет! Меня зовут Филипп Филиппак, я продюсер по образованию. На 5 курсе начал кодить и пошёл во фронтенд, потом понял, что не хватает сложности — тогда я подтянул математику и пошёл в ML. Сейчас работаю в Polyn Technology: обучаю нейронки, которые потом будут аналоговыми.
Пришло время мета-треда. Спасибо ещё раз всем, кто меня читал и спасибо @tiulpin за возможность побыть автором! С вами был @blisstweeting.
Начало: twitter.com/dsunderhood/st…
Расписание на неделю: Сегодня ближе к вечеру расскажу про то, как так произошло, что я решил из практически чистого гуманитария переквалифицироваться в технаря, и каким был мой путь в IT. Основные вехи, чему я учился, какие книги повлияли и так далее.
Расписание: twitter.com/dsunderhood/st…
Что ж, пора! С самого детства меня воспитывали исключительно в гуманитарном ключе. Точные науки и математику никто не считал важными, основной акцент всегда был на литературе, живописи, музыке. Духовное развитие, в общем. pic.twitter.com/E1n49onwl0
Про путь в IT: twitter.com/dsunderhood/st…
Продолжаем! Итак, мне было уныло работать в финансах, поскольку львиную долю времени занимали 1) создание инфраструктуры для сбора данных и 2) рутинная проверка всех базовых моделей на этих данных. Ну, там, SVM и прочие встроенные в scikit-learn модели. twitter.com/dsunderhood/st…
Про первые места работы в ML: twitter.com/dsunderhood/st…
Сегодня в течение дня буду делиться ссылками на крутые проекты в области ML, с фокусом на тех, которые способствуют расширению кругозора. В конце дня бонусом покажу пару очень классных сайтов по математике.
Крутых проектов тред: twitter.com/dsunderhood/st…
О, а давайте начнём четверг с ваших вопросов! Не только про машинное обучение. Спрашивайте всё, про что вам интересно узнать.
Ответы на ваши вопросы: twitter.com/dsunderhood/st…
Простите, что я немного пропал. Обещал про боль в изучении математики, будет про боль. Возможно, не только в математике, но и вообще.
Про боль в изучении математики: twitter.com/dsunderhood/st…
Сегодня (уже почти завтра) начинаю рассказывать про стыдные случаи на собеседованиях. Начнём с самого давнего, то есть, с JavaScript.
Стыдные собеседования: twitter.com/dsunderhood/st…
Что ж, сегодня последний день. Спасибо всем, что были со мной и читали занудненькие истории и рекомендации! Было здорово поделиться и поотвечать на ваши вопросы. Если есть ещё — задавайте, до вечера полно времени. Вот прошлый тред с вопросами: twitter.com/dsunderhood/st…
До новых встреч: twitter.com/dsunderhood/st…
Тред (Филипп Филиппак)