- PVSM.RU - https://www.pvsm.ru -
Ученые часто вдохновляется нашими или животными биологическими структурами: CNN, MLP, Backprop, и для многих других исследований можно найти сходства в реальном мире. Недавно вышла статья, которая делает то же самое, но для RAG (Retrieval-Augmented Generation). В некотором роде, это недостающая современным LLM долгосрочная память. Это понятно, а причем тут неокортекст, гиппокамп и другие сложные слова? Давайте посмотрим.
LLM сейчас встраиваются во все наши сферы, ChatGPT наделал куча шуму, но за это время так и не была решена одна из основных проблем: как контролировать память модели? Вот мы обучили новейшую o1, но все равно вешаем плашку “Модель обучена на данных до октября 2023 года” - а дальше как? Целый ряд задач очень сложно решить без контекста современного мира - модель знает только то, на чем она обучалась. RAG - один из способов контроля долговременной памяти для LLM. Видов имплементации RAG множество, но остановимся мы сегодня на одном - Hippo-RAG. Это краткий пересказ статьи [1] этого года.
– это теория, объясняющая принцип работы долговременной памяти. В ней участвуют три участка
Разделение паттернов осуществляется во время кодирования памяти:
Кодирование памяти начинается с того, что неокортекс (новая кора) получает и обрабатывает воспринимаемые стимулы, преобразуя их в более высокоуровневые признаки.
Затем эти признаки передаются через парагиппокампальные области к гиппокампу, который выполняет их индексирование.
В гиппокампе значимые сигналы включаются в “индекс” и связываются друг с другом.
Завершение паттернов позволяет "находить" в памяти близкие воспоминания к определенному событию.
Начинается он с получения гиппокампом частичных сигналов через парагиппокампальный тракт.
Гиппокамп использует свою контекстно-зависимую систему памяти, которая, как считается, реализована через плотную сеть нейронов в подрегионе CA3, чтобы идентифицировать полные и релевантные воспоминания в своём индексе.
Затем эта информация передаётся обратно в неокортекс для симуляции полного воспоминания.
Так, это было много теории. Осознаем все еще раз: неокортекс извлекает высокоуровневые признаки из стимулов, затем гиппокамп их индексирует, а когда память необходимо извлечь, гиппокамп использует нейронку для нахождения релевантных воспоминаний и передает это обратно в неокортекст. На Рис. 1 это все проиллюстрировано.
Архитектура имеет ML компоненты для каждого из трех участков
Offline Indexing, или разделение паттернов
Вместо неокортекста, здесь используется LLM для извлечение триплетов – N, например, (Томас, изучать, Альцгеймер). Авторы аргументируют свой выбор в пользу триплетов вместо векторных представлений, возможностью разделять знания на более гранулярные части. Что немного сомнительно, но окэй. Затем они используют Retrieval Encoders (просто энкодер + cosine distance) для создания в графе знаний дополнительных ребер между близкими по смыслу сущностями – это нам потребуется во время извлечения знаний. Так, извлекая и расширяя граф знаний для каждого из параграфов, у нас получается матрица, содержащая количество триплетов в каждом параграфе:
Она потребуется нам на следующем этапе, чтобы определять наиболее близкие параграфы к запросу.
Online Retrieval, или завершение паттернов
Имитируя процесс воспроизведения памяти в человеческом
Человеческие индексы гиппокампа "активируют" друг друга с помощью нейронных связей, что похоже на обход графа. Авторы имитируют этот процесс с помощью алгоритма Personalized PageRank, который позволяет находить релевантные связи на основе заданных узлов (некоторое подобие частичного сигнала).
Более формально,
Извлечение триплетов из запроса
Поиск схожих триплетов на триплеты запроса в базе знаний, M - энкодер, e - триплеты в графе знаний
Затем мы запускаем PPR алгоритм на триплетах из запроса и полученных синонимичных триплетах
Изначальная вероятность для узлов E = 0, а для C распределена равномерно. PPR учитывает начальный сигнал, и в итоге фокусируется только на упомянутых в запросе узлах и их соседях. После мы получаем распределение вероятности на всех триплетах. Для получения ранга параграфов, умножаем вероятности триплетов на матрицу I
То есть, чем более вероятны и частоты триплеты из параграфа являются частью запроса или их соседями, тем больший ранг будет у параграфа по отношению к запросу.
Окей, а как вся эта сложная конструкция ведет себя на бенчмарках? Проверяют этот подход на задачах multi-hop reasoning, когда у нас есть несколько кусочков информации и необходимо ответить на вопрос, используя часть каждого. К примеру:
Параграф 1: Фильм Убить Билла вышел в 2003 году
Параграф 2: Фильм Аватар вышел в 2009 году
Вопрос: Какой фильм вышел раньше, Аватар или Убить Билла?
Чтобы ответить на вопрос, необходимо сначала понять, в каком году вышел каждый из фильмов, а затем сравнить эти даты. То есть проделать несколько шагов.
Сравнивая на датасетах с другими Retrieval системами, HippoRAG имеет больше в среднем на 5-10 пунктов R@2 и 10-15 пунктов R@5. Если подключить дополнительные шаги, например, IRCoT [3], то результаты будут похожими.
Еще авторы сравнили, какой из этапов наиболее важный для системы. Наибольшая просадка происходит при замене PPR на другой алгоритм, что довольно логично при задаче рассуждения с несколькими шагами - важнее правильно определить соседей наших начальных узлов, ведь без них не получится достать ответ.
В последнее время не так часто натыкаюсь на статьи, которые были воодушевлены человеческими процессами. Удивительно, что это сработало лучше альтернатив, да еще и с детерминированным алгоритмом PPR. Что показалось вам необычным? Оставляйте комментарии
P.S.
Работаю сейчас над multihop-reasoning статьей на похожих датасетах и результаты моего метода выглядят еще более многообещающе. Если интересно следить, то подписывайтесь на телеграмм канал [4].
Автор: perfect_startup
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/machine-learning/402993
Ссылки в тексте:
[1] статьи: https://arxiv.org/pdf/2405.14831
[2] мозга: http://www.braintools.ru
[3] IRCoT: https://arxiv.org/pdf/2212.10509
[4] телеграмм канал: https://t.me/startup_custdev
[5] Источник: https://habr.com/ru/articles/860426/?utm_campaign=860426&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.