Weight Clipping for Deep Continual and Reinforcement Learning
помните вассерштейн ган? классная статья, где есть теория по оптимал транспорт + первый практический метод по стабилизации весов (к тому же сами авторы ни раз акцентировали внимание, что их клиппинг для сохранения липшицевости - очень плохая идея, но тем не менее это работает)
проблема резкого взрыва амплитуд весов так то актуальна не только в генеративках, а в принципе везде. но авторы решили рассмотреть этот сценарий в задаче континуал лернинга (и рл), где такой взрыв сопровождается из-за периодической смены основной таски или в принципе онлайн таргет распределения. рабочие решения в себя включают смену оптимизатора, ресет весов доп лосс или прочие доп штуки, которые добавляют сложности при настраивании рабочего пайплайна. кстати, мы писали и о другом интересном методе нивелирования проблемы катастрофического забывания (и тут это частный случай ресета весов по сути), но он не так прост, как данная идея
но ресетать тоже не оч хорошо, потому что мы так же ресетаем и важные параметры, которые отвечают за способность к адаптации к новым задачам или еще чему-то, лучше бы отсортировать каким-либо образом веса. и это хорошая рабочая идея, разве что очень долгая. авторы же предлагают клиппать все веса в более-менее трейдофф стиле: давайте клиппать не просто с заранее определенным гипером, а опираться так же и на значение веса, с которым тот был инициализирован
так мы получаем, что трешхолд неодинаков для всех весов, но при этом нам не надо тратить много времени на отбор по важности каждого параметра + эта вещь легко встраивается в любой существующий (и вероятно несуществующий) оптимизатор, что позволяет не перекапывать весь пайплайн с ног до головы
разве что непонятно, как удобнее всего находить этот единственный гипер (кроме как общих методов) + насколько чувствительность к нему повышается при увеличении скейла моделей. ведь интуитивно может казаться (особенно в не оч стабильных и липшицевых моделях), что в бОльших моделях для значительного изменения лосса нужно мЕньшее изменение в значениях весов ⇒ хоть гипер и один, подолбиться с ним все равно скорее всего придется на реальной задаче
ну и авторы в принципе сами это понимают и в качестве future work предлагают адаптивный подбор этого коэффициента (а вот как blyat его подобрать уже другой вопрос 🥹)
есть код, очень классный и понятный по мотивам клинрл да и просто чистый код
👀LINK
помните вассерштейн ган? классная статья, где есть теория по оптимал транспорт + первый практический метод по стабилизации весов (к тому же сами авторы ни раз акцентировали внимание, что их клиппинг для сохранения липшицевости - очень плохая идея, но тем не менее это работает)
проблема резкого взрыва амплитуд весов так то актуальна не только в генеративках, а в принципе везде. но авторы решили рассмотреть этот сценарий в задаче континуал лернинга (и рл), где такой взрыв сопровождается из-за периодической смены основной таски или в принципе онлайн таргет распределения. рабочие решения в себя включают смену оптимизатора, ресет весов доп лосс или прочие доп штуки, которые добавляют сложности при настраивании рабочего пайплайна. кстати, мы писали и о другом интересном методе нивелирования проблемы катастрофического забывания (и тут это частный случай ресета весов по сути), но он не так прост, как данная идея
но ресетать тоже не оч хорошо, потому что мы так же ресетаем и важные параметры, которые отвечают за способность к адаптации к новым задачам или еще чему-то, лучше бы отсортировать каким-либо образом веса. и это хорошая рабочая идея, разве что очень долгая. авторы же предлагают клиппать все веса в более-менее трейдофф стиле: давайте клиппать не просто с заранее определенным гипером, а опираться так же и на значение веса, с которым тот был инициализирован
так мы получаем, что трешхолд неодинаков для всех весов, но при этом нам не надо тратить много времени на отбор по важности каждого параметра + эта вещь легко встраивается в любой существующий (и вероятно несуществующий) оптимизатор, что позволяет не перекапывать весь пайплайн с ног до головы
разве что непонятно, как удобнее всего находить этот единственный гипер (кроме как общих методов) + насколько чувствительность к нему повышается при увеличении скейла моделей. ведь интуитивно может казаться (особенно в не оч стабильных и липшицевых моделях), что в бОльших моделях для значительного изменения лосса нужно мЕньшее изменение в значениях весов ⇒ хоть гипер и один, подолбиться с ним все равно скорее всего придется на реальной задаче
ну и авторы в принципе сами это понимают и в качестве future work предлагают адаптивный подбор этого коэффициента (а вот как blyat его подобрать уже другой вопрос 🥹)
есть код, очень классный и понятный по мотивам клинрл да и просто чистый код
👀LINK
ReFT: Representation Finetuning for Language Models
что-то очень интересное выкатил Dan Jurafsky, кто написал довольно классный учебник по нлп. в папире, кстати, чувствуется его вайб
что же заметили авторы в популярном PEFT’е? добавляешь так или иначе новые веса, которые тюнятся, да. с точки зрения инпута получаем, что эти веса действуют на все таймстепы (как и предыдущие) и вкладывают способности генерализации к новой таске в новые веса
эта парадигма пересматривается - давайте добавим побольше интерпретируемости будем пробовать менять выбранную репрезентацию внутри модели. а как? при помощи лоу ранк обучаемой модификации хиддена, которая выводится через distributed interchange intervention. так проверяют, заэнкоден ли какой-либо концепт внутри эмбеддингов или нет (тесно связано с каузальщиной, yes please).
в плане же добавления обучаемых весов мы тут идем в обратную сторону - во время обучения нужные концепты сами энкодятся в репрезентации. а training objective не меняется от той, которая изначально была у основной замороженной модели
по результатам, вроде как, нехило так обгоняет пефт на commonsense reasoning, instruction- following и natural language understanding. правда встает еще вопрос, как лучше перебирать гиперы для рефта и будет ли это эффективнее пефта (с чем уж точно встает вопрос, как именно выбрать таймстепы и конкретный эмбеддинг, на который будет накладываться интервенция)
👀LINK
что-то очень интересное выкатил Dan Jurafsky, кто написал довольно классный учебник по нлп. в папире, кстати, чувствуется его вайб
что же заметили авторы в популярном PEFT’е? добавляешь так или иначе новые веса, которые тюнятся, да. с точки зрения инпута получаем, что эти веса действуют на все таймстепы (как и предыдущие) и вкладывают способности генерализации к новой таске в новые веса
эта парадигма пересматривается - давайте добавим побольше интерпретируемости будем пробовать менять выбранную репрезентацию внутри модели. а как? при помощи лоу ранк обучаемой модификации хиддена, которая выводится через distributed interchange intervention. так проверяют, заэнкоден ли какой-либо концепт внутри эмбеддингов или нет (тесно связано с каузальщиной, yes please).
в плане же добавления обучаемых весов мы тут идем в обратную сторону - во время обучения нужные концепты сами энкодятся в репрезентации. а training objective не меняется от той, которая изначально была у основной замороженной модели
по результатам, вроде как, нехило так обгоняет пефт на commonsense reasoning, instruction- following и natural language understanding. правда встает еще вопрос, как лучше перебирать гиперы для рефта и будет ли это эффективнее пефта (с чем уж точно встает вопрос, как именно выбрать таймстепы и конкретный эмбеддинг, на который будет накладываться интервенция)
👀LINK
❤5
Language Model Can Listen While Speaking
окей, есть голосовые ассистенты, которые могут в реальном времени перебивать человечка - например от опенаи, а есть ли что-то такое в опенсурсе? теперь да, вот эта папира как раз
что смогли сделать авторы? модель может слушать в реал тайме и отдавать инициативу в разговоре юзеру даже при его зашумленном сигнале.
реализовали при помощи ССЛ энкодеров и только каузальных трансформеров, отказываясь от некаузальной части. при том энкодер один и тот же, что для таргет речи, что для аудио юзера, предварительно эмбеддинги таргет спича квантизованы для получения дискретных токенов (видимо иначе у них инференс был нестабилен хз), но для юзерского потока такой операции нет, несмотря на то, что он как раз он и подвергается зашумлению
качество более-менее норм, не опенаи конечно, но это по сути первопроходцы в такой обалсти
жаль что кода нет, демка
👀LINK
окей, есть голосовые ассистенты, которые могут в реальном времени перебивать человечка - например от опенаи, а есть ли что-то такое в опенсурсе? теперь да, вот эта папира как раз
что смогли сделать авторы? модель может слушать в реал тайме и отдавать инициативу в разговоре юзеру даже при его зашумленном сигнале.
реализовали при помощи ССЛ энкодеров и только каузальных трансформеров, отказываясь от некаузальной части. при том энкодер один и тот же, что для таргет речи, что для аудио юзера, предварительно эмбеддинги таргет спича квантизованы для получения дискретных токенов (видимо иначе у них инференс был нестабилен хз), но для юзерского потока такой операции нет, несмотря на то, что он как раз он и подвергается зашумлению
качество более-менее норм, не опенаи конечно, но это по сути первопроходцы в такой обалсти
жаль что кода нет, демка
👀LINK
👍5❤1 1
Transferring Knowledge from Large Foundation Models to Small Downstream Models
авторы задались довольно хорошим вопросом и смогли ответить на него технической реализацией: почему во время knowledge distillation мы заставляем студента выучивать вообще все, что делает тичер, а не только полезное?
и в общем идея такая - давайте вычленять только те фичи, что полезны для downstream таски, при этом не ругать модель за то, что она забыла некоторые фичи большой модели, но только за “лишние” фичи
делают это все через формализацию mutual information + variational encoder + полируют это все через кернел дистанс
из интересного еще стоит отметить, что легко можно дистиллить знания из нескольких моделей одновременно, просто конкатив их фичи - формулы остаются те же + авторы докладывают о том, что это полезнее для св, чем для нлп. спекулируют, что нлп фаундейшн модели в бОльшей степени похожи между собой, чем св модели. в принципе довольно логично и по архитектурам, и по токенайзерам, и по датасетам, но недостаточно (та может это и не так важно, но просто интересно). но, например, здесь про такой феномен ничего не говорят
имхо стоит попробовать в своих задачах
👀LINK
авторы задались довольно хорошим вопросом и смогли ответить на него технической реализацией: почему во время knowledge distillation мы заставляем студента выучивать вообще все, что делает тичер, а не только полезное?
и в общем идея такая - давайте вычленять только те фичи, что полезны для downstream таски, при этом не ругать модель за то, что она забыла некоторые фичи большой модели, но только за “лишние” фичи
делают это все через формализацию mutual information + variational encoder + полируют это все через кернел дистанс
из интересного еще стоит отметить, что легко можно дистиллить знания из нескольких моделей одновременно, просто конкатив их фичи - формулы остаются те же + авторы докладывают о том, что это полезнее для св, чем для нлп. спекулируют, что нлп фаундейшн модели в бОльшей степени похожи между собой, чем св модели. в принципе довольно логично и по архитектурам, и по токенайзерам, и по датасетам, но недостаточно (та может это и не так важно, но просто интересно). но, например, здесь про такой феномен ничего не говорят
имхо стоит попробовать в своих задачах
👀LINK
👍8 4🔥2
A Super-human Vision-based Reinforcement Learning Agent for Autonomous Racing in Gran Turismo
как насчет рл алгоса, который может обгонять 130к юзеров на трех треках в гран туризмо? при том в качестве инпутов у него только локальные данные - показатели с тачки + ргб картинка
но все чуть хитрее - реализован Quantile Regression SAC, в котором критик имеет доступ к глобальным фичам (которые связаны с оверолл траекторией по конкретному треку), что помогает пожестче тренить актора
очень четко описано создание реварда с 5 фичами и 4 коэффициентами (даже представить страшно сколько времени у них ушло на их подбор)
только чекните какие тачки, это просто кайфы. вот он современный ресерч в сони - заставь нейронки обыгрывать всех в гран туризмо и получай за это зп
еще в аппендиксе интересно прочитать, что они как будто использовали 20 пс4 для сбора данных. это еще не учитывая, сколько времени и ресурсов ушло на сбор и обучение. в общем, статейка получилась недешевой
👀LINK
как насчет рл алгоса, который может обгонять 130к юзеров на трех треках в гран туризмо? при том в качестве инпутов у него только локальные данные - показатели с тачки + ргб картинка
но все чуть хитрее - реализован Quantile Regression SAC, в котором критик имеет доступ к глобальным фичам (которые связаны с оверолл траекторией по конкретному треку), что помогает пожестче тренить актора
очень четко описано создание реварда с 5 фичами и 4 коэффициентами (даже представить страшно сколько времени у них ушло на их подбор)
только чекните какие тачки, это просто кайфы. вот он современный ресерч в сони - заставь нейронки обыгрывать всех в гран туризмо и получай за это зп
еще в аппендиксе интересно прочитать, что они как будто использовали 20 пс4 для сбора данных. это еще не учитывая, сколько времени и ресурсов ушло на сбор и обучение. в общем, статейка получилась недешевой
👀LINK
rizzearch
A Super-human Vision-based Reinforcement Learning Agent for Autonomous Racing in Gran Turismo как насчет рл алгоса, который может обгонять 130к юзеров на трех треках в гран туризмо? при том в качестве инпутов у него только локальные данные - показатели с…
by the way, эту работу уже упоминали здесь
Offline RL for Natural Language Generation with Implicit Language Q Learning
статья по алайменту от рлщиков, где даже не фигурирует слово “алаймент”
вообще в начале они дают интересное обоснование того, почему рл очень хорошо можно приложить в нлп к диалоговой задаче - поскольку это последовательность интеракций, где нужно прийти к оптимальному решению за всю историю, а не только за следующий шаг
здесь авторы так же приходят в выводу, что только сфт не помогает получить желаемые результаты от модели на таске → они применяют оффлайн рл и все становится оки (почти)
поскольку соавтор этой статьи Илья Костриков, который сделал IQL, сюда же сразу попробовали применить и его. так же они сравнили и с другими бейзлайнами, как CQL, DT + %BC (behavior cloning, по сути сфт, а процент означает, что данные еще и предварительно фильтруют по реварду)
еще в процессе работы появилась загвоздка - метод напрямую не заводится. если обучать основную сеть (которая уже прошла этап сфт), то все было очень нестабильно ⇒ не знаю, можно ли назвать это костылем, но авторы решили это тем, что не обучают policy сетку, а оставляют только Q & V головы для обучения, чьи аутпуты затем используются для перерасчета логитов ллмки (как и подразумевает iql)
к тому же в этом перерасчете сохраняется гипер температуры (который не совсем тот, что в стандартном сетапе, но преподносит ту же логику), с которым можно играть вариативностью ответов + появилась устойчивость к “стохастичности реварда” (неоднородности человеческих преференций), как интуитивно и эмпирически показывают авторы. но я скептичен насчет последнего пункта, ибо само составление ревардов под датасеты не столь чувствительно - скорее просто сигнал награды, которые авторы сами и придумали, тяжело перекрыть разностью в “мнения разных людей”
и по времени обучения это все в 2 раза медленнее, чем простой файнтюн, а как это соотносится с более-менее привычными методами алаймента неизвестно - скорее всего не очень так как уже на 60м параметрах метод работает не так, как полагается по оффлайн рл методологии. но who knows, можно спекулировать, что надо просто встроить эту вещь более грамотно
👀LINK
статья по алайменту от рлщиков, где даже не фигурирует слово “алаймент”
вообще в начале они дают интересное обоснование того, почему рл очень хорошо можно приложить в нлп к диалоговой задаче - поскольку это последовательность интеракций, где нужно прийти к оптимальному решению за всю историю, а не только за следующий шаг
здесь авторы так же приходят в выводу, что только сфт не помогает получить желаемые результаты от модели на таске → они применяют оффлайн рл и все становится оки (почти)
поскольку соавтор этой статьи Илья Костриков, который сделал IQL, сюда же сразу попробовали применить и его. так же они сравнили и с другими бейзлайнами, как CQL, DT + %BC (behavior cloning, по сути сфт, а процент означает, что данные еще и предварительно фильтруют по реварду)
еще в процессе работы появилась загвоздка - метод напрямую не заводится. если обучать основную сеть (которая уже прошла этап сфт), то все было очень нестабильно ⇒ не знаю, можно ли назвать это костылем, но авторы решили это тем, что не обучают policy сетку, а оставляют только Q & V головы для обучения, чьи аутпуты затем используются для перерасчета логитов ллмки (как и подразумевает iql)
к тому же в этом перерасчете сохраняется гипер температуры (который не совсем тот, что в стандартном сетапе, но преподносит ту же логику), с которым можно играть вариативностью ответов + появилась устойчивость к “стохастичности реварда” (неоднородности человеческих преференций), как интуитивно и эмпирически показывают авторы. но я скептичен насчет последнего пункта, ибо само составление ревардов под датасеты не столь чувствительно - скорее просто сигнал награды, которые авторы сами и придумали, тяжело перекрыть разностью в “мнения разных людей”
и по времени обучения это все в 2 раза медленнее, чем простой файнтюн, а как это соотносится с более-менее привычными методами алаймента неизвестно - скорее всего не очень так как уже на 60м параметрах метод работает не так, как полагается по оффлайн рл методологии. но who knows, можно спекулировать, что надо просто встроить эту вещь более грамотно
👀LINK