У вас закончился пробный период!
Для полного доступа к функционалу, пожалуйста, оплатите премиум подписку
KN
Возраст канала
Создан
Язык
Русский
-
Вовлеченность по реакциям средняя за неделю
-
Вовлеченность по просмотрам средняя за неделю

Реалистичный взгляд на технологии и мир

Author: @Fritx

Сообщения Статистика
Репосты и цитирования
Сети публикаций
Сателлиты
Контакты
История
Топ категорий
Здесь будут отображены главные категории публикаций.
Топ упоминаний
Здесь будут отображены наиболее частые упоминания людей, организаций и мест.
Найдено 25 результатов
KN
Knowledge Accumulator
5 119 подписчиков
45
14
1.1 k
Каким должно быть нормальное метро?

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

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

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

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

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

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

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

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

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

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


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

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

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

@knowledge_accumulator
17.04.2025, 13:10
t.me/knowledge_accumulator/279
KN
Knowledge Accumulator
5 119 подписчиков
10
11
690
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
15.04.2025, 14:51
t.me/knowledge_accumulator/278
KN
Knowledge Accumulator
5 119 подписчиков
65
20
957
В поисках опасных развлечений

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

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

Плавание

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

Мотоциклы

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

Полетушки

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator
10.04.2025, 15:38
t.me/knowledge_accumulator/277
KN
Knowledge Accumulator
5 119 подписчиков
20
12
1.1 k
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
8.04.2025, 12:50
t.me/knowledge_accumulator/276
KN
Knowledge Accumulator
5 119 подписчиков
41
24
1.1 k
Как я съездил в Северную Корею

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

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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator
3.04.2025, 14:58
t.me/knowledge_accumulator/275
KN
Knowledge Accumulator
5 119 подписчиков
98
6
1.4 k
Выиграл H-1B
2.04.2025, 16:31
t.me/knowledge_accumulator/274
KN
Knowledge Accumulator
5 119 подписчиков
137
55
1.4 k
Я не могу больше это терпеть. С меня хватит.

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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator
1.04.2025, 14:19
t.me/knowledge_accumulator/273
KN
Knowledge Accumulator
5 119 подписчиков
54
23
960
Самая успешная ОПГ в мире

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator
27.03.2025, 14:13
t.me/knowledge_accumulator/272
KN
Knowledge Accumulator
5 119 подписчиков
17
21
692
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
25.03.2025, 14:19
t.me/knowledge_accumulator/271
KN
Knowledge Accumulator
5 119 подписчиков
25
12
875
Автостопом по тетравселенной

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

Если вы не знали, Тетрис - это русская игра. Алексей Пажитнов выпустил первый релиз на территории СССР в середине 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
20.03.2025, 14:40
t.me/knowledge_accumulator/270
KN
Knowledge Accumulator
5 119 подписчиков
30
9
838
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
19.03.2025, 14:55
t.me/knowledge_accumulator/269
KN
Knowledge Accumulator
5 119 подписчиков
35
11
1.0 k
Экономика спортсмена

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

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

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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator
13.03.2025, 15:18
t.me/knowledge_accumulator/268
KN
Knowledge Accumulator
5 119 подписчиков
23
55
1.3 k
Конкретный автоэнкодер [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
11.03.2025, 15:03
t.me/knowledge_accumulator/267
KN
Knowledge Accumulator
5 119 подписчиков
34
14
1.0 k
Как Брайн Джонсон оказывает медвежью услугу борцам против старения

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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator
6.03.2025, 15:31
t.me/knowledge_accumulator/266
KN
Knowledge Accumulator
5 119 подписчиков
21
33
753
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
4.03.2025, 15:13
t.me/knowledge_accumulator/265
KN
Knowledge Accumulator
5 119 подписчиков
25
11
945
Почему попасть в кредитное рабство оказалось отличным решением

В прошлом феврале я писал пост о своих планах стать активным участником кредитной системы в 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
27.02.2025, 15:09
t.me/knowledge_accumulator/264
KN
Knowledge Accumulator
5 119 подписчиков
22
37
965
Covariance matrix adaptation evolution strategy - пример того, как делать ресёрч для людей, а не начальства

Две недели назад я говорил про базовый алгоритм из семейства Evolution Strategies. Сегодня мы посмотрим на CMA-ES - его улучшенную версию.

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

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

CMA-ES двигается дальше. Он переходит от фиксированной дисперсии нормального шума к полноценной матрице ковариаций, вводя в алгоритм межпараметрное взаимодействие.

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

Таким образом, мы "обучаем" направление эволюционного поиска. Автор утверждает, что это можно интерпретировать как Natural Gradient Descent - метод оптимизации второго порядка.

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

Алгоритм математически нагруженный. Полностью разобраться в его устройстве за короткое время, в отличие от базового ES, не представляется возможным. Именно в таких обстоятельствах автор алгоритма - Nikolaus Hansen - поворачивается к человечеству лицом.

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

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

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

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

У CMA-ES ещё к 2009-му накопился список из более чем сотни применений. Данный алгоритм и сегодня используется как один из бейзлайнов в своей области применения, хоть и не является SOTA. Учитесь, салаги.

@knowledge_accumulator
25.02.2025, 14:32
t.me/knowledge_accumulator/263
KN
Knowledge Accumulator
5 119 подписчиков
50
14
1.0 k
Действительно ли нам нужно больше людей?

Илон Маск любит писать и говорить о том, что в развитых странах происходит кризис рождаемости. С этим сложно спорить. Показатель в 2.1 ребёнка на женщину, поддерживающий количество людей в стабильном состоянии, достигается в коротком списке стран за пределами Африки. В США он достигает 1.7, в Европе 1.53, в Японии 1.26, в Китае 1.09, в Южной Корее аж 0.78.

Количество людей меняется по экспоненте, Показатель в 1 ребёнка на женщину обозначает уменьшение населения в 2 раза с каждым поколением, в ~16 раз за 100 лет. Не вымирание, но, тем не менее, выглядит пугающе.

Есть ли в этом рациональное зерно? Какая разница, миллиард нас, 10 или 100? Сегодня предлагаю обсудить плюсы, минусы, подводные камни увеличение населения Земли.

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

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

Если бы нас было в 10 раз меньше, современных компьютеров бы скорее всего не существовало. А что могло бы существовать, если бы нас было в 10 раз больше?

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

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

Помимо описанных 2 жирнющих плюсов увеличение населения имеет и издержки.

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

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

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

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

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

@knowledge_accumulator
20.02.2025, 15:34
t.me/knowledge_accumulator/262
KN
Knowledge Accumulator
5 119 подписчиков
10
17
665
A Conceptual Explanation of Bayesian Hyperparameter Optimization for Machine Learning [2018]

Неделю назад я писал пост про Evolution Strategies. Напомню его область применения:

1) Есть не очень большое пространство параметров
2) Есть функция качества этих параметров, но нет доступа к каким-либо градиентам

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

3) Функцию качества очень долго и дорого считать

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

Именно здесь на сцену выходит Bayesian model-based optimization. Это целое семейство методов, но все они работают по примерно одному и тому же принципу:

1) Мы пытаемся аппроксимировать распределение P(objective | params)
2) Мы используем каждое наше измерение для обучения этой аппроксимации
3) Выбор следующих кандидатов происходит по-умному, балансируя между неисследованными областями в пространстве параметров и проверкой тех областей, в которых мы ожидаем получить хорошее значение функции

Исследуя всё больше и больше точек, мы получаем всё более точную аппроксимацию функции, как показано на картинке. Остаётся выбрать, каким образом моделировать распределение и выбирать кандидатов.

Один из вариантов, используемых на практике, выглядит так:

- При выборе следующих кандидатов мы максимизируем нечто похожее на "мат. ожидание" P(objective | params), но интеграл берётся только по "хорошим" значениям objective - это называется Expected Improvement
- Для оценки P(objective | params) мы формулу Байеса и переходим к моделированию P(params | objective), которое в свою очередь является композицией из двух распределений P(params) - для "хороших" значений objective и для "плохих" - эти распределения называется`L(params) и `G(params).
- В пунктах выше я упоминал "хорошие" и "плохие" значения. Порог, который их разделяет, выбирается как квантиль уже собранного нами множества значений objective.

При применении капельки математики получается, что Expected Improvement максимизируется в тех точках, в которых максимизируется` L(params) / G(params). Эти точки мы пытаемся найти, сэмплируя много раз из `L(params) и пересчитывая это соотношение. Вся эта схема называется Tree-structured Parzen Estimator.

Описанная процедура гораздо хитрее и тяжелее, чем Evolution Strategies, но всё это несопоставимо дешевле и быстрее, чем каждый подсчёт значения Objective(params). Таким образом, метод хорошо подходит для таких ситуаций, как оптимизация гиперпараметров обучения, и используется в качестве одного из основных в библиотеке Hyperopt.

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

@knowledge_accumulator
18.02.2025, 16:26
t.me/knowledge_accumulator/261
KN
Knowledge Accumulator
5 119 подписчиков
41
10
778
Как много всего может поместиться в голове?

Накануне нового года я писал пост со своими целями на 2025, и не так давно смог закрыть одну из них - по Starcraft 2.

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

Всё это дало мне повод для пессимистичных ожиданий. Я рассчитывал, что раз потратил 200 игр и 3 месяца на терранов, то столько же потрачу и на остальных. Однако, выполнить цель мне удалось лишь за 150 игр за зергов и потом за 45 за протоссов.

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

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

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

Но какой у этого предел? У мозга есть физические ограничения - количество нейронов, связей, в конце концов, череп не резиновый. Кроме того, эволюционно код нашего мозга не обучался под бесконечное обучение новому. Могу предположить, что в теории есть 2 вида "троттлинга", которые могут возникать в случае "переполнения" мозга:

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

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

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

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

@knowledge_accumulator
13.02.2025, 14:43
t.me/knowledge_accumulator/260
KN
Knowledge Accumulator
5 119 подписчиков
27
15
714
Evolution Strategies as a Scalable Alternative to Reinforcement Learning [2017] - вспомним классику

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

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

Рассмотрим следующую постановку задачи - у вас есть пространство параметров и какая-то недифференцируемая метрика качества этих параметров, которую вы хотите максимизировать. Звучит достаточно печально, не правда ли?

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

Итак, вы находитесь в текущей точке пространства параметров - Theta. Метод пытается совершить градиентный подъём в нём, но, так как градиентов-то никаких нет, мы пытаемся его оценить как бы с помощью конечной разности. Одна итерация метода выглядит так:

1) Сэмплируем N стандартных нормальных шумов
2) Генерируем N новых Theha_i = Theta + Sigma * Noise_i
3) Получаем качество в этих точках - R_i
4) Оценка градиента Grad равна сумме по всем R_i * Noise_i / (N * Sigma)
5) Делаем шаг по нему -Theta_new = Theta + Alpha * Grad

У алгоритма есть следующие плюсы:
1) Простота - в практических кейсах, а не в статьях на NeurIPS, важно, чтобы метод был легко встраиваемый и легко дебагаемый
2) Легко масштабируемый - при наличии бесконечного компьюта, алгоритм суперлегко масштабируется. Стало в 2 раза больше компьютеров - увеличиваем N в 2 раза и улучшаем сходимость.
3) Нетребовательный к коммуникации - на первый взгляд, нам надо передавать векторы шума между обучатором и воркерами. На самом же деле можно обойтись и без этого. Если у воркера и у обучатора есть доступ к одному и тому же генератору случайных чисел, они могут восстановить из него шум. передавая лишь сид.

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

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

У каждого метода есть свои плюсы, минусы, а также оптимальное время и место для применения. Призываю коллег не заниматься алгошеймингом.

@knowledge_accumulator
11.02.2025, 15:13
t.me/knowledge_accumulator/259
KN
Knowledge Accumulator
5 119 подписчиков
62
20
991
Почему жизнь без азартных игр была бы не такой интересной

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

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

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

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

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

Во сколько же нам обошлось это безумие? Отель за 2 ночи - меньше 200 долларов. Проиграно за как минимум 10 часов нахождения в самом казино - меньше 200 долларов на двоих. Таким образом, в пересчёте на человека в час мы тратили деньги медленнее, чем тратили бы в ресторане.

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

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

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

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

Когда чел играет в игру, в которой интерфейс - это буквально одна полоска, на которой выпадает случайное число от 0 до 100, и он ставит 10 тысяч долларов на то, что выпадет больше 50, в итоге проигрывая 50к за минуту, то да, это уже не совсем фан.

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

@knowledge_accumulator
6.02.2025, 15:24
t.me/knowledge_accumulator/258
KN
Knowledge Accumulator
5 119 подписчиков
19
43
794
Making Deep Learning Go Brrrr From First Principles

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

В этой статье (2020) проанализировали фактические вычисления и реальные временные затраты в имплементации BERT и получили, что хоть матричные умножения и составляют 99.8% вычислений, на них уходит лишь 61% времени - остальное уходит на element-wise операции / нормализации. Huh?

У любого Deep Learning графа можно выделить 3 вида боттлнеков. Очень полезным будет понимать, какой из боттлнеков является наиболее актуальным в каждом конкретном сетапе. Давайте разберём их по порядку.

Compute - временные затраты на фактическое выполнение вычислений на GPU

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

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

Bandwidth - временные затраты на движение данных внутри GPU

Как уже было упомянуто в посте про матрицы, движение данных туда-сюда для вычислений занимает жирный кусок времени выполнения. Чтобы его минимизировать, необходимо фьюзить операции - выполнять много вычислений над куском данных за раз. Есть много уровней болота, на которые можно опуститься. Из элементарного - удалите из своего кода x1 = x.cos() \n x2 = x1.cos() и замените на x2 = x.cos().cos(). Можно фьюзить нормализации с соседними операциями, применять автоматические фьюзеры/компиляторы, ну, а если вы псих, то можно написать свой CUDA kernel на Triton (сам не пробовал).

В посте ссылка на colab
, в котором проведён следующий эксперимент - берём тензор размера ~миллион и умножаем на 2 несколько раз с включенным компилятором, который объединяет умножения в один поход в GPU, Что бы вы думали? 16 умножений работают с той же скоростью, что и одно. Лишь после 64 умножений мы начинаем упираться в компьют.

Overhead - все остальные затраты

На прикреплённой картинке можно увидеть результат профайлинга пайторча, который производит единичное сложение. Итак, A100 умеет выдавать 312 терафлопсов, чистый питон выдаёт 32 мегафлопсов при сложении, а вот пайторч для вас сделает это лишь 280 тысяч раз.

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

Уменьшать overhead можно тем же методом - используя соответствующий компилятор графа - если это касается самого фреймворка, ну и писать нормальный код, если речь про остальное. Так что, как видите, всё очень просто.

@knowledge_accumulator
4.02.2025, 15:25
t.me/knowledge_accumulator/257
KN
Knowledge Accumulator
5 119 подписчиков
53
13
866
Как AI Safety увеличивает вероятность AI-апокалипсиса

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

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

Интуиция не подводит - эта система безопасности на самом деле не работает. В 2015 году в США одно из агенств провело 70 организованных попыток пронести оружие и фейковую взрывчатку, и добилось успеха 67 раз.

Насколько я понял, с тех пор данные решили перестать публиковать. В сабреддите r/tsa представитель самой обрыганской профессии на свете опубликовал жалобный пост о том, что люди до сих пор приводят статистику 10 летней давности, но сейчас-то технологии скакнули! Верим.

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

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

Именно к этому мы идём и в сфере AI-рисков. Начитавшись Sci-Fi про AI-апокалипсис, люди решили работать на опережение и наплодили кучу AI Safety исследователей. Их деятельность уже сейчас напоминает цирк - пример симуляции деятельности от Antropic я разбирал несколько недель назад.

Так как LLM и агенты - это обученные на человеческой разметке генераторы текстов - и не представляют бОльшую опасность, чем сам человек, то тысячи AI-Safety-паразитов сегодня всерьёз занимаются изучением того, как чат-бот может кинуть зигу или стырить файл, если его об этом не совсем напрямую попросить.

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

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

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

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

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

@knowledge_accumulator
30.01.2025, 15:23
t.me/knowledge_accumulator/256
KN
Knowledge Accumulator
5 119 подписчиков
32
40
1.0 k
Почему использование степеней двойки в нейросетях - не суеверие

Продолжаю изучать посты от Horace He - разработчика Pytorch. Данный пост начинается со следующего твита Карпатого:
Самое большое ускорение для nanoGPT (около 25%) - это увеличение размера словаря с 50257 до 50304 - числа, кратного 64

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

Итак, самый главный тренд - это общее увеличение эффективности при увеличении размера матрицы. Про GPU важно понимать одну вещь - само применение операции на загруженных данных занимает далеко не 100% времени.

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

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

На этот тренд накладываются 2 дополнительных эффекта вызывающих разрывы в графике эффективности.

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

Эффект объясняется просто - данные в кэшах GPU хранятся блоками по 2^X элементов. Если вы храните в нём матрицу 2^X * 2^X, то каждую строчку можно прочитать за 1 обращение к блоку памяти. А вот с матрицей (2^X-1) * (2^X-1) всё плохо - большая часть строчек будет занимать частично 2 блока памяти, и для её считывания GPU нужно прочитать оба и обрезать лишнее.

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

Последний эффект - Wave quantization - волнообразное изменение эффективности, с пиками в числах, у которых остаток от деления на 256 равен 128. Природа этого явления уже другая.

Грубо говоря, если у вас есть N параллельных процессоров, то для выполнения N+1 операций вам нужно в 2 раза больше времени, чем для N операций - надо провести 2 "волны" операций вместо одной. Пик эффективности расчётов на данном GPU достигается при использовании всех ядер во время каждой вычислительной волны, и он достигается при N mod 256 = 128

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

@knowledge_accumulator
28.01.2025, 14:24
t.me/knowledge_accumulator/255
Результаты поиска ограничены до 100 публикаций.
Некоторые возможности доступны только премиум пользователям.
Необходимо оплатить подписку, чтобы пользоваться этим функционалом.
Фильтр
Тип публикаций
Хронология похожих публикаций:
Сначала новые
Похожие публикации не найдены
Сообщения
Найти похожие аватары
Каналы 0
Высокий
Название
Подписчики
По вашему запросу ничего не подошло