epsilon correct – Telegram
epsilon correct
7.66K subscribers
166 photos
7 videos
3 files
222 links
Машинное обучение, графы, языковые модели. Чуток про карьеру исследователя в FAANG, путь PhD и щепотка полезной математики.
Связаться с автором: @deltaincorrect. Рекламы в канале нет.
Download Telegram
Вдогонку вам график инфляции в США в 70х и сейчас. Вызывает опаску, что у Пауэлла сейчас намного меньше политической независимости, чем в свое время было у Волкера. Научились ли мы эффективно бороться с инфляцией?
🤔1
Пост-дедлайн пост

В четверг был дедлайн подачи на ICML, и я таки успел кое-как состряпать туда статью. По такому поводу стоит записать немного мыслей – как раз перестал дергаться глаз от выпитого редбулла.

Идея для этой статьи пришла ещё в ноябре, тогда она была слишком абстрактная и никого не заинтересовала. В итоге работал над ней я примерно неделю "честного" времени в декабре, но результаты оказались достаточно хорошими, чтобы попробовать написать статью в ускоренном темпе. В янвере в плотном режиме я работал над ней три недели, и последнюю неделю отменил все встречи, чтобы успеть дописать хоть сколь-нибудь приличную версию.

Одной из ошибок было то, что я не сразу запустил все эксперименты, которые в итоге пошли в статью, в итоге пришлось кучу времени потратить на решение технических проблем. Из-за багов файловой системы (ха-ха!) эксперименты приходилось запускать в максимально ручном режиме, следя, чтобы файлы с результатами записывались, куда надо. Кажется, на будущее стоит все-таки разобраться, как подобные задачи решаются на внутренней архитектуре, а то мои велосипеды с отловом ошибок ФС приличными назвать никак нельзя.Из-за этих проблем долго не мог заставить себя писать текст – непонятно же, про что! В результате текст был написан почти без редактуры в полтора прохода. Пока пару недель решил его не читать, чтобы сильно не расстраиваться. На архив пока выгладывать не буду – стыдно за текст, да и код надо переписать и почистить.

Из уроков на будущее – в подобных проектах надо пушить MVP всех экспериментов, и только потом садиться качественно писать статью. И все-таки постараться убедить хоть кого-то помочь со статьей, а то делать всё самому получается накладно.

А теперь пора толкать прод, шоб не уволили.
👍9❤‍🔥2
LaTeX, который пригождается в жизни

Ладно, не пригождается – я соврал. С другой стороны, раз уж пришлось нам выучить LaTeX для написания статей и прочего бумагомарания, можно и попробовать пользоваться им и для других вещей в жизни. Я бы хотел рассказать о паре пакетов, которые позволяют готовить довольно красивые векторные иллюстрации и графики.

Называются эти пакеты PGF/TikZ и pgfplots. Начнем с TikZ, так как он является базовым для pgfplots. Свои названием – TikZ ist kein Zeichenprogramm – нам намекают на то, что рисовать у нас в ней не получится, но подготавливать технические иллюстрации, даже очень сложные, получается очень хорошо. Модель программирования в TikZ через примитивы, соединенные между собой линиями, очень проста, но позволяет красиво рисовать небольшие технические иллюстрации в векторе намного красивее, чем в каком-нибудь Inkscape.

Второй пакет – pgfplots – я очень люблю за то, что позволяет отделять при рисовании графиков код для подготовки от кода для рисования. Чаще всего я обрабатываю результаты экспериментов в питоновском ноутбуке и сохраняю csv со всеми результатами. Дальше можно играться со стилем графиков сколько угодно. Это особенно удобно, когда через N месяцев после написания статьи резко нужно чуть-чуть поправить что-нибудь на каком-то графике. Соавторы, конечно, поначалу сильно удивляются, когда забредают в TikZ или pgfplots файлы, но потихоньку учатся там что-то менять по своему усмотрению.

