Telegram Group Search
Почему попасть в кредитное рабство оказалось отличным решением

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

Когда вы только спаунитесь в новой стране, местная банковская система ничего о вас не знает. Только спустя какое-то время после заведения дебетового счёта информация о вас прорастает в кредитные агентства. В этот момент я получил кредитный рейтинг Needs Some Work, что второй с конца из пяти.

Для людей из этой касты существуют специальные кредитки, самая популярная - Tesco Foundation Credit Card. Для её получения мне пришлось по бумажной почте отправлять в банк трудовой договор и заверенную у solicitor копию паспорта.

Мне дали кредитный лимит аж в 300 фунтов в месяц, то есть, для поднятия рейтинга мне нужно было тратить ~75 фунтов и выплачивать их вовремя. Всё это происходит автоматически, что-то типа подписки. Через 3 месяца меня повысили до OK.

Спустя пару месяцев проснулся Lloyds - мой зарплатный банк, посмотрел на всё происходящее и первый предложил мне взять карточку и у них. Среди них была Lloyds Bank World Elite Mastercard, которая стоит 15 фунтов в месяц, но за это даёт безлимитный Priority Pass - сильно дешевле, чем при покупке напрямую. Ну и кэшбэк. Запросил, дали лимит в 5к. Теперь можно жить в кредит!

Для рейтинга помимо того, что ты платишь в срок и не расходуешь весь лимит, важны 2 вещи - количество новых кредиток и общий лимит. Сразу после получения Lloyds-карты мне дали Good, а спустя полгода прошли оба штрафа за новые карты и мне наконец-то дали Excellent.

Машина и недвижка в кредит мне не нужны, но зато можно было бы взять карточку с самыми крутыми бенефитами, типа Barclaycard Avios Plus Card. Но, честно говоря, с учётом моих трат бонусы едва окупят комиссию.

Можно было бы сказать, что всё это было зря, но нет. Есть один ключевой момент - у кредитных и дебетовых карт разная система антифрода.

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

В общем, суммируя весь полученный опыт и ресёрч могу дать следующий вывод - финансовой выгоды, если вы не тратите на покупки по 3к+ фунтов в месяц, в кредитках в UK практически нет. Но стабильная работа карточки на вес золота.

Когда доберусь до США, то смогу применить весь полученный опыт и заспидраню получение по-настоящему выгодных карт, которыми можно нафармить несколько процентов от трат, и это уже будет четырёхзначная сумма в год. Тупые американцы платят кучу процентов и мне это на руку.

Расскажите про ваш опыт кредитного рабства - удалось ли вам нагреть систему на копеечку засчёт провалившихся должников?

@knowledge_accumulator
Gumbel-Softmax - памятка себе на будущее

Итак, представим что у нас есть какая-то вероятностная модель, в которой сэмплирование из распределения является её частью. Самым банальным примером, пожалуй, является VAE.

VAE - это автоэнкодер, состоящий из моделей q(z|x) и p(x|z), которые выдают распределение на скрытую компоненту z по входу x и наоборот. В базовом варианте z имеет нормальное распределение N(m;d), и энкодер выдаёт параметры этого распределения - средние m и ст. отклонения d.

При обучении подобной модели у нас возникает градиент ошибки по сэмплу из z. Как пробросить градиент назад в модели "сквозь" это сэмплирование? В лоб сделать это не получится, и для этого применяют простой советский Reparametrization Trick.

Его суть в том, что процесс сэмплирования отделяют от основной цепочки вычислений и оформляют как входную вершину вычислительного графа. В случае с нормальным распределением, мы сначала отдельно сэмплируем eps из N(0;1), а затем умножаем его на d и прибавляем m. По факту результат тот же самый, но он превращает нейросеть в цепочку детерминированных операций и позволяет пробрасывать градиент бэкпропом.

Gumbel-Softmax - то же самое, но для категориального распределения.

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

Итак, в сердцевине модели находится такая цепочка вычислений: logits -> probs -> one-hot vector -> embedding. При переходе из probs к one-hot vector как раз и возникает сэмплирование из категориального распределения, сквозь которое нельзя пробросить градиент напрямую.

Gumbel-Softmax позволит приближенно осуществить этот переход с помощью детерминированной операции. Если к логарифму от вектора probs прибавить вектор из распределения Гумбеля (аналог N(0;1) в данном случае), то argmax итогового вектора будет распределён так же, как и исходное распределение.

Последняя проблема - argmax сам недифференцируем, поэтому его заменяют на софтмакс с маленькой температурой. В итоге, получая на вход [0.2;0.8], эта операция будет выдавать [0.001; 0.999] в 80% случаев и [0.999;0.001] в 20 процентах случаев.

Самый большой затык вызывает следующий вопрос - в чём профит этой штуки по сравнению с тем, чтобы просто использовать [0.2;0.8] в дальнейших операциях, если там всё равно не требуется строгий one-hot вектор?

Я объясняю это так - во время обучения мы хотим, чтобы все последующие части модели получали на вход реалистичные сэмплы из категориального распределения. Если наша модель будет учиться на размазанных векторах, то мы не сможем во время инференса просто начать сэмплировать код - декодер не выкупит этот пранк.

А что делать в случае, когда нам реально нужен строгий one-hot вектор, например, если это RL и мы совершаем действие? Авторы оригинальной статьи предлагают комбинировать Straight Through Estimator и Gumbel Softmax, т.е. использовать [1; 0], а градиент пробрасывать так, как будто там был [0.999; 0.001]. Но я никогда не встречал применения такой схемы.

@knowledge_accumulator
Как Брайн Джонсон оказывает медвежью услугу борцам против старения

Наверняка вы знаете, кто это - человек с состоянием в несколько сотен миллионов долларов, посвящающий свою жизнь "борьбе со смертью". Он воспринимается широкой публикой как больной биохакерством в последней стадии - жрёт кучу таблеток, заливает в себя плазму своих детей, постит в X рекорды длительности своей ночной эрекции и каждое утро по 2 часа смотрит в лампу. Спорить с этим образом я вообще-то не буду...

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

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

Благодаря Брайану Джонсону у большого количества людей идея победы над естественной смертью наверняка ассоциируется именно с его моделью поведения - биохакерством и измерением эрекции. Но эти вещи вообще никак не связаны друг с другом.

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

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

