Telegram Web
Почему самоубийство недооценено

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

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

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

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

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

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

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

В конце скажу пару слов о смертеёбах (за термин спасибо @tech_priestess (отсюда) ). Они могут долго рассказывать о том, что смерть - это смысл жизни, и прочую псевдоинтеллектуальную туфту, но что это значит на практике? Как я уже сказал, у смерти есть конкретная причина, а значит, они одобряют рак, болезни сердца, инсульт и ковид. Идеологически непротиворечивый смертеёб, когда слышит о раке своего друга или инфаркте своей мамы, радуется этому, а не грустит. Ковид - это всемирное счастье для такого человека. Принадлежите ли вы к этому лагерю? Если нет, то вы, как и любой нормальный человек, хотите, чтобы старение и смерть были побеждены.

@knowledge_accumulator
Training language models to follow instructions with human feedback [2022]

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

Вспомним базовый механизм:

1) Supervised Finetuning - модель файнтюнят на датасете prompt -> output, где output сгенерирован человеком
2) Для набора промптов генерируют пачки вариантов output, далее человек их сортирует, показывая, какие лучше. Учим Reward Model (RM) - модель-энкодер, которая по тексту говорит, насколько он 👍
3) Сам RL - с помощью PPO учим генератор токенов выдавать такую последовательность, которую предпочтёт RM

Итак, теперь давайте проведём RL-аналогию с Го. Действия - это токены или ходы в игре. Состояние - это контекст - весь уже сгенерированный текст или состояние доски в Го. Награда - в случае текстов это выход из Reward Model, а в Го это простая программа, которая со 100% точностью считает, кто выиграл в конце игры.

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

Возвращаемся к текстовому RLHF - чем он отличается от Го? Тут несопоставимо более сложное пространство состояний и действий, чем у настольной игры, то есть разрыв между RM и генератором должен быть более существенный. Да, над разрешением проблемы работают, и Chain of Thoughts / Tree of Thoughts / o1 как раз про это - модель лучше умеет понимать по тексту, хороший ли он, и мы ищем способы вытащить из неё крутые траектории.

Но есть более фундаментальная проблема - может быть, вы догадались, это RM. Представим, что произошло нечто невероятное и наш генератор сравнялся с RM по своей крутости - аналог того, что мы в Го построили бы полное дерево по всем 10^170 состояниям. Давайте подумаем, насколько текстовая RM "крутая" вещь?

Фундаментально, её "крутость" ограничена теми данными, на которых она обучалась. У нас есть размеченный людьми датасет из предпочтений ответов, сгенерированных самим генератором (или может быть людьми в каких-то датасетах). Думаю, можно предполагать, что RM по крутости близка к LLM, делающей вывод о готовом ответе. Измеряется крутость разными вещами - например, по уровню запоминания информации она сильно лучше человека, но далека от самого интернета - иначе бы она хотя бы знала все статьи с arxiv. С логикой и решением новых задач наблюдаются сложности.

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

Это очень хорошо видно на тестировании LLM на задаче Монти-Холла. Вы даёте модели любую задачку про 3 двери, машину и 2 козы, а у неё в 99.999% обучающих данных с таким контекстом содержится ответ "выбрать другую дверь". Вот она и выбирает другую дверь, какую бы вы модификацию задачи не дали.

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

@knowledge_accumulator
Новый жанр постов!

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

Из поверхностных приколов мне больше всего запомнился "компьютер" из людей внутри VR-игры в первой части. Мы знаем о том, что из чего угодно, умеющего в базовые битовые операции, можно собрать компьютер - из клеток в игре "Жизнь", редстоуна в майнкрафте. Лю Цысинь доводит это до абсурда - человек тоже может быть битовой операцией! Последствия убили.

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

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

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

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

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

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

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

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

@knowledge_accumulator
Direct Preference Optimization: Your Language Model is Secretly a Reward Model [2023] - продолжаем LLM-ликбез

В прошлый раз мы разбирали стандартный RLHF, теперь давайте глянем на самого популярного из конкурентов и наследников, DPO. Авторы статьи говорят про RLHF следующее:

