Towards General-Purpose In-Context Learning Agents
yet another paper on область, которую мало кто понимает, но гугл ?почему-то? делает патенты на ее счет. а именно статья про In-context Meta-Reinforcement Learning от пхд студента шмидхубера (и самого шмидхубера)
so, какие идеи новые они привнесли для расширения картины?
- по-другому собирают транзишны для подачи в трансформер
- обучают на оч разных тасках, я бы сказал гетерогенных (от картпола до муджоко)
- повышают вариативность и обобщающие способности путем рандомных проекций (которые для удобства еще и приведены к одному размеру по всем задачам), что уже делалось здесь
- + в задаче моделирования последовательности действий делают интервал между таймстепами для контекста, непосредственно та подпоследовательность, которая подается в трансформер, и таргет действиями. то есть авторы предсказывают не следующее действие относительно контекста (как классически делают next-token prediction в языковом моделировании) а с небольшим разрывом вправо, который тем не менее отвечает за более быструю сходимость трансформера как агента (главный контрибьюшн статьи имхо)
результаты норм, усреднены аж по 32 сидам по классическим средам. что ок
плохо только что кода нет и разъяснений по поводу того, как именно применяются рандомные линейные проекции на техническом уровне и как от них раскодировать аутпуты модели (которые приведены к одной размерности для удобства, но для разных тасок природа действий может быть совершенно разной)
👀LINK
yet another paper on область, которую мало кто понимает, но гугл ?почему-то? делает патенты на ее счет. а именно статья про In-context Meta-Reinforcement Learning от пхд студента шмидхубера (и самого шмидхубера)
so, какие идеи новые они привнесли для расширения картины?
- по-другому собирают транзишны для подачи в трансформер
- обучают на оч разных тасках, я бы сказал гетерогенных (от картпола до муджоко)
- повышают вариативность и обобщающие способности путем рандомных проекций (которые для удобства еще и приведены к одному размеру по всем задачам), что уже делалось здесь
- + в задаче моделирования последовательности действий делают интервал между таймстепами для контекста, непосредственно та подпоследовательность, которая подается в трансформер, и таргет действиями. то есть авторы предсказывают не следующее действие относительно контекста (как классически делают next-token prediction в языковом моделировании) а с небольшим разрывом вправо, который тем не менее отвечает за более быструю сходимость трансформера как агента (главный контрибьюшн статьи имхо)
результаты норм, усреднены аж по 32 сидам по классическим средам. что ок
плохо только что кода нет и разъяснений по поводу того, как именно применяются рандомные линейные проекции на техническом уровне и как от них раскодировать аутпуты модели (которые приведены к одной размерности для удобства, но для разных тасок природа действий может быть совершенно разной)
👀LINK
👍2 1 1
PoSE: Efficient Context Window Extension of LLMs via Positional Skip-wise Training
йеп, снова удлиняем контекст до неприлично огромных размеров, коих при обучении не подразумевалось
итак, авторы поднимают проблему файнтюна на более длинную последовательность ллмок - чревато оод моментами да и сложностью по памяти и остальной стабилизации во время обучения
а какие есть альтернативы? попробовать position interpolation (который тоже может быть нестабилен, о чем мы упоминали здесь) либо же брать рандомные позиции из удлиненной последовательности и составлять из этого более короткую (что чревато сильной разницей между соседними позициями и потому потерей непрерывности языка)
предлагают золотую середину - разбиваем длинную последовательность на чанки, внутри которых подпоследовательности не будут разрезаться (получаем непрерывные подпоследовательности), а вот сами эти чанки друг от друга находиться с каким-то пробелом (skipping bias), что позволит покрыть длинную последовательость от начала до конца (неполностью, но хоть как-то). для каждого трейн семпла можно формировать разные чанки с разными пробелами, что повышает покрытие
поскольку фактическая длина последовательности, которая подается в трансформер, не меняется, то и потребление по памяти остается неизменным ⇒ можно увеличивать длину этим методом настолько, насколько идея способна будет работать - при более-менее сносном покрытии всех позиций удлиненного контекста и прочем, о чем в аппендиксе прикольно приведен расчет вероятности покрытия позиций при увеличении чанков + сравнение с полностью рандомным семплом позиций (по эмпирике выглядит так, что сильно отстает)
очень сомнителен только момент в том, что авторы предполагают раздельное семлпирование токенов позиционных и текстовых - они не сцеплены, и на практике будут часто появляться позиции, текстовых токенов которых нет, и наоборот. имхо это ломает непрерывность подпоследовательностей внутри чанков, а разница в перформансе несущественна, in my humble opinion, потому что трансформер может выучивать позиции и без позиционной кодировки
еще не понял по прочтению, как авторы подразумевают совершение инференса + в прочтении кода тоже неочевидно как и что там устроено. сильный косяк - неужели так же скользящим окном без каких-либо модификаций или что-то добавлено? но что? или ничего? вообще ни слова об этом
👀LINK
P.S.
позабавила фраза в абстракте
мол, так то наш метод и на бесконечный контекст распространяется (трансформер → рнн/ссм), просто это проблемы другой концепции - памяти в хардвейре, границы нашей идеи неисповедимы и лишь ограничены современными технологиями
йеп, снова удлиняем контекст до неприлично огромных размеров, коих при обучении не подразумевалось
итак, авторы поднимают проблему файнтюна на более длинную последовательность ллмок - чревато оод моментами да и сложностью по памяти и остальной стабилизации во время обучения
а какие есть альтернативы? попробовать position interpolation (который тоже может быть нестабилен, о чем мы упоминали здесь) либо же брать рандомные позиции из удлиненной последовательности и составлять из этого более короткую (что чревато сильной разницей между соседними позициями и потому потерей непрерывности языка)
предлагают золотую середину - разбиваем длинную последовательность на чанки, внутри которых подпоследовательности не будут разрезаться (получаем непрерывные подпоследовательности), а вот сами эти чанки друг от друга находиться с каким-то пробелом (skipping bias), что позволит покрыть длинную последовательость от начала до конца (неполностью, но хоть как-то). для каждого трейн семпла можно формировать разные чанки с разными пробелами, что повышает покрытие
поскольку фактическая длина последовательности, которая подается в трансформер, не меняется, то и потребление по памяти остается неизменным ⇒ можно увеличивать длину этим методом настолько, насколько идея способна будет работать - при более-менее сносном покрытии всех позиций удлиненного контекста и прочем, о чем в аппендиксе прикольно приведен расчет вероятности покрытия позиций при увеличении чанков + сравнение с полностью рандомным семплом позиций (по эмпирике выглядит так, что сильно отстает)
очень сомнителен только момент в том, что авторы предполагают раздельное семлпирование токенов позиционных и текстовых - они не сцеплены, и на практике будут часто появляться позиции, текстовых токенов которых нет, и наоборот. имхо это ломает непрерывность подпоследовательностей внутри чанков, а разница в перформансе несущественна, in my humble opinion, потому что трансформер может выучивать позиции и без позиционной кодировки
еще не понял по прочтению, как авторы подразумевают совершение инференса + в прочтении кода тоже неочевидно как и что там устроено. сильный косяк - неужели так же скользящим окном без каких-либо модификаций или что-то добавлено? но что? или ничего? вообще ни слова об этом
👀LINK
позабавила фраза в абстракте
Notably, our method can potentially support infinite length, limited only by memory usage in inference.
мол, так то наш метод и на бесконечный контекст распространяется (трансформер → рнн/ссм), просто это проблемы другой концепции - памяти в хардвейре, границы нашей идеи неисповедимы и лишь ограничены современными технологиями
Diffusion Forcing: Next-token Prediction Meets Full-Sequence Diffusion
лютая статья по диффузии в теме генерации видео, планировании, созданию рл политики и роботике - и это все про один метод! + в аппендиксе еще есть результаты time series forecasting
so, авторы объединили идею каузального моделирования следующего токена с диффузией и гайденсом → получили diffusion forcing
но все куда глубже, чем кажется
- показывают, что зашумление можно интерпретировать как обобщение маскирования - при накладывании маски мы либо делаем токен видимым, либо полностью невидимым для модели, а потокенно-зависимое зашумление добавляет степень информативности, которая сохраняется при изначальном токене
- для придания каузальности зашумляют токены во времени в разной степени (при том понятие токена зависит от задачи, чтоб подходило для видео генерации и планирования/взаимодействия в 2д лабиринтах рля)
- может адаптироваться к длинному контекст за счет легкого зашумления partial masking и не расходиться в плане генерации (в отличие от методов full sequence diffusion, где длина последовательности заранее фиксирована из-за отсутствия next-token prediction парадигмы)
- и дополнительно за счет guidance способен составлять желаемые траектории, в случае рл это получаем goal-based алгоритм, ревард для которого можно получать ансупервайзд методом
это из основного. а дополнительно эти фичи привносят разность в uncertainty между разными таймстепами - более близкое будущее намного определенее, нежели далекое, что в рл задачах и планировании синонимично в принципе определениям оптимальных value functions по Беллману
по результатам на лабиринтах вообще разносит оффлайн рл алгоритмы, теперь еще бы подумать как это все ускорять, потому что я успел устать скроллить код метода одного шага в среде, а как это на деле медленно происходит боюсь представить. только чекните эту анимацию https://boyuan.space/diffusion-forcing/static/videos/planning/planning.mp4
👀LINK
как выяснить, что авторы - рлщики?демонстрируют качество генерации видео на примерах майнкрафта и симуляторов дипмаинд лаборатории
лютая статья по диффузии в теме генерации видео, планировании, созданию рл политики и роботике - и это все про один метод! + в аппендиксе еще есть результаты time series forecasting
so, авторы объединили идею каузального моделирования следующего токена с диффузией и гайденсом → получили diffusion forcing
но все куда глубже, чем кажется
- показывают, что зашумление можно интерпретировать как обобщение маскирования - при накладывании маски мы либо делаем токен видимым, либо полностью невидимым для модели, а потокенно-зависимое зашумление добавляет степень информативности, которая сохраняется при изначальном токене
- для придания каузальности зашумляют токены во времени в разной степени (при том понятие токена зависит от задачи, чтоб подходило для видео генерации и планирования/взаимодействия в 2д лабиринтах рля)
- может адаптироваться к длинному контекст за счет легкого зашумления partial masking и не расходиться в плане генерации (в отличие от методов full sequence diffusion, где длина последовательности заранее фиксирована из-за отсутствия next-token prediction парадигмы)
- и дополнительно за счет guidance способен составлять желаемые траектории, в случае рл это получаем goal-based алгоритм, ревард для которого можно получать ансупервайзд методом
это из основного. а дополнительно эти фичи привносят разность в uncertainty между разными таймстепами - более близкое будущее намного определенее, нежели далекое, что в рл задачах и планировании синонимично в принципе определениям оптимальных value functions по Беллману
по результатам на лабиринтах вообще разносит оффлайн рл алгоритмы, теперь еще бы подумать как это все ускорять, потому что я успел устать скроллить код метода одного шага в среде, а как это на деле медленно происходит боюсь представить. только чекните эту анимацию https://boyuan.space/diffusion-forcing/static/videos/planning/planning.mp4
👀LINK
как выяснить, что авторы - рлщики?
In-Context Reinforcement Learning for Variable Action Spaces
мы уже ни раз писали про восходящую область ин-контекст рля, и эта папира не является исключением в расширении такой крутоты
изначально авторы поднимают тот момент, что вроде область называется ин-контекст, а многое тут связано c in-weights learning понятием. например, если вы переставите на тесте порядок действий, то все поломается (в лучших традициях классической задачи классификации и того принципа, что за каждым классом сохранено определенное порядковое число)
но этим не заканчиваются проблемы. когда бы ни были эти алгоритмы произведены в реальные сценарии, они (почти) смогут адаптироваться к новым задачам, но с тем же сетом действий. что по идее не совсем уж и реалистично. и авторы решают эту проблему, показывая сценарии, что во время евала некоторые действия могут быть скрыты, перемешаны (при том в разных пропорциях относительно того, что было на трейне)
а решается это довольно практично, без придумывания своей теории - за каждым действием фиксируется свой рандомный вектор. и эти векторы подаются на каждом степе в качестве контекста для того, чтобы трансформер мог поставить соответствия между векторами и (интуитивно) какую роль они выполняют в среде. и это работает! (при том лучше всего показывает свой результат ортогональная инициализация векторов, что не далеко от интуиции упрощенной разделимости векторов и действиями, которые за ними скрываются)
правда пока еще не решен питфолл в том, чтобы количество действий по ходу тестового времени увеличивалось, должно быть заранее известно количество максимальное + действия должны быть одной природы (либо дискретными либо непрерывными). но и без этого эта огромная работа, которая в прямом смысле открывает пласт на новую подобласть современного рля (имхо)
👀LINK
by the way, нас читает первый автор этой работы, что очень приятно!
UPD: и не только первый
мы уже ни раз писали про восходящую область ин-контекст рля, и эта папира не является исключением в расширении такой крутоты
изначально авторы поднимают тот момент, что вроде область называется ин-контекст, а многое тут связано c in-weights learning понятием. например, если вы переставите на тесте порядок действий, то все поломается (в лучших традициях классической задачи классификации и того принципа, что за каждым классом сохранено определенное порядковое число)
но этим не заканчиваются проблемы. когда бы ни были эти алгоритмы произведены в реальные сценарии, они (почти) смогут адаптироваться к новым задачам, но с тем же сетом действий. что по идее не совсем уж и реалистично. и авторы решают эту проблему, показывая сценарии, что во время евала некоторые действия могут быть скрыты, перемешаны (при том в разных пропорциях относительно того, что было на трейне)
а решается это довольно практично, без придумывания своей теории - за каждым действием фиксируется свой рандомный вектор. и эти векторы подаются на каждом степе в качестве контекста для того, чтобы трансформер мог поставить соответствия между векторами и (интуитивно) какую роль они выполняют в среде. и это работает! (при том лучше всего показывает свой результат ортогональная инициализация векторов, что не далеко от интуиции упрощенной разделимости векторов и действиями, которые за ними скрываются)
правда пока еще не решен питфолл в том, чтобы количество действий по ходу тестового времени увеличивалось, должно быть заранее известно количество максимальное + действия должны быть одной природы (либо дискретными либо непрерывными). но и без этого эта огромная работа, которая в прямом смысле открывает пласт на новую подобласть современного рля (имхо)
👀LINK
UPD: и не только первый
❤5 4 4
Artificial Generational Intelligence: Cultural Accumulation in Reinforcement Learning
another extending for in-context reinfrocement learning
только теперь авторы питают интуицию из учения о социальном обучении живых существ (людей), а именно о понятии cultural accumulation - что же это? если взять цитату из статьи с пабмеда, то получим
проще говоря, есть группа алгоритмов, которые следующему “поколению” переносят свой максимально достигнутый результат, чтобы в общем по задаче шло улучшение.
авторы сделали такую вещь в ин-контекст рл через мульти-агентное обучение - следующее поколение агентов имеет доступ статическому к поведению предыдущих агентов (которые живут кстати один эпизод для того, чтобы изолировать условие обучения ин-контекст), а основная модель (S5) еще и видит действия суб-оптимального оракула ⇒ сохраняется мульти-агентность, контекст имеет степень случайности и обучаемости + тренировочные семплы оверолл не сбиваются с достижения цели за счет доступа к оракулу
так же есть in-weights learning сетап, где агенты живут не эпизод, а все время обучения
сходимость к оптимальной награде ин-контекст мульти-агента происходит гораздо быстрее классической парадигмы, только дело в том, что они эксперименты проводили на своих же средах. просто до них пока не было развития в этой ветви - область пока настолько нова (как и рл), что только недавно выложили первый адекватный большой датасет для единого знаменателя следующих работ (подробнее про него можно здесь прочитать)
ждем развития событий
👀LINK
another extending for in-context reinfrocement learning
только теперь авторы питают интуицию из учения о социальном обучении живых существ (людей), а именно о понятии cultural accumulation - что же это? если взять цитату из статьи с пабмеда, то получим
Cultural accumulation occurs if the amount of cultural knowledge attained in a population in a given generation increases with the amount of cultural knowledge available in the previous generation.
проще говоря, есть группа алгоритмов, которые следующему “поколению” переносят свой максимально достигнутый результат, чтобы в общем по задаче шло улучшение.
авторы сделали такую вещь в ин-контекст рл через мульти-агентное обучение - следующее поколение агентов имеет доступ статическому к поведению предыдущих агентов (которые живут кстати один эпизод для того, чтобы изолировать условие обучения ин-контекст), а основная модель (S5) еще и видит действия суб-оптимального оракула ⇒ сохраняется мульти-агентность, контекст имеет степень случайности и обучаемости + тренировочные семплы оверолл не сбиваются с достижения цели за счет доступа к оракулу
так же есть in-weights learning сетап, где агенты живут не эпизод, а все время обучения
сходимость к оптимальной награде ин-контекст мульти-агента происходит гораздо быстрее классической парадигмы, только дело в том, что они эксперименты проводили на своих же средах. просто до них пока не было развития в этой ветви - область пока настолько нова (как и рл), что только недавно выложили первый адекватный большой датасет для единого знаменателя следующих работ (подробнее про него можно здесь прочитать)
ждем развития событий
👀LINK
A Definition of Continual Reinforcement Learning
верхнеуровнево процесс появления АИ алгоритмов можно описать как обучение выполнять более лучшие решения исходя из собственного опыта. этим можно описать и градиентный спуск, но поближе все-таки формулировка к обучению с подкреплением
но как в анекдоте, есть один нюанс - в настоящих задачах цель, награда, супервайзд лейблы да и в целом какое-то таргет распределение зафиксировано - достигли какого-то пункта, и на опыте учиться более не надо
применимо не ко всем задачам из реальности, даже к меньшей части всех задач → появилось понятие континуал лернинг (и континуал рл, о котором мы писали здесь), которое интуитивно понятно: есть таска, обучаешься на ней норм результату, таска начинает постепенно или резко меняться и стоит переобучиваться вновь (желательно с сохранением опыта о предыдущих тасках)
авторы решили формализовать это дело и перейти от рл к континуал рл посредством перехода от задачи по нахождению решения к задаче бесконечной возможности адаптации к меняющимся условиям неявным поиском оптимальности
более того, мульти-таск рл и континуал супервайзд лернинг по их определениям становится частным случаем континуал рл (как и в принципе супервайзд лернинг можно назвать частным и упрощенным случаем рл)
имхо, в ближайшем будущем темпы развития в континуал сетапе будут нарастать, потому что потенциально упрощает дл область как в ресерче, так и в бизнесе (если это будет работать)
👀LINK
верхнеуровнево процесс появления АИ алгоритмов можно описать как обучение выполнять более лучшие решения исходя из собственного опыта. этим можно описать и градиентный спуск, но поближе все-таки формулировка к обучению с подкреплением
но как в анекдоте, есть один нюанс - в настоящих задачах цель, награда, супервайзд лейблы да и в целом какое-то таргет распределение зафиксировано - достигли какого-то пункта, и на опыте учиться более не надо
применимо не ко всем задачам из реальности, даже к меньшей части всех задач → появилось понятие континуал лернинг (и континуал рл, о котором мы писали здесь), которое интуитивно понятно: есть таска, обучаешься на ней норм результату, таска начинает постепенно или резко меняться и стоит переобучиваться вновь (желательно с сохранением опыта о предыдущих тасках)
авторы решили формализовать это дело и перейти от рл к континуал рл посредством перехода от задачи по нахождению решения к задаче бесконечной возможности адаптации к меняющимся условиям неявным поиском оптимальности
более того, мульти-таск рл и континуал супервайзд лернинг по их определениям становится частным случаем континуал рл (как и в принципе супервайзд лернинг можно назвать частным и упрощенным случаем рл)
имхо, в ближайшем будущем темпы развития в континуал сетапе будут нарастать, потому что потенциально упрощает дл область как в ресерче, так и в бизнесе (если это будет работать)
👀LINK
👍5❤1🔥1
Refusal in Language Models Is Mediated by a Single Direction
хотел написать какое-то смешное вступление про, как сейчас забавно обходить можно меры защиты против ЛЛМ и генерить что-то вредное, опасное и всякое такое; и какой интересной и важной задачей является отказ в генерации на такие запросы. но описание вступления - уже вступление
так вот авторы, в свою очередь, задались вопросом - а можно ли на внутреннем уровне модели отличать вредоносные запросы от безопасных? как оказывается, да. если по аналогии с ворд2век свойством Россия - Москва + Париж = Франция поиграть с активациями слоев, то можно найти вектор, который описывает понятие вредоносности - через разницу усредненных векторов активаций вредных и обычных промптов
добавляют/вычитают этот вектор к активациям - и реально работает, при том (почти) безотказно и не влияет на остальные свойства модели в генерации связного, релевантного, серо-буро-малинового текста
в качестве евала, является ли промпт безопасным (safety_score), использовали затюненную на это дело лламу чтобы результаты были как можно точнее, в качестве метрики использовали log-odds ratio от ее аутпутов. так же считали, отказывалась ли модель отвечать (refusal_score), потому что бывают сценарии, когда модель не отказывается ответить, но при этом ниче опасного не выводит
но добавлять постоянно вектор к активациям не оч удобно. авторы пошли дальше и сформулировали ортогонализацию весов с помощью этого вектора → убираем фактор вредосности из самих параметров и модель начинает отказываться от запросов-плохишей. по метрикам и скейлу моделек выглядит все очень вкусно и появляется желание самому такое заимплементить в своих задачах (потому что код есть, но для такой идеи негромоздким его сделать вряд ли возможно)
при том один вектор отказа от генерации вреда можно найти не только для чат-моделей, но и для обычных лм моделей ⇒ это больше относится к понятию языка в общем и/или пространству параметров, семантическому пространству или чему-либо еще. на практике можно спекулировать, что еще очень много таких векторов можно найти для желаемых целей (и этого будет достаточно для изменения генерации в нужную сторону)
но, несмотря на то, что добавление такой ортогонализации (вроде наверянка) не влияет на другие способности ЛЛМок и напрямую помогает с реджектом вредоносных запросов, если задать мета-вопросы, какие промпты нужно принять/отклонить, начинаются какие-то обтекаемые и непоследовательные ответы (что оптимизировали, по тому результат и улучшился, а не прибавилось понимание модели о понятии вреда в более сложных рассуждениях)
👀LINK
хотел написать какое-то смешное вступление про, как сейчас забавно обходить можно меры защиты против ЛЛМ и генерить что-то вредное, опасное и всякое такое; и какой интересной и важной задачей является отказ в генерации на такие запросы. но описание вступления - уже вступление
так вот авторы, в свою очередь, задались вопросом - а можно ли на внутреннем уровне модели отличать вредоносные запросы от безопасных? как оказывается, да. если по аналогии с ворд2век свойством Россия - Москва + Париж = Франция поиграть с активациями слоев, то можно найти вектор, который описывает понятие вредоносности - через разницу усредненных векторов активаций вредных и обычных промптов
добавляют/вычитают этот вектор к активациям - и реально работает, при том (почти) безотказно и не влияет на остальные свойства модели в генерации связного, релевантного, серо-буро-малинового текста
в качестве евала, является ли промпт безопасным (safety_score), использовали затюненную на это дело лламу чтобы результаты были как можно точнее, в качестве метрики использовали log-odds ratio от ее аутпутов. так же считали, отказывалась ли модель отвечать (refusal_score), потому что бывают сценарии, когда модель не отказывается ответить, но при этом ниче опасного не выводит
но добавлять постоянно вектор к активациям не оч удобно. авторы пошли дальше и сформулировали ортогонализацию весов с помощью этого вектора → убираем фактор вредосности из самих параметров и модель начинает отказываться от запросов-плохишей. по метрикам и скейлу моделек выглядит все очень вкусно и появляется желание самому такое заимплементить в своих задачах (потому что код есть, но для такой идеи негромоздким его сделать вряд ли возможно)
при том один вектор отказа от генерации вреда можно найти не только для чат-моделей, но и для обычных лм моделей ⇒ это больше относится к понятию языка в общем и/или пространству параметров, семантическому пространству или чему-либо еще. на практике можно спекулировать, что еще очень много таких векторов можно найти для желаемых целей (и этого будет достаточно для изменения генерации в нужную сторону)
но, несмотря на то, что добавление такой ортогонализации (вроде наверянка) не влияет на другие способности ЛЛМок и напрямую помогает с реджектом вредоносных запросов, если задать мета-вопросы, какие промпты нужно принять/отклонить, начинаются какие-то обтекаемые и непоследовательные ответы (что оптимизировали, по тому результат и улучшился, а не прибавилось понимание модели о понятии вреда в более сложных рассуждениях)
👀LINK