Но Брайану Джонсону всё это не помеха. Он пользуется самой надёжной в мире наукой - измерением эффекта на 1 объекте. Так как он не имеет возможности измерить то, когда он умер, вместо этого он смотрит на прокси-метрики - различные внутренние измерения. Надо ли говорить о том, что связь этих измерений с долголетием - тоже в лучшем случае корреляция? Если у стариков обвисшая кожа, это не значит, что подтяжка лица продлит жизнь.

Год назад Брайан дал прекрасное интервью, где ему накидали вопросы, которые возникают по существу его практик. На 43:39 возникает прекрасный обмен репликами.

- Брайан, но вы применяете 100 видов терапий на себе одновременно, которые влияют друг на друга. Вы не боитесь, что ваши выводы получатся хуйнёй?
- У фарм. компаний есть та же самая проблема. Мы переиспользуем их инструменты, позволяющие отделять эффекты друг от друга.
- Но эти инструменты основаны на том, что исследования проводят на куче людей.
- Справедливо. Но мы делаем всё возможное.

Полезность полученных результатов оставляю вам на собственную оценку. Вообще советую посмотреть интервью полностью и внимательно, если вам интересен феномен Брайана.

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

@knowledge_accumulator
Конкретный автоэнкодер [2019] и его улучшение [2024]

Итак, обычно в автоэнкодерах мы решаем задачу сжатия изначального вектора фичей в пространство маленькой размерности. Мы обучаем энкодер q(z|x) и декодер p(x|z) таким образом, чтобы у нас получалось восстановить изначальный вектор x из вектора скрытых переменных z.

Конкретный автоэнкодер ставит задачу более интересным образом - вместо перевода вектора фичей в скрытое пространство мы хотим выбрать список фичей в x, который и будет этим самым вектором скрытых переменных.

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

Слово "конкретный" в названии - "concrete" - на самом деле сокращение от Continuous Discrete - это параллельное изобретение того самого Gumbel Softmax трюка, который я описывал в позапрошлом посте.

Единственным параметром энкодера является матрица KxN - размерность скрытого вектора на кол-во фичей. В каждой строке у нас находится обучаемый вектор "логитов" для каждой фичи, к которому мы применяем Gumbel Softmax и получаем soft one-hot вектор-маску для всех фичей, которую затем скалярно умножаем на исходный вектор фичей - получая таким образом дифференцируемую аппроксимацию выбора одной фичи из всего списка.

Делая это независимо K раз, мы выбираем K фичей, которые и становятся выходом энкодера. В базовой статье про конкретный автоэнкодер иллюстрация на MNIST демонстрируют способность такой схемы обучиться игнорировать пиксели по краям и при этом задействовать по 1 пикселю из всех остальных частей картинки, никогда не беря соседние. Эксперименты на других датасетах там тоже есть.

Indirectly Parameterized CAE - улучшение данного подхода. Я с CAE не развлекался, но утверждается, что у базовой модели есть проблемы со стабильностью обучения, а также она почему-то всё же дублирует фичи по несколько раз, что, вроде как, тоже связано с этой нестабильностью.

Один простой трюк очень сильно улучшает ситуацию. Вместо обучаемой матрицы KxN используется Indirect Parameterization - эта матрица вычисляется как функция от 3 обучаемых штук: умножения матрицы KxN на матрицу NxN и прибавления вектора размера N к каждой строке результата.

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

Главный вопрос - а нахрена вообще всё это нужно?

Внезапно эта идея имеет отличное практическое применение в нейросетях, а именно для проведения Feature Selection! В ситуации, когда обучать сеть супердорого и вы можете позволить это делать единичное число раз, а фичей у вас тысячи, использование Конкретного Энкодера в самом начале модели позволяет обучить Selection K фичей из N напрямую. При этом, если качество модели совпадает с качеством изначальной модели, можно смело выкидывать из прода целых N-K фичей.

Коллеги рапортуют о том, что у нас это заработало, так что, с чистой совестью делюсь хаком.

@knowledge_accumulator
Экономика спортсмена

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

Конечно, самые богатые спортсмены зарабатывают много - $45млн/год у топ-50 из списка Форбс. Проблема в том, что здесь мы попадаем в жесточайшую ошибку выжившего. Но обо всём по порядку.

Во-первых, далеко не весь спорт настолько большой и богатый. Поговорим о дисциплине, которая мне ближе всего - о шахматах. Посмотрим на Магнуса Карлсена - самого сильного игрока на текущий момент. По сети ходят немного разные, но всё же похожие числа - около $20млн итогового состояния.

Много ли это? В США топ-1% богатых людей среди 35-39 - а это десятки тысяч людей - обладают состоянием в 4 миллиона. Тысячи из них наверняка имеют 20 миллионов. Среди них практически все не являются лучшими ни в чём, и вы наверняка не знаете никого из них.

Магнус Карлсен, как и все профессиональные шахматисты, полностью посвящают свою жизнь этому спорту. Чтобы попасть в топ лучших, нужно заниматься шахматами почти всё время, начиная лет с 6-8. Но наоборот это не работает - убитое время не гарантирует вам результат.

Недавно наткнулся на данное откровение профессионального шахматиста. Кирилл Клюкин (FIDE) - #1265 в рейтинге активных игроков. Без сомнений, шахматы для него - это полноценная работа, на которую он тратит не меньше времени, чем мы с вами на свою.

Согласно его словам, экономика выглядит так - летишь на турнир в Европу, покупаешь сам себе билеты и отель. Выступил хорошо - отбил отель. Выступил плохо - идёшь нахер. Лишь топ-50/100 шахматистов способны жить на заработанные деньги засчёт призовых и других источников.

Если вы не настолько хорош, вариант один - перекатываться в околошахматный бизнес - быть тренером, организатором школы или, как наш русский парень Леви Розман, стать блогером. Тут слабая корреляция между скиллом и успехом - результат зависит от вашего умения приносить зрителям положительные эмоции.

И я считаю, что это совершенно нормально. Спорт - это развлечение. Это полностью справедливо, что если ваши спортивные выступления не смотрят другие люди, то вы на этом и не зарабатываете. "Хорошо играть" не должно быть самоцелью, потому что не имеет реальной ценности.

Проблема шахмат, как спорта, во многом в том, что игру сложно сделать интересной для просмотра. Ситуацию кое-как спасает блиц и приколы вроде Chessboxing, а ещё когда в турнире играет Мистер Бист против ему подобных.

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

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

Поэтому если вам 12 лет и вы не являетесь одним из лучших в стране в своём возрасте - выберите себе занятие получше, пока не поздно. Ваше упорство, применённое в чём-то реально полезном, принесёт куда больше профита.

