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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Hallucination-Free? Assessing the Reliability of Leading AI Legal Research Tools

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

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

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

но (удивительно) это не так. ух-ты ах-ты, оказывается датабаза из эмбеддинг векторов не может заменить 4 года обучения на юридическом и опыт адвокатской практики (так то это и не могут сделать продвинутые search engines, которые развивались 50 лет, но у нас нейронки гоу бррррр)

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

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

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

👀LINK
🔥32111
Be like a Goldfish, Don't Memorize! Mitigating Memorization in Generative LLMs

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

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

в чем суть? давайте накладывать рандомную маску на последовательность, которая будет с вероятностью 1/k убирать токен из основного лосса (в сетапе естественного языка k = 3, 4 очень даже норм). убирать в том плане, что для этих токенов не будет считаться log-likelihood для предикта следующего токена, но они будут участвовать в лоссе для других токенов, чтобы не нарушалась структура последовательностей и языка. и это работает! просто и со вкусом, так еще и просто интуитивно обосновано, подкрепляя это все эмпирикой

так же есть усложнение с хешированием - мол, порой попадаются в трейне одни и те же последовательности, которые слегка отличаются посимвольно. для этого и резонно применять хеш для h предыдущих токенов, и в зависимости от этого маскировать (h+1)-ый токен (также есть интересные рассуждения по поводу подбора h - не слишком маленьким, чтобы не повредить запоминанию модели н-грамм, но и не слишком большим, чтобы совсем не потерялся замысел → подобрали h = 13)

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

по скейлу моделек - 1В и 7В, неидеально но вполне приемлемо. статья вообще очень классная и руки так и чешутся заимплементить такое самому

еще у статьи очень классный лор - хорошо вписывают другие темы в метафору goldfish loss: sharks in the water (adversarial attack), fish oil vs snake oil (empiricism vs theory) + есть код но там надо черту ногу сломать чтобы разобраться или как в пословице говорится

👀LINK
31111
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
3👍2111
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
1111
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
👍443