1) Reward model у нас не особо круто работает, особенно вне data distribution, поэтому полноценный её максимизатор будет плохим.
2) Существует ещё и проблема разнообразия, которого при идеальной максимизации не будет.
3) Наши RL методы сами по себе неидеальны и дороги в вычислении и реализации/отладке.

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

Я не погружался в доказательства вывода, изложу своё понимание результата. Авторы замечают, что двухшаговая процедура из обучения Reward Model и затем RL можно переформулировать как одношаговую процедуру обучения на задачу с одной функцией ошибки и без дополнительной Reward Model.

Почему это возможно? Во-первых, в отличие от обычного RL, никаких настоящих наград не существует, а также нет никакого онлайн-взаимодействия со средой. У нас есть только зафиксированный датасет из троек [запрос ; хороший ответ ; плохой ответ].

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

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

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

Наверняка для RLHF/DPO придумали множество модификаций (в том числе всякие конструкции поверх LLM типа CoT), которые дают более крутой результат, но с таким соотношением пространства параметров и объёма данных решить задачу по-нормальному пока что вряд ли получится.

@knowledge_accumulator
Мы живём в одной из параллельных вселенных. До остальных рукой подать.

Моя самая любимая игра - это Grand Theft Auto: San Andreas. В ней вы играете за бандита из гетто в Лос-Анджелесе Лос-Сантосе. Сначала вы участвуете в разборках между бандами в родных районах, потом участвуете в мутных схемах в Сан-Франциско Сан-Фиерро, затем уже в Лас-Вегасе Лас-Вентурасе помогаете другу-бандиту держать казино, участвуя в разных мафиозных интригах.

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

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

Можно возразить, что эти бандитские пузыри на самом деле - художественная выдумка, и таких событий, как в GTA, в реальности не происходит. Отчасти это, может быть, верно, но в каком-то виде это точно существует, просто мы живём в параллельной вселенной по отношению к этому. Если вы специально потратите какое-то время на просмотр документальных фильмов про бандитов, например, про китайские Триады, российские ОПГ, итальянскую мафию в США, Якудзу в Японии, то вы осознаете масштаб происходяшего и какие деньги там крутятся. Интересный факт - реальная мафия вполне себе имела отношение даже к съёмкам Крёстного отца.

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

Другой интересный вопрос - а как так получается, что эти преступные пузыри не залезают в наш? В белой рыночной экономике люди не организованы в вооружённые формирования и не выдерживают никакой силовой конкуренции. Вот ездит Sam Altman на своей пятимиллионной машине, явно без охраны, ведь в принципе ничего не стоит 5 вооружённым людям при желании у него отобрать тачку, приставить к стенке и выпытать бесплатные токены для o1. Вот Билл Гейтс ест свой хот-дог на Times Square, бери да вытряхивай бабки. Что мешает ОПГ похищать венчурных капиталистов в Кремниевой Долине и заставлять инвестировать миллионы в фиктивные стартапы?

У меня 2 главных гипотезы - во-первых, для ОПГ все эти состояния венчурных капиталистов - ссаные 3 копейки, и любое казино в Лас-Вегасе приносит гораздо больше, при этом это понятный актив. Во-вторых, ОПГ находятся в деловых отношениях с самой большой и опасной ОПГ - государством, которое разрешает им существовать, но требует особо не кошмарить легитимный бизнес, так как если начать это делать, то рыночная экономика быстро разрушится и все от этого только обеднеют. Пишите свои варианты в комментариях!

@knowledge_accumulator
Efficiently Modeling Long Sequences with Structured State Spaces [2021] - как дотер стал нейросетью

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

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

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

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

Итак, помимо RNN и GRU существует State Space Model - ещё один формат ячейки памяти (в его основе всего лишь парочка матричных умножений), но у него есть крутая особенность. Вычисление рода "прогнать SSM на последовательности", оказывается, можно переформулировать в другую функцию - свёртку, для которой можно предпосчитать веса. При добавлении ещё одного фокуса (FFT) эту свёртку можно считать быстрее, чем втупую, что в итоге позволяет по сути быстро применять SSM на всей последовательности.

