Retrieval-Augmented Decision Transformer: External Memory for In-Context RL
really cool idea по поводу ин-контекст рл, которую захотелось заимплементить (в том числе оттого, как понятно авторы описали свою идею)
в основном работает интуиция, что чем сложнее среда, тем бОльший контекст нужен модели для перформанса на near-optimal/optimal level (особенно когда речь идет про ПОМДП). и вот тут, как и в нлп, возникает загвоздка - улетаем в требования по памяти. и здесь довольно много есть путей, как такое решать - как костыльные, так и более-менее красивые👀
авторы же попробовали прикрутить индекс датабазу эмбеддингов и получилось очень даже прикольно - но есть нюансы
- будем делать кнн по внешней базе эмбеддингов и затем подавать выданные через кросс аттеншн, окей: откуда взять репрезентативные эмбеддинги? можно претрейнить Decision Transformer, но так же использовать и ЛМки, что очень красиво
- делается это при помощи рандомной матрицы (которая уже использовалась здесь и здесь), чтобы подогнать размерности к хидденам ЛМки
- а эмбеддинги языковых моделей остаются релевантными и для рл данных из-за своей плотной полисемантичности (и потому что первый автор уже разбирался в этом вопросе)
- при этом при контексте модели в С токенов в индекс базе для ретривала сохраняются эмбеддинги подтраекторий длиной 2С, чтобы агент мог так же получать интуицию о последствиях действий в будущем
- ретривятся эмбеддинги по схожести, но так же потом отбираются еще дополнительно по понятию utility, которая может быть связана либо же с повышенным ретерном траектории, либо по проверке того, одинаковая ли таска с траекторией-запросом (query)
в итоге - контекст окна в их методе можно ставить независимо от длины одного эпизода сред + во многих кейсах на голову обгоняет то, что уже есть (а где ин-контекст свойства не наблюдается у предыдущих методов, RA-DT тоже не перформит как хочется)
есть только несколько вопросов - почему на помдп (например в прокгене или мейзраннере) в некоторых местах дпт перформит лучше ад, в то время как дпт заявляется как MDP-like algorithm, может ли это говорить о чем-то другом кроме как того что не совсем правильно завели какой-то из алгосов + на даркруме (мдп) ад лучше по резам чем дпт (здесь предполагаю, что оставили результаты с 2 эпизодами в качестве контекста, в то время как дпт может по теории перформить хоть с single-episode context, а ад из-за способности к помдп нет)
а в общем - и аблации, и ревард обучения сурс алгоритма показали, и гиперы есть, и разные сиды, и код более-менее чистый, и все-все есть, очень вкусно 😋
👀LINK
подслушано здесь
really cool idea по поводу ин-контекст рл, которую захотелось заимплементить (в том числе оттого, как понятно авторы описали свою идею)
в основном работает интуиция, что чем сложнее среда, тем бОльший контекст нужен модели для перформанса на near-optimal/optimal level (особенно когда речь идет про ПОМДП). и вот тут, как и в нлп, возникает загвоздка - улетаем в требования по памяти. и здесь довольно много есть путей, как такое решать - как костыльные, так и более-менее красивые
авторы же попробовали прикрутить индекс датабазу эмбеддингов и получилось очень даже прикольно - но есть нюансы
- будем делать кнн по внешней базе эмбеддингов и затем подавать выданные через кросс аттеншн, окей: откуда взять репрезентативные эмбеддинги? можно претрейнить Decision Transformer, но так же использовать и ЛМки, что очень красиво
- делается это при помощи рандомной матрицы (которая уже использовалась здесь и здесь), чтобы подогнать размерности к хидденам ЛМки
- а эмбеддинги языковых моделей остаются релевантными и для рл данных из-за своей плотной полисемантичности (и потому что первый автор уже разбирался в этом вопросе)
- при этом при контексте модели в С токенов в индекс базе для ретривала сохраняются эмбеддинги подтраекторий длиной 2С, чтобы агент мог так же получать интуицию о последствиях действий в будущем
- ретривятся эмбеддинги по схожести, но так же потом отбираются еще дополнительно по понятию utility, которая может быть связана либо же с повышенным ретерном траектории, либо по проверке того, одинаковая ли таска с траекторией-запросом (query)
в итоге - контекст окна в их методе можно ставить независимо от длины одного эпизода сред + во многих кейсах на голову обгоняет то, что уже есть (а где ин-контекст свойства не наблюдается у предыдущих методов, RA-DT тоже не перформит как хочется)
есть только несколько вопросов - почему на помдп (например в прокгене или мейзраннере) в некоторых местах дпт перформит лучше ад, в то время как дпт заявляется как MDP-like algorithm, может ли это говорить о чем-то другом кроме как того что не совсем правильно завели какой-то из алгосов + на даркруме (мдп) ад лучше по резам чем дпт (здесь предполагаю, что оставили результаты с 2 эпизодами в качестве контекста, в то время как дпт может по теории перформить хоть с single-episode context, а ад из-за способности к помдп нет)
а в общем - и аблации, и ревард обучения сурс алгоритма показали, и гиперы есть, и разные сиды, и код более-менее чистый, и все-все есть, очень вкусно 😋
👀LINK
подслушано здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Sparse Autoencoders Reveal Temporal Difference Learning in Large Language Models
мы уже писали о том, что трансформер может “ин-контекстно” осуществлять итеративный TD алгоритм, как и градиентный спуск для линрега, так и вообще подобно людям в них осуществляется ассиметричное обновление внутреннего состояния ситуации
уже скорее неудивительно, но такое могут сделать и ллмки (не стоит забывать что они в принципе способны к вычленению полезных паттернов из осмысленной последовательности)
как это решили выяснить авторы? через Sparse Autoencoder над хидден стейтами конкретного внутреннего слоя сетки, что суть просто автоэнкодер с Л1 нормой на энкодер аутпуты - вот вам и разреженность. а учили это все конкретно над резидуалом в слоях модели, поскольку так вроде как легче получить моносемантическое и обособленное множество фичей
на вход модели подавали в виде текстового описания таски и смотрели внутренние представления токенов, которые предшествовали токенам действия → чекаем есть ли вычисления чего-то вроде q функции
в итоге по результатам реварда лламы что-то да выучивают в контексте и повышают награду с течением времени
но так же происходит выучивание не только будущих дисконтированнных ревардов, но и то, что называется state occupancies (близко по понятию к goal-based rl), где ревард можно сформулировать через достижение поставленного стейта. that’s super duper bruh😎
однако авторы решили не углубляться, как именно происходит появление таких обособленных фичей внутри модели - то ли из-за индуктивных голов, то ли еще из-за чего
👀LINK
подслушано здесь
мы уже писали о том, что трансформер может “ин-контекстно” осуществлять итеративный TD алгоритм, как и градиентный спуск для линрега, так и вообще подобно людям в них осуществляется ассиметричное обновление внутреннего состояния ситуации
уже скорее неудивительно, но такое могут сделать и ллмки (не стоит забывать что они в принципе способны к вычленению полезных паттернов из осмысленной последовательности)
как это решили выяснить авторы? через Sparse Autoencoder над хидден стейтами конкретного внутреннего слоя сетки, что суть просто автоэнкодер с Л1 нормой на энкодер аутпуты - вот вам и разреженность. а учили это все конкретно над резидуалом в слоях модели, поскольку так вроде как легче получить моносемантическое и обособленное множество фичей
на вход модели подавали в виде текстового описания таски и смотрели внутренние представления токенов, которые предшествовали токенам действия → чекаем есть ли вычисления чего-то вроде q функции
в итоге по результатам реварда лламы что-то да выучивают в контексте и повышают награду с течением времени
но так же происходит выучивание не только будущих дисконтированнных ревардов, но и то, что называется state occupancies (близко по понятию к goal-based rl), где ревард можно сформулировать через достижение поставленного стейта. that’s super duper bruh
однако авторы решили не углубляться, как именно происходит появление таких обособленных фичей внутри модели - то ли из-за индуктивных голов, то ли еще из-за чего
👀LINK
подслушано здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Scaling and evaluating sparse autoencoders
в продолжение темы разреженных автоэнкодеров, опенаи решили отскейлить и улучшить это дело, ибо они довольно удобны для выявления моносемантичных интерпретируемых фичей как в фаундейшн, так и в заалайненных модельках
что они сделали как улучшения:
- заменили л1 регуляризацию на топ-к активацию, которая не зануляет только к самых больших активаций (при том этот выбор численно лучше, тк такое пенальти в принципе склоняло все активации к нулю).
- проверили кросс энтропией и кл дивергенцией релевантны ли моносемантичные получившиеся фичи для языкового моделирования (да, при том при минимизации мсе такой лосс оптимайзится лучше и мсе можно связать с кл дивергенцией через power law)
- добавили доп лосс на реконструкцию при помощи только k’ мертвых латентов
после этого количество мертвых латентов (которые так сильно мешали интерпретировать моносемантичные фичи) снизилось с двух третей от всех параметров до ~7%. да и смогли уследить power laws относительно количества латентов и уровня разреженности (параметра к).
в аппендиксе еще можно найти много важных деталей, по тому как именно и что они делали (ема, градиент клиппинг, изменение эпсилона в адаме, инициализация биаса как геом среднее трейн выборки, в принципе инит других частей модели и тд) + это все сопровождается более-менее хорошим кодом (который подстроен под гпт2) и залипательным визуализатором, который получили от автоэнкодера с 16млн латентами на 40б токенов
большой боттлнек пока составляет как раз уровень разреженности (гипер к), который подбирается вручную - как мы можем понять, если продолжать улучшение этого флоу, то работа в основном будет идти в автоматический подбор этого параметра (через роутинг или мб что похлеще)
👀LINK
в продолжение темы разреженных автоэнкодеров, опенаи решили отскейлить и улучшить это дело, ибо они довольно удобны для выявления моносемантичных интерпретируемых фичей как в фаундейшн, так и в заалайненных модельках
что они сделали как улучшения:
- заменили л1 регуляризацию на топ-к активацию, которая не зануляет только к самых больших активаций (при том этот выбор численно лучше, тк такое пенальти в принципе склоняло все активации к нулю).
- проверили кросс энтропией и кл дивергенцией релевантны ли моносемантичные получившиеся фичи для языкового моделирования (да, при том при минимизации мсе такой лосс оптимайзится лучше и мсе можно связать с кл дивергенцией через power law)
- добавили доп лосс на реконструкцию при помощи только k’ мертвых латентов
после этого количество мертвых латентов (которые так сильно мешали интерпретировать моносемантичные фичи) снизилось с двух третей от всех параметров до ~7%. да и смогли уследить power laws относительно количества латентов и уровня разреженности (параметра к).
в аппендиксе еще можно найти много важных деталей, по тому как именно и что они делали (ема, градиент клиппинг, изменение эпсилона в адаме, инициализация биаса как геом среднее трейн выборки, в принципе инит других частей модели и тд) + это все сопровождается более-менее хорошим кодом (который подстроен под гпт2) и залипательным визуализатором, который получили от автоэнкодера с 16млн латентами на 40б токенов
большой боттлнек пока составляет как раз уровень разреженности (гипер к), который подбирается вручную - как мы можем понять, если продолжать улучшение этого флоу, то работа в основном будет идти в автоматический подбор этого параметра (через роутинг или мб что похлеще)
👀LINK
LLMs Are In-Context Reinforcement Learners
продолжение банкета про ICRL
постановка почти такая же, как и в рл трансформерах на рл тасках, разве что все перекладывается на естественный язык - нету ground truth лейблов, а только свои действия модели и ревард за них + здесь авторы ввели довольно интересные рассуждения про составление большого контекста для ллмок
при заведении ин-контекст рл инференса из-под коробки не дает норм результатов, это связывают с неспособностью к эксплорейшну (который появляется у рл трансформеров из-за того, что такое свойство в основном присутствует в тренировочных данных - те самые learning histories of source algorithm)
нивелируют авторы это при помощи того, что называют Explorative ICRL - для каждого инпута генерят новый контекст из рандомных эпизодов, тем самым получая вариативность и меньшую чувствительность к своим выборам → открывается больше поле для эксплора (интуитивно). параметризуется одним гипером - вероятностью добавить эпизод в контекст (по аблациям лучше выбирать не близкие к 0 или 1 значения, хотя рейндж у них не очень в экспериментах)
но! так ниче не получится кв-кэшнуть, ибо каждый раз контекст новый ⇒ сделали Approximate ICRL, где в буффере хранятся не эпизоды, а контексты из эпизодов, которые можно и кв-кэшнуть, и обновить на данном шаге контексты. при том по экспам могут модели перформить как с 2 разными, так и с 128 контекстами (но во втором сценарии лучше, уже как память позволяет)
в качестве моделей взяли мелкие лламу и phi, ибо они выдерживают контекст в 128к токенов. евалились на датасетах от 6 классов до 150 с классификацией интентов, вопросов, NLU and so on. ревард же составлялся в somewhat +1/-1 виде - словесно хвалили при правильном лейбле или говорили о неправильности аутпута (еще кстати провели аблацию на то, как лучше составлять ревард - оставлять ли только позитивную или негативную часть или все вместе. здесь тоже изучали этот вопрос, только с немного другого угла)
какие же инсайты пришли?
- только от сигнала награды (исрл) сходится с результату исл и на зеро-шоте аутперформит (просто потому что у исрл сетапа есть структурированный контекст имхо)
- перформанс получается лучше при сетапе только с позитивными ревардами, если брать только негативные или оба варианта, то получается ужасно и чуть хуже соответственно (подобные аналогии можно провести и с людьми [1] [2], но мб это я уже притянул за уши)
- Approximate не хуже Explorative
скорее всего, такое же поведение свойственно и моделям бОльшего скейла (разве что с эксплорейшном у них может быть получше при наивной имплементации исрл), остается теперь посмотреть, как ллмки будут реагировать на более информативные ревард сигналы - не только бинарные, но и действительные числа, например, которые относятся уже к более сложным задачам нлп, beyond classification
👀LINK
подслушано здесь
продолжение банкета про ICRL
постановка почти такая же, как и в рл трансформерах на рл тасках, разве что все перекладывается на естественный язык - нету ground truth лейблов, а только свои действия модели и ревард за них + здесь авторы ввели довольно интересные рассуждения про составление большого контекста для ллмок
при заведении ин-контекст рл инференса из-под коробки не дает норм результатов, это связывают с неспособностью к эксплорейшну (который появляется у рл трансформеров из-за того, что такое свойство в основном присутствует в тренировочных данных - те самые learning histories of source algorithm)
нивелируют авторы это при помощи того, что называют Explorative ICRL - для каждого инпута генерят новый контекст из рандомных эпизодов, тем самым получая вариативность и меньшую чувствительность к своим выборам → открывается больше поле для эксплора (интуитивно). параметризуется одним гипером - вероятностью добавить эпизод в контекст (по аблациям лучше выбирать не близкие к 0 или 1 значения, хотя рейндж у них не очень в экспериментах)
но! так ниче не получится кв-кэшнуть, ибо каждый раз контекст новый ⇒ сделали Approximate ICRL, где в буффере хранятся не эпизоды, а контексты из эпизодов, которые можно и кв-кэшнуть, и обновить на данном шаге контексты. при том по экспам могут модели перформить как с 2 разными, так и с 128 контекстами (но во втором сценарии лучше, уже как память позволяет)
в качестве моделей взяли мелкие лламу и phi, ибо они выдерживают контекст в 128к токенов. евалились на датасетах от 6 классов до 150 с классификацией интентов, вопросов, NLU and so on. ревард же составлялся в somewhat +1/-1 виде - словесно хвалили при правильном лейбле или говорили о неправильности аутпута (еще кстати провели аблацию на то, как лучше составлять ревард - оставлять ли только позитивную или негативную часть или все вместе. здесь тоже изучали этот вопрос, только с немного другого угла)
какие же инсайты пришли?
- только от сигнала награды (исрл) сходится с результату исл и на зеро-шоте аутперформит (просто потому что у исрл сетапа есть структурированный контекст имхо)
- перформанс получается лучше при сетапе только с позитивными ревардами, если брать только негативные или оба варианта, то получается ужасно и чуть хуже соответственно (подобные аналогии можно провести и с людьми [1] [2], но мб это я уже притянул за уши)
- Approximate не хуже Explorative
скорее всего, такое же поведение свойственно и моделям бОльшего скейла (разве что с эксплорейшном у них может быть получше при наивной имплементации исрл), остается теперь посмотреть, как ллмки будут реагировать на более информативные ревард сигналы - не только бинарные, но и действительные числа, например, которые относятся уже к более сложным задачам нлп, beyond classification
👀LINK
подслушано здесь
❤1
CrossQ: Batch Normalization in Deep Reinforcement Learning for Greater Sample Efficiency and Simplicity
В рл существующий пайплайн обучения добыт тяжким путем многих экспериментов, которые зачастую никак теоретически не обоснованы, но просто заставляют работать то, что хочется.
Например - везде используют target сети, которые являются очень медленно обновляющейся копией основных сетей, чтобы стабилизировать objective criterion критика - а почему он нестабилен? Да пушт мы обновляем эту модельку через оператор Беллмана, чтобы критик был не всратым, а действительно показывал адекватную оценку действий, а оператор беллмана в себя включает самого критика - получаем нестационарную функцию, которую оптимизируем (непорядок, да и градиентный спуск в таком случае не работает, приходится делать стопградиент) => придумали таргет сети
Но таргет сетями не заканчивается - почти весь пайплайн состоит из таких деталей. Это доп проблемы, так как добавляя новые трюки, не факт, что они будут совмещены со старыми (получается огромный перебор вне зависимости от того насколько вообще изначальная идея стоящая)
Но вот авторы смогли добиться своего и убрать таргет сети, взамен вставив батч норм в модельки (а еще и слои в критике сделали побольше, не факт, что то же самое было проделано для бейзлайнов), и получили снижение вычислений, простую имплементацию и такой же уровень перформанса (только на хоппере херово как обычно). есть до чего докопаться в экспериментах, но как будто работает
по крайней мере на онлайн сетапе, из оффлайн рл же есть эвиденс, что леернорма там очень нужна
👀LINK
В рл существующий пайплайн обучения добыт тяжким путем многих экспериментов, которые зачастую никак теоретически не обоснованы, но просто заставляют работать то, что хочется.
Например - везде используют target сети, которые являются очень медленно обновляющейся копией основных сетей, чтобы стабилизировать objective criterion критика - а почему он нестабилен? Да пушт мы обновляем эту модельку через оператор Беллмана, чтобы критик был не всратым, а действительно показывал адекватную оценку действий, а оператор беллмана в себя включает самого критика - получаем нестационарную функцию, которую оптимизируем (непорядок, да и градиентный спуск в таком случае не работает, приходится делать стопградиент) => придумали таргет сети
Но таргет сетями не заканчивается - почти весь пайплайн состоит из таких деталей. Это доп проблемы, так как добавляя новые трюки, не факт, что они будут совмещены со старыми (получается огромный перебор вне зависимости от того насколько вообще изначальная идея стоящая)
Но вот авторы смогли добиться своего и убрать таргет сети, взамен вставив батч норм в модельки (а еще и слои в критике сделали побольше, не факт, что то же самое было проделано для бейзлайнов), и получили снижение вычислений, простую имплементацию и такой же уровень перформанса (только на хоппере херово как обычно). есть до чего докопаться в экспериментах, но как будто работает
по крайней мере на онлайн сетапе, из оффлайн рл же есть эвиденс, что леернорма там очень нужна
👀LINK
SimBa: Simplicity Bias for Scaling Up Parameters in Deep Reinforcement Learning
тлдр: сонибои смогли поиграть с общепринятыми архитектурами в рл и вместо млпшки смогли вставить то, что они назвали симбой
но модификации оказались не простые, а с интуицией: задачей было получить архитектуру, которую можно скейлить более-менее без попной боли, а в рл такого не получается, с точки зрения авторов - из-за отсутствия simplicity bias (который мы упоминали здесь и здесь)
здесь они мерили симплисити биас через преобразование фурье, и пытали такое соображение - чем больше высоких частот, тем функция “сложнее” в моделировании для фурье, а чем больше низких частот, тем функция “легче”
в итоге для того, чтобы сделать функцию “проще”🥴 добавили нормализацию по бегающим статистикам (по каждому дименшну инпута, не путать с батчнормом), резидуалы и пост леернорму. можно сказать, что мало novelty, ибо такое уже давно делали в других областях, но в рл все может быть сильно нестабильнее и непонятнее (имхо) в некоторых моментах по сравнению с другими ответвлениями дл, потому и такие модификации делать не так легко
а в итоге такое норм применяется (правда какой код для бейзлайнов прогоняли не оч понятно) и для офф-полиси, и для он-полиси алгосов + помогает в ансупервайзд сетапе (который хорошо получается у Seohong Park, в последний раз мы его упоминали здесь), так еще и пластичность сохраняется
👀LINK
тлдр: сонибои смогли поиграть с общепринятыми архитектурами в рл и вместо млпшки смогли вставить то, что они назвали симбой
но модификации оказались не простые, а с интуицией: задачей было получить архитектуру, которую можно скейлить более-менее без попной боли, а в рл такого не получается, с точки зрения авторов - из-за отсутствия simplicity bias (который мы упоминали здесь и здесь)
здесь они мерили симплисити биас через преобразование фурье, и пытали такое соображение - чем больше высоких частот, тем функция “сложнее” в моделировании для фурье, а чем больше низких частот, тем функция “легче”
в итоге для того, чтобы сделать функцию “проще”🥴 добавили нормализацию по бегающим статистикам (по каждому дименшну инпута, не путать с батчнормом), резидуалы и пост леернорму. можно сказать, что мало novelty, ибо такое уже давно делали в других областях, но в рл все может быть сильно нестабильнее и непонятнее (имхо) в некоторых моментах по сравнению с другими ответвлениями дл, потому и такие модификации делать не так легко
а в итоге такое норм применяется (правда какой код для бейзлайнов прогоняли не оч понятно) и для офф-полиси, и для он-полиси алгосов + помогает в ансупервайзд сетапе (который хорошо получается у Seohong Park, в последний раз мы его упоминали здесь), так еще и пластичность сохраняется
👀LINK