Добавим немного личных историй про HighLoad. В программный комитет онтиковских конференций я попал 2 с небольшим года назад, пригласил меня туда Роман Поборчий. Роман тогда хотел сделать дата-конференцию под онтиковских брендом. В итоге она прошла в 2019 году- UseData #conference
Так же я стал ПК конференций онтико, где есть дата секции: хайлоады Москвы, Питера и Сибири.
Что дает членство в ПК онтико: бесплатные билеты на все конференции онтико, даже где ты не ПК. Где ты ПК - еще и трансфер , если это другой город. Часовую ставку за обслуживание докладов и тп (ее я не оформлял) и, наверное, самое важное, хорошая компания других членов ПК.
Для меня: это общение с другими секциями, с членами ПК, с докладчиками, слышать доклады первым и задавать кучу стыдных вопросов. Ещё "подглядывать" за опытом проведения таких масштабных конференций и воплощать его в своих конференциях и митапах.
Еще я упомянул Романа Поборчего. Роман крутой. Он не только учит и помогает делать классные технические презентации и технические выступления. Роман еще консультирует по АБ-тестированию. Еще работая в Headhunter Роман нам помог выстроить платформу АБ-тестирования.
Я не к тому, идите и купите его консультации. Но если вы слабы в АБ-тестировании, то идите и смотрите его доклады про АБ на Ютубе, например вот: ну и про публичные выступления тоже посмотрите.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Канада!
Не могу не начать с хорошей новости, которую вы наверняка уже слышали - только в 2021 году Канада хочет принять овер 400к иммигрантов
No time like the present ;) cicnews.com/2021/05/canada…
Я попала туда по программе PNP - Provincial Nominee Program
Есть другой путь - Express Entry, где нужно набрать опр. количество баллов по разным критериям полезности для страны - языковые скиллы, опыт работы, возраст и тд
С PNP всё гораздо проще и ВНЖ через пару лет гарантирован
Проще, потому что не нужно сдавать экзамены на знание языка, участвовать в конкурсе баллов и тд
Вам нужна desperate enough провинция (== штат), где не хватает специалистов, оффер оттуда и...в принципе всё, можно считать, что канадский паспорт на руках :)
Это, наверное, самая тихая неделя в сообществе :)
Наверное, мне должно было бы быть стыдно, что не справилась, не придерживалась плана и тд, но знаете что? НЕТ
Обидно, что не смогла поделиться кучей мыслей, статей, решений, задать сто интересных вопросов, но не стыдно :)
Хочется немножко затронуть тему выхода из строя (порой ВНЕЗАПНОГО) самого главного и самого сложного органа в нашей тушке
Точно знаю, что страдаю тут от них не одна :)
Иногда мы строим планы и даже их придерживаемся, а иногда мозг не даёт нам этого сделать и сильно мешает работе
Можно злиться на себя и пушить свой организм дальше, можно ощущать бессилие и тихо закапываться в нем, я обычно выбираю третий вариант - послушать свой организм и give it a break, даже если это факапнет ваши планы и доставит неудобства
И не молчать, главное - не молчать об этом
Неделька выдалась тяжелой, попробуем наверстать.
Все говорят, что BatchNorm -- это хорошо, но давайте обсудим)
Предположим, речь идет про картинки, на вход в BN приходит тензор [bs, channels, height, width].
Сколько в BN обучаемых параметров?
В каком порядке правильно-то размещать BN и остальные слои?
Современные фреймворки удобны не только тем, что дают удобные примитивы: в них используются отличные дефолтные параметры. Мы особо не заморачиваемся с инициализацией когда учим с нуля резнет.
Между тем, вопрос об инициализации все еще активно пересматривается.
Пояснения к опросам я выложу завтра. А пока поговорим про сетки в проде.
В какой прод вы катите ML/DL модельки?
В основном на курсах по ML/DL речь идет про обучение моделек. MVP делается на слегка подправленной кодовой базе с питоном и фласками.
Моделька создается кодом, в нее подгружаются веса из чекпоинта.
Если проект не умер на первых порах, дальше пойдет эволюция.
Люди прибывают. Модельки усложняются.
Появляется легаси (и это нормально!).
Вы начинаете страдать от обратной совместимости, а она от вас, катить становится сложнее, в коде копятся валенки (скажем другой метод ресайза картинок будет стоить вам процентов acc@1 на imagenet).
Что стоит знать в фреймворке (для определенности pytorch):
- как строится вычислительный граф (у тензоров есть backward-функция, за которую можно дернуть для бекпропа)
- как представлять данные (условно складываем картинки в тензора [bs, channels, height, width])
- как вычисляется лосс (давайте опросом, что должно быть у сети для многоклассовой классификации в голове?)
Пояснения на всякий случай:
- в доку не подглядывать!
- FC=Linear (иначе не лезло)
- если не понимаете о чем речь => reply с вопросом
- как управлять оптимизатором (обход весов, lr scheduling, grad_clip..)
- как мерить скорость и утилизацию железа (tqdm, watch nvidia-smi, profiler..)
- как дебажить наны (forward_hook, backward_hook)
- как сериализовать модель (torch.save, jit.trace, jit.script)
Про инструменты.
Я в основном пишу код на питоне, эпизодически на C++, иногда JS/bash и на чем еще придется по задаче.
Все хоббийное и учебное я пишу на Pytorch, почти все рабочее на TF.
Самый богатый источник граблей - рабочие инструменты.
Очень часто наблюдаю как люди тонну времени тратят на войну с инструментами, а не задачей.
Распространенная история - человек что-то делал, получил результаты, но им нельзя доверять => работу надо переделывать.
Имхо про фреймворки:
- конкуренция это здорово, tf был удобнее theano, pytorch удобнее tf, tf2 удобнее tf1
- не важной какой фреймворк вы используете, кодовую базу и математику сетей нужно заботать, иначе в ваших результатах буду валенки
- ....