Далее, у SSM есть 2 проблемы - они херово работают, и хвалёное "быстро посчитать" на самом деле не такое уж и быстрое.

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

Вкратце, вторая проблема заключается в том, что для подсчёта весов свёртки нужно умножать много матриц, а нам вообще-то лень - бумага нынче дорогая. Для этого придумывают магический костыль - Diagonal Plus Low-Rank. Я не стал разбираться в деталях, если вам интересно, отсылаю к разбору, но одну из матриц просто (нихера не просто в реальности) представляют не как обучаемую матрицу весов, а как результат операций над другими обучаемыми сущностями.

В результате, объединив описанные хаки, и получается S4 - хитрая и быстрая вариация "RNN"-ки, которую успешно применяют на сверхдлинных последовательностях.

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

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

@knowledge_accumulator
В чём заключается эффективный альтруизм

Речь не пойдёт о движении с таким названием, сегодня я хочу поговорить просто про помощь другим.

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

Производная среднего здоровья = a_1 x Количество врачей - c_1, то есть каждый новый врач улучшает направление движения среднего здоровья. В такой элементарной картине мира, если вы хотите помогать людям быть здоровыми, вы становитесь врачом.

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

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

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

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

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

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

@knowledge_accumulator
LLMs Still Can't Plan; Can LRMs? A Preliminary Evaluation of OpenAI's o1 on PlanBench [2024] - так могут они планировать или нет?

Часть LLM-критиков используют формулировку "Can't Plan", "Don't plan", но мне они не нравятся.

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

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

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

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

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

Модель O1 решает 100% задач оригинального Blocksworld, что наталкивает на вывод, что Chain of Thought помогает в том числе вспоминанию тренировочных данных. Самый важный прорыв происходит на обфусцированных версиях - модель решает половину `Mystery
Blocksworld` и треть Randomized Mystery Blocksworld. Кого-то это наталкивает на оптимизм, но меня не особо, и вот почему.

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

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

Авторы всё же делают одну интересную проверку - они дали модели 100 модифицированных нерешаемых Blocksworld, из которых O1 признала таковыми 27, а для 54 сгенерировала некорректный план. С Randomized Mystery Blocksworld такой же тест выдал 79/100 некорректных планов.

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

@knowledge_accumulator
Оставьте две недели себе на чай

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

Сеттинг этого мира таков - люди научились полностью останавливать старение тела после 25 лет. Зато вместо этого у них на руке есть таймер - время, через которое они мгновенно умрут. Время на этом таймере используется как деньги.

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

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

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

Искусственный дефицит ресурсов мотивируется тем, что иначе на всех не будет хватать. Я уже писал о мальтузианской ловушке и её применимости в прошлом, современности и будущем. Фундаментальные ресурсы - энергия, пространство, материалы, находятся и будут ещё очень долго находиться в изобилии - при наличии рыночной экономики их использование будет догонять потребности для выживания. Когда в России будет жить ~10 миллиардов человек, то она лишь догонит плотность населения Южной Кореи.

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

"He would rather have the poor poorer provided the rich were less rich" - именно такой цитатой Тэтчер можно описать тех, кто считает, что это будет менее справедливо, чем сейчас. "Всем должно быть одинаково плохо" - так понимают справедливость не только более примитивные приматы, но и некоторые из наших сородичей.

Про аспекты будущего - ИИ, бессмертие и многое другое - люди пишут и снимают антиутопии и прочие ужасы, поскольку произведение о том, как у всех всё хорошо, не вызовет особого интереса. К сожалению, это уже привело к последствиям для ИИ, представление о котором базируется как раз на художественных произведениях 20-го века, когда про ИИ думали, что это человек с IQ=500, живующий в компьютере (кто-то и сейчас так думает). В результате, мы в уникальной ситуации - технологию начинают душить регулированием ещё до появления, и неясно, насколько сильно это замедлит прогресс.

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