@knowledge_accumulator
Compositional Regularization: Unexpected Obstacles In Enhancing Neural Network Generalization [2025]

Во многих соседних каналах писали про сенсацию - первая сгенерированная статья от AI Scientist прошла Peer Review на ICLR. Но вот что грустно - коллеги-авторы не осмеливаются рассказать про, собственно, саму статью.

Возьму эту задачу на себя. Но это не совсем обзор, скорее, пересказ статьи от лица автора, с сохранением формулировок. Отсебятины в пересказе нет.

Итак, рассмотрим понятие Compositional Generalization. Под ним подразумевается способность собирать новые комбинации из уже существующих компонент. Это мощнейший способ решать новые проблемы, и люди постоянно это используют.

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

Он будет штрафовать за отклонения от ожидаемых композиционных структур во внутренних представлениях нейросети с целью простимулировать модель формировать композиционные представления.

Итак, рассмотрим LSTM [модель из 2016 за авторством Ian Goodfellow]. В ней есть скрытое состояние h_t. Compositional Regularization считается как сумма L2-расстояний между каждыми двумя соседними h_{t} и h_{t+1}.

Она добавляется к обычному лоссу с каким-то весом и нужна для подталкивания модели к формированию аддитивных представлений, что является простейший формой композиционности.

Для экспериментов рассмотрим задачу подсчёта записанных в виде текста арифметических выражений, например, "3+4" или "7*2". Будем обучать LSTM на датасете из 1000 таких выражений и тестировать на отложенной выборке из 200.

Бейзлайн показывает 84% точности на тестовом датасете. Мы проверили профит нашей композиционной регуляризации. Перебрав разные значения её веса, мы обнаружили, что точность на тестовом датасете не увеличивается ни при каком значении этого веса. При этом, у нас получается уменьшить сам этот композиционный лосс. При увеличении веса добавки в какой-то момент точность на тесте падает.

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

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

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

==== Пересказ закончен ====

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

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

@knowledge_accumulator
Автостопом по тетравселенной

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

Если вы не знали, Тетрис - это русская игра. Алексей Пажитнов выпустил первый релиз на территории СССР в середине 80-х, но классической считается версия, выпущенная на NES в 1989. С тех пор было выпущено сотни версий на десятках платформ с общим количеством продаж в >500 миллионов, что делает её второй по популярности игровой франшизой в мире.

У классической версии появилось огромное количество фанатов, и игра им настолько понравилась, что в неё продолжили играть вплоть до массового распространения интернета в начале 00-х. Именно тогда начал зарождаться спортивный аспект игры в Тетрис.

Начиная с 2010-го стали проводить аж целый чемпионат мира по классическому тетрису (запись первого финала), и его некоторые записи набирают больше 10млн просмотров. Оказывается, тетрис - полноценный спорт, хоть и третьей величины. Но параллельно с этим шла борьба против самой игры.

На 29-м уровне происходит так называемый killscreen - блоки начинают падать ещё в 2 раза быстрее, и, даже зажимая кнопку движения, вы не можете довести фигурку до края, делая прохождение невозможным. Такие killscreen существуют во многих старых играх, предотвращая бесконечную игру в неё.

Однако, один суровый японский (а вы как думали?) геймер сообразил, что можно не зажимать кнопку, а нажимать её 10 раз в секунду, и тогда, оказывается, фигурки можно успевать доводить. Позже был изобретён роллинг - очень специфическая техника, позволяющая нажимать её до 30 раз в секунду. Её суть в том, что вы... нажимаете геймпадом на палец, а не наоборот, и толкаете его всеми пальцами другой руки по очереди.

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

Скорость падения перестаёт расти, но спустя ещё сотню уровней игру начинает серьёзно плавить. Начиная со 138-го, цветовая палитра блоков начинает загружаться из неправильных мест в памяти и принимать неожиданные значения, например, часть блоков на 148 уровне становится практически чёрной на чёрном фоне.

Исследователи игры обнаружили, что, начиная со 150-х уровней, игра при определённых условиях может вылетать из-за специфической системы добавления очков. Первая такая возможность открывается на уровне 154. Если перейти со 154 на 155 уровень, собрав ровно одну линию, то игра упадёт. Это стало целью в гонке между лучшими игроками.

В декабре 2023-го 13-летний игрок смог дойти до 154-го уровня, но пропустил ту возможность, однако, спровоцировал вылет на 157-м уровне и стал первым человеком, сломавшим тетрис. Эта история так хайпанула, что попала даже в New York Times и другие новости под заголовком о первой за 40 лет "победе" над Тетрисом.

В этой огромной таблице описаны все условия падения игры. Насколько я понимаю, никто не пытался пройти через все из них. А вот что пытались, так это переполнить счётчик уровня, который записан, естественно, в uint8.

Всего лишь полгода назад одному из игроков впервые удалось этого достичь на стриме, но для этого использовалась модифицированная версия игры, в которой пофикшены падения. При переполнении счётчика уровней он сбрасывается до 0 и скорость падения блоков сбрасывается до соответствующей - происходит Tetris Rebirth.

Это я кратко описал для вас лор только лишь классической версии игры. Разработчики разных версий по-всякому модифицируют её правила и добавляют какие-то приколы. Японские (а вы как думали?) разработчики выпустили серию Tetris: the Grand Master, открывающую новые лимиты в скорости падения блоков. Про него история не менее крутая, и интересующихся отправляю посмотреть вот это видео.

Сам я играю как дебил, разумеется.

@knowledge_accumulator
OneRec: Unifying Retrieve and Rank with Generative Recommender and Preference Alignment [2025]

У рекомендательных инженеров есть мечта - каким-то образом обучить одну модель, которая будет напрямую выбирать айтемы из огромной базы, без всяких multi-stage ranking костылей. Каким-то образом она должна совмещать в себе скорость методов кандидатогенерации и качество моделей ранжирования.

Одним из ответов на данный вызов называют генеративные рекомендации. Я уже писал про статью о Generative Retrieval (TIGER) от гугла. Суть этого подхода заключается в обучении семантических ID-шников для айтемов, делающих осмысленным генерацию айтема декодерным трансформером.

Здесь подход похожий, но авторы утверждают, что запустили такую систему в прод вместо всей системы ранжирования и получили профит. От TIGER система достаточно сильно отличается, давайте посмотрим внимательнее.