Отдельно стоит отметить документацию обоих пакетов - у TikZ она занимает 1321 страницу, у последней версии pgfplots – книжка на 573. В документации всё очень легко ищется и много примеров, которые работают "из коробки".

Для вдохновления иногда посматриваю сайт tikz.net и гитхаб с иллюстрациями про графы, которые делает Petar Veličković. Анимацию для нашего с Джоном поста в Google AI Blog делал я в pgfplots.
🔥5🤓3🤣1
Правильный HPO: Vizier

Сегодня коллеги наканецта заопенсорсили тулсет для оптимизации гиперпараметров Vizier, который, в отличие от множества альтернатив, адекватно работает. Вот тут можно почитать блогпост о нем, вот тут можно сразу прыгнуть в гитхаб.

Надеюсь, опен-сорсная версия окажется такой же полезной, как и внутренний продукт. К слову, он продается в Google Cloud, и теперь не совсем понятно, как эти два продукта будут сосуществовать (classic Google).
👍8🔥2
В Нью-Йоркере очень классная колонка, которая предлагает довольно мощную метафору для ChatGPT. Редкий пример качественной научно-популярной журналистики, которая заинтересовала многих исследователей и что-то новое рассказала обывателям.
👍5👎1
Забавной применение моей старой статьи – оказывается, по структуре графа взаимодействия персонажей можно определить, является ли произведение комедией или трагедией (по крайней мере, у Шекспира :)

Для этого нам нужно уметь сравнивать графы разных размеров, что и описывается в моей статье.
👍11😁1🎉1
Про железо для рисерча

Часто читаю в интернете жалобы о том, что не хватает железа, чтобы сделать свой классный рисёч. Мне тяжело это понять, потому что только для очень небольшого процента опубликованных исследований на условном ICML нужен был по-настоящему большие ресурсы. Да, у всех на слуху последние огромные сетки от индустриальных лаб с тысячами GPU, но ведь большинство статей выходит без подобных излишеств. Более того, научной новизны в статьях "а давайте TPU сделают brrr" меньше, чем в среднем по больнице.

В начале моего PhD у нас в группе не было серверов. Ни одного. Все эксперименты для моей первой статьи запускались на довольно обычном домашнем ПК. Потом ситуация чуть наладилась, и появилось два 40-ядерных сервера с 256Gb RAM – ничего сверхъестественного. Б/Ушные такие сервера сейчас стоят около $2000 – такое может себе позволить плюс-минус любой.

Если возможностей заиметь железо вообще нет, AWS, Google Cloud и Miscorsoft Azure дают железные гранты на довольно внушительные суммы. Также на Google Cloud есть $300 бесплатных кредитов, что примерно равно цене месяца 20-ядерного CPU инстанса. В те же $350 в месяц обойдется сервер с двумя V100 на vast.ai – и это если его не выключать и тренировать 24/7. Всё решаемо.
👍7👎5
Тулзы: GNU Parallel

Раз уж пошла речь о железе, нужно чуток рассказать о том, как его эффективно использовать. Эксперименты к статьям – это чаще всего усредение по десяткам запусков методов на разных датасетах. Если мы говорим не про нейросети, которые гоняются на ГПУшках, то почти всегда *гораздо* эффективнее запустить X параллельных процессов, чем один процесс на X ядрах. Поможет нам в этом GNU parallel.

Я строил свои эксперименты примерно следующим образом:
1. Создавал бинарник с флагами, по которым шел перебор – датасеты, параметры, сиды. Бинарник пишет свой выход в уникальный файлик.
2. Простеньким питоновским скриптом генерировал текстовый файл с командой на каждой строке, перебирая все интересующие значения флагов.
3. parallel --ungroup -j N_CORES --nice 19 < command.txt. Флаг nice задаёт задачам низкий приоритет, чтобы ОС могла выполнять свои задачи. ungroup отвечает за то, чтобы вывод всех программ выводился на экран параллельно.
4. Ещё одним простым скриптом собираем данные с выхода в удобную табличку.