@knowledge_accumulator
Agent Q: Advanced Reasoning and Learning for Autonomous AI Agents [2024] - файнтюним LLM на задачи

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

Конкретно LLM ещё до такого далеко, но шаги в эту сторону делают. Примером такого и является статья про Agent Q, одним из авторов которой является автор DPO.

В качестве задачек выбирают всякого рода хождение по интернету - WebShop, OpenTable. У модели есть промпт вида "закажи мне столик в ресторане на XX:XX такого-то числа" и HTML текущей страницы. Чтобы облегчить модели задачу, ей позволяют сначала придумать и добавить план действий в контекст.

Переходим, наконец, к сути обучения. Авторы используют MCTS - хождение по дереву состояний - прям как в AlphaZero. Находясь в вершине текущего состояния, сеть выбирает кандидатов на следующие действия, которые потом исследуются с учётом баланса между exploration и exploitation. Итоговую награду в листьях оценивают с помощью других LLM - оценить правильность по странице с подтверждением заказа достаточно легко для LLM.

Как метод не назови - DPO / Policy Gradient, суть одна - двигаем модель в сторону генерации тех действий, которые привели к более высокой награде в последствии. В результате у авторов получается достичь высокий процент успеха на той задаче, на которой это всё обучали.

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

При обучении in-context трансформера на много задач, чтобы добиться out of distribution обобщения, необходимо, чтобы разнообразие задач превалировало над размером модели. Модели типа Ada / Gato - это супермаленькие трансформеры по сравнению с текущими LLM. Получится ли собрать для них набор задач такого размера, чтобы модель смогла научиться в out-of-distribution? Будем следить.

@knowledge_accumulator
❗️Предупреждение - не идите работать в X❗️

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

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

2) У нас не практикуют Agile, Scrum, не заводят тикеты на каждую подзадачу, в общем, не организация, а бардак.

3) У нас почти невозможно исполнить мечту многих - стать менеджером менеджеров и постепенно карабкаться вверх по 10-этажной структуре организации. Маск - мой скип-скип-менеджер.

4) У нас маленькая команда. Не хватает чувства товарищества, когда несколько команд пытаются работать над одним и тем же проектом.

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

6) У нас нет простора для занятия внутренней политикой, и если вы не хотите просто внедрять улучшения и растить метрики, чтобы себя проявить, то вам будет тяжело работать.

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

8) К сожалению, в зарплату входят акции компании, которая сейчас стоит очень дёшево. Мне стыдно вспоминать, что у пиццерий Domino's сопоставимая капитализация. Уважаемые эксперты и аналитики уже третий год прогнозируют, что компании скоро придёт конец.

9) Мы нанимаем в Лондоне и в США - в странах, в которых, в отличие от Евросоюза, инженеры в тир-1 компаниях получают кратно больше, чем средняя зарплата по стране. Мне гадко на душе из-за того, что я могу позволить себе больше, чем большинство остальных.

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

Итак, я вас предупредил. Если вас это почему-то не убедило, у нас на сайте есть описание вакансии: https://twitter.wd5.myworkdayjobs.com/X/job/Palo-Alto-CA/Senior-Staff-Machine-Learning-Engineer---Core-Product_R100061. Нанимаем на все уровни.

Вопросы пишите в комменты, а если интересует, кидайте в личку резюме и дальше обсудим.
Were RNNs All We Needed? [2024]

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

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

Сначала отвлечёмся на минутку и вспомним задачку подсчёта сумм префиксов массива - [x1; x2; x3 ....] -> [x1; x1+x2; x1+x2+x3]. Такая задача решается линейно за 1 цикл проходом по массиву. А можно ли решить её быстрее, если у нас есть параллельные вычисления?

Засчёт того, что операция суммы ассоциативна (a+b) + c = a + (b+c), нам не обязательно считать всю сумму по порядку. Например, чтобы посчитать всю сумму массива, мы можем в 1 потоке просуммировать левую половину, во 2 потоке правую и в конце сложить - получили подсчёт суммы за половину от длины.

Если у нас много потоков, то все префиксные суммы можно посчитать за логарифм от длины. Алгоритм, который это делает, называется Parallel scan. Итак, можно ли подружить RNN и Parallel Scan?