Начнём с того, что авторы не используют никакие RQ-VAE для генерации семантических ID. Вместо этого на датасете из эмбеддингов айтемов N раз применяют "Balanced K-means" - вариацию алгоритма, в которой форсируется одинаковый размер кластеров. После каждого из N применений из векторов вычитают центроиды - получается почти как в RQ-VAE, но по-другому.

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

Каждое видео заменяется на последовательность его семантических ID + разделитель. На этих данных мы самым обычным образом обучаем декодер, максимизируя вероятность выдачи "хорошей сессии". Один внимательный инженер заметил, что это по сути одна итерация Cross Entropy Method, со всеми вытекающими - например, тут отсутствует оценка индивидуальных действий.

Но это только предобучение. После этого применяют "DPO с дополнительной reward model", но это не RLHF, а свой велосипед.

Сначала RM обучают по сессии предсказывать награду - наличие лайка или суммарный watchtime. Далее генератор просят выдать N последовательностей, которые RM ранжирует и выбирает лучшую и худшую - эти пары и будут использоваться для обучения DPO.

Получается, что авторы, лишь бы не использовать RL, игнорируют наличие у них Reward Model и используют метод, разработанный для того, чтобы не обучать Reward Model. Как опытный RL-щик, одобряю.

Онлайн-результаты такие: 0.1B-декодер даёт +0.57%, 1B-декодер даёт +1.21% и 1B + их DPO даёт +1.68%. Очень интересный результат, думаю, мы тоже будем копать в какую-то такую сторону. Чем меньше у системы кусков и моделей, тем лучше с практической точки зрения.

@knowledge_accumulator
Самая успешная ОПГ в мире

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

А что же нужно делать бандиту, цель которого - мат. ожидание долгосрочного успеха? Какой бандит побеждает других в конкурентной борьбе спустя время? Существует альтернатива грабежу "на улице", которая позволяет масштабировать эту деятельность, при этом уменьшая риски.

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

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

Самым очевидным является силовая борьба между этими агентами. Если 2 группировки грабят один и тот же бизнес, это создаёт точку напряжения между ними, и у них появляется стимул уничтожить друг друга.

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

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

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

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

В современном мире мы имеем ситуацию, в которой в мире существует много ОПГ, которые в той или иной степени договорились между собой и просто поделили Землю на территории, крышуя свои куски. В текущий момент истории мы всё ещё можем наблюдать оба фактора в действии.

Во-первых, силовая война против сопоставимого противника невыгодна. В худшем случае - при гражданской войне - ни о каком развитии речи не идёт. Но такого почти не происходит. Сегодня на первый план выходит именно второй фактор - экономический.

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

Несмотря на то, что, например, европейские ОПГ забирают у крышуемых больше денег, это имеет лишь краткосрочную выгоду. Экономика США была в ~3.5 раза больше немецкой в 1993, но в 2023 она больше уже в 6 раз. А чтобы начать свой взрывной экономический рост, Китай начал вводить рыночные реформы и тем самым грабить меньше, но теперь они гораздо богаче, чем были.

Бандитам поглупее нужно учиться у своего самого успешного коллеги - США. Чтобы у вас было больше денег, нужно меньше грабить. Европейскому разуму, к сожалению, такую мысль не осилить.

@knowledge_accumulator
Я не могу больше это терпеть. С меня хватит.

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

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

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

Даже если ваша прокси-метрика нормально отражает счастье компании и пользователей, ранжирующая модель оптимизирует не её. Ранжирующая модель - это какой-нибудь унылый Learning To Rank подход, предсказывающий скоры для конкретных пар (user;item). То, на что именно он обучается, и то, что происходит со скорами после предсказаний - это результат десятилетия внедрений костылей, и любое изменение модели может привести к тому, что все эти правила раскалибруются и всё сломается.

Таким образом, есть 2 очевидных сценария, в которых я обучаю новую охеренную модель, внедряю, все оффлайн-метрики колосятся, а AB-шница и начальники исходят на говно.

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

Одна только загвоздка - эту модель потом хуй заменишь на другую. Текущий продакшн могли поставить обучаться в 2023, и теперь удачи побить его с помощью обученной с нуля модельки. Да, ты молодец, что бьёшь бейзлайн, который тоже обучается с нуля, но всем насрать - тебе надо наверстать 2 года обучения, чтобы это имело смысл ставить в AB.

Для этого иди, пожалуйста, построй фичи для своего трансформера на 2 года назад, собери триллион сэмплов, а потом просто обучи на нескольких h100-нодах. Ой, процесс построения исходных данных 13 раз ломался только за последний месяц, так что в некоторых местах входы будут содержать приколы вместо реальных фичей. Твоя модель ведь не сломается от этого, да?

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

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

Очень надеюсь, что это изменение позволит мне сосредоточиться на прогрессе в ML, не обращая внимания на шум вокруг, и наконец-то обрести спокойную и стабильную жизнь.

@knowledge_accumulator
Как я съездил в Северную Корею

Шёл 2018-й год. На тот момент я уже прилично увлёкся политикой и историей, и меня всегда привлекала история про корейский A/B-тест, в рамках которого страну ~случайно разделили на коммунизм и капитализм.

В марте было объявлено о том, что через несколько месяцев произойдёт встреча между Трампом и Высшим Руководителем Ким Чен Ыном, и это дало однозначный сигнал - в следующие 3 месяца ядерной войны не будет, и это мой наилучший шанс туда съездить.

Просто так полететь в страну победившего социализма нельзя. Единственная опция - записаться через агентство на групповой тур, что и я сделал. Обошлось всё в сущие копейки - 100 с чем-то тыщ рублей, правда, ещё надо было прилететь во Владивосток.

Путешествие в КНДР сильно отличается от того, к чему все привыкли. У меня была плотно набитая 8-дневная программа, в которой нас полностью сопровождает гид. Нет, не совсем так. Вас не может не сопровождать гид. Свободно перемещаться, даже выйти из отеля на улицу, нельзя. У дверей дежурят 2 чекиста.

В рамках 8-дневной программы вы не изучаете страну, вы смотрите театральное представление, которое для вас придумала партия. Нас возили по исторически важным объектам, по местам коммунистического паломничества (например, место рождения Вечного Президента КНДР Ким Ир Сена), а также демонстрировали всеобщее благосостояние жителей КНДР, показывая их "самый обычный" дворец пионеров, театр, цирк и супермаркет с обменом валюты (ха-ха).

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

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

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

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

