rizzearch
1.01K subscribers
988 photos
11 videos
320 links
Кайфули на каждый день

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download 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

подслушано здесь
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
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

подслушано здесь
1
CrossQ: Batch Normalization in Deep Reinforcement Learning for Greater Sample Efficiency and Simplicity

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

Например - везде используют target сети, которые являются очень медленно обновляющейся копией основных сетей, чтобы стабилизировать objective criterion критика - а почему он нестабилен? Да пушт мы обновляем эту модельку через оператор Беллмана, чтобы критик был не всратым, а действительно показывал адекватную оценку действий, а оператор беллмана в себя включает самого критика - получаем нестационарную функцию, которую оптимизируем (непорядок, да и градиентный спуск в таком случае не работает, приходится делать стопградиент) => придумали таргет сети

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

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

по крайней мере на онлайн сетапе, из оффлайн рл же есть эвиденс, что леернорма там очень нужна

👀LINK
SimBa: Simplicity Bias for Scaling Up Parameters in Deep Reinforcement Learning

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

но модификации оказались не простые, а с интуицией: задачей было получить архитектуру, которую можно скейлить более-менее без попной боли, а в рл такого не получается, с точки зрения авторов - из-за отсутствия simplicity bias (который мы упоминали здесь и здесь)

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

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

а в итоге такое норм применяется (правда какой код для бейзлайнов прогоняли не оч понятно) и для офф-полиси, и для он-полиси алгосов + помогает в ансупервайзд сетапе (который хорошо получается у Seohong Park, в последний раз мы его упоминали здесь), так еще и пластичность сохраняется

👀LINK
SchNet – A Deep Learning Architecture for Molecules and Materials

rizzearch throwback

👌 Сегодня база и статья для олдов. Одна из первых GNN для молекул и материалов. Давайте разберемся как она работает

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

Для того, чтобы сгенерировать фильтр, используются попарные расстояния между атомами и радиально-базисную функцию (RBF). Здесь есть два важных инсайта
1️⃣ Попарные расстояние гарантируют инвариантность относительно поворотов. Это очень важно в задачах физики и химии, где скалярные свойства молекулы сохраняются вне зависимости от ее ориентации
2️⃣ RBF расширение позволяет изучить максимально разнообразные связи между атомами. Какой-то фильтр будет использовать атомы близкие к друг другу, а другой далекие - это диверсифицирует признаки. Это лучше всего понять, если взглянуть на выученные фильтры

Если же мы хотим работать с периодическими системами (кристаллами 💎💎💎), то нам нужно учитывать periodic boundary conditions. Делается это, через cutoff радиус - базовый метод как построить граф кристаллической решетки. Однако у этого метода есть огромные проблемы, про которые мы расскажем в будущем ⭕️

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

👁 Как вы поняли, в @rizzearch теперь будут статьи про ML + физика/химия, поэтому зовите своих друзей - будет интересно

👀 LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4👍2
Differential Transformer

another attempt to улучшить трансформер более-менее простым способом

итак, ребятки из майкрософт и tsinghua решили тоже призадуматься насчет того, что аттеншн может “аттендиться” на нерелевантные токены по его построению (о чем мы уже успели упомянуть здесь и здесь) и убрать этот “шум”

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

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

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

по скейлу - модельки от 830м до 13б, что относительно немного. очень вероятно, что подогнанные числа (типа тех дробных в lambda_init) не будут подходить под больший скейл (а может и вообще никакие не будут подходить, если проблема лишнего аттенда токенам присутствует в меньшей степени в бОльших моделях)

👀LINK
🔥2