Knowledge Accumulator

@knowledge_accumulator


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

Author: @Fritx

Knowledge Accumulator

22 Oct, 10:27


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

Knowledge Accumulator

17 Oct, 09:58


❗️Предупреждение - не идите работать в 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. Нанимаем на все уровни.

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

Knowledge Accumulator

15 Oct, 10:35


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

Knowledge Accumulator

10 Oct, 13:14


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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

08 Oct, 10:19


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

Knowledge Accumulator

04 Oct, 09:53


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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

03 Oct, 09:00


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

Knowledge Accumulator

26 Sep, 10:53


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

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

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

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

24 Sep, 11:24


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

Knowledge Accumulator

19 Sep, 11:26


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

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

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

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

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

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

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

17 Sep, 13:22


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

Knowledge Accumulator

12 Sep, 10:44


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

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

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

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

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

10 Sep, 11:15


Better Than Yesterday

Мне нравится работать над собой и как-то изменять свою рутину для большей долгосрочной продуктивности. Существует много контента, касающегося саморазвития, и среди них мне больше всего нравится Better Than Yesterday.

Автор компилирует идеи из разных книг, к примеру, небезызвестной Atomic Habits, и делает ролики про разные аспекты жизни, нередко выдавая очень занимательные идеи. Часть из них вы знаете и уже считаете очевидной базой, но наверняка вы найдёте для себя что-то новое. Расскажу про несколько примеров:

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

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

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

05 Sep, 10:58


Как я выбрал самый скучный в мире спорт (не футбол)

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

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

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

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

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

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

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

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

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

Телеграм-канал Артёма - здесь про еду и спорт, много развенчания говноинфы из интернета с научными пруфами, очень полезно

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

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

@knowledge_accumulator

Knowledge Accumulator

03 Sep, 11:24


XLand-MiniGrid: Scalable Meta-Reinforcement Learning Environments in JAX [2024]

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

Существует такая среда XLand, на которой тренировали AdA. Каждая задача представляла из себя случайную 3Д-комнату, на которой были разбросаны объекты. Агент управлялся от первого лица, получая изображение на вход. При создании задачи сэмплировался набор "правил" - то, как между собой взаимодействуют объекты, разбросанные по комнате. Например, если два определённых объекта касаются друг друга, то вместо них появляется определённый третий.

Несколько простых правил порождали ~10^40 возможных задач, на которых потом обучали мета-алгоритм. Авторы XLand-MiniGrid применили похожий подход, но вместо 3Д-комнаты используется небольшая 2Д-сетка, таким образом убирается лишняя сложность и уменьшается требуемый компьют. Сейчас самое время взглянуть на иллюстрацию.

Существует процедура генерации задачи - строится дерево "подзадач", каждая из которых - "получение" определённого объекта из полученных ранее (засчёт правил превращения). Финальная цель - получить объект в корне этого дерева. У дерева можно регулировать разнообразие и количество вершин, таким образом задавая сложность.

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

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

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

Тем не менее, даже в рамках XLand-MiniGrid существует пространство для экспериментов с мета-лёрнингом, в рамках которого можно найти AGI-архитектуру, удовлетворяющую всем необходимым требованиям.

@knowledge_accumulator

Knowledge Accumulator

29 Aug, 10:30


В чём на самом деле суть политических координат

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

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

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

1) Хочу ли я, чтобы можно было X там, где я живу?
2) На каком уровне власти должно решаться, можно ли там X?

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

27 Aug, 10:09


Emergent Bartering Behaviour in Multi-Agent Reinforcement Learning [2022] - анкап-симуляции с RL-агентами

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

Для этого авторы разработали следующую симуляцию: есть ограниченный 2D-мир, состоящий из травы, воды и деревьев с банами и яблоками. Агенты в среде существуют 2 видов - "яблочные фермеры" и "банановые фермеры". Они, соответственно, умеют хорошо добывать яблоки и бананы с этих деревьев, с вероятностью 100% фрукт успешно добавляется в рюкзак. Если яблочный фермер пытается собрать банан, то у него маленький шанс на успех, как и наоборот. Наград тут несколько:

1) Небольшой штраф за движение, за нахождение в воде
2) У агентов есть "голод", и при достижении 0 он начинает получать штраф каждую секунду. Съедание фрукта восстанавливает голод до 30.
3) Самое интересное - яблочный фермер за съедание банана (и наоборот) получает сильно большую награду, чем за съедание "своего фрукта"

Таким образом, каждый из видов агентов умеет хорошо добывать один вид фруктов, но при этом он хочет есть другой вид. Чтобы создать возможность обмена, авторы добавляют возможность агенту посылать в локальную окрестность "оффер" - вектор [x;-y], который обозначает "хочу x яблок за y бананов". Пространство офферов ограничено всего 18 опциями. Далее автоматически эти офферы обрабатываются и сводятся между собой, затем атомарно совершаются. Помимо этого, конечно, агенты могут ходить, собирать и съедать фрукты.

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

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

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

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

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

@knowledge_accumulator

Knowledge Accumulator

25 Aug, 13:26


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

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

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

Knowledge Accumulator

23 Aug, 07:49


Что нужно делать, чтобы прожить 500 лет?

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

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

- Спорт
Тут устанавливают связь, что люди, тратящие на физическую активность >150 минут в неделю, живут значительно дольше
- Сон
В этом мета-анализе фиксируют ассоциацию между сном меньше 6 часов и смертностью
- Диета
В этом исследовании анализируют связи между диетой и смертностью
- Отсутствие вредных привычек
Здесь есть мета-анализ про курение.

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

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

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

И что же делать в таком случае?

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

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

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

@knowledge_accumulator

Knowledge Accumulator

19 Aug, 14:08


JaxLife: An Open-Ended Agentic Simulator [2024]

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

"Миром" в данной работе является 2D-поле с клетками. Главным ресурсом является энергия. Каждая клетка обладает разной "плодородностью" (энергии). Агенты могут собирать энергию, терраформировать клетку (и этим увеличивать плодородность). Сама среда плавно и случайно меняется.

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

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

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

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

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

Результаты по этим метрикам достаточно противоречивы. По графикам (прикреплены к посту) нельзя сказать, что "сообщества" эволюционируют в какую-то определённую позитивную сторону.

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

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

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

@knowledge_accumulator