Один раз мы уболтали нашего гида пойти с нами просто так гулять по городу. Она явно об этом пожалела. В какой-то момент мы увидели, как корейцы стоят в очереди на посадку в автобус, и тут мы радостно достали телефоны и начали снимать, за что получили по шапке - злые омэриканцы будут использовать эти фотографии для клеветы. Пока мы шли, гид не могла спрятать своё волнение и дискомфорт, но заставить нас вернуться, видимо, она не могла. Мои попутчики не шли ей на встречу, и поэтому мы провели на улице аж полчаса, после чего они всё-таки сжалились.

Суммируя, скажу, что это было самой лучшей поездкой за всю мою жизнь. Количество полученных эмоций даже близко не сравнится ни с чем другим, и даже скажу больше - не понимаю, как можно не хотеть съездить в КНДР, если вы в принципе любите путешествовать. Зачем нужны скучные и одинаковые европейские столицы, когда в мире существуют действительно необычные места?

К сожалению, в 2020-м после наступления ковида КНДР прикрыла свою туристическую программу. Лишь недавно она была вновь возобновлена, и затем тут же отменена снова. Надеюсь, что у людей всё-таки появится возможность заглянуть в эту параллельную вселенную. После этого жизнь уже не будет прежней.

@knowledge_accumulator
ARC-AGI-2 [2025]

В конце прошлого года OpenAI анонсировали модель O3, которая при достаточно длительном размышлении решает первую часть ARC на высокий результат, близкий к человеческому, правда, на публичном эвале. Недавно авторы решили выпустить его вторую версию.

Как известно, Claude Boys и O1-pro Boys всей душой ненавидят ARC и при каждой возможности пытаются принизить его значимость. У этого есть вполне обоснованные причины:

1) Задачи этого бенчмарка не представлены в виде естественного языка. LLM Boys считают, что бенчмарк должен быть разработан так, чтобы было удобно решать тем моделям, которые им нравятся. Ну и, в отличие от опросников в формате ЕГЭ, ARC-вопросы не имеют практического смысла.
2) Если бенчмарк представляет принципиально новый челлендж, то в современных кругах это считается препятствием к техническому прогрессу. Чтобы развивать технологии, необходимо хвалить то, что уже есть, и не качать лодку.
3) Личность автора этого бенчмарка очень сильно беспокоит фанатов LLM. Он осмелился писать плохое про языковые модели в X (то, что это не AGI) и вообще мерзкий тип - и это автоматически делает его бенчмарк менее рукопожатным.
4) Самый страшный грех для авторов AI-бенчмарка в 2025 году - они понимают, как работает современная наука, и поэтому не выкладывают тестовые данные в открытый доступ, тем самым связывая руки почти всем современных учёным.

Так, а что, собственно, нового во второй части? Авторы почесали репу, разглядывая, как текущие подходы решают первую часть,

Первое, что они поняли - если задачу можно решить DSL-перебором, значит, она слишком простая и не требует интеллекта в принципе. Это почти половина задач из оригинальной версии бенчмарка.

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

1) Symbolic Interpretation - способность "глубоко" интерпретировать значение объектов на поле, за рамками простого visual pattern.
2) Compositional Reasoning - способность применять одновременно несколько правил, взаимодействующих друг с другом
3) Contextual Rule Application - способность применять правила по-разному в зависимости от контекста

На основе этих знаний и была составлена вторая версия бенчмарка - ARC-AGI-2. Утверждается, что сложность для людей осталась примерно такой же - 60% (было 64%) прохождения в среднем, и ни одна задача не осталась совсем не решённой тестировщиками.

Вы можете поиграться с паблик эвалом здесь (выбирайте Public Evaluation Set v2 (Hard)). Но не пугайтесь первой задачи - она аномально сложная по сравнению с другими. В среднем, подтверждаю, что сложность лишь слегка выше первой версии. Задачи стали больше по размеру и содержат больше элементов, но в большинстве случаев решение почти сразу становится понятным. При этом, оно часто не поддаётся простому объяснению, что и делает DSL-перебор крайне сложным.

По новой версии уже стартовало новое Kaggle-соревнование, как когда-то по старой. Но времена сильно изменились - в 2020 AGI считался стыдной темой и был лишь уделом мечтаний узкого круга лиц, тогда как сейчас это способ поднять бабок на инвестициях от лохов. Так что, взять золото в нём так просто, как у меня в тот раз, уже не выйдет.

@knowledge_accumulator
В поисках опасных развлечений

Я очень рад, что в современном мире у нас есть много людей со свободным временем и интернет. Это позволяет создавать и популяризировать разного рода дебильные занятия, а мы с вами за этим цирком можем наблюдать.

Меня всегда радует, когда я узнаю о новом способе людей подвергать себя бессмысленному риску для жизни. Хочу поделиться с вами своими находками. Будем двигаться примерно в порядке убывания популярности и возрастания рисков.

Плавание

Внезапное начало нашего списка. Конечно, если вы зашли по пояс в спокойную воду, с вами ничего не случится. Проблема плавания в том, что люди частенько игнорируют огромные факторы риска. Они лезут в воду бухими, плавают в незнакомых местах, попадают в отбойное течения и т.д. На мой вкус, плавание, как развлечение, невероятно переоценено, и может выиграть разве что у разглядывания стены. В США тонет 4к людей в год.

Мотоциклы

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

Полетушки

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

Горный велосипед

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

Исследование пещер

Возбуждает ли вас мысль о залезании в такую дыру, в которую ещё никто не залезал? Те, кто отвечают "О ДА!", не просто мечтают - они делают это. Любой нормальный человек, если видит в горе бесконечно глубокую щель шириной в 40 сантиметров, страшно будет её бояться. Почти все мы в какой-то мере подвержены клаустрофобии, и это не баг, а фича. Наблюдать за такими приключениями на ютубе безумно интересно, вот это видео мне очень зашло. В Британии в пещерах померли 138 человек за всё время, с учётом масштаба - тысячи любителей - число весьма огромное.

Пещерный дайвинг

Тупой и ещё тупее - так можно сказать про двух исследователей пещер, второй из которых занимается нырянием в подводные. Как говорят в интернете - главный плюс пещерного дайвинга в том, что им можно не заниматься. Наблюдать пример такого приключения можно в этом видео. Данные с сайта по теме - одна смерть на 3286 ныряний.

Бейсджампинг

