Large Language Models as Optimizers [2023]
Формулировка промпта серьёзно влияет на качество работы LLM. Именно здесь был найден тот самый "Take a deep breath and work on this problem step-by-step", дающий хорошую производительность. Попробуем разобраться в этой работе.
Авторы формулируют технику Optimization by PROmpting (OPRO), использующую LLM в качестве оптимизатора. На вход модели подаётся следующее:
1) Мета-промпт - описание, что и зачем оптимизируем. Вся полезная информация о задаче.
2) Пары "решение - скор". В ходе оптимизации будут генерироваться новые кандидаты. Все кандидаты сортируем по скору и добавляем топ лучших пар в этот вход
Далее мы запускаем эту штуку много раз и получаем всё более и более крутых кандидатов. Применять это можно в теории к чему угодно, хоть вместо градиентного спуска использовать. Но преимущество данного метода в том, что для него естественно языковое пространство, поэтому его используют для оптимизации промпта. Получается схема на картинке.
Из хорошего - промпт, генерируемый для определённой LLM на одном датасете, хорошо переносится на другой. Из плохого - промпты, хорошо работающие для одной LLM, не обязательно работают хорошо для другой LLM. Интересна природа таких отличий, ведь их претрейн должен быть +- похож, а вот дообучение на Human Feedback уже нет. Есть ли там хоть какая-то связь или это чистая случайность?
Возникает и другой вопрос - какова роль именно LLM в качестве оптимизатора? Вряд ли она в себе содержит представление о том, как разные конкретные LLM буду работать при разных промптах. Насколько такой оптимизатор является "умным", насколько он далёк от случайного перебора промптов?
Так или иначе, вновь мы видим доминацию оптимизации над человеческим проектированием. Возможно, какая-то большая и сложная оптимизация поверх LLM даст интересные плоды, но проблема в том, что сама LLM - очень большой вычислительный кусок, и его внутренности и обучение никак не оптимизируются. Но мы когда-нибудь заменим и их, тогда точно заживём.
@knowledge_accumulator
Формулировка промпта серьёзно влияет на качество работы LLM. Именно здесь был найден тот самый "Take a deep breath and work on this problem step-by-step", дающий хорошую производительность. Попробуем разобраться в этой работе.
Авторы формулируют технику Optimization by PROmpting (OPRO), использующую LLM в качестве оптимизатора. На вход модели подаётся следующее:
1) Мета-промпт - описание, что и зачем оптимизируем. Вся полезная информация о задаче.
2) Пары "решение - скор". В ходе оптимизации будут генерироваться новые кандидаты. Все кандидаты сортируем по скору и добавляем топ лучших пар в этот вход
Далее мы запускаем эту штуку много раз и получаем всё более и более крутых кандидатов. Применять это можно в теории к чему угодно, хоть вместо градиентного спуска использовать. Но преимущество данного метода в том, что для него естественно языковое пространство, поэтому его используют для оптимизации промпта. Получается схема на картинке.
Из хорошего - промпт, генерируемый для определённой LLM на одном датасете, хорошо переносится на другой. Из плохого - промпты, хорошо работающие для одной LLM, не обязательно работают хорошо для другой LLM. Интересна природа таких отличий, ведь их претрейн должен быть +- похож, а вот дообучение на Human Feedback уже нет. Есть ли там хоть какая-то связь или это чистая случайность?
Возникает и другой вопрос - какова роль именно LLM в качестве оптимизатора? Вряд ли она в себе содержит представление о том, как разные конкретные LLM буду работать при разных промптах. Насколько такой оптимизатор является "умным", насколько он далёк от случайного перебора промптов?
Так или иначе, вновь мы видим доминацию оптимизации над человеческим проектированием. Возможно, какая-то большая и сложная оптимизация поверх LLM даст интересные плоды, но проблема в том, что сама LLM - очень большой вычислительный кусок, и его внутренности и обучение никак не оптимизируются. Но мы когда-нибудь заменим и их, тогда точно заживём.
@knowledge_accumulator
👍14🔥4❤1🤔1
Вероятность того, что голосование на этих выборах что-то изменит, стремится к нулю. Однако, я считаю, на них всё равно стоит сходить, от этого больше плюсов, чем минусов.
За кого именно голосовать - не очень важно. Даванков, случайный или порча бюллетеня - всё лучше, чем ничего. Пожалуйста, найдите возможность дойти.
P.S. Вариант "за Путина" не перечислил, потому что, во-первых, его фанаты не умеют читать, а во-вторых, обезьянам в зоопарке не дают пользоваться телеграмом.
За кого именно голосовать - не очень важно. Даванков, случайный или порча бюллетеня - всё лучше, чем ничего. Пожалуйста, найдите возможность дойти.
P.S. Вариант "за Путина" не перечислил, потому что, во-первых, его фанаты не умеют читать, а во-вторых, обезьянам в зоопарке не дают пользоваться телеграмом.
👍66💩37❤18🤡10💊7😁6🕊6🤣4🖕4👎2🌚1
Почему GPT-X это не первый самолёт
Коллеги недавно упоминали эссе, разбирающее вот этот аргумент против скорого изобретения человеческого интеллекта:
Автор утверждает, что может существовать некий "объективный" фактор, который при доведении до определённого значения переворачивает игру, делая нерелевантным конкретный дизайн. Приводится аналогия с изобретением полёта:
Наши самолёты не повторяют дизайн крыльев птиц, однако, при достижении некоторой мощности двигателя (по отношению к массе) устройства начинают летать. Так же будет и с ИИ. Но уже в этот момент начинаются первые проблемы.
Мало того, что неочевидно, что является таким фактором, так мы ещё и не сходимся в том, что именно хотим изобрести. Пока рассмотрим популярную точку зрения:
Цель - уметь выполнять все те функции, что и человек (или конкретный список функций); фактор - вычисления
Её сторонники, видимо, полагают, что мы ещё не достигли нужного значения фактора. Но, во-первых, непонятно - а как именно мы сравниваем с мозгом компьют? Когда можно будет сказать, что метод совсем не работает? Не всё, если дать ему много компьюта, будет обладать интеллектом.
А во-вторых, с таким фактором встаёт проблема прототипирования. Чтобы построить свои первые самолёты из говна и палок, братья Райт не тратили миллиарды долларов. Непонятно, насколько возможно изобретать сразу на таких масштабах, тратя безумные ресурсы и время на проверку одной итерации. При этом, в обозримом будущем нельзя будет в гараже обучить GPT-4 за неделю. Так что это всё может растянуться надолго.
Лично я считаю, что цель - это человеческая обучаемость, и data-эффективность алгоритма - отличная метрика для этого. Нам нужно добиться прорыва в data-эффективности в небольшом масштабе, а потом уже масштабировать подход. Но этим публику не впечатлишь и денег не поднимешь, так что, пока наслаждаемся цирком с языковыми моделями.
@knowledge_accumulator
Коллеги недавно упоминали эссе, разбирающее вот этот аргумент против скорого изобретения человеческого интеллекта:
Интеллект придумала природа, и мы не знаем, как он работает, следовательно, мы не близки к его изобретению.Автор утверждает, что может существовать некий "объективный" фактор, который при доведении до определённого значения переворачивает игру, делая нерелевантным конкретный дизайн. Приводится аналогия с изобретением полёта:
Наши самолёты не повторяют дизайн крыльев птиц, однако, при достижении некоторой мощности двигателя (по отношению к массе) устройства начинают летать. Так же будет и с ИИ. Но уже в этот момент начинаются первые проблемы.
Мало того, что неочевидно, что является таким фактором, так мы ещё и не сходимся в том, что именно хотим изобрести. Пока рассмотрим популярную точку зрения:
Цель - уметь выполнять все те функции, что и человек (или конкретный список функций); фактор - вычисления
Её сторонники, видимо, полагают, что мы ещё не достигли нужного значения фактора. Но, во-первых, непонятно - а как именно мы сравниваем с мозгом компьют? Когда можно будет сказать, что метод совсем не работает? Не всё, если дать ему много компьюта, будет обладать интеллектом.
А во-вторых, с таким фактором встаёт проблема прототипирования. Чтобы построить свои первые самолёты из говна и палок, братья Райт не тратили миллиарды долларов. Непонятно, насколько возможно изобретать сразу на таких масштабах, тратя безумные ресурсы и время на проверку одной итерации. При этом, в обозримом будущем нельзя будет в гараже обучить GPT-4 за неделю. Так что это всё может растянуться надолго.
Лично я считаю, что цель - это человеческая обучаемость, и data-эффективность алгоритма - отличная метрика для этого. Нам нужно добиться прорыва в data-эффективности в небольшом масштабе, а потом уже масштабировать подход. Но этим публику не впечатлишь и денег не поднимешь, так что, пока наслаждаемся цирком с языковыми моделями.
@knowledge_accumulator
👍22🤔4💯3❤2💩2
Language Agents as Optimizable Graphs [2024] - обучаем надстройку над LLM
Недавно я писал о том, что какая-то большая и сложная надстройка над LLM может дать какой-нибудь интересный результат. Нечто такое из себя представляет FunSearch, использующий LLM как генератор мутаций программ на питоне. Сегодня посмотрим на работу, в которой надстройка над LLM оптимизируется для высокой производительности на классе задач / бенчмарке. Сразу скажу - не фанат конкретно этой схемы, но направление мысли здесь задаётся неплохое.
Определим языкового агента как ациклический направленный граф. В нём вершины это различные вычислительные элементы - запросы к LLM, вызовы какого-нибудь API, использование инструмента и т.д. Соединены они между собой рёбрами, обозначающими, идёт ли выход из одной вершины на вход другой. В данной статье у нас заранее задаётся множество вершин, причём у LLM-вершин есть описание того, что именно они должны делать.
Итак, мы хотели бы построить граф, набирающий как можно больше в какой-нибудь задаче, например, бенчмарке GAIA. Оптимизировать можно 2 вещи - набор рёбер и промпты каждой вершины.
1) Рёбра оптимизируем с помощью REINFORCE. Граф генерируется случайно, и вероятность каждого ребра задаётся вероятностью-параметром p. С помощью REINFORCE по этим вероятностям можно оптимизировать недифференцируемую итоговую производительность графа на задаче.
2) Промпты у вершин оптимизируется через ORPO. Для каждой вершины оптимизация независима. Это имеет смысл в данном случае, т.к. функция вершины определена заранее и подаётся на вход оптимизатору.
Графы обучаются не с нуля, их "инициализируют" какой-то известной схемой (например, несколько Tree of Thoughts) и дальше "дообучают". Нельзя сказать, что у агента есть большой простор для оптимизации, однако, это уже лучше, чем зафиксированные вручную схемы. Ждём более хитрых и гибких параметризаций такого языкового агента, в которых набор вершин тоже будет оптимизироваться, а назначение каждой отдельной вершины не будет задано заранее.
@knowledge_accumulator
Недавно я писал о том, что какая-то большая и сложная надстройка над LLM может дать какой-нибудь интересный результат. Нечто такое из себя представляет FunSearch, использующий LLM как генератор мутаций программ на питоне. Сегодня посмотрим на работу, в которой надстройка над LLM оптимизируется для высокой производительности на классе задач / бенчмарке. Сразу скажу - не фанат конкретно этой схемы, но направление мысли здесь задаётся неплохое.
Определим языкового агента как ациклический направленный граф. В нём вершины это различные вычислительные элементы - запросы к LLM, вызовы какого-нибудь API, использование инструмента и т.д. Соединены они между собой рёбрами, обозначающими, идёт ли выход из одной вершины на вход другой. В данной статье у нас заранее задаётся множество вершин, причём у LLM-вершин есть описание того, что именно они должны делать.
Итак, мы хотели бы построить граф, набирающий как можно больше в какой-нибудь задаче, например, бенчмарке GAIA. Оптимизировать можно 2 вещи - набор рёбер и промпты каждой вершины.
1) Рёбра оптимизируем с помощью REINFORCE. Граф генерируется случайно, и вероятность каждого ребра задаётся вероятностью-параметром p. С помощью REINFORCE по этим вероятностям можно оптимизировать недифференцируемую итоговую производительность графа на задаче.
2) Промпты у вершин оптимизируется через ORPO. Для каждой вершины оптимизация независима. Это имеет смысл в данном случае, т.к. функция вершины определена заранее и подаётся на вход оптимизатору.
Графы обучаются не с нуля, их "инициализируют" какой-то известной схемой (например, несколько Tree of Thoughts) и дальше "дообучают". Нельзя сказать, что у агента есть большой простор для оптимизации, однако, это уже лучше, чем зафиксированные вручную схемы. Ждём более хитрых и гибких параметризаций такого языкового агента, в которых набор вершин тоже будет оптимизироваться, а назначение каждой отдельной вершины не будет задано заранее.
@knowledge_accumulator
👍15❤3💯2
Что существует вместо сознания и реально должно вас волновать
Прошлый пост на тему сознания вызвал большой отклик, чему я несказанно рад. Теперь давайте перейдём к по-настоящему большой проблеме.
Представим, что изобретён телепорт. Вы заходите в кабинку, вас полностью копируют и воспроизводят в другом месте, а старое тело уничтожается. Со стороны это выглядит так, что вы мгновенно переместились из одной точки в другую.
Но внимательные умы увидят здесь проблему - а что, если старое тело не уничтожат? Вас станет двое, но, очевидно, вы не будете управлять двумя копиями себя. Вы - это только оригинал. И если старое тело уничтожают, на самом деле для вас это смерть, а не перемещение.
Это поднимает крайне важную проблему - что определяет вашу идентичность? Если вас не скопируют, а разберут на атомы, переместят в другое место и соберут заново - ваша идентичность будет, скорее всего, разрушена? Если будут перемещать нервную систему - скорее всего, вы останетесь собой? А если только мозг? Отделы мозга?
В отличие от бессмысленного вопроса "Есть ли у языковой модели сознание?", у этой проблемы есть реальный практический смысл. И касается он нашего бессмертия.
Лично я не хочу умирать по естественным причинам, жизнь слишком прекрасна для этого. И меня не волнует существование функционального меня, в том числе точной копии. Мне нужна именно моя идентичность. "Перенос сознания в компьютер" не выполняет эту задачу, поскольку это то же самое копирование.
Представим, что мы научились создавать новые нервные клетки и подсаживать их в мозг. Они станут равноценной частью меня? А что, если я постепенно заменю все старые клетки на новые? А если эти нервные клетки будут искусственные, из металла, я могу превратиться в робота, оставшись собой?
Надеюсь, задача бессмертия окажется проще и мы сможем "просто" остановить старение тела, тогда проблему идентичности не придётся решать. Хотя, она сама по себе является безумно интересной головоломкой, в которой я ещё попробую разобраться.
Очень хочу почитать ваши мнения в комментариях, прошу не стесняться!
@knowledge_accumulator
Прошлый пост на тему сознания вызвал большой отклик, чему я несказанно рад. Теперь давайте перейдём к по-настоящему большой проблеме.
Представим, что изобретён телепорт. Вы заходите в кабинку, вас полностью копируют и воспроизводят в другом месте, а старое тело уничтожается. Со стороны это выглядит так, что вы мгновенно переместились из одной точки в другую.
Но внимательные умы увидят здесь проблему - а что, если старое тело не уничтожат? Вас станет двое, но, очевидно, вы не будете управлять двумя копиями себя. Вы - это только оригинал. И если старое тело уничтожают, на самом деле для вас это смерть, а не перемещение.
Это поднимает крайне важную проблему - что определяет вашу идентичность? Если вас не скопируют, а разберут на атомы, переместят в другое место и соберут заново - ваша идентичность будет, скорее всего, разрушена? Если будут перемещать нервную систему - скорее всего, вы останетесь собой? А если только мозг? Отделы мозга?
В отличие от бессмысленного вопроса "Есть ли у языковой модели сознание?", у этой проблемы есть реальный практический смысл. И касается он нашего бессмертия.
Лично я не хочу умирать по естественным причинам, жизнь слишком прекрасна для этого. И меня не волнует существование функционального меня, в том числе точной копии. Мне нужна именно моя идентичность. "Перенос сознания в компьютер" не выполняет эту задачу, поскольку это то же самое копирование.
Представим, что мы научились создавать новые нервные клетки и подсаживать их в мозг. Они станут равноценной частью меня? А что, если я постепенно заменю все старые клетки на новые? А если эти нервные клетки будут искусственные, из металла, я могу превратиться в робота, оставшись собой?
Надеюсь, задача бессмертия окажется проще и мы сможем "просто" остановить старение тела, тогда проблему идентичности не придётся решать. Хотя, она сама по себе является безумно интересной головоломкой, в которой я ещё попробую разобраться.
Очень хочу почитать ваши мнения в комментариях, прошу не стесняться!
@knowledge_accumulator
👍19🔥6🤡6😁3🤯2👻2❤1😴1🫡1
Вещи, которые я бы хотел, чтобы мне объяснили раньше
К сожалению, мы в жизни часто учимся на своих ошибках, и только через время к нам приходит мудрость и опыт. Сегодня я бы хотел поделиться самыми ценными знаниями, которые накопил за свою жизнь.
Фокусируйтесь на одной узкой области
Не распыляйтесь, частичные знания в разных областях не приносят никакой практической пользы. Доверяйте только экспертам в сферах, которыми не занимаетесь, в особенности, в социальных, таких как политика и экономика.
Тратьте как можно больше времени на университетское образование
Получение красного диплома, кандидата наук в топовом месте - это выгодная инвестиция в ваше будущее. Университет - это лучшая школа жизни, и лучше быть к ней максимально готовым, начиная карьеру в 25-27 лет.
Не думайте о деньгах
Ресурсы - это не главное в жизни. Деньги сами по себе никого не делают счастливым, поэтому не обращайте внимание на числа в оффере, если они позволяют выполнять базовые потребности.
Инвестируйте в реальные активы
Если у вас всё-таки скопились лишние деньги, не смотрите на ценные бумаги - это для профессионалов. Выбирайте недвижимость, как физический актив, который никуда не денется. Отдавайте предпочтение развивающимся и рискованным экономикам, таким, как Россия и Китай, поскольку активы в них недооценены. Также выгодно инвестировать в горячие направления, например, в Дубай.
Максимально следите за трендами
Изучайте, какие прорывы происходят в разных научных областях. Если в соцсетях говорят о революции, обещающей перевернуть мир - не тормозите и перекатывайтесь, смело бросайте свою доживающую последние дни сферу.
Не тратьте время на радикальные идеи
Оставайтесь в рамках интеллектуального мейнстрима. Вы же не думаете, что большинство экспертов может нести чепуху? Если мировое сообщество отвергает какую-то идею, то не тратьте свои силы на её обдумывание - это никому и никогда не помогало.
Пишите в комментариях о своём самом важном приобретённом опыте, может быть, он пригодится всем остальным!
@knowledge_accumulator
К сожалению, мы в жизни часто учимся на своих ошибках, и только через время к нам приходит мудрость и опыт. Сегодня я бы хотел поделиться самыми ценными знаниями, которые накопил за свою жизнь.
Фокусируйтесь на одной узкой области
Не распыляйтесь, частичные знания в разных областях не приносят никакой практической пользы. Доверяйте только экспертам в сферах, которыми не занимаетесь, в особенности, в социальных, таких как политика и экономика.
Тратьте как можно больше времени на университетское образование
Получение красного диплома, кандидата наук в топовом месте - это выгодная инвестиция в ваше будущее. Университет - это лучшая школа жизни, и лучше быть к ней максимально готовым, начиная карьеру в 25-27 лет.
Не думайте о деньгах
Ресурсы - это не главное в жизни. Деньги сами по себе никого не делают счастливым, поэтому не обращайте внимание на числа в оффере, если они позволяют выполнять базовые потребности.
Инвестируйте в реальные активы
Если у вас всё-таки скопились лишние деньги, не смотрите на ценные бумаги - это для профессионалов. Выбирайте недвижимость, как физический актив, который никуда не денется. Отдавайте предпочтение развивающимся и рискованным экономикам, таким, как Россия и Китай, поскольку активы в них недооценены. Также выгодно инвестировать в горячие направления, например, в Дубай.
Максимально следите за трендами
Изучайте, какие прорывы происходят в разных научных областях. Если в соцсетях говорят о революции, обещающей перевернуть мир - не тормозите и перекатывайтесь, смело бросайте свою доживающую последние дни сферу.
Не тратьте время на радикальные идеи
Оставайтесь в рамках интеллектуального мейнстрима. Вы же не думаете, что большинство экспертов может нести чепуху? Если мировое сообщество отвергает какую-то идею, то не тратьте свои силы на её обдумывание - это никому и никогда не помогало.
Пишите в комментариях о своём самом важном приобретённом опыте, может быть, он пригодится всем остальным!
@knowledge_accumulator
😁54🥴23👍13👎7🤣6💩3🔥1🤔1
SIMA [2024] - геймеры больше не нужны?
Deepmind продолжает свои попытки обучить суперагента на большом количестве сред одновременно. Рассмотрим подробнее данный подход.
Команда собрала вручную датасет на ~10 средах, на которых просили людей выполнять определённые действия, записывая текст этих просьб. В среды входили как реальные игры (Satisfactory, Goat Simulator 3), так и ресёрчерские среды, такие, как WorldLab.
Обучали через behaviour cloning - то есть копировать поведение, наблюдаемое в данных. Модель получает на вход языковую инструкцию, визуальный вход с экрана, а пространством действий является мышка и клавиатура - то есть всё приближено к "человеческому" формату. Авторы фокусировались на кратких "заданиях" около 10 секунд, описанных на картинке.
Несмотря на видимый профит от тренировки на большом кол-ве данных и использования претренированных энкодеров текста и картинки, алгоритм сильно проигрывает человеку. В игре No Man’s Sky человек выполняет 60% заданий, тогда как SIMA около 30%. На длинных инструкциях, думаю, ситуация была бы сильно хуже.
Авторы отказываются от "games containing harmful content such as extreme violence or biases". Так что модель не учили играть в стрелялки, а о каких опаснейших bias-ах может идти речь - не знаю, пишите свои идеи в комментариях. Мне кажется, это печально, что вне LLM тоже поддаются этой шизофрении про риски, надеюсь, что шахматы не признают слишком расисткой игрой для AI.
Несмотря на проигрыш человеку, метод есть ещё куда развивать - нужно найти способ гененировать бесконечно много данных, а не собирать их вручную, прикрутить всё-таки как-нибудь уже RL к этим агентам, чтобы агент не копировал человека, а пытался оптимально решить задачу. Но это всё только потенциал, пока агент выглядит жиденько.
@knowledge_accumulator
Deepmind продолжает свои попытки обучить суперагента на большом количестве сред одновременно. Рассмотрим подробнее данный подход.
Команда собрала вручную датасет на ~10 средах, на которых просили людей выполнять определённые действия, записывая текст этих просьб. В среды входили как реальные игры (Satisfactory, Goat Simulator 3), так и ресёрчерские среды, такие, как WorldLab.
Обучали через behaviour cloning - то есть копировать поведение, наблюдаемое в данных. Модель получает на вход языковую инструкцию, визуальный вход с экрана, а пространством действий является мышка и клавиатура - то есть всё приближено к "человеческому" формату. Авторы фокусировались на кратких "заданиях" около 10 секунд, описанных на картинке.
Несмотря на видимый профит от тренировки на большом кол-ве данных и использования претренированных энкодеров текста и картинки, алгоритм сильно проигрывает человеку. В игре No Man’s Sky человек выполняет 60% заданий, тогда как SIMA около 30%. На длинных инструкциях, думаю, ситуация была бы сильно хуже.
Авторы отказываются от "games containing harmful content such as extreme violence or biases". Так что модель не учили играть в стрелялки, а о каких опаснейших bias-ах может идти речь - не знаю, пишите свои идеи в комментариях. Мне кажется, это печально, что вне LLM тоже поддаются этой шизофрении про риски, надеюсь, что шахматы не признают слишком расисткой игрой для AI.
Несмотря на проигрыш человеку, метод есть ещё куда развивать - нужно найти способ гененировать бесконечно много данных, а не собирать их вручную, прикрутить всё-таки как-нибудь уже RL к этим агентам, чтобы агент не копировал человека, а пытался оптимально решить задачу. Но это всё только потенциал, пока агент выглядит жиденько.
@knowledge_accumulator
👍9🔥4❤2🤔1
Fuck you money - что это такое и сколько это?
Почти все слышали про такой термин, и он закрепился как некое "такое большое количество денег, чтобы можно было не работать". Но сколько это?
Здесь нужно мыслить не в конкретных числах, а в соотношениях с вашими затратами на жизнь. Для анализа нам потребуется сделать следующие предположения:
1) Вы тратите в год постоянную сумму денег всё дальнейшее время, с поправкой на инфляцию. Назовём её M
2) Ваши деньги сложены в самом эффективном инвестиционном инструменте - S&P500, и вы не занимаетесь активным менеджментом портфеля
Итак, вопрос - сколько M вы должны проинвестировать, чтобы держаться на плаву? Данный вопрос изучали в так называемом Trinity Study - исследователи случайно выбирали год и симулировали стоимость портфеля на протяжении K лет.
Существует "популярный ответ" - 25M. Если вы будете снимать 4% от вашего изначального портфеля, то с вероятностью 98% через 30 лет вы останетесь с положительным количеством денег. Однако, если вы планируете на ещё больший промежуток времени и на 100%-ный шанс успеха - имеет смысл опустить траты до 3%, то есть вам нужно 33M, или 400 месячных расходов.
При таких процентах, в среднем / медианном случае у вас останется больше денег, чем было изначально, даже с поправкой на инфляцию. Больше прикольных графиков и чисел можно найти здесь.
Но как заработать такие деньги? Здесь ваш успех сильно завязан на ваш Saving Rate - долю денег, которую вы не тратите. Если он составляет около 50% - вам нужно откладывать около 12-15 лет (а не 25-33), с учётом роста самого индекса.
Звучит небыстро. Но всё-таки, если вы зафиксируете свои траты в 30 лет, и будете постепенно расти в доходах, увеличивая Saving Rate до 60-70% - уже в 45 лет, в полном расцвете сил (если вы не угробили себя), у вас будет возможность заниматься тем, чем хотите, несмотря на деньги. Разве это не прекрасно?
Пишите в комментариях, на какие денежные темы вам было бы узнать больше, я подберу статьи и поделюсь с вами выводами.
@knowledge_accumulator
Почти все слышали про такой термин, и он закрепился как некое "такое большое количество денег, чтобы можно было не работать". Но сколько это?
Здесь нужно мыслить не в конкретных числах, а в соотношениях с вашими затратами на жизнь. Для анализа нам потребуется сделать следующие предположения:
1) Вы тратите в год постоянную сумму денег всё дальнейшее время, с поправкой на инфляцию. Назовём её M
2) Ваши деньги сложены в самом эффективном инвестиционном инструменте - S&P500, и вы не занимаетесь активным менеджментом портфеля
Итак, вопрос - сколько M вы должны проинвестировать, чтобы держаться на плаву? Данный вопрос изучали в так называемом Trinity Study - исследователи случайно выбирали год и симулировали стоимость портфеля на протяжении K лет.
Существует "популярный ответ" - 25M. Если вы будете снимать 4% от вашего изначального портфеля, то с вероятностью 98% через 30 лет вы останетесь с положительным количеством денег. Однако, если вы планируете на ещё больший промежуток времени и на 100%-ный шанс успеха - имеет смысл опустить траты до 3%, то есть вам нужно 33M, или 400 месячных расходов.
При таких процентах, в среднем / медианном случае у вас останется больше денег, чем было изначально, даже с поправкой на инфляцию. Больше прикольных графиков и чисел можно найти здесь.
Но как заработать такие деньги? Здесь ваш успех сильно завязан на ваш Saving Rate - долю денег, которую вы не тратите. Если он составляет около 50% - вам нужно откладывать около 12-15 лет (а не 25-33), с учётом роста самого индекса.
Звучит небыстро. Но всё-таки, если вы зафиксируете свои траты в 30 лет, и будете постепенно расти в доходах, увеличивая Saving Rate до 60-70% - уже в 45 лет, в полном расцвете сил (если вы не угробили себя), у вас будет возможность заниматься тем, чем хотите, несмотря на деньги. Разве это не прекрасно?
Пишите в комментариях, на какие денежные темы вам было бы узнать больше, я подберу статьи и поделюсь с вами выводами.
@knowledge_accumulator
👍23🆒6🔥4👎1👌1🤡1
Деградация - это норма
Во время недавнего дня космонавтики я ещё раз задумался о том, что космическая индустрия иногда отлично иллюстрирует технологическую деградацию. Но встречается она гораздо чаще, чем может показаться. Когда я работал в Яндексе, то впервые встретился с ней лицом к лицу.
Внутри компании огромное количество кода и инструментов, с каждым из которых иногда нужно делать какой-то набор сложных действий. Например - есть конкретная применялка нейросети на C++, и иногда на её основе внедряется модель в прод, которую нужно дебажить.
Если её нужно дебажить всего лишь раз в полгода в течение 2 недель одним человеком, то периодически за это будут назначать нового ответственного человека, и каждый раз он будет учиться заново это делать и собирать все грабли, после этого экспертиза восстанавливается. Но пока это не делают - знания деградируют.
В состоянии покоя экспертиза в той или иной сфере уменьшается со временем, а увеличение происходит лишь в случае активной работы в ней. Ситуацию не спасёт попытка записать эти знания, понимающий и чувствующий тему человек гораздо лучше, чем новичок с книгой и даже интернетом.
Это не всегда плохо - нам сегодня и не нужно знать, как ремонтировать ламповые компьютеры. У человечества есть ограниченная ёмкость экспертизы и она перераспределяется в актуальные и функционирующие области.
Но нужно помнить, что если человечество способно забывать свой предыдущий опыт - оно будет повторять ошибки прошлого, например, опять пытаться строить коммунизм, и по несколько раз воскрешать технологии, которые не входят в мейнстрим.
Сгладить эффект можно тем же способом, что и hardware lottery - нужно избегать узкого мышления, фокуса только на одной конкретной области / методе. Охватывайте своим вниманием больше направлений. Если почти всё внимание направлено на LLM, продолжайте держать в голове полезные конструкции из соседних областей, чтобы при очередной стагнации пытаться их применить к насущным проблемам. Тогда у нас будет гораздо больше шансов их решить, не тратя десятилетия.
@knowledge_accumulator
Во время недавнего дня космонавтики я ещё раз задумался о том, что космическая индустрия иногда отлично иллюстрирует технологическую деградацию. Но встречается она гораздо чаще, чем может показаться. Когда я работал в Яндексе, то впервые встретился с ней лицом к лицу.
Внутри компании огромное количество кода и инструментов, с каждым из которых иногда нужно делать какой-то набор сложных действий. Например - есть конкретная применялка нейросети на C++, и иногда на её основе внедряется модель в прод, которую нужно дебажить.
Если её нужно дебажить всего лишь раз в полгода в течение 2 недель одним человеком, то периодически за это будут назначать нового ответственного человека, и каждый раз он будет учиться заново это делать и собирать все грабли, после этого экспертиза восстанавливается. Но пока это не делают - знания деградируют.
В состоянии покоя экспертиза в той или иной сфере уменьшается со временем, а увеличение происходит лишь в случае активной работы в ней. Ситуацию не спасёт попытка записать эти знания, понимающий и чувствующий тему человек гораздо лучше, чем новичок с книгой и даже интернетом.
Это не всегда плохо - нам сегодня и не нужно знать, как ремонтировать ламповые компьютеры. У человечества есть ограниченная ёмкость экспертизы и она перераспределяется в актуальные и функционирующие области.
Но нужно помнить, что если человечество способно забывать свой предыдущий опыт - оно будет повторять ошибки прошлого, например, опять пытаться строить коммунизм, и по несколько раз воскрешать технологии, которые не входят в мейнстрим.
Сгладить эффект можно тем же способом, что и hardware lottery - нужно избегать узкого мышления, фокуса только на одной конкретной области / методе. Охватывайте своим вниманием больше направлений. Если почти всё внимание направлено на LLM, продолжайте держать в голове полезные конструкции из соседних областей, чтобы при очередной стагнации пытаться их применить к насущным проблемам. Тогда у нас будет гораздо больше шансов их решить, не тратя десятилетия.
@knowledge_accumulator
👍40❤7🤡5🔥3🤝2👎1🌚1💯1👀1
ChessGPT - есть ли модель мира у языковой модели?
В этих двух блогпостах автор исследует наличие "модели состояния" у языковой модели, обученной на шахматных партиях, записанных в виде PGN (1.e4 e5 2.Nf3 …).
50 миллионов параметров и 16 миллионов игр с lichess уже достаточно, чтобы она умела играть лучше 90% игроков. Как нам получить прямое свидетельство того, что модель внутри хранит состояние доски?
Возьмём активации с внутренних слоёв и будем обучать линейную модель поверх этих активаций предсказывать состояние доски - точнее, вероятность нахождения каждой из фигур в каждой из позиций.
Такой подход успешно предсказывает 99.2% клеток, значит, информация о состоянии всей доски у такой модели есть. Но так можно предсказывать не только доску. Автор учит линейную модель предсказывать - это игра с рейтингом <1500 или >2000 (остальные выкидываем)? Результат - 89%.
Во втором посте автор показывает, что на "рейтинг" сгенерированного хода даже можно повлиять. Для этого мы должны добавлять к активациям внутреннего слоя "вектор высокого рейтинга", который мы выучили, обучая классификатор рейтинга.
И всё-таки, есть ли модель мира у языковой модели?
Этот вопрос, как часто бывает, демонстрирует ограниченность человеческого мышления. Мы склонны наделять большие системы из простых элементов бинарными качествами и до хрипоты спорить о значении терминов, тогда как в реальности всё проще.
У системы внутри есть всё, что помогает решению задачи - "модель мира", "модель игрока". Есть ровно в той степени, которая нужна для минимизации ошибки - x% модели среды, y% модели игрока и даже z% модели качества интернета для предсказания внезапного конца игры.
При этом у системы нет ни модели мира, ни игрока, потому что её об этом не просили в явном виде. А нужно ли это? Я думаю, что нет, и все проблемы, вызыванные их отсутствием, решаются правильной постановкой задачи перед самой системой. Но мы пока к этому не пришли.
@knowledge_accumulator
В этих двух блогпостах автор исследует наличие "модели состояния" у языковой модели, обученной на шахматных партиях, записанных в виде PGN (1.e4 e5 2.Nf3 …).
50 миллионов параметров и 16 миллионов игр с lichess уже достаточно, чтобы она умела играть лучше 90% игроков. Как нам получить прямое свидетельство того, что модель внутри хранит состояние доски?
Возьмём активации с внутренних слоёв и будем обучать линейную модель поверх этих активаций предсказывать состояние доски - точнее, вероятность нахождения каждой из фигур в каждой из позиций.
Такой подход успешно предсказывает 99.2% клеток, значит, информация о состоянии всей доски у такой модели есть. Но так можно предсказывать не только доску. Автор учит линейную модель предсказывать - это игра с рейтингом <1500 или >2000 (остальные выкидываем)? Результат - 89%.
Во втором посте автор показывает, что на "рейтинг" сгенерированного хода даже можно повлиять. Для этого мы должны добавлять к активациям внутреннего слоя "вектор высокого рейтинга", который мы выучили, обучая классификатор рейтинга.
И всё-таки, есть ли модель мира у языковой модели?
Этот вопрос, как часто бывает, демонстрирует ограниченность человеческого мышления. Мы склонны наделять большие системы из простых элементов бинарными качествами и до хрипоты спорить о значении терминов, тогда как в реальности всё проще.
У системы внутри есть всё, что помогает решению задачи - "модель мира", "модель игрока". Есть ровно в той степени, которая нужна для минимизации ошибки - x% модели среды, y% модели игрока и даже z% модели качества интернета для предсказания внезапного конца игры.
При этом у системы нет ни модели мира, ни игрока, потому что её об этом не просили в явном виде. А нужно ли это? Я думаю, что нет, и все проблемы, вызыванные их отсутствием, решаются правильной постановкой задачи перед самой системой. Но мы пока к этому не пришли.
@knowledge_accumulator
👍22❤6🔥5
Парадокс спящей красавицы
Есть у меня некоторая любовь к задачам, взрывающим мозг, сегодня расскажу об одной из них. Представьте, что вам предстоит следующий эксперимент, про условия которого вы знаете заранее:
Вам вводят снотворное в воскресенье и одновременно подбрасывают монетку. Если выпал орёл, то вас будят в понедельник. Если решка, то будят в понедельник, затем усыпляют и будят во вторник.
Когда вы просыпаетесь, вы не знаете, какой сегодня день, а также не помните, просыпались ли уже до этого. При этом каждый раз вас спрашивают следующий вопрос:
Какова вероятность, что выпал орёл?
С одной стороны, когда вас будят и спрашивают, вы не узнаёте никакой новой информации, и поэтому вероятность выпадения остаётся априорной - 1/2
С другой стороны, рассмотрим 3 возможных ситуации, в которой вы оказались - (орёл, понедельник), (решка, понедельник) и (решка, вторник). Все из них равновероятны с перспективы только что проснувшегося человека, и только в трети случаев на самом деле выпал орёл. Значит ответ - 1/3
А что, если вас будят не 2 раза, а триллион? Реальностей, в которых вы проснулись в один из триллиона раз, в триллион раз больше, чем тех, где вы проснулись один раз, и все они между собой равновероятны.
Как оказалось, у этой задачи есть и совсем уж пугающая интерпретация.
Мало кто сомневается, что в скором времени технологии позволят нам создавать неотличимые от реальности симуляции вселенных. Со временем их будет огромное количество, это может быть примерно как VR-игра с серверами на любой вкус.
Ваше существование эквивалентно тому, что вы проснулись и не знаете, в какой ситуации находитесь. Если взять вас, как жителя вселенной - с какой вероятностью ваша вселенная является симуляцией?
Объяснять парадокс тут я, конечно же, не буду. Если интересно узнать больше - начните вот с этого видео. А пока - хорошегоэкзистенциального кризиса дня!
@knowledge_accumulator
Есть у меня некоторая любовь к задачам, взрывающим мозг, сегодня расскажу об одной из них. Представьте, что вам предстоит следующий эксперимент, про условия которого вы знаете заранее:
Вам вводят снотворное в воскресенье и одновременно подбрасывают монетку. Если выпал орёл, то вас будят в понедельник. Если решка, то будят в понедельник, затем усыпляют и будят во вторник.
Когда вы просыпаетесь, вы не знаете, какой сегодня день, а также не помните, просыпались ли уже до этого. При этом каждый раз вас спрашивают следующий вопрос:
Какова вероятность, что выпал орёл?
С одной стороны, когда вас будят и спрашивают, вы не узнаёте никакой новой информации, и поэтому вероятность выпадения остаётся априорной - 1/2
С другой стороны, рассмотрим 3 возможных ситуации, в которой вы оказались - (орёл, понедельник), (решка, понедельник) и (решка, вторник). Все из них равновероятны с перспективы только что проснувшегося человека, и только в трети случаев на самом деле выпал орёл. Значит ответ - 1/3
А что, если вас будят не 2 раза, а триллион? Реальностей, в которых вы проснулись в один из триллиона раз, в триллион раз больше, чем тех, где вы проснулись один раз, и все они между собой равновероятны.
Как оказалось, у этой задачи есть и совсем уж пугающая интерпретация.
Мало кто сомневается, что в скором времени технологии позволят нам создавать неотличимые от реальности симуляции вселенных. Со временем их будет огромное количество, это может быть примерно как VR-игра с серверами на любой вкус.
Ваше существование эквивалентно тому, что вы проснулись и не знаете, в какой ситуации находитесь. Если взять вас, как жителя вселенной - с какой вероятностью ваша вселенная является симуляцией?
Объяснять парадокс тут я, конечно же, не буду. Если интересно узнать больше - начните вот с этого видео. А пока - хорошего
@knowledge_accumulator
👍16😁12🔥2🤯2❤1🤝1
Meta-Learning Bidirectional Update Rules [2021] - обучаем бэкпроп
На мой взгляд, за мета-обучением будущее, но обучаемый алгоритм не должен содержать много параметров, чтобы не переобучиться на мета-трейне. На днях наткнулся на данную работу, предлагающую свой вариант мета-параметризации.
Рассмотрим полносвязную нейросеть в такой перспективе: у каждого нейрона есть 2 "канала" - для forward и backward. Мы сначала совершаем цепочку расчётов по первому каналу нейрона слева направо, далее считаем градиент ошибки по последнему слою, и по второму каналу совершаем цепочку расчётов справа налево. Это будет градиент, который мы потом с некоторым learning rate применим к весам. Это на картинке слева. Обобщаем это следующим образом:
1) Теперь у каждого нейрона K "каналов", причём они не независимы, и суммируются все со всеми и в forward, и в backward, и даже в weights update. Но мы обучаем несколько матриц K x K, используемые как веса при суммировании из каждого в каждый канал во всех этапах.
2) Добавим мета-параметры, похожие на momentum и learning rate
3) На вход первому слою будем подавать как обычно input, а последнему просто правильный ответ, чтобы алгоритм сам обучился тому, как обновлять параметры
Теперь эти ~O(K^2) параметров можно обучать, оптимизируя производительность на валидационном датасете. Обучать их можно как генетикой, так и напрямую градиентным спуском, если модель обучать не так много шагов.
Если подумать, схема похожа на ту же VSML, с разницей в том, что здесь авторы строят свою модель именно как обобщение схемы forward-backward, из-за чего возникает много лишней нотации и слегка переусложнённых конструкций. Авторы указывают, что в их работе нет RNN, но это различие скорее в интерпретации происходящего. Глобальная логика та же - обучаемые небольшие матрицы регулируют пробрасывание информации по архитектуре, а также обновление содержащейся в ней памяти, именуемой весами.
@knowledge_accumulator
На мой взгляд, за мета-обучением будущее, но обучаемый алгоритм не должен содержать много параметров, чтобы не переобучиться на мета-трейне. На днях наткнулся на данную работу, предлагающую свой вариант мета-параметризации.
Рассмотрим полносвязную нейросеть в такой перспективе: у каждого нейрона есть 2 "канала" - для forward и backward. Мы сначала совершаем цепочку расчётов по первому каналу нейрона слева направо, далее считаем градиент ошибки по последнему слою, и по второму каналу совершаем цепочку расчётов справа налево. Это будет градиент, который мы потом с некоторым learning rate применим к весам. Это на картинке слева. Обобщаем это следующим образом:
1) Теперь у каждого нейрона K "каналов", причём они не независимы, и суммируются все со всеми и в forward, и в backward, и даже в weights update. Но мы обучаем несколько матриц K x K, используемые как веса при суммировании из каждого в каждый канал во всех этапах.
2) Добавим мета-параметры, похожие на momentum и learning rate
3) На вход первому слою будем подавать как обычно input, а последнему просто правильный ответ, чтобы алгоритм сам обучился тому, как обновлять параметры
Теперь эти ~O(K^2) параметров можно обучать, оптимизируя производительность на валидационном датасете. Обучать их можно как генетикой, так и напрямую градиентным спуском, если модель обучать не так много шагов.
Если подумать, схема похожа на ту же VSML, с разницей в том, что здесь авторы строят свою модель именно как обобщение схемы forward-backward, из-за чего возникает много лишней нотации и слегка переусложнённых конструкций. Авторы указывают, что в их работе нет RNN, но это различие скорее в интерпретации происходящего. Глобальная логика та же - обучаемые небольшие матрицы регулируют пробрасывание информации по архитектуре, а также обновление содержащейся в ней памяти, именуемой весами.
@knowledge_accumulator
👍20❤3🔥1
Как оптимально пользоваться страховками?
Мы часто вынуждены принимать решение о покупке той или иной страховки, например, Каско. Периодически различные сервисы, например, продающие авиабилеты, предлагают заплатить им дополнительные деньги за покупку возвратной версии билета.
Есть ли стратегия оптимального поведения в подобных ситуациях? Когда выгодно перестраховаться, а когда сэкономить? Чтобы ответить на этот вопрос, давайте вспомним, по какой логике работает страховой продукт:
У множества людей есть независимые риски потери
А какое поведение со стороны клиента является оптимальным? Этот вопрос важен, поскольку последовательное следование той или иной стратегии долгосрочно отразится на вашем состоянии.
Представим, что есть набор фичей про вас - A и B, где B - информация, доступная всем, а A знаете только вы. Работа страховой компании - построить правдивую модель
Например - вы покупаете билет на самолёт, но знаете, что есть конкретная причина, по которой с высокой вероятностью вы не сможете полететь. Тогда нужно брать возврат. А вот если вы водитель, и у вас есть основание считать, что вы водите аккуратнее других людей с такими же открытыми характеристиками, то вам невыгодно страховать машину.
Самое смешное в этом всём то, что если все люди начинают продумывать свою стратегию, то появляется фича C - пришёл ли человек за страховкой. Она будет сигнализировать о том, что вероятность риска недооценена и вызовет бесконечный цикл повышения цены, вплоть до коллапса, прямо как в той игре, в которой нужно загадать число, в 2 раза меньшее, чем среднее у всех остальных. Но, скорее всего, в реальности C мало зависит от A и проблемы нет.
А какую стратегию используете вы?
@knowledge_accumulator
Мы часто вынуждены принимать решение о покупке той или иной страховки, например, Каско. Периодически различные сервисы, например, продающие авиабилеты, предлагают заплатить им дополнительные деньги за покупку возвратной версии билета.
Есть ли стратегия оптимального поведения в подобных ситуациях? Когда выгодно перестраховаться, а когда сэкономить? Чтобы ответить на этот вопрос, давайте вспомним, по какой логике работает страховой продукт:
У множества людей есть независимые риски потери
X_i денег, что вносит дисперсию в распределение будущего состояния. В ответ на это появляется агент, который оценивает вероятности этих потерь p_i, и предлагает людям заплатить p_i * X_i + delta. Эти собранные деньги он возвращает людям, если их риски сыграли. Если присутствует свободная конкуренция, то есть давление в сторону точной оценки p_i и уменьшения delta.А какое поведение со стороны клиента является оптимальным? Этот вопрос важен, поскольку последовательное следование той или иной стратегии долгосрочно отразится на вашем состоянии.
Представим, что есть набор фичей про вас - A и B, где B - информация, доступная всем, а A знаете только вы. Работа страховой компании - построить правдивую модель
p(X_i | B). Например, в расчёте стоимости Каско она будет использовать ваш стаж, возраст и т.д. Чем больше она про вас знает "хорошего", тем ниже будет оценка и стоимость страховки, и наоборот. Теперь предположите, что входит в A, и подумайте - как друг с другом соотносятся p(X_i | B) и p(X_i | A, B). Если плохие факты, о которых знаете только вы, сильно перевешивают хорошие - это означает, что компания недооценивает ваш риск, и вам выгодно его переложить. Например - вы покупаете билет на самолёт, но знаете, что есть конкретная причина, по которой с высокой вероятностью вы не сможете полететь. Тогда нужно брать возврат. А вот если вы водитель, и у вас есть основание считать, что вы водите аккуратнее других людей с такими же открытыми характеристиками, то вам невыгодно страховать машину.
Самое смешное в этом всём то, что если все люди начинают продумывать свою стратегию, то появляется фича C - пришёл ли человек за страховкой. Она будет сигнализировать о том, что вероятность риска недооценена и вызовет бесконечный цикл повышения цены, вплоть до коллапса, прямо как в той игре, в которой нужно загадать число, в 2 раза меньшее, чем среднее у всех остальных. Но, скорее всего, в реальности C мало зависит от A и проблемы нет.
А какую стратегию используете вы?
@knowledge_accumulator
👍15🔥6❤2😁1🤔1💯1
Structurally Flexible Neural Networks: Evolving the Building Blocks for General Agents [2024]
Наткнулся на ещё одну работу, в которой обучают модель-алгоритм. Её используют тут же для решения RL-задач, с результатами, по графикам сильно превосходящими VSML.
Авторы придерживаются тех же базовых принципов - мало мета-параметров (обучающихся генетикой), большое скрытое состояние. Различие в том, в какую именно архитектуру всё это запаковано. У VSML это несколько "слоёв" LSTM, сцепленных, как обычная нейронная сеть, со связями вперёд и назад.
В данной работе авторы используют более гибкую схему:
1) Есть 3 вида нейронов - входные, скрытые и выходные
2) Каждый входной нейрон может быть связан с каждым скрытым, каждый скрытый с каждым выходным
3) Перед началом обучения (то есть внутри эволюционной итерации) сэмплируются бинарные маски IxH и HxO, обозначающие наличие связи между каждым input и hidden, а также между каждым hidden и output.
А что, собственно, обучается? Чем является в данном случае "нейрон"?
Каждый нейрон принимает на вход векторы сигналов, складывает их и получает свой "Pre-neuron". Далее он домножается поэлементно на вектор w и получается post-neuron. После этого pre-neuron, post-neuron и награда из среды подаются в GRU, которая выдаёт дельту для вектора w.
Вектор w у каждого нейрона свой, а вот веса GRU у всех скрытых нейронов одинаковые. То же и с входными, и с выходными группами, но у каждой группы своя GRU.
Мне лично нравится, что такая плотно связанная сеть нейронов позволяет легко пробрасывать информацию по всей модели и быстрее обучаться своей задаче. Она содержит ещё меньше априорных допущений, чем предыдущий подход, что соответствует выводам из Bitter Lesson. Прорыв в итоге совершит подход, лучше всего балансирующий между гибкостью и эффективностью исполнения на современных GPU - иначе он падёт жертвой hardware lottery.
Из минусов статьи - нет кода, нет meta-testing (хотя сомнений в успехе у меня нет), нет описания затраченных на обучение ресурсов.
@knowledge_accumulator
Наткнулся на ещё одну работу, в которой обучают модель-алгоритм. Её используют тут же для решения RL-задач, с результатами, по графикам сильно превосходящими VSML.
Авторы придерживаются тех же базовых принципов - мало мета-параметров (обучающихся генетикой), большое скрытое состояние. Различие в том, в какую именно архитектуру всё это запаковано. У VSML это несколько "слоёв" LSTM, сцепленных, как обычная нейронная сеть, со связями вперёд и назад.
В данной работе авторы используют более гибкую схему:
1) Есть 3 вида нейронов - входные, скрытые и выходные
2) Каждый входной нейрон может быть связан с каждым скрытым, каждый скрытый с каждым выходным
3) Перед началом обучения (то есть внутри эволюционной итерации) сэмплируются бинарные маски IxH и HxO, обозначающие наличие связи между каждым input и hidden, а также между каждым hidden и output.
А что, собственно, обучается? Чем является в данном случае "нейрон"?
Каждый нейрон принимает на вход векторы сигналов, складывает их и получает свой "Pre-neuron". Далее он домножается поэлементно на вектор w и получается post-neuron. После этого pre-neuron, post-neuron и награда из среды подаются в GRU, которая выдаёт дельту для вектора w.
Вектор w у каждого нейрона свой, а вот веса GRU у всех скрытых нейронов одинаковые. То же и с входными, и с выходными группами, но у каждой группы своя GRU.
Мне лично нравится, что такая плотно связанная сеть нейронов позволяет легко пробрасывать информацию по всей модели и быстрее обучаться своей задаче. Она содержит ещё меньше априорных допущений, чем предыдущий подход, что соответствует выводам из Bitter Lesson. Прорыв в итоге совершит подход, лучше всего балансирующий между гибкостью и эффективностью исполнения на современных GPU - иначе он падёт жертвой hardware lottery.
Из минусов статьи - нет кода, нет meta-testing (хотя сомнений в успехе у меня нет), нет описания затраченных на обучение ресурсов.
@knowledge_accumulator
👍11🔥4❤2🤷1
Когда нужно переезжать на Марс?
Иногда я задаю себе этот вопрос, и он хорошо помогает вам разобраться в себе, поэтому об этом есть смысл задумываться. В технические детали вдаваться пока рано, но общие рассуждения можно проводить уже сейчас.
Есть категория людей, которые захотят полететь в первой группе. Это будут те, кто склонен к риску, те, кто ценят достижение новых высот и целей выше своей жизни. Те же люди хотели первыми забраться на Эверест, опуститься на дно Марианской впадины, достичь Южного полюса.
Им придётся много работать на месте, налаживать инфраструктуру для выживания, они рискнут умереть, но они станут звёздами своего времени. Полный их список будет написан на памятниках и в википедии, про них снимут документальное кино, которое станет вечной классикой. Кто-то из них родит первого марсианина. Как вам такой обмен?
Предположим, что колония начнёт развиваться. По каким показателям она должна превзойти Землю, чтобы вы решились на переезд? Что для вас является самым важным в жизни? Низкая преступность будет сразу, а вот голым купаться в океане под голубым небом вы ещё долго там не сможете.
Мой подход таков: если Земля надолго придёт в упадок или в стагнацию (я в это скорее верю, чем нет, но про это в другой раз), а Марс станет новой Америкой, с экономикой, близкой к свободному рынку (не безденежным раем под руководством колонии), а также населённой лучшими людьми, я сразу захочу туда поехать. Но у меня есть несколько ограничивающих критериев:
1) Должно появиться достаточно свидетельств отсутствия значимого вреда здоровью от перелёта и нахождения там. К сожалению, нужны годы для появления таких данных, а проблемы типа космической радиации пока, вроде бы, не решены.
2) Маршрут должен стать двухсторонний и с рыночным ценообразованием, чтобы я пользовался им, как клиент, когда пожелаю.
3) Количество бытовых неудобств не будет несопоставимо больше, чем во время жизни на Земле.
В принципе, для меня этого достаточно. Да, сначала там будет не всё, что есть на Земле, но под давлением спроса со временем на Марсе обязательно появится всё недостающее. И этот расцвет новой цивилизации я хотел бы наблюдать вживую. А вы что думаете?
@knowledge_accumulator
Иногда я задаю себе этот вопрос, и он хорошо помогает вам разобраться в себе, поэтому об этом есть смысл задумываться. В технические детали вдаваться пока рано, но общие рассуждения можно проводить уже сейчас.
Есть категория людей, которые захотят полететь в первой группе. Это будут те, кто склонен к риску, те, кто ценят достижение новых высот и целей выше своей жизни. Те же люди хотели первыми забраться на Эверест, опуститься на дно Марианской впадины, достичь Южного полюса.
Им придётся много работать на месте, налаживать инфраструктуру для выживания, они рискнут умереть, но они станут звёздами своего времени. Полный их список будет написан на памятниках и в википедии, про них снимут документальное кино, которое станет вечной классикой. Кто-то из них родит первого марсианина. Как вам такой обмен?
Предположим, что колония начнёт развиваться. По каким показателям она должна превзойти Землю, чтобы вы решились на переезд? Что для вас является самым важным в жизни? Низкая преступность будет сразу, а вот голым купаться в океане под голубым небом вы ещё долго там не сможете.
Мой подход таков: если Земля надолго придёт в упадок или в стагнацию (я в это скорее верю, чем нет, но про это в другой раз), а Марс станет новой Америкой, с экономикой, близкой к свободному рынку (не безденежным раем под руководством колонии), а также населённой лучшими людьми, я сразу захочу туда поехать. Но у меня есть несколько ограничивающих критериев:
1) Должно появиться достаточно свидетельств отсутствия значимого вреда здоровью от перелёта и нахождения там. К сожалению, нужны годы для появления таких данных, а проблемы типа космической радиации пока, вроде бы, не решены.
2) Маршрут должен стать двухсторонний и с рыночным ценообразованием, чтобы я пользовался им, как клиент, когда пожелаю.
3) Количество бытовых неудобств не будет несопоставимо больше, чем во время жизни на Земле.
В принципе, для меня этого достаточно. Да, сначала там будет не всё, что есть на Земле, но под давлением спроса со временем на Марсе обязательно появится всё недостающее. И этот расцвет новой цивилизации я хотел бы наблюдать вживую. А вы что думаете?
@knowledge_accumulator
👍9❤4😁4👎2🔥1💯1
Continual Few-Shot Learning Using HyperTransformers [2023] - учим трансформер генерировать нейросети
Я уже рассказывал про meta-meta-learning (он же continual learning) - постановка, в которой мы учимся решать много задач, получая их по одной и переиспользуя знания из предыдущих. В данном случае у нас few-shot вариант.
Если мы просто обучаем нейросеть подряд на этих задачах, нейросеть будет забывать предыдущие - это побочный эффект обычно используемого обучающего алгоритма. В данной работе вместо обучающего алгоритма используется HyperTransformer. Схема такова:
- Есть архитектура свёрточной нейросети, её веса задаются вектором
- Гипертрансформер получает на вход тренировочные данные текущей задачи (N сэмплов из K классов) и предыдущий
- Получившуюся свёрточную нейросеть прогоняют на валидации всех уже показанных задач и считают лосс. Вся процедура получается дифференцируемой и гипертрансформер обучают этот лосс минимизировать.
Несмотря на выигрыш по сравнению с бейзлайном, у меня есть сомнения по поводу такой параметризации этой схемы. Трансформер над вектором весов и задачей выглядит не очень естественной конструкцией. При этом, в теории оно должно выучиться при достаточных ресурсах и данных.
Авторы не проверяют свою модель в сценарии meta-testing, когда мы запускаем только инференс hypertransformer на новом датасете. Интуитивно, оно и не должно зажечь, поскольку количество параметров в таком трансформере наверняка достаточно, чтобы обучаться задачам самому, и поэтому он переобучился на meta-трейне.
С другой стороны, в целом, концепт генерации маленькой модели при помощи большой модели, обученной на больших объёмах данных, вызывает интерес. Но победить дистилляцию из большой модели в маленькую будет непросто. Посмотрим.
@knowledge_accumulator
Я уже рассказывал про meta-meta-learning (он же continual learning) - постановка, в которой мы учимся решать много задач, получая их по одной и переиспользуя знания из предыдущих. В данном случае у нас few-shot вариант.
Если мы просто обучаем нейросеть подряд на этих задачах, нейросеть будет забывать предыдущие - это побочный эффект обычно используемого обучающего алгоритма. В данной работе вместо обучающего алгоритма используется HyperTransformer. Схема такова:
- Есть архитектура свёрточной нейросети, её веса задаются вектором
wcnn. Для классификации используют Prototypical Loss, поскольку число классов заранее неизвестно. Это позволяет нейросети выдавать для картинки один вектор f(x).- Гипертрансформер получает на вход тренировочные данные текущей задачи (N сэмплов из K классов) и предыдущий
wcnn. На выходе у него следующая версия wcnn- Получившуюся свёрточную нейросеть прогоняют на валидации всех уже показанных задач и считают лосс. Вся процедура получается дифференцируемой и гипертрансформер обучают этот лосс минимизировать.
Несмотря на выигрыш по сравнению с бейзлайном, у меня есть сомнения по поводу такой параметризации этой схемы. Трансформер над вектором весов и задачей выглядит не очень естественной конструкцией. При этом, в теории оно должно выучиться при достаточных ресурсах и данных.
Авторы не проверяют свою модель в сценарии meta-testing, когда мы запускаем только инференс hypertransformer на новом датасете. Интуитивно, оно и не должно зажечь, поскольку количество параметров в таком трансформере наверняка достаточно, чтобы обучаться задачам самому, и поэтому он переобучился на meta-трейне.
С другой стороны, в целом, концепт генерации маленькой модели при помощи большой модели, обученной на больших объёмах данных, вызывает интерес. Но победить дистилляцию из большой модели в маленькую будет непросто. Посмотрим.
@knowledge_accumulator
👍10❤4🔥4🤷♂1
Если вам постоянно страшно от того, что вы упускаете какую-то возможность, то вы абсолютно правы
Многие слышали про такой термин, как FOMO (Fear Of Missing Out) - страх упущенной выгоды/возможности. Кто-то говорит, что он иррационален и нужно эти мысли просто отбрасывать. Я предлагаю сегодня разобраться в том, так ли это, с помощью RL.
Наша жизнь - это движение по пространству состояний мира
У вас есть ваша стратегия
Всё становится ещё более пугающим, когда мы обращаем внимание на оптимальную стратегию -
Для неё тоже есть оценка состояния и оценка действия в состоянии -
Для них выполняется правило:
Проще говоря - что бы вы ни делали, вы в самом лучшем случае будете не терять свой потенциал. С огромной вероятностью каждое ваше действие уменьшает его. Он непрерывно утекает у вас сквозь пальцы. Вы не можете это обернуть, только остановить, и то только в теории. В конце жизни гарантированно окажется, что из-за накопленных ошибок вы достигли только крошечную долю того, что могли бы.
Вы спросите - и что мне с этим делать? Отвечаю - забейте 👍
@knowledge_accumulator
Многие слышали про такой термин, как FOMO (Fear Of Missing Out) - страх упущенной выгоды/возможности. Кто-то говорит, что он иррационален и нужно эти мысли просто отбрасывать. Я предлагаю сегодня разобраться в том, так ли это, с помощью RL.
Наша жизнь - это движение по пространству состояний мира
S. У любого состояния s существует оценка того, насколько оно "хорошее": V(s). Это величина, которая показывает, какую суммарную награду вы получите, стартуя из данного состояния и действуя всё последующее время своей стратегией. Есть аналогичное определение Q(s,a) - такая же оценка состояния, но уже при условии того, что вы сейчас совершите действие a.У вас есть ваша стратегия
p(a | s), которой вы придерживаетесь. Легко показать, что V(s) = E_p(a|s) [Q(s, a)]. Теперь давайте посмотрим на конкретный момент времени и состояние s. Существует какое-то распределение на действия p'(a|s), максимизирующее E_p'(a|s) [Q(s, a)]. Это оптимальное распределение с вашей точки зрения, и наверняка ваше текущее распределение с ним не совпадает. В отличие от пошаговых игр, отсутствие действия это тоже одно из возможных действий. Таким образом, каждый миг то, что вы делаете, скорее всего, приносит вам упущенную выгоду.Всё становится ещё более пугающим, когда мы обращаем внимание на оптимальную стратегию -
p*(a|s). Это стратегия, идеально максимизирующая суммарную награду. Такая стратегия точно существует. Для неё тоже есть оценка состояния и оценка действия в состоянии -
V*(s) и Q*(s, a). Их можно использовать как "потенциал" агента - то, какой существует теоретический потолок суммарной награды. То, что можно достичь, принимая оптимальные решения.Для них выполняется правило:
V*(s) = E_p*(a|s) Q*(s, a). Это соотношение показывает потенциал до и после выбора действия в каждый момент времени. Если вы придерживаетесь стратегии p*(a|s), то ваш потенциал не уменьшится. В большинстве случаев ваш выбор ведёт к уменьшению потенциала. Если предположить, что вся награда подсчитывается в конце жизни, то мат. ожидание V*(s) в следующую секунду будет почти гарантированно ниже, чем в предыдущую. Проще говоря - что бы вы ни делали, вы в самом лучшем случае будете не терять свой потенциал. С огромной вероятностью каждое ваше действие уменьшает его. Он непрерывно утекает у вас сквозь пальцы. Вы не можете это обернуть, только остановить, и то только в теории. В конце жизни гарантированно окажется, что из-за накопленных ошибок вы достигли только крошечную долю того, что могли бы.
Вы спросите - и что мне с этим делать? Отвечаю - забейте 👍
@knowledge_accumulator
👍37🗿10🔥5❤2🤔1💩1
Genie: Generative Interactive Environments [2024] - обучаем нейросеть-игру
Часть людей, работающих c RL, считает, что для развития более общего интеллекта нам нужно сделать задачу, для которой он понадобится. Но не одну, а большое распределение на эти задачи, которое будет достаточно большим, чтобы очень плотно покрыть то, что встречается в жизни. Шагом в эту сторону является модель Genie.
Исследователи собрали датасет из 30к часов неразмеченных видео с платформерами из интернета. Далее обучили генеративную модель следующего кадра при условии предыдущих кадров и сделанного действия.
Конечно, есть проблема в том, что данные о действиях не размечены. Чтобы это обойти, при обучении используют автоэнкодер с небольшим дискретным боттлнеком (т.е. VQ-VAE) с размером словаря 8 - количеством возможных действий.
Как в итоге происходит инференс Genie - вы подаёте промпт-картинку в модель в качестве первого кадра игры. Далее вы каждый шаг должны подавать ей действие и она будет генерировать вам следующий кадр. Таким образом, с учётом датасета, можно сгенерировать платформер на основе чего угодно - сгенерированной картинки, рисунка, фотографии, и играть в него. Судя по видео с сайта, качество не огонь, но как-то работает.
Авторы упоминают Ada, как площадку для тестирования RL-агентов, но утверждают, что она ограничена, а их подход при должном масштабировании и развитии приведёт к тому, что у нас будет возможность сгенерировать любую вообразимую задачу. С такой средой, мы сможем обучать гига-мега-агентов, умеющих играть в любую игру, а значит, что-то, близкое к AGI.
Я с этим подходом не согласен. Это дублирует логику из LLM - закинем побольше данных, компьюта в текущие методы и получим модель, умеющую "всё", потому что мы учили её на "всём". Но как раз опыт GPT нам показывает, что способность к обучаемости у такой системы слаба. Да, можно будет получить роботов-уборщиков, роботов-поваров, но это будет всё ещё маленькое обобщение трейнсета.
А вот игры по промпту - это весело.
@knowledge_accumulator
Часть людей, работающих c RL, считает, что для развития более общего интеллекта нам нужно сделать задачу, для которой он понадобится. Но не одну, а большое распределение на эти задачи, которое будет достаточно большим, чтобы очень плотно покрыть то, что встречается в жизни. Шагом в эту сторону является модель Genie.
Исследователи собрали датасет из 30к часов неразмеченных видео с платформерами из интернета. Далее обучили генеративную модель следующего кадра при условии предыдущих кадров и сделанного действия.
Конечно, есть проблема в том, что данные о действиях не размечены. Чтобы это обойти, при обучении используют автоэнкодер с небольшим дискретным боттлнеком (т.е. VQ-VAE) с размером словаря 8 - количеством возможных действий.
Как в итоге происходит инференс Genie - вы подаёте промпт-картинку в модель в качестве первого кадра игры. Далее вы каждый шаг должны подавать ей действие и она будет генерировать вам следующий кадр. Таким образом, с учётом датасета, можно сгенерировать платформер на основе чего угодно - сгенерированной картинки, рисунка, фотографии, и играть в него. Судя по видео с сайта, качество не огонь, но как-то работает.
Авторы упоминают Ada, как площадку для тестирования RL-агентов, но утверждают, что она ограничена, а их подход при должном масштабировании и развитии приведёт к тому, что у нас будет возможность сгенерировать любую вообразимую задачу. С такой средой, мы сможем обучать гига-мега-агентов, умеющих играть в любую игру, а значит, что-то, близкое к AGI.
Я с этим подходом не согласен. Это дублирует логику из LLM - закинем побольше данных, компьюта в текущие методы и получим модель, умеющую "всё", потому что мы учили её на "всём". Но как раз опыт GPT нам показывает, что способность к обучаемости у такой системы слаба. Да, можно будет получить роботов-уборщиков, роботов-поваров, но это будет всё ещё маленькое обобщение трейнсета.
А вот игры по промпту - это весело.
@knowledge_accumulator
👍9❤3🔥1
Почему параметризация вашего поведения имеет значения
В недавнем посте я упоминал о поведении - том, какие действия вы совершаете в каждой ситуации. Очень большую роль играет не оно само, а его параметризация.
В RL самым простым способом задать policy является "таблица" - это когда на каждый возможный случай есть независимая реакция. В реальной жизни этот подход работает ужасно. Но почему?
Представим жизнь, как цепочку состояний, в каждом из которых вы должны выбрать действие. Реальные состояния никогда не повторяются, и поэтому при "табличном" подходе вы будете каждый раз принимать отдельное решение. У этого есть две проблемы:
1) Одно действие оказывает околонулевое влияние на результат. Никакой отдельный день игры в доту или поход в KFC не испортит вам жизнь
2) Затраты силы воли на "полезное" маленькое решение отнюдь не очень маленькие
Таким образом, у вашего мозга нет почти никакой причины поступать правильно в каждый момент. Но суммарно это выливается в плохие последствия. А как это починить?
Необходимо группировать состояния по общим признакам и обучить свой мозг принимать решение в зависимости от обобщённых признаков, а не конкретной ситуации. Рассмотрим простой пример - каждый день вы идёте на работу и проходите мимо кофейни, где ваш любимый капучино стоит 3.5 фунта.
Все эти разы можно объединить по контексту в одну ситуацию, тогда вашим действием будет ответ на "беру ли я кофе по пути на работу?" Цена такого действия гораздо выше - вместо 3.5 фунтов это будет 70 фунтов в месяц, 840 фунтов в год. При этом, вам достаточно один раз применить силу воли и через месяц вам будет ничего не стоить поступать правильно в каждый отдельный момент.
Объединять действия по контексту можно и более широко - "покупаю ли я то, зачем бы специально не приехал сюда из дома?". Чем более грамотно вы упакуете вашу стратегию, тем меньше затрат силы воли и неоптимальности вы получите. Иначе говоря, вам нужно выработать правильную мета-стратегию - "как я группирую ситуации и принимаю решения?" - её параметризация оказывает безумное влияние на результат.
Однако, не забывайте, что всё это только тактическое планирование. Принятие стратегических решений - о вашем переезде, выборе карьеры и места работы оказывает куда большее влияние, чем любая стратегия про покупки. Неэкономный ML-инженер переиграет экономного музыканта.
Бывают также и стратегические обобщённые решения - "Как сильно я готов менять свою карьеру на более выгодную?", "Беру ли я недвижимость в аренду или в ипотеку?" и т.д.
Желаю вам хороших мета-стратегий, дорогие читатели.
@knowledge_accumulator
В недавнем посте я упоминал о поведении - том, какие действия вы совершаете в каждой ситуации. Очень большую роль играет не оно само, а его параметризация.
В RL самым простым способом задать policy является "таблица" - это когда на каждый возможный случай есть независимая реакция. В реальной жизни этот подход работает ужасно. Но почему?
Представим жизнь, как цепочку состояний, в каждом из которых вы должны выбрать действие. Реальные состояния никогда не повторяются, и поэтому при "табличном" подходе вы будете каждый раз принимать отдельное решение. У этого есть две проблемы:
1) Одно действие оказывает околонулевое влияние на результат. Никакой отдельный день игры в доту или поход в KFC не испортит вам жизнь
2) Затраты силы воли на "полезное" маленькое решение отнюдь не очень маленькие
Таким образом, у вашего мозга нет почти никакой причины поступать правильно в каждый момент. Но суммарно это выливается в плохие последствия. А как это починить?
Необходимо группировать состояния по общим признакам и обучить свой мозг принимать решение в зависимости от обобщённых признаков, а не конкретной ситуации. Рассмотрим простой пример - каждый день вы идёте на работу и проходите мимо кофейни, где ваш любимый капучино стоит 3.5 фунта.
Все эти разы можно объединить по контексту в одну ситуацию, тогда вашим действием будет ответ на "беру ли я кофе по пути на работу?" Цена такого действия гораздо выше - вместо 3.5 фунтов это будет 70 фунтов в месяц, 840 фунтов в год. При этом, вам достаточно один раз применить силу воли и через месяц вам будет ничего не стоить поступать правильно в каждый отдельный момент.
Объединять действия по контексту можно и более широко - "покупаю ли я то, зачем бы специально не приехал сюда из дома?". Чем более грамотно вы упакуете вашу стратегию, тем меньше затрат силы воли и неоптимальности вы получите. Иначе говоря, вам нужно выработать правильную мета-стратегию - "как я группирую ситуации и принимаю решения?" - её параметризация оказывает безумное влияние на результат.
Однако, не забывайте, что всё это только тактическое планирование. Принятие стратегических решений - о вашем переезде, выборе карьеры и места работы оказывает куда большее влияние, чем любая стратегия про покупки. Неэкономный ML-инженер переиграет экономного музыканта.
Бывают также и стратегические обобщённые решения - "Как сильно я готов менять свою карьеру на более выгодную?", "Беру ли я недвижимость в аренду или в ипотеку?" и т.д.
Желаю вам хороших мета-стратегий, дорогие читатели.
@knowledge_accumulator
👍17❤6🔥4
AlphaStar Unplugged: Large-Scale Offline Reinforcement Learning [2024]
Я уже писал про AlphaStar - RL-агента, которого обучили играть в старкрафт на уровне 99.8 перцентили. На это было потрачено сумасшедшее количество времени в режиме "онлайн"-обучения.
Человек умеет вырабатывать навыки просто засчёт наблюдения за действиями других. Насколько хорошо это делают текущие алгоритмы? Для измерения этого авторы предлагают следующий бенчмарк оффлайн-RL-алгоритмов.
Берём 30 лет данных, 1.4 миллиона игр и пытаемся обучить наиболее сильный алгоритм. Весь код для подготовки данных и всякого прочего, кстати, выложен, что не сильно свойственно Deepmind.
В качестве архитектуры берём ~того же гигамонстра, что и в оригинале, который умеет переварить всевозможные входы и выдать одно из огромного числа возможных действий. Но архитектура здесь - дело десятое.
Главное, что замеряют авторы - это разные способы обучения такой модели. Самый глупый бейзлайн - обучение повторять поведение игрока на всём датасете (
В статье также прогоняют всякие изощрённые оффлайн-RL-штуки, такие, как Offline Actor-Critic. И что тут сказать - насколько же они не впечатляют в сравнении с
Самым лучшим алгоритмом оказался
Существует фундаментальный предел производительности агента в подобном сетапе. Я слабо верю, что он находится на уровне, сопоставимом с простой имитацией лучших игроков. Тем интереснее то, что ни один из текущих методов не достигает большого прорыва по сравнению с ней. А вы как считаете, есть ли алгоритм, который посмотрит на такой датасет и сразу выдаст superhuman performance?
@knowledge_accumulator
Я уже писал про AlphaStar - RL-агента, которого обучили играть в старкрафт на уровне 99.8 перцентили. На это было потрачено сумасшедшее количество времени в режиме "онлайн"-обучения.
Человек умеет вырабатывать навыки просто засчёт наблюдения за действиями других. Насколько хорошо это делают текущие алгоритмы? Для измерения этого авторы предлагают следующий бенчмарк оффлайн-RL-алгоритмов.
Берём 30 лет данных, 1.4 миллиона игр и пытаемся обучить наиболее сильный алгоритм. Весь код для подготовки данных и всякого прочего, кстати, выложен, что не сильно свойственно Deepmind.
В качестве архитектуры берём ~того же гигамонстра, что и в оригинале, который умеет переварить всевозможные входы и выдать одно из огромного числа возможных действий. Но архитектура здесь - дело десятое.
Главное, что замеряют авторы - это разные способы обучения такой модели. Самый глупый бейзлайн - обучение повторять поведение игрока на всём датасете (
BC). Чуть более умный - это зафайнтюнить такую модель на играх более сильной части игроков (FT-BC).В статье также прогоняют всякие изощрённые оффлайн-RL-штуки, такие, как Offline Actor-Critic. И что тут сказать - насколько же они не впечатляют в сравнении с
FT-BC. У меня давно есть вопрос к тому, насколько эта технология работает, т.к. уже не первый раз наблюдаю подобную картину.Самым лучшим алгоритмом оказался
MuZero Unplugged + inference MCTS, про который я расскажу в другой раз, он немного лучше FT-BC. Так или иначе, все они безнадёжно отстают от онлайн-алгоритма, т.к играют на уровне ~85 перцентили.Существует фундаментальный предел производительности агента в подобном сетапе. Я слабо верю, что он находится на уровне, сопоставимом с простой имитацией лучших игроков. Тем интереснее то, что ни один из текущих методов не достигает большого прорыва по сравнению с ней. А вы как считаете, есть ли алгоритм, который посмотрит на такой датасет и сразу выдаст superhuman performance?
@knowledge_accumulator
👍9🔥4❤2