У parallel намного больше опций, но даже базового примера достаточно, чтобы сильно ускорить эксперименты и упростить себе жизнь. При использовании этого софта в исследованиях его нужно процитировать по лицензии (можно даже просто добавить в список литературы без прямого цитирования в тексте).
👍6🤡1🌚1
Доход и счастье

На днях вышла статья в коллаборации с Канеманом. Она по сути опровергает довольно вредный мем (который пошёл с более ранней статьи того же Канемана) о том, что после доходов $75000 в год уровень счастья (emotional well-being) людей в среднем не растёт. В новой статье показывается, что в общем грустным людям уровень счастья деньгами действительно не повысишь, а вот людям из верхних персентилей деньгами гораздо проще сделать приятно. В исследовании 2010 года Канеман смешал все группы, и эффект пропал – похоже на парадокс Симпсона, только менее ярко выраженный. Та статья довольно плотно критиковалось.

Отдельно стоит отметить то, как статья была написана. В отличие от подавляющего большинства статей, которые пишутся коллаборативно, эта статья – продукт adversarial collaboration. Идея проста: находим учёного, у которого противоположная точка зрения на то, что означают данные, и пытаетесь друг друга убедить в обратном, проводя дополнительные эксперименты и анализы. В результате получаются статьи лучшего качества, так как самая серьёзная критика оказывается уже рассмотрена. Жаль, в methods research так не получится.
👍10🔥7❤‍🔥1
С одной стороны – стрёмно, что увольнения бушуют по индустрии. С другой – нам поставили три бочки с солеными огурцами в одну из столовых. Вот такой вот retention plan.
🤩10🔥2
Forwarded from qtasep 💛💙
Решили тут задачу эйн штейна о замощениях (айн штайн - одна плитка, но пишется как будто Эйнштейн, так что название пришлось поправить)

- о существовании фигуры, копиями которой можно замостить пространство, но только непериодичным способом.

Статья
Веб-страничка с приожением и другими деталями

Например, есть целое семейство таких плиток, и есть завораживающее видео, как они переходят друг в друга
🆒4
Выбор научрука

Для многих людей, которые хотят поступать на PhD в разных странах, непонятно то, как вообще выбирать потенциального руководителя. Я постарался их немного систематизировать и рассказать о тех, которые, по моему мнению, играют главную роль в успехе аспиранта.

Во-первых, близость и качество контакта с научным руководителем и его группой. Одним людям больше подходит высокоуровневое руководство и подсказки, тогда как другим удобнее учиться писать статьи, когда обсуждается почти каждый шаг. К соэалению, зачастую в больших и успешных научных группах у профессора банально нет времени разбираться с каждым студентом и статьёй. В таких группах обычно несколько постдоков, которые могут помочь вам в понимании того, как работает академия. А могут и не помочь – у них и своих забот хватает. Часто от более молодых профессоров можно добиться большего участия, хотя я также знаю научных руководителей с 20+ годами опыта, которые много времени проводят со студентами.

Во-вторых, количество и "качество" людей, с которыми можно общаться и коллаборировать вне научной группы. В Германии, где учился я, существует негласное правило университетов не нанимать профессоров по слишком близким темам. Из-за этого получается, что размер научной группы определяет круг твоих самых вероятных соавторов. Только начав работать в Гугле я по-настоящему оценил, насколько помогает быть окруженным людьми со схожими интересами.

В-третьих, "связанность" профессора с сообществом. В науке работает не так много людей, и все друг друга знают. Стажировки, гостевые визиты на семинарах, предложения о работе, новые интересные статьи и направления – все это распространяется по научной социальной сети. При выборе научного руководителя стоит посмотреть, ходит ли он с Хинтоном попивать чай – к сожалению, это во многом определит ваши карьерные перспективы.