Среди полетушек существует отдельный подвид, удостоившийся финальной позиции в моём хит-параде. Под ним понимается прыжок с какого-то высокого объекта - здания, горы и т.п., и приземление с помощью парашюта или вингсьюта - это такой костюм с "крыльями", которые протянуты между руками и ногами - вы как бы сам себе парашют. Изобретатель этого чуда испытал его, прыгнув с Эйфелевой башни. Так он, собственно, и помер. Согласно данным, умирает 1 человек на каждые 2000 прыжков. А вот если пересчитать на часы, то, получается смерть каждые 20 часов полёта. Держите видео.

Расскажите о том, что я упустил. Какое самое опасное хобби знаете вы? Комментарий про жизнь в России не принимается - слишком банально.

@knowledge_accumulator
Self-Consuming Generative Models Go MAD [2023]

Существует большой спектр ожиданий от текущего поколения AI. С оптимистичной стороны собрались сливки человечества. Там находятся авторы AI-фанфиков (таких, как ai-2027.com), описывающие с точностью до месяца события мирового масштаба на 2.5 года вперёд. Там находятся говорящие головы, подрабатывающие CEO, и думающие, что через 3-6 месяцев AI будет писать 90% кода (месяц уже прошёл). Сегодня мы с вами взглянем на ситуацию с противоположной стороны.

Первым шагом обучения любой современной модели является гигантский pretrain. Модели обучают предсказывать следующий токен в последовательности на всём интернете. До 2020 почти 100% контента на естественном языке создавали люди, но с появлением вменяемых моделей всё больше и больше контента начинает генерироваться нейросетями. В процессе продвижения knowledge cutoff вперёд всё большую долю данных в претрейне будет составлять синтетический контент. Опасно ли это?

Попытку исследовать этот вопрос провели авторы сегодняшней статьи. В ней они проводили эксперименты над генеративными картиночными моделями, обучаемыми на фотографиях лиц. Рассматривалось 3 сценария:

Fully Synthetic Loop - модель каждого следующего поколения обучается только на синтетическом датасете из предыдущего поколения.
Synthetic augmentation Loop - модель каждого следующего поколения обучается на синтетическом датасете из предыдущего поколения и на фиксированном реальном датасете.
Fresh Data Loop - модель каждого следующего поколения обучается на синтетическом датасете из предыдущего поколения и на свежем реальном датасете.

Также оценивалось влияние sampling bias. В контексте ганов это обрезание хвостов нормального шума, в контексте языковых моделей эту роль, пожалуй, играет температура. Sampling bias помогает увеличить среднее качество сэмплов, жертвуя при этом их разнообразием.

И в Fully Synthetic Loop, и в Synthetic augmentation Loop (в нём доля синтетики была 50%) модель деградировала со временем. Во втором случае она предсказуемо деградировала медленнее. Усиление sampling bias замедляло падение качества, но пагубно влияло на разнообразие результата.

Сценарий с Fresh Data Loop показал более интересный результат. Итак, на каждом шаге мы дообучаем на n_r новых реальных картинках и на n_s генерациях с предыдущего шага. Качество модели в рамках этого процесса сходится к точке, которая зависит от этих 2 параметров и не зависит от первого поколения датасета.

Важно, что наличие синтетики улучшает качество в этом случае, но до какого-то предела. То, полезна ли она, определяется тем, получается ли в результате процесса модель, которая лучше, чем простая модель, обученная на n_r.

Оказывается, на это сильно влияет тот самый sampling bias. При его наличии полезность синтетики становится отрицательной выше какого-то порога, причём, этот порог не увеличивается пропорционально n_r, скорее, является константой. К сожалению, авторы берут не сильно большой диапазон параметров в этих экспериментах, но у них получилось так, что при отсутствии sampling bias синтетика вообще не вредит, даже при доле в 90%.

Конечно, на основе этой статьи нельзя делать точные предсказания будущего. Однако, глядя на текущий интернет, у меня всё же возникают опасения. Люди загружают в него всё больше и больше синтетического контента, и смысл создавать его руками лишь падает со временем. Подавляющая доля постов в соцсетях, комментариев, а со временем и картинок будет создана автоматически. Sampling bias люди используют на всю катушку, пытаясь выдать более качественный результат. Теоретически, всё это может привести к серьёзной деградации результатов претрейна с течением времени.

Ситуацию спасёт новое поколение AI, не обучающееся на всём интернете, а также мы - люди, продолжающие писать свои тексты ручками.

@knowledge_accumulator
Каким должно быть нормальное метро?

Я слышал лишь один раз, как кто-то восхищался метро в Лондоне - это был мой коллега из офиса в Нью-Йорке. Оно и понятно - там оно почти неотличимо от локаций из Метро 2033, причём, мутанты-NPC там тоже присутствуют.

Вчера сформулировал список базовых критериев качества нормального метро. Жители Москвы посмеются - для них это скорее норма жизни. Многие иммигранты не согласятся, но это в чистом виде говнохранительство, они и закрытие в магазинов в 5 вечера будут оправдывать.

Итак, 3 ключевых критерия:

Надёжность
Поезда должны ходить стабильно всё время. Ежедневный пользователь должен испытывать на себе небольшие задержки не чаще, чем раз в год. Нет, линия или даже станция не может быть просто закрыта.

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

Безопасность
В метро не должны пускаться бомжи, наркоманы, бухие. За любое отклонение от правил пользования - громкую музыку, курение, крики, кидание мусора на пол, должны выпиздывать ссаными тряпками.

Менее критичные пункты, но всё ещё очень важные:

Доступная среда
На каждой станции должен быть эскалатор или лифт. Они всегда должны работать. Если они всё же не работают, по ступенькам должно без остановки туда-сюда ходить начальство станции с сумками кирпичей, пока не починят.

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

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


А возможно ли всё это? Может быть, я просто мечтаю о неосуществимом? Если в городе в принципе нужно метро, то уверен, что да, объясню, почему:

1) Практически всё это присутствует в Москве. Если это возможно там, значит, возможно и в других местах.
2) Современный общественный транспорт принадлежит государству, то есть является монополией. Конкуренция - это единственное явление, которое толкает компании улучшать свой сервис. Так как её нет, то и на итоговый результат всем насрать.
3) Подавляющее большинство людей - долбоёбы. Абсолютно уверен, что если бы метро управлялось умными людьми, которым не всё равно, то все эти пункты были бы без проблем обеспечены. К сожалению, опять же, из-за отсутствия рыночных механизмов никакие стимулы к этому не толкают.

