TransformerFAM: Feedback attention is working memory
еще одна попытка заново изобрести рнн в контексте трансформера
как сейчас принято обрабатывать длинные последовательности - через скользящее окно и по блокам (хардвейрный аспект), информация передается по предыдущим токенам для каузального аттна и по предыдущим слоям. однако авторы немножечко знают за нейробиологию, где есть концепция рабочей памяти (working memory)
на уровне биологического нейрона она описывается как что-то вроде импульса, который периодически возвращается к этому самому нейрону, отчего появляется связь, которая постоянно фигурирует в нашей голове по необходимости. как только необходимость уходит, этот сигнал тоже пропадает
авторы почерпнули эту идею и решили воспроизвести это через связь токенов на том же уровне глубины в сетке. сделали это через обучаемые токены, которые вбирают в себя поблочно информацию о предыдущих токенах ⇒ блок компрессится в токены и таким образом контекст предыдущих блоков подается в трансформер в счет нескольких токенов
однако, псевдокод как будто немного противоречит основной концепции воркинг мемори. эти самые токены представляют из себя память с предыдущих блоков, при том последующие воркинг мемори токены могут обращаться к таким же токенам с предыдущих блоков (напоминает рнн с хидден стейтами, не так ли? прям то же самое). отсюда возникает интуиция, что на вход операции внимания мы можем подавать эти мемори токены и токены с данного блока, но в алгоритме к этому добавляются обычные инпут токены с предыдущих блоков. то есть 2х истории подается аттеншну - появляется послевкусие костыльности, but if it works let it work
так же на ощущение костыльности намекает тот факт, что если увеличивать количество мемори токенов (64 → 256), то перформанс ухудшается. связывают с нейробиологией, но это забавно. неужели в 64 токенах может скрываться вся необходимая воркинг мемори, почему не 52, или скорее перформанс ухудшился из-за жесткой нестабильности?
и есть кстати подозрения, что воркинг мемори работает из-за обильного количества резидуал коннекшнов + так же авторы пишут, что не нужны дополнительные веса (кроме как новых обучаемых токенов) для операции аттеншна, что странно, тк по сути эти самые токены проходят дважды через один и тот же слой (хотя тут я могу ошибаться но судя по операциям так оно и есть) ⇒ при бекворде проекция из одного пространства в другое или вотевер ослабевает (что бы это ни значило)
имхо идея вряд ли в долгосрок работает. она лучше block-wise sliding window attention (и в принципе с ним авторы и сравниваются), но есть много других вопросов
кстати есть очень классные пункты в аппендиксе о том, что они пробовали и не сработало + вывод они начали с описания фильма Нолана Мементо. за это прям респект
👀LINK
еще одна попытка заново изобрести рнн в контексте трансформера
как сейчас принято обрабатывать длинные последовательности - через скользящее окно и по блокам (хардвейрный аспект), информация передается по предыдущим токенам для каузального аттна и по предыдущим слоям. однако авторы немножечко знают за нейробиологию, где есть концепция рабочей памяти (working memory)
на уровне биологического нейрона она описывается как что-то вроде импульса, который периодически возвращается к этому самому нейрону, отчего появляется связь, которая постоянно фигурирует в нашей голове по необходимости. как только необходимость уходит, этот сигнал тоже пропадает
авторы почерпнули эту идею и решили воспроизвести это через связь токенов на том же уровне глубины в сетке. сделали это через обучаемые токены, которые вбирают в себя поблочно информацию о предыдущих токенах ⇒ блок компрессится в токены и таким образом контекст предыдущих блоков подается в трансформер в счет нескольких токенов
однако, псевдокод как будто немного противоречит основной концепции воркинг мемори. эти самые токены представляют из себя память с предыдущих блоков, при том последующие воркинг мемори токены могут обращаться к таким же токенам с предыдущих блоков (напоминает рнн с хидден стейтами, не так ли? прям то же самое). отсюда возникает интуиция, что на вход операции внимания мы можем подавать эти мемори токены и токены с данного блока, но в алгоритме к этому добавляются обычные инпут токены с предыдущих блоков. то есть 2х истории подается аттеншну - появляется послевкусие костыльности, but if it works let it work
так же на ощущение костыльности намекает тот факт, что если увеличивать количество мемори токенов (64 → 256), то перформанс ухудшается. связывают с нейробиологией, но это забавно. неужели в 64 токенах может скрываться вся необходимая воркинг мемори, почему не 52, или скорее перформанс ухудшился из-за жесткой нестабильности?
и есть кстати подозрения, что воркинг мемори работает из-за обильного количества резидуал коннекшнов + так же авторы пишут, что не нужны дополнительные веса (кроме как новых обучаемых токенов) для операции аттеншна, что странно, тк по сути эти самые токены проходят дважды через один и тот же слой (хотя тут я могу ошибаться но судя по операциям так оно и есть) ⇒ при бекворде проекция из одного пространства в другое или вотевер ослабевает (что бы это ни значило)
имхо идея вряд ли в долгосрок работает. она лучше block-wise sliding window attention (и в принципе с ним авторы и сравниваются), но есть много других вопросов
кстати есть очень классные пункты в аппендиксе о том, что они пробовали и не сработало + вывод они начали с описания фильма Нолана Мементо. за это прям респект
👀LINK
Reinforced Self-Training (ReST) for Language Modeling
как устроен рлхф сейчас - есть ревард модель, которая выдает ревард под каждый аутпут ллм, а процесс улучшения выглядит через дообучение со связкой на эту награду. то есть цикл выглядит так ллм → ревард модель → ллм (условно). что тут может быть непрактичного? пожалуй, одни из больших таких пунктов - скорость и сложность сборки датасета, поскольку обновление модели идет в онлайн стиле
но можно ли обновлять модель в более оффлайновой манере? по аналогии с оффлайн рл и онлайн рл, авторы интересно реформулируют процесс рлхф на задаче перевода. есть изначальный “оффлайн” датасет с супервайзд разметкой, так и почему бы не использовать разметку совместно с генерацией модели?
и это работает! если фильтровать аутпуты модели в соответствии с функцией награды (которую авторы кстати так и не обозначили, просто показали, что она есть) ⇒ итеративно обновляем датасет, который лучше и лучше по награде, и сами аутпуты улучшаются
а как именно фильтровать? да просто авторы отсекают по трешхолду и уже это дает буста
основная идея понятна - проста и практична, но во время чтения появились вопросики
- есть ощущение, что подбирать ревард функцию надо оочень качественно - будь то эвристика или своя модель, а то интуитивно может случиться закон Гудхарта
- выглядят немного костыльно эмпирические выводы, что таких итераций надо делать не более 3 - потому что размер датасета остается фиксированным, а семплы в нем периодически фильтруются ⇒ в какой-то момент можем попасть в ситуацию, где вся изначальная разметка пропадет и обучение будет только на своих аутпутах (distributional shift, который в совокупности с неоптимальным ревардом будет ухудшать генерацию). то есть надо жестко подгонять ревард функцию под имеющийся датасет либо вставлять какие-то коллбеки для нивелирования такого
- в Fig. 3 & Table 1 есть интересный эксперимент под обозначением “G = 1, I = 0”, i.e. Grow step = 1, Improve step = 0. то есть 0 раз файнтюнили на отфильтрованных генерациях и 1 раз расширили датасет (добавили к супервайзд датасету свои генерации). и по графикам результат улучшился. еще раз повторю - авторы натренировали с нуля модель, какое-то время пообучали, часть супервайзд разметки заменили на аутпуты модели (которые скорее всего хуже) и получили прирост. ват? звучит супер неинтуитивно (но я могу ошибаться и возможно это супер открытие, на которое не делают акцент авторы, а могли бы)
помимо последнего пункта, где по сути ухудшили датасет и улучшился результат, в целом папира норм. я бы попробовал применить или дальше потыкаться в этом направлении
👀LINK
как устроен рлхф сейчас - есть ревард модель, которая выдает ревард под каждый аутпут ллм, а процесс улучшения выглядит через дообучение со связкой на эту награду. то есть цикл выглядит так ллм → ревард модель → ллм (условно). что тут может быть непрактичного? пожалуй, одни из больших таких пунктов - скорость и сложность сборки датасета, поскольку обновление модели идет в онлайн стиле
но можно ли обновлять модель в более оффлайновой манере? по аналогии с оффлайн рл и онлайн рл, авторы интересно реформулируют процесс рлхф на задаче перевода. есть изначальный “оффлайн” датасет с супервайзд разметкой, так и почему бы не использовать разметку совместно с генерацией модели?
и это работает! если фильтровать аутпуты модели в соответствии с функцией награды (которую авторы кстати так и не обозначили, просто показали, что она есть) ⇒ итеративно обновляем датасет, который лучше и лучше по награде, и сами аутпуты улучшаются
а как именно фильтровать? да просто авторы отсекают по трешхолду и уже это дает буста
основная идея понятна - проста и практична, но во время чтения появились вопросики
- есть ощущение, что подбирать ревард функцию надо оочень качественно - будь то эвристика или своя модель, а то интуитивно может случиться закон Гудхарта
- выглядят немного костыльно эмпирические выводы, что таких итераций надо делать не более 3 - потому что размер датасета остается фиксированным, а семплы в нем периодически фильтруются ⇒ в какой-то момент можем попасть в ситуацию, где вся изначальная разметка пропадет и обучение будет только на своих аутпутах (distributional shift, который в совокупности с неоптимальным ревардом будет ухудшать генерацию). то есть надо жестко подгонять ревард функцию под имеющийся датасет либо вставлять какие-то коллбеки для нивелирования такого
- в Fig. 3 & Table 1 есть интересный эксперимент под обозначением “G = 1, I = 0”, i.e. Grow step = 1, Improve step = 0. то есть 0 раз файнтюнили на отфильтрованных генерациях и 1 раз расширили датасет (добавили к супервайзд датасету свои генерации). и по графикам результат улучшился. еще раз повторю - авторы натренировали с нуля модель, какое-то время пообучали, часть супервайзд разметки заменили на аутпуты модели (которые скорее всего хуже) и получили прирост. ват? звучит супер неинтуитивно (но я могу ошибаться и возможно это супер открытие, на которое не делают акцент авторы, а могли бы)
помимо последнего пункта, где по сути ухудшили датасет и улучшился результат, в целом папира норм. я бы попробовал применить или дальше потыкаться в этом направлении
👀LINK
Beyond A*: Better Planning with Transformers via Search Dynamics Bootstrapping
yet another paper on испоьзование трансформеров в задаче планирования
только стоит уточнить, что здесь планирование имеется в виду в плане “создания последовательности действий в уме”, а не непосредственное действие в игре или где бы то ни было еще
авторы взяли в качестве алгоритма, с помощью которого собирали датасет, A*. он в принципе интуитивно понятный, поскольку в реализации своей опирается на underestimated расстояние до цели (как если бы до нее можно было дойти в лоб, без препятствий - admissible heuristic) + исследует сначала ближайшее пространство вокруг себя, потом передвигается к более дальним точкам → в совокупности эти пункты дают работающий бейзлайн, умеющий в нужное планирование
основная идея заключается в том, что мы можем подавать трансформеру в качестве промпта не просто изначальное состояние игры (например, где ты в лабиринте находишься и куда надо прийти + где расположены стены и все такое) и таргет в качестве последовательности действий, которая приводит к цели, а еще и процесс построения A* оптимального маршрута со всеми шагами алгоритма
и (уже скорее неудивительно) это улучшает результат! сходится намного быстрее к топ перформансу, да еще и намного меньше по размерам моделька нужна для этого
есть даже тейк от авторов, что трансформер начинает сходится к цели быстрее, чем A*. и он действительно сходится быстрее, чем семплы из датасета, которые принадлежат A*, но я не соглашусь с тем, что он сходится быстрее этого алгоритма, а скорее смог научиться действовать на оптимальном уровне A* (то есть природа планирования та же). такое может быть (as far as я понял из папиры), что A* может найти не полностью оптимальный маршрут, но близкий к нему (из-за порядка ветвления действий, метрики для расстояния до цели и такого остального, что вместе они называют non-deterministic A*, на чем и обучался трансформер)
имхо это важное уточнение - да, появляется оптимальный уровень, который превосходит тренировочные семплы, но природа остается та же, поскольку идет процесс имитации внутри слоев модели (и особенно важно это уточнение при разговоре об ин-контекст лернинге) + есть момент, что у трансформера больше информации на вход (координаты всех стен), чего на самом начале не распознает A*, но основного результата это не отменяет
👀LINK
yet another paper on испоьзование трансформеров в задаче планирования
только стоит уточнить, что здесь планирование имеется в виду в плане “создания последовательности действий в уме”, а не непосредственное действие в игре или где бы то ни было еще
авторы взяли в качестве алгоритма, с помощью которого собирали датасет, A*. он в принципе интуитивно понятный, поскольку в реализации своей опирается на underestimated расстояние до цели (как если бы до нее можно было дойти в лоб, без препятствий - admissible heuristic) + исследует сначала ближайшее пространство вокруг себя, потом передвигается к более дальним точкам → в совокупности эти пункты дают работающий бейзлайн, умеющий в нужное планирование
основная идея заключается в том, что мы можем подавать трансформеру в качестве промпта не просто изначальное состояние игры (например, где ты в лабиринте находишься и куда надо прийти + где расположены стены и все такое) и таргет в качестве последовательности действий, которая приводит к цели, а еще и процесс построения A* оптимального маршрута со всеми шагами алгоритма
и (уже скорее неудивительно) это улучшает результат! сходится намного быстрее к топ перформансу, да еще и намного меньше по размерам моделька нужна для этого
есть даже тейк от авторов, что трансформер начинает сходится к цели быстрее, чем A*. и он действительно сходится быстрее, чем семплы из датасета, которые принадлежат A*, но я не соглашусь с тем, что он сходится быстрее этого алгоритма, а скорее смог научиться действовать на оптимальном уровне A* (то есть природа планирования та же). такое может быть (as far as я понял из папиры), что A* может найти не полностью оптимальный маршрут, но близкий к нему (из-за порядка ветвления действий, метрики для расстояния до цели и такого остального, что вместе они называют non-deterministic A*, на чем и обучался трансформер)
имхо это важное уточнение - да, появляется оптимальный уровень, который превосходит тренировочные семплы, но природа остается та же, поскольку идет процесс имитации внутри слоев модели (и особенно важно это уточнение при разговоре об ин-контекст лернинге) + есть момент, что у трансформера больше информации на вход (координаты всех стен), чего на самом начале не распознает A*, но основного результата это не отменяет
👀LINK
👍4 4❤3
Mitigating Partial Observability in Sequential Decision Processes via the Lambda Discrepancy
одна из больших проблем, от которой страдают рл алгоритмы в усложненных и более реалистичных средах - partial observability (in POMDPs), которая обозначает, что инпута на конкретном таймстепе не хватает модели для совершения оптимального действия → надо использовать каким-то образом память (либо обрабатывать несколько таймстепов, либо создавать отдельный буффер с репрезентациями и тд и тп)
далее, в рл часто используют методы Temporal Difference learning (про которые мы подробно упоминали здесь и с которыми связана еще одна крутая папира). TD методы это база Бытия, ибо они очень тесно связаны с дофаминергической системой нашего мозга (всплеск дофамина коррелирует с ошибкой предсказания награды, что по сути и моделирует TD)
но в вопросе partial observability они в сыром виде начинают хромать. есть альтернатива - monte carlo returns (MC), где мы ниче не моделируем и напрямую считаем реварды до конца чего бы то ни было. не оч эффективно → придумали трейдофф в виде TD(lambda), где lambda контролирует степень между TD & MC
и как есть трейдофф к TD(lambda), так же есть разные степени частичной наблюдаемости данных (partial observability), и авторы смогли вывести дифференцируемую метрику, которая определяет степень частичной наблюдаемости (или non-Markovianity как хотите называйте) - по сути две функции ценности с разными lambda, и она отлично различает МДП от ПОМДП
а поскольку эта штука дифференцируема - ее можно использовать в качестве доп лосса на “привитие” нейронки мдп свойств (с учетом, что как-то реализована память для помдп сеттинга) в рамках задач, которые это не предусматривают. получаем лучшую интерпретируемость и результат. вкусно? - вкусно.
правда эксперименты пока на средах небольшого скейла, посмотрим, как это приживется в более емких задачах
👀LINK
одна из больших проблем, от которой страдают рл алгоритмы в усложненных и более реалистичных средах - partial observability (in POMDPs), которая обозначает, что инпута на конкретном таймстепе не хватает модели для совершения оптимального действия → надо использовать каким-то образом память (либо обрабатывать несколько таймстепов, либо создавать отдельный буффер с репрезентациями и тд и тп)
далее, в рл часто используют методы Temporal Difference learning (про которые мы подробно упоминали здесь и с которыми связана еще одна крутая папира). TD методы это база Бытия, ибо они очень тесно связаны с дофаминергической системой нашего мозга (всплеск дофамина коррелирует с ошибкой предсказания награды, что по сути и моделирует TD)
но в вопросе partial observability они в сыром виде начинают хромать. есть альтернатива - monte carlo returns (MC), где мы ниче не моделируем и напрямую считаем реварды до конца чего бы то ни было. не оч эффективно → придумали трейдофф в виде TD(lambda), где lambda контролирует степень между TD & MC
и как есть трейдофф к TD(lambda), так же есть разные степени частичной наблюдаемости данных (partial observability), и авторы смогли вывести дифференцируемую метрику, которая определяет степень частичной наблюдаемости (или non-Markovianity как хотите называйте) - по сути две функции ценности с разными lambda, и она отлично различает МДП от ПОМДП
а поскольку эта штука дифференцируема - ее можно использовать в качестве доп лосса на “привитие” нейронки мдп свойств (с учетом, что как-то реализована память для помдп сеттинга) в рамках задач, которые это не предусматривают. получаем лучшую интерпретируемость и результат. вкусно? - вкусно.
правда эксперименты пока на средах небольшого скейла, посмотрим, как это приживется в более емких задачах
👀LINK
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.
мол, так то наш метод и на бесконечный контекст распространяется (трансформер → рнн/ссм), просто это проблемы другой концепции - памяти в хардвейре, границы нашей идеи неисповедимы и лишь ограничены современными технологиями