К сожалению, в обычной GRU/LSTM то, как x_t входит в h_t, зависит от h_{t-1}, так что сделать это нельзя - операция неассоциативна. Авторы предлагают архитектуры minLSTM и minGRU в качестве альтернативы, в которых такой зависимости нет, и которую можно применять параллельно. Понятно, что от этого частично теряется мощность модели, но тем же самым жертвует и S4.

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

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

Интересно, есть ли какая-то перспектива у таких архитектур в контексте meta-learning. С одной стороны, её можно применять in-context и у неё меньше параметров, а значит, должна лучше обобщать за пределы трейна. С другой стороны, это может оказаться просто слабой архитектурой. Тоже поглядим.

@knowledge_accumulator
Правда ли бедным тяжелее, чем богатым?

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

Итак, представим вещественную прямую Net Worth - суммарная стоимость активов и долгов человека. Богатые находятся справа, бедные слева. Перейдём к логарифмической шкале, потому что так удобнее (не обращаем внимания на ситуацию <1$).

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

Когда эта картина нарушается? Чем вы правее, тем больше у вас Dividend / Capital gain tax (самые богатые от этих налогов, конечно, уходят), так что ваша скорость замедляется. А есть ли ситуация, когда деньги открывают возможность к более выгодному инвестированию? Ответ - разумеется! Но как?

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

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

Если вы находитесь не в топ-10% , то ваш основной источник роста - это зарплата. Попасть в топ реально, и первый шаг - это найти хорошую работу. Кому-то кажется такая точка зрения неприличной, но я скажу, как есть - в 2024 году дохера возможностей попасть в топ-10% по доходам (это не такие большие деньги на самом деле), и они найдутся на любые способности - от программирования до ноготочков.

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

Да, представляете - чтобы попасть в топ-10%, нужно в своей жизни что-то поменять. Это, конечно, ужасно.

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

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

@knowledge_accumulator
Meta Agent Search [2024] vs Gödel Agent [2024] - какой подход лучше?

Поверх LLM существуют всякие hand-crafted надстройки, позволяющие выжимать больше профита - Chain-of-Thought, LLM Debate и т.д. Ресёрчеры посмекалистее (среди тех, кто занимается LLM) понимают, что нужно искать способы мета-оптимизации этой надстройки. Про одну такую работу я уже писал.

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

Meta Agent Search идёт по более простому пути - давайте хранить библиотеку программ-агентов, их профит, и просить LLM генерировать новых кандидатов - очень похоже на идею FunSearch. Спустя итерации, агент накидывает в код комбинацию из всяких ответов, проверок, перепроверок, и мета-проверок из LLM, что в результате обходит всех hand-crafted агентов с большим отрывом.

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

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

Агенту дают возможность не только менять код на ходу, но и работать с содержимым переменных в памяти, в общем, можно разгуляться. По анализу получилось немного лучше Meta Agent Search, интересно, что иногда LLM додумывается отказаться от использования LLM в задаче - оказывается, не такие уж они и глупые. Комментировать результаты сравнения мне сложно, всё усугубляется отсутствием применения агента на hold-out задачах, Пространство ответов у некоторых бенчмарков не такое уж и большое, и замерять на них мета-оптимизатор это странно.

Всё это крайне напоминает "противостояние" между VSML И FME - с одной стороны, мета-оптимизация обучающего алгоритма, а с другой, самомодифицирующаяся матрица весов. На мой взгляд, как и тогда, пока потенциал мета-оптимизации не исчерпан, невыгодно перемещаться на следующий уровень - это гораздо дороже по компьюту. При этом, если мы сможем сделать AGI только на основе мета-оптимизации, экзотические методы уже можно будет не придумывать.

@knowledge_accumulator
Почему я хочу, чтобы Дональд Козырный стал президентом США

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

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

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

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

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

Именно поэтому, придя к власти в 2016 году, и даже получив обе палаты парламента на 2 года, Трамп не смог сделать ничего интересного. Несмотря на некоторые внешнеполитические прорывы вроде посещения КНДР (!), внутри страны ничего толком не изменилось. Интересным побочным эффектом стало только то, что теперь мы понимаем размах и мощь демпартийной номенклатуры, бросившей все ресурсы на уничтожение Трампа. Были брошены в топку все остатки репутации и приличия, и это в свою очередь позволило многим открыть глаза на происходящее.

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

Маск никогда не блистал глубокими политическими познаниями, но он явно искренен в своих намерениях. В отличие от очень многих, он способен менять свою точку зрения со временем, опираясь на реальность вокруг, и именно поэтому он частенько стал цитировать Милтона Фридмана, а также водит дружбу с Милеем. Либертарианцем он пока не стал, вот тут он поддерживает SB-1047.

Однако, из текущей точки состояния США он предлагает двигаться в том же направлении, в котором бы двигался любой либертарианец - радикально уменьшать регулирование и гос. расходы. Если Маск смог прийти в Твиттер и сократить 80% народа, особо ничего не сломав, это значит только одно - в государстве можно сократить 95%, если не 99%. И я надеюсь, его идеи удастся воплотить в жизнь.

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

@knowledge_accumulator
Прилетел в Германию сегодня утром, чтобы через несколько часов сесть на поезд и поехать в Польшу. После Currywurst mit Pommes я почувствовал, что зря поставил Германию в один ряд с Россией в предыдущем посте.

Выехав из Берлина, наш поезд проехал час, после чего остановился на 20 минут. Потом нам объявили, что он сломался и дальше никуда не поедет. Нас призвали устроить рейдерский захват ни в чем не повинного поезда, идущего обратно в Берлин. О том, что, собственно, дальше, пока ничего неизвестно.

Воистину, до такого состояния failed state России ещё очень далеко.
В чём мой смысл жизни?

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

Мы придумываем свой смысл жизни сами.

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

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

Но зачем всё это? Будь у меня десятки тысяч лет времени, что бы я с ними делал? Здесь можно накидывать разные варианты.

- Покорение космоса
Это действительно безумно интересно и весело, у этого есть набор практических плюсов, но, в итоге, зачем это? Заселим мы планеты, галактику, а дальше? Согласен, круто, и что?

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

- Дети
Интересно, но на смысл жизни не тянет, скорее, рекурсивно задаётся тот же вопрос

- Отношения с людьми
Это очень важная составляющая жизни, но тоже не кажется хорошей самоцелью.

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

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

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

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

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

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

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

@knowledge_accumulator
Recommender Systems with Generative Retrieval [2023] - наконец-то генеративные рекомендации?

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

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

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

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

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

Вкратце о VQ-VAE - вместо того, чтобы обучать скрытое представление малой размерности, мы обучаем N эмбеддингов - сodebook. Получая входной вектор, мы находим ближайший к нему в таблице, его индекс и будет скрытым представлением. Декодированием будет просто взятие нужного вектора из сodebook. Это всё, конечно, недифференцируемо, но на такой случай есть старый добрый метод - забить хер и использовать Straight Through Estimator.

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

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

У нас с коллегами возникли вопросы по применению всей этой системы в реальном мире. Главный из них - что делать, если векторные представления айтемов меняются со временем? Переобучая / дообучая RQ-VAE на ходу, нам нужно пересоздавать все дискретные представления айтемов, и каждый раз заново перестраивать весь датасет. А это фу.

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

@knowledge_accumulator
Моя самая большая карьерная ошибка в жизни

Шёл 2016-й, и я заканчивал первый курс своей шараги. Прошло полгода, как я плотно подсел на ML - проходил курсы на курсере, читал новомодную тогда Deep Learning Book. Благодаря призовому месту на хакатоне меня позвали в ODS - прогрессивное ML-сообщество в слаке, в котором можно было ставить реакции на сообщения.

Как-то раз я написал сообщение в чат о том, что ищу ML-стажировку и готов работать за еду. Меня позвали на месячную парт-тайм стажировку в Game Insight. Я с радостью пошёл, поскольку разработка игр была вторым вариантом моей жизненной стратегии. В качестве подготовки к работе мне было задано играть в одну из игр. В общем, красота!