Если меня читают пользователи в Азии, расскажите, пожалуйста, насколько в ваших странах метро соответствует моим базовым критериям качества?

@knowledge_accumulator
Какие жизненные уроки можно вынести из Balatro?

Итак, суть игры. У вас есть колода карт. Каждый раунд состоит из нескольких рук - из колоды вы достаёте 8 карт и должны выбрать до 5, составляющих покерную комбинацию.

За комбинацию дают 2 награды - Chips и Multiplier. Чтобы посчитать итоговую стоимость руки, они умножаются друг на друга. Цель раунда - набрать за несколько рук N очков.

С каждым раундом N растёт, усложняя задачу, но тут в игру вступают разнообразные механики прокачки. Основная из них - это 150 различных Джокеров. Покупая их, они кладутся в отдельное хранилище и предоставляют бонусы, тривиальный пример - «+100 фишек за флеш». Помимо джокеров можно докупать карты в свою колоду и другие усиления.

«Победа» наступает после прохождения 24 раунда, в котором вы набираете около 200к очков. Но после него игра не заканчивается, а предлагает бесконечный режим.

И тут происходит что-то странное. На 29 раунде нужен миллион, а на 32-м 15 миллионов. Убившись пару раз, я пошёл гуглить - а что там дальше? Оказывается, игра принимает неожиданный поворот - с каждым раундом очки будут расти не то, что экспоненциально, а как экспонента от квадрата. На 115 раунде вас ждёт неминуемая гибель - требуемые очки выходят за пределы Double - 10^308.

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

Джокер «Барон» умножает мультипликатор на 1.5 за каждую карту короля, которую вы держите в руке после выбора комбинации. В комбинации с другими джокерами, которые копируют его эффект и подобными, после модификации колоды таким образом, чтобы она целиком состояла из одних королей со специальными бонусами, добавляющими еще больше умножений на 1.5, игроку легко понять, как выглядит колода, дающая минимум 10^25 очков.

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

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

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

В то же время, если у вас есть миллион при доходе в 100к в год, то зарплата будет давать примерно тот же доход, что и рост купленного на этот лям S&P500.

Но инвестиции в S&P500 требуют нулевых временных затрат, так что, в этот момент вы можете выйти на пенсию и стать Гусиным фермером. Но можно ли ускорить экспоненту, прилагая усилия?

Можно продолжать работать, и достаточно длительное время рост состояния будет значительно выше. Но это не будет экспонентой. Для роста основания экспоненты необходимо прокачивать вашего Барона - найти способ приращивать деньги с большим процентным доходом, чем S&P500.

Лёгкого и очевидного способа нет - на открытом рынке все доходности равномерно распределены и индекс является оптимальным способом заработка на нём. Нужны альтернативные опции.

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

Другая опция - повышать риски. Производить кокаин, создавать свою ОПГ или быть стартапером - всё это повышает потолок вашей доходности, в то же время вводя возможность легко все потерять. Можно ли набраться опыта и стать стартапером с высоким мат. ожиданием прибыли? Мне неизвестно.

Всем хорошего High Score!

@knowledge_accumulator
О, дивный новый мёртвый Интернет

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

В прошлом январе вышла статья, где авторы попытались проанализировать масштабы использования машинного перевода в интернете, и после довольно изощрённых манипуляций смогли сгруппировать 57% текстов в группы, вроде как порождённые машинным переводом на 2+ языка. На мой взгляд это всё достаточно мутно, но журналюгам это не помешало понести в интернет заголовки "57% интернета сгенерировано AI".

К сожалению, строго измерить долю присутствия AI в интернете едва ли будет возможно. Мы можем лишь субъективно наблюдать за его наличием в разных сценариях с различной степенью очевидности. Итак, какие ловушки в интернете оставил для человечества Skynet?

AI-кликбейт в фейсбуке
Не обязательно в фейсбуке, но там это приняло наибольшие масштабы, поскольку именно там сидит более возрастная аудитория (как в Одноклассниках), которая не сильно в курсе текущей генеративной революции. Забайтить бабок на лайк и комменты весьма просто, проаппелировав к самым базовым человеческим эмоциям. Смешной обзор на такого рода контент можно найти здесь.

AI-тексты
Цена генерации текста на любую тему по любому запросу упала практически до нуля. Я думаю, уже очень скоро все тексты, которые не написаны каким-то верифицированным источником (например, мной в этом канале), можно будет считать AI-кликбейтом. Представляю ситуацию, в котором на каждый запрос в гугл вида "прыщ на затылке" у вас будет по статье о раке мозга 4 стадии, заботливо сделанной для зарабатывания 3 копеек с показа рекламы.


Но самое опасное оружие AI на данный момент - это видео. Если вы пользуетесь какими-то рекомендациями - например, тиктоком, если в нём вы залипните на пару раз в AI-контент, рекомендательная система подцепит это и начнёт кормить вас этим бесконечно, отравляя мозг и в конечном счёте убивая ваш пользовательский опыт. Они бывают разных видов:

Бомбардиро Крокодило
Такого рода персонажи, как он и Тралалело Тралала - это новая реинкарнация Skibidi toilet, но более страшная, поскольку не ограничена в своих объёмах. Жду не дождусь посмотреть на детей, которые будут начиная с 2 лет по несколько часов в день смотреть это творчество в планшете, пока родители заняты какими-то важными делами.

Видео-тексты
Как превратить текст в видео? Весьма просто. Берём какое-нибудь видео с игрой в Minecraft или в Subway Surfers, сам текст озвучиваем с помощью какого-нибудь алгоритма, ставим на фон проигрываться и готово - ваш мозг гниёт в 3 раза быстрее обычного! Эффект становится ещё сильнее, когда изначальный текст тоже сгенерирован с помощью AI.

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

Нас всех ждёт светлое будущее, дорогие друзья. А какой у вас самый любимый вид brainrot в интернете?

@knowledge_accumulator
Магия квантовых компьютеров

Моя любимая теория заговора состоит в том, что на самом деле физики знают, что практическая реализация квантового компьютера, который будет приносить реальную пользу, невозможна. Они распространили мифы о квантовых вычислениях, обещая светлое будущее, но всё это продуманный скам с целью десятилетиями распиливать бабло на его "исследовании". Квантовые компьютеры - это AGI из 90-х, но лучше, потому что непонятны широкой публике и не вызывают сумасшедших ожиданий к 2027-му.

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

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

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

У вас есть произвольная программа, который получает бинарную строку размером N, и выдаёт 1 только для одной из них, которую вы и должны отыскать. На обычном компьютере ничего лучше подавания в неё всех 2^N вариантов сделать нельзя, зато, если вы знаете ответ, вы можете легко проверить его за одно применение.

Алгоритм Гровера позволяет решить эту задачу гораздо быстрее, но не за полиномиальное время, как вы могли бы подумать, а всего лишь за sqrt(2^N), то есть за экспоненту в 2 раза меньше. Алгоритм Гровера - это буквально плазменная колода из Balatro.

Теперь нам необходимо погрузиться в сам фреймворк вычислений, чтобы понять его суть. Пока нам придётся поверить на слово в то, что эти абстракции так работают, но в целом я пока не увидел в них ничего магического, так что сойдёт.

Квантовые вычисления происходят над кубитами - ячейками, способная принимать произвольное значение от 0 до 1. N обычных бит могут закодировать 2^N возможных состояний, а N кубитов кодируют вектор на единичной сфере в пространстве размерности 2^N - назовём его состоянием.

Первое правило квантового клуба - если у вас есть классический алгоритм, выдающий 1 для одной из 2^N бинарных строк, то у него есть альтер-эго в квантовом фреймворке. В нём он получает на вход вектор состояния размерности 2^N, и ровно у одной компоненты, соответствующего правильному ответу, умножает значение на -1.

Второе правило квантового клуба - если у нас есть вектор состояния, то мы можем его симметрично отразить относительно вектора [1/sqrt(2^N), 1/sqrt(2^N), ..., 1/sqrt(2^N)] - назовём его вектором равного состояния.

Итак, алгоритм Гровера состоит в том, что мы берём вектор равного состояния и начинаем применять к нему в цикле две описанные выше операции по очереди. После каждого раза вектор состояния становится ближе к базисному вектору, соответствующему правильному ответу. Скорость прииближения в радианах - 1/sqrt(2^N) за прокрутку. Таким образом, применив его pi/4 * sqrt(2^N) раз, наш вектор состояния станет очень близким к правильному ответу, и только в этот момент будет смысл его прочитать.

3Blue1Brown говорит, что миф о том, что квантовый компьютер каким-то магическим образом проверяет все ответы за раз, неверен. В случае алгоритма Гровера имеет смысл другая аналогия. Представьте, что вы находитесь в вершине N-мерного гиперкуба и пытаетесь попасть в его противоположный конец. Обычный компьютер позволяет вам ходить лишь по рёбрам куба, а вот алгоритм Гровера позволяет вам идти прямо к цели, и суммарное расстояние уменьшится до sqrt(N).

Мне ещё предстоит разобраться в других квантовых алгоритмах. Насколько я понял, алгоритм Шора, раскладывающий числа на простые множители, действительно обещает нам экспоненциальный прирост в скорости. Но это в другой раз.

@knowledge_accumulator
AlphaEvolve [2025]

Очень простым критерием, по которому я отсекаю интересные "приложения AI в науке" от неинтересных, это то, была ли в итоге решена какая-то нерешённая задача. Deepmind имеет неплохую репутацию в этом вопросе, и я уже писал посты про их подобные работы - AlphaTensor, AutoNumerics-Zero и некоторые другие.

Перед нами ещё одна работа, выбивающая SOTA на разного рода математических задачах. Я очень обрадовался, увидев первым автором Сашу Новикова, с которым когда-то капельку поработал, будучи ещё безмозглым пиздюком.

Итак, перед нами идейный потомок FunSearch. Это хорошо проделанная практическая работа по масштабированию, однако, основная идея изменилась не особо.

Алгоритм применим для поиска решений "NP-задач", т.е. в которых возможна быстрая (автоматическая) оценка решения. Это вариация эволюционного поиска программы, который поддерживает популяцию решений и вместо примитивных операций над кодом использует LLM для генерации новых кандидатов.

Дьявол, конечно, в деталях, и над ними как раз хорошо поработали. Тут тебе и комбинация разных LLM, и целая процедура генерации промпта, включающая параллельно оптимизируемый мета-промпт, и оптимизация диффа вместо программы, и LLM-generated feedback, и, конечно, reward design.

Последнее особенно важно. Дело в том, что эволюционный алгоритм применяется для оптимизации какой-то непрерывной награды. Если у вас есть 10000 вариантов, из которых 9999 одинаково неработающие и 1 работающий, то все эти алгоритмы умного перебора не имеют никакого смысла.

Ставя задачу "докажите утверждение X" в пространстве всех математических доказательств, у вас нет способа сравнить два неправильных черновика между собой. Но в некоторых случаях инструменты сравнения всё же имеются.

В качестве первого примера применения алгоритма в статье описан поиск способов умножать матрицы за меньшее число умножений - та же тема, что и в AlphaTensor. Любой алгоритм по умножению 2 матриц может быть представлен как разложение определённого 3D-тензора в несколько тензоров ранга 1. Количество тензоров в разложении и определяет количество умножений. Пишите в комментариях, если это враньё, я просто цитирую.

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

Но нет, AlphaEvolve не оптимизирует разложение. Он генерирует алгоритм, генерирующий разложение. В качестве затравки ему как раз и даётся тот самый метод градиентного спуска, после чего AlphaEvolve пытается его модифицировать. И у получаемого кода есть отличная мера качества - минимальное количество тензоров, на которое получилось разложить.

Представьте, что самый базовый алгоритм может сгенерировать разложение на 50 тензоров, а разложение на 49 уже не сходится. Если кандидат от AlphaEvolve не сошёлся даже для 50, то сразу отправляется на помойку, но если вдруг смог разложить на 49, то получает более высокий скор в рамках эволюции. Каждый кандидат запускается последовательно на всё более сложной задаче - его просят разложить на 49, 48, 47 тензоров и т.д., и со временем получаются всё более и более крутые алгоритмы оптимизации.

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

Данная работа является крутейшим примером того, как LLM может быть использован для научных открытий. Нет, не надо генерировать вот эту срань. Нужно применить человеческую креативность для того, чтобы переформулировать "NP-задачу" в задачу генерации кода, который можно оценить непрерывным скором, и только потом дёргать LLM в качестве генератора кандидатов.

Но это пока кто-то не изобретёт что-нибудь получше.

@knowledge_accumulator
2025/05/17 19:19:42
Back to Top
HTML Embed Code: