Hippo-RAG: Долговременная память для LLM, вдохновленная нейробиологией

от автора

Ученые часто вдохновляется нашими или животными биологическими структурами: CNN, MLP, Backprop, и для многих других исследований можно найти сходства в реальном мире. Недавно вышла статья, которая делает то же самое, но для RAG (Retrieval-Augmented Generation). В некотором роде, это недостающая современным LLM долгосрочная память. Это понятно, а причем тут неокортекст, гиппокамп и другие сложные слова? Давайте посмотрим.

LLM сейчас встраиваются во все наши сферы, ChatGPT наделал куча шуму, но за это время так и не была решена одна из основных проблем: как контролировать память модели? Вот мы обучили новейшую o1, но все равно вешаем плашку “Модель обучена на данных до октября 2023 года” — а дальше как? Целый ряд задач очень сложно решить без контекста современного мира — модель знает только то, на чем она обучалась. RAG — один из способов контроля долговременной памяти для LLM. Видов имплементации RAG множество, но остановимся мы сегодня на одном — Hippo-RAG. Это краткий пересказ статьи этого года. 

Теория индексации памяти гиппокампом

– это теория, объясняющая принцип работы долговременной памяти. В ней участвуют три участка мозга: неокортекса, парагиппокампальные области и сам гиппокамп. Вместе они работают над двумя задачами: разделение паттернов, обеспечивающая уникальность представлений воспринимаемых событий и завершение паттернов, позволяющая воспроизводить полные воспоминания из частичного импульса.

Разделение паттернов осуществляется во время кодирования памяти:

  1. Кодирование памяти начинается с того, что неокортекс (новая кора) получает и обрабатывает воспринимаемые стимулы, преобразуя их в более высокоуровневые признаки.

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

  3. В гиппокампе значимые сигналы включаются в “индекс” и связываются друг с другом.

Завершение паттернов позволяет «находить» в памяти близкие воспоминания к определенному событию.

  1. Начинается он с получения гиппокампом частичных сигналов через парагиппокампальный тракт.

  2. Гиппокамп использует свою контекстно-зависимую систему памяти, которая, как считается, реализована через плотную сеть нейронов в подрегионе CA3, чтобы идентифицировать полные и релевантные воспоминания в своём индексе.

  3. Затем эта информация передаётся обратно в неокортекс для симуляции полного воспоминания.

Так, это было много теории. Осознаем все еще раз: неокортекс извлекает высокоуровневые признаки из стимулов, затем гиппокамп их индексирует, а когда память необходимо извлечь, гиппокамп использует нейронку для нахождения релевантных воспоминаний и передает это обратно в неокортекст. На Рис. 1 это все проиллюстрировано.

Рис. 1 Сверху теория индексация памяти гиппокампом, снизу Hippo-RAG

Рис. 1 Сверху теория индексация памяти гиппокампом, снизу Hippo-RAG

HippoRAG

Архитектура имеет ML компоненты для каждого из трех участков мозга. В качестве неокортекса выступает LLM, парагиппокампальные области – энкодеры, а гиппокамп – граф знаний и PageRank для поиска. Есть здесь, соответственно и свои стадии разделения и завершения паттернов. У нас есть набор параграфов текста P, которые выступают нашими «воспоминаниями».

Offline Indexing, или разделение паттернов

Вместо неокортекста, здесь используется LLM для извлечение триплетов – N, например, (Томас, изучать, Альцгеймер). Авторы аргументируют свой выбор в пользу триплетов вместо векторных представлений, возможностью разделять знания на более гранулярные части. Что немного сомнительно, но окэй. Затем они используют Retrieval Encoders (просто энкодер + cosine distance) для создания в графе знаний дополнительных ребер между близкими по смыслу сущностями – это нам потребуется во время извлечения знаний. Так, извлекая и расширяя граф знаний для каждого из параграфов, у нас получается матрица, содержащая количество триплетов в каждом параграфе:

I = |N|\times|P|

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

Online Retrieval, или завершение паттернов

Имитируя процесс воспроизведения памяти в человеческом мозге, в данном алгоритме извлечение использует схожие процессы. Как и неокортекст, LLM извлекает триплеты из запроса. Затем, используя все тот же Retrieval Encoders, ищутся релевантные узлы в нашем графе знаний (что похоже на триплеты запрос). Получившийся из триплетов запроса и близких к ним, частичный сигнал передается в гиппокамп для поиска релевантных индексов параграфов.

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

Более формально,

Извлечение триплетов из запроса

C_q=LLM(query)

Поиск схожих триплетов на триплеты запроса в базе знаний, M — энкодер, e — триплеты в графе знаний

E = cossim(M(c_i),M(e_j))

Затем мы запускаем PPR алгоритм на триплетах из запроса и полученных синонимичных триплетах

p = PRR(C_q+E)

Изначальная вероятность для узлов E = 0, а для C распределена равномерно. PPR учитывает начальный сигнал, и в итоге фокусируется только на упомянутых в запросе узлах и их соседях. После мы получаем распределение вероятности на всех триплетах. Для получения ранга параграфов, умножаем вероятности триплетов на матрицу I

prob(passages)=p\times I

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

Метрики

Окей, а как вся эта сложная конструкция ведет себя на бенчмарках? Проверяют этот подход на задачах multi-hop reasoning, когда у нас есть несколько кусочков информации и необходимо ответить на вопрос, используя часть каждого. К примеру:

Параграф 1: Фильм Убить Билла вышел в 2003 году

Параграф 2: Фильм Аватар вышел в 2009 году

Вопрос: Какой фильм вышел раньше, Аватар или Убить Билла?

Чтобы ответить на вопрос, необходимо сначала понять, в каком году вышел каждый из фильмов, а затем сравнить эти даты. То есть проделать несколько шагов.

Результаты оригинального метода – без дополнительной логики. Contriever и ColBERTv2 - Retrieval Encoders

Результаты оригинального метода – без дополнительной логики. Contriever и ColBERTv2 — Retrieval Encoders

Сравнивая на датасетах с другими Retrieval системами, HippoRAG имеет больше в среднем на 5-10 пунктов R@2 и 10-15 пунктов R@5. Если подключить дополнительные шаги, например, IRCoT, то результаты будут похожими.

Все так же хорошие результаты вместе с IRCoT

Все так же хорошие результаты вместе с IRCoT

Еще авторы сравнили, какой из этапов наиболее важный для системы. Наибольшая просадка происходит при замене PPR на другой алгоритм, что довольно логично при задаче рассуждения с несколькими шагами — важнее правильно определить соседей наших начальных узлов, ведь без них не получится достать ответ.

Итог

В последнее время не так часто натыкаюсь на статьи, которые были воодушевлены человеческими процессами. Удивительно, что это сработало лучше альтернатив, да еще и с детерминированным алгоритмом PPR. Что показалось вам необычным? Оставляйте комментарии

P.S.

Работаю сейчас над multihop-reasoning статьей на похожих датасетах и результаты моего метода выглядят еще более многообещающе. Если интересно следить, то подписывайтесь на телеграмм канал.


ссылка на оригинал статьи https://habr.com/ru/articles/860426/