В-четвёртых, банальный материальный фактор. Хоть я и не придаю фактору железа большого значения (ссылка на пост), если вы хотите заниматься большими моделями, а у научника кластер забит на недели вперед – возможно, стоит поискать что-то другое. Намного более важен, по моему мнению, отношение к поездкам на конференции. Конференции – это чуть ли не единственное место, где можно пообщаться с другими студентами и почувстсовать, чем и как живёт научное сообщество. Как минимум, должна быть возможность поехать на все конференции, где вы являетесь первым автором. Мой научник отправлял на одну из больших конференций каждого студента в начале PhD. Я считаю, что это – отличная стратегия.

Напоследок, стоит понимать, что в разных странах условния PhD программ очень разные. В Германии, где учился я, аспиранты являются полноценными государственными работниками, и им положена достойная зарплата (TV-L 13) и отпуск. А в соседеней Дании срок аспирантуры ограничен тремя годами, а за этот срок тяжело написать много качественных статей. В Штатах аспирантура соединена с магистратурой, а положение аспиратов, пожалуй, худшее из западных стран. С другой стороны, в США – самые большие университеты и научные группы. Каждому подойдёт своё.
👍15
Небольшой лайфхак про JFK

JFK Airport – это такое Нью-Йорксое Домодедово: когда туда прилетаешь, сразу нужно заложить лишние полтора часа, чтобы добраться до города. Спасибо Роберу Мозесу за узкую дорогу и отсутствие общественного транспорта. Не так давно мне подсказали, как сэкономить ±полчаса на этом маршруте.

Long Island Rail Road (LIRR) до Penn station или Grand Central занимает 45 минут, в то время как стандартный путь через Howard Beach займёт существенно больше часа. Билеты можно купить в новом приложении MTA TrainTime, которое вышло в середине прошлого года. Теперь не нужно ждать в очереди на покупку билета, а сразу бежать к нужной платформе. К сожалению или счастью, приложения карт плохо прокладывают маршруты с LIRR, так что такой вариант остаётся непопулярным среди туристов.
1
Пара мыслей об AI alignment

На днях рассказывал на квартирнике про AI alignment, и для многих людей такие мысли были как будто в новинку. Для других замкадышей, которые к нам доехать не смогли, записал кусочек из того, что рассказывал.

При словах “катастрофа ИИ” мы представляем мощный и злонамеренный ИИ, который внезапно захватывает контроль над человечеством. На самом деле, катастрофа может быть менее голливудско-взрывной. Например, с улучшением качества машинного обучения, корпорации могут все больше сосредотачиваться на легко измеримых метриках, таких как прибыль, что приведет к манипулированию потребителями и коррупции. В результате, со временем человеческое мышление станет все менее конкурентоспособным по сравнению с систематическими механизмами манипуляции и обмана, созданными с помощью ИИ. Думеры знают такой сценарий как “going out with a whimper”.

На самом деле, в нашей жизни и без этих ваших ИИ практически невозможно идеально согласовать цели и метрики. Из интересных примеров – promo-driven development в больших компаниях, запоротый Hacktoberfest, и спешное изменение в законодательстве Нью-Йорка по выкупу огнестрельного оружия. Чуть больше примеров можно посмотреть в статье на Википедии.

В этом смысле я вижу очень интересное пересечение на стыке рисерча про alignment и поведенческой экономики. Хороший дизайн структуры стимулов, учёт неопределённости, эгоистического поведения рациональных агентов, и стабильных исходов может позволить нам проектировать системы ориентированные в первую очередь на людей, например, налоговую. А в совсем прекрасном мире будущего, может, и мэрия Сан-Франциско решит alignment-related проблемы города.
👍8👎1
This media is not supported in your browser
VIEW IN TELEGRAM
.. но всё-таки Снуп Дог комментирует alignment лучше меня.
🤣8
Нашёл тут свежую багулю в TensorFlow, сейчас ругаюсь с челом, который её сделал. Зато хороший контент для канала подъехал!

Багуля заключается в следующем. Предположим, мы хотим заимплементить Standard score, ну или какой-нибудь z-score whitening для картинок или эмбеддингов. Делается это примерно так:

def whiten(tensor):
mean = tf.math.reduce_mean(tensor)
std = tf.math.reduce_std(tensor)
return tf.math.divide_no_nan(tensor - mean, std)


Но на некоторых инпутах код сломается, начиная с вот этого коммита (ни в какую релизную версию и даже в Colab он еще не попал). Как думаете, в чём тут проблема? Ответ за спойлером:

При константых инпутах дисперсия внутри tf.math.reduce_std равна нулю, а градиент 0/0 – NaN. Начиная с этого коммита, этот NaN прекратили прятать, так что теперь любая модель с криво написанной нормализацией улетит в NaN. Корректным будет такой код (телеграм не умеет в код под спойлерами):

def whiten(tensor, epsilon=1e-6):
mean = tf.math.reduce_mean(tensor)
std = tf.math.sqrt(tf.math.reduce_variance(tensor) + epsilon)
return tf.math.divide_no_nan(tensor - mean, std)


Вот так бывает. Я нашел ~500 некорректных использований такого паттерна на гитхабе, и еще сколько-то во внутреннем коде. Посмотрим, будут ли править.
🆒10🗿5❤‍🔥1👎1👏1
Апдейт: багулю починили. Вернее, не починили, а некорректные градиенты оставили для всех функций, как и было раньше. Если что, в питорче от нас тоже скрывают некорректные градиенты для некоторых функций.

Вот такая грустная прод-сказочка: на неявные поведения вашей системы опираются другие важные системы, так что менять API в глубине становится почти невозможно. В гугле такое называют Huryum’s law.

Ну ладно, хотя бы тысячи людей в мире втихую не сломались ¯\_(ツ)_/¯.
🤝8
Рисёрч интервью в FAANG

Чтобы попасть на исследовательскую позицию в эти наши фаанги, нужно пройти несколько интервью, обычно 2-3 исследовательских и 2-3 программистских. И если с программистскими всё довольно понятно (хотя там може есть свои лайфхаки), то вот по исследовательской части я материалов для подготовки почти не нашёл. У меня, конечно, всей информации тоже нет, так что расскажу пару наблюдений из своего опыта поиска работы два года назад и небольшого опыта собеседований интернов.

В целом, как мне кажется, в рисёрчерских интервью могут быть смешаны три вещи. Смешаны они оказываются в абсолютно случайных соотношениях, так что стоит быть готовым к любому варианту развития событий.

Во-первых, вас могут просто гонять по содержанию ваших же статей. Вот ты написал что-то там первым автором на ICML, а теперь перескажи это мне, и заодно расскажи, как эту статью вы писали. В таком рассказе критически важно понимать, что длина ш-индекса и сложность доказательств в вашей статье интервьюера волнует меньше, чем то, как вы думаете над статьями, как работаете и мыслите. На вопросы из серии "а как ты выбираешь идеи, над которыми стоит работать?" и "как ты работал с соавторами в такой-то статье?" стоит заранее подумать, как отвечать. Ответ вида "один я умный в белом пальто стою красивый" могут произвести не самое лучшее впечатление.

Чаще всего интервьюеры, которые идут по такому скрипту, заранее подготовили 1-3 вопроса, которые могут чуть выходить за рамки обсуждаемой статьи. Обычно там нет ничего сложного, но слишком часто я спрашивал вещи вида "а можно уменьшить сложность вот этого терма в лоссе?" и получал ответ "нет". Честное слово, можно было! Как минимум, показывайте свой мыслительный процесс на таких вопросах – абсолютно нормально, если ни к чему конкретному не получится прийти.

Второй вариант – это обсуждение какой-нибудь современной исследовательской проблемы в вашей области. Такое случается довольно редко, когда ваша область и область вашего интервьюера максимально пересекаются. И хотя в компаниях HRы пытаются назначать интервью по смежным вам темам, сильное пересечение получается крайне редко. Тут хорошо показать не только глубину, но и широту своих знаний. Например, когда я интервьюировался в разные компании, vision transformers были на пике популярности, и на одном из интервью мы довольно долго обсуждали, как можно их адаптировать для графовых нейронок.

И последнее – вариант наименее приятный, но зато к нему проще всего готовиться. На нём вам просто дают стандартные по основам теории машинного обучения. Это максимально похоже на интервью на МЛ инженеров, только задачи могут попадаться со звёздочкой (да ещё с какой). Сборники таких задач легко найти в интернете, так что готовиться к ним можно и нужно. Иногда какой-нибудь максимально простой вопрос, вроде bias-variance tradeoff, могут спросить "на разогрев" перед другим скриптом. Мой любимый вопрос из этой категории – обсудить k-means и скорость различных вариантов решения проблемы.
👍24❤‍🔥3🔥2
Нас с вами теперь больше тысячи, и я бы хотел сказать спасибо всем читающим. ❤️

В комментариях к прошлому посту попросили рассказать про то, как выбирать идеи для рисёрча. Пока я пишу про это пост, мне было бы интересно узнать, есть ли ещё какие-то темы, которые вас волнуют в МЛ рисёрче, про которые не напишут в крупных газетах каналах с 24/7 GPT. Академия vs. индустрия, PhD life, как предохраняться от реджектов, кто круче: Google Brain или Google DeepMind, вот это вот всё.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉213
Отвечаем на вопросы:

Кинг Конг против Годзиллы

Очевидно, выигрывает Годзилла, потому что по лору фильмов в него запускают тактическое ядерное оружие, и Годзилла это спокойно переживает. В то же время, Кинг Конга убивали обычными пулями (возможно, крупного калибра). Неоспоримо побеждает Годзилла.

Google DeepMind vs. Google Brain

Наполовину шутка, наполовину интересный вопрос про столкновение двух моделей менеджмента и довольно разной культуры. У DeepMind гораздо более вертикальная структура управления, проекты больше и масштабнее. В Brain, с другой стороны, больше индивидуальной свободы, зато проекты меньше и более гранулярные, такой традиционный полуакадемический рисерч. Что произойдёт со структурой при слиянии – загадка.

По духу мне ближе брейновская культура – я работаю в Google Research, который остаётся островком фундаментального рисерча внутри “большого гугла”.
👍12
Внезапно понял, что нигде в канале не написано, чем я вообще занимаюсь, кроме аналитики кайдзю.

Зовут меня Антон. В 2021 я защитил PhD по машинному обучению в Германии, и с тех пор работаю исследователем в Google Research. Не так давно перебрался в Нью-Йорк на постоянку, поближе к основной команде, чему несказанно рад.

В гугле я устроился в команду алгоритмов и оптимизации. Команда занимается алгоритмами на графах, приватностью и эффективными рыночными механизмами. Вот тут можно прочитать пост с хайлайтами за прошлый год.

Лично я работаю в основном над тем, как делать representation learning на сверх-больших объёмах данных, графовыми нейросетями и щепоточкой дифференциальной приватности. Примерно половину времени я трачу на статьи, половину – на разработку внутреннего софта и внедрение нарисёрченного вместе в продуктовыми командами. Работа над статьями и внутренними продуктами происходит в течение года очень неравномерно, так что приходится переобуваться из PhD студента в прод-девелопера и обратно несколько раз в год.

Примерно так, если очень крупными мазками. Подробнее – в следующих сериях.👆
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🥰16🔥9🕊5🏆3❤‍🔥21