Нужно понимать, что в те времена я был совсем другим человеком. Я считал единственно важной частью ML обучение моделек, а всё остальное - помехами на пути к моделированию. Хорошим программистом не был и поэтому мысли о внедрении старательно изгонял из головы. Меня интересовало великое - недавно прошедший матч AlphaGo и Ли Седоля и изобретение AGI.

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

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

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

Учитывая всё это, я отказался от намерения идти работать в прикладной ML.

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

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

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

К 2020-му я уже окончательно переродился, как решатель прикладных проблем, так что, когда политика в России окончательно накрылась, в скором времени, в 2021-м, я пошёл работать над рекомендательными системами в Яндексе, что оказалось очень даже интересным занятием. Однако, мне не хватает этих 5 лет опыта в нормальной разработке, и это преследует меня по сей день.

@knowledge_accumulator
The Surprising Effectiveness of Test-Time Training for Abstract Reasoning [2024] - так что, трансформеры работают на ARC?

Вы могли читать в соседних каналах о том, что LLM смогли приспособить для решения ARC - теста на способность распознавать и применять паттерны по нескольким обучающим примерам. Многие топовые решения основываются на поиске программ, тогда как применение GPT-4 / o1 даёт весьма скромный результат.

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

Изначальную LLama файнтюнят с помощью так называемого ReARC - датасету из искусственно сгенерированных задач. Чтобы их получить, был выписан набор элементарных трансформаций над плоскостями, из которых составлялись задачи и образцы. Из этого добра составлялись сэмплы для few-shot in-context обучения. Она решает 5 задач из 80.

Далее наступает Test-Time Training. Получив датасет из N тренировочных пар вход-выход, мы строим следующий датасет для In-Context Learning:

1) Берём каждый из N сэмплов и превращаем в таргет для in-context обучения, т.е. подаём на вход N-1 сэмплов с таргетами и предсказываем N-ный выход.
2) Обкладываем всё дата-аугментациями - симметрии, повороты, перемешивание тренировочных пар, скейлинг. Молимся, чтобы это не повлияло на задачу.
3) Дополнительно, обучаемся предсказывать таргеты со 2-го по N-1-й, это в статье называют Demonstration loss.

Обучаем LoRA (малопараметрический файнтюн) на каждую отдельную задачку в ARC на описанном выше датасете. Во время тестирования, применяем аугментации к задаче и потом ревёрсим обратно предсказанный ответ. Для выбора 2 финальных ответов проводятся выборы. Всё это в сумме даёт 29 задач из 80. Давайте глянем на Ablation:

1) Если обучать одну LoRA на все задачи - 22 / 80
2) Если не применять дата-аугментации - 13 / 80
3) Если вместо хитрого in-context test-time training просто файнтюнить на N сэмплах - 18 / 80
4) Если не файнтюнить модель на ReARC - 9 / 80
5) Если попросить GPT-4o сгенерировать ARC задачи для файнтюна и добавить к ReARC - 24 / 80 😁

Все эти замеры проводились на основе LLama-1B, Llama-8B даёт уже 36 из 80 - результат в 45%. А откуда же взялся результат в 62%? Для этого авторы совместили свою статью с другим подходом - статьёй BARC, про которую я расскажу в следующий раз. Применяя test-time training к нейросети из BARC, получается 53%. Чтобы получить 62%, нужно ансамблировать решение с синтезатором программ.

Интересно, какой был бы результат у всего этого на реальном тестовом ARC-датасете. Могу поверить, что какой-то близкий к этому числу, но теоретически возможны и лики. Всё-таки, авторы тюнили все детали своего подхода на наборе из 80 задач, кроме того, датасет для файтнюна (без которого это почти не работает) теоретически мог содержать операции, слишком близкие к public validation. Именно эти опасности и устраняются наличием полностью секретного тестового датасета.

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

@knowledge_accumulator
2025/02/10 08:29:22
Back to Top
HTML Embed Code: