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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Same Task, More Tokens: the Impact of Input Length on the Reasoning Performance of Large Language Models

100500M tokens context for LLM - супер круто, не правда ли? только прикол в том, что нам тяжеловато подобрать такой промпт, а если и подобрать, то как оценить его качество относительно коротких промптов? сохраняются ли способности ллмок независимо от длины инпута? интуитивно вроде да, но авторы решили это проверить

для этого они создали датасет QA датасет (назвали FlenQA), где есть промпты произвольной длины, но

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

таким образом, авторы изолируют фактор длины инпута и теперь могут измерить максимально честно ее влияние на перформанс

и как оказывается - размер имеет значение

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

и даже Chain of Thought не спасает

стоит учесть, задача только QA (хоть и разные подтаски), а как ведет себя на других тасках - неизвестно

👀LINK
🤨2🍓1🫡1
Contextual Position Encoding: Learning to Count What's Important

все, думаю, пользовались разными позиционными кодировщиками - абсолютными, относительными, обучаемыми, кто-то даже сильно знаком с RoPE, а кто-то с алиби. цель всех этих вариантов была добавить релевантную информацию относительно позиции токена.

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

авторы предложили именно такое (СoPE), объединили детали из относительного и обучаемых энкодингов - позиции кодируются как сумма сигмоид между дот продактом запросов и ключей (queries & values). таким образом получается опора на предыдущий контекст исключительно, так еще и через сигмоиду определяем степень влияния этого контекста

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

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

смущает только Figure 3 (и далее в рассуждениях я могу ошибаться) - как я пон, они говорят, что может CoPE обобщаться на более длинный контекст, что отчасти так, у него меньше перплексия, но ввиду грамотной интерполяции (а не экстраполяции) дробных позиций - если мы удлиняем контекст с 512 до 1024 например на евале, то все равно будем видеть токены от 0 до 512, пушто на трейне мы их и не видели. то есть этот метод действительно выглядит лучше, но кмк по другим причинам (если вы нашли ошибку в моем рассуждении - напишите, мне интересно почитать)

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

👀LINK
🔥7👍42🤔1
Retentive Network: A Successor to Transformer for Large Language Models

тоже уже база, но хочу про нее рассказать

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

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

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

еще расширяют эту идею на MSR (Multi-Scale Retention, a.k.a Multi-Head Attention) и подают разным головам разные гаммы ⇒ головы теперь не только по-разному могут производить ретеншн (аттеншн) в плане обработки контекста, но еще и по-разному обрабатывать временную составляющую

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

да и ко всему есть код, что приятно

но есть непонятка в табличке - у RWKV пишут, что нет параллелизации во время трейна, когда она есть + забавно выглядит как они галочками расставили перформанс но это оки

👀LINK
🔥3👀21👍1🤩1
CPPO: Continual Learning for Reinforcement Learning with Human Feedback

вот научили ревард модельку для ллм - окей, пристрастилась к желаниям человечков, но ведь желания со временем меняются. и как к такому адаптироваться?

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

на практике дивергенцию считают как мсе между потокенными лог вероятностями (что интересно) - назвали Knowledge Retention Loss. и его добавили к привычному лоссу ппо

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

но так же они и пробовали обучать эти веса для каждого батча 🤯

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

далеко не факт, что идея будет долго жить, потому что имхо много где перемудрили, но она очень жесткая

👀LINK

да, и такие папиры бывают с таким графическим оформлением
🤯3🕊1🥴1
Is Value Learning Really the Main Bottleneck in Offline RL?

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

но точно ли это главная проблема - нет ли чего посерьезнее? а оказыается есть, и это именно обучение актора

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

то есть вот рецепт примерно усредненный - обучать критика на максимально разнообразных данных + по полной обучать актора на аутпутах критика

еще предлагают решать эту проблему через дообучение на евале посредством оценки критика и дивергенции, чтобы на онлайне политика сильно от оффлайн версии не отходила, что называется test-time training. ну или менее муторный вариант OPEX - обновлять на евале параметры в сторону максимизации значений критика

кстати косвенно с результатами из этой папиры результаты сходятся

👀LINK
🔥3👌1
Unsupervised Learning by Predicting Noise

🕔RIZZEARCH THROWBACK 🕔

Noise as Targets (NaT). Делают self-supervised learning путем генерации случайных таргетов. Один из первых методов

Из нашего unsupervised датасета, мы экстрактим признаки с помощью обычной сверточной сетки и нормализуем. Далее мы делаем “таргеты из шума” с помощью семплирования векторов на сфере. Такой подход напоминаем k-means на сфере, однако отличие в предотрващении коллапса репрезентаций у NaT

Как же нам подбирать оптимальные пары “картинка-таргет вектор”? Это assignment problem и для нее существует Венгерский алгоритм из середины 20-ого века. Однако как с многими алгоритмами ситуация не очень хорошая - асимптотика O(n^3). Поэтому авторы запускают его в стохастическом режиме по батчам

👀 LINK
🔥4