Семантическая память и векторные хранилища
Семантическая память, тип долговременной памяти, который включает хранение и извлечение общих знаний, концепций и прошлого опыта, играет критическую роль в улучшении когнитивных способностей этих систем. Это позволяет информации и прошлому опыту храниться, а затем эффективно извлекаться, когда они нужны для улучшения производительности позже. Ведущий способ сделать это — использование векторных баз данных, которые обеспечивают быстрое индексирование и извлечение в больших масштабах, позволяя агентным системам понимать и отвечать на запросы с большей глубиной и релевантностью.
Введение в семантический поиск
В отличие от традиционного поиска на основе ключевых слов, семантический поиск стремится понять контекст и намерение за запросом, приводя к более точным и значимым результатам извлечения. В своей основе семантический поиск фокусируется на значении слов и фраз, а не на их точном совпадении. Он использует техники машинного обучения для интерпретации контекста, синонимов и отношений между словами. Это позволяет системе извлечения понимать намерение и доставлять результаты, которые контекстуально релевантны, даже если они не содержат точных поисковых терминов.
Основой для этих подходов являются встраивания (embeddings), которые являются векторными представлениями слов, которые захватывают значения слов на основе их использования в больших текстовых корпусах. Проецируя большие объемы текста в плотное числовое представление, мы можем создать богатые представления, которые оказались очень полезными для хранения и извлечения. Популярные модели, такие как Word2Vec, GloVe и BERT, революционизировали то, как машины понимают язык, размещая семантически похожие слова ближе друг к другу в высокоразмерном пространстве.
Большие языковые модели (LLM) дополнительно улучшили производительность этих моделей встраивания в широком диапазоне типов текста, увеличивая размер модели встраивания и количество и разнообразие данных, на которых они обучены. Семантический поиск оказался бесценной техникой для улучшения производительности памяти в агентных системах, особенно в извлечении семантически релевантной информации по документам, которые не разделяют точные ключевые слова.
Реализация семантической памяти с векторными хранилищами
Мы начинаем с генерации семантических встраиваний для концепций и знаний, которые должны быть сохранены. Эти встраивания обычно производятся базовыми моделями или другими техниками обработки естественного языка (NLP), которые кодируют текстовую информацию в плотные векторные представления. Эти векторные представления, или встраивания, захватывают семантические свойства и отношения точек данных в непрерывном векторном пространстве.
Например, предложение, описывающее историческое событие, может быть преобразовано в вектор, который захватывает его семантическое значение. Как только у нас есть это векторное представление, нам нужно место для эффективного хранения. Этим местом является векторная база данных, которая разработана специально для эффективной обработки высокоразмерных векторных представлений данных.
Векторные хранилища — такие как VectorDB, FAISS (Facebook AI Similarity Search) или Annoy (Approximate Nearest Neighbors Oh Yeah) — оптимизированы для хранения и поиска высокоразмерных векторов. Эти хранилища настроены для быстрого поиска подобия, позволяя извлечение встраиваний, которые семантически похожи на данный запрос.
Когда агент получает запрос или нуждается в извлечении информации, он может использовать векторное хранилище для выполнения поиска подобия на основе встраивания запроса. Находя и извлекая наиболее релевантные встраивания из векторного хранилища, агент может получить доступ к сохраненной семантической памяти и предоставить информированные, контекстуально подходящие ответы. Эти поиски могут выполняться быстро, предоставляя эффективный способ быстрого поиска по большим объемам информации для улучшения качества действий и ответов.
Retrieval-Augmented Generation (RAG)
Включение памяти в агентные системы не только включает хранение и управление знаниями, но и улучшает способность системы генерировать контекстуально релевантные и точные ответы. Retrieval-augmented generation (RAG) — это мощная техника, которая объединяет сильные стороны методов на основе извлечения и генеративных моделей для достижения этой цели. Интегрируя механизмы извлечения с базовыми моделями, RAG позволяет агентным системам генерировать более информированные и контекстуально обогащенные ответы, улучшая их производительность в широком диапазоне приложений.
Процесс RAG:
-
Индексирование: Начинаем с набора документов, которые могут быть полезны для помощи системе отвечать на вопросы. Затем разбиваем эти документы на меньшие фрагменты. Идея в том, что модель, как человек, не нуждается в обращении к целому длинному ресурсу — ей нужна только небольшая, релевантная часть. Затем берем эти фрагменты, встраиваем их с помощью модели-кодировщика и индексируем их в векторной базе данных.
-
Извлечение: Во время извлечения система ищет большой корпус документов или векторное хранилище встраиваний, чтобы найти части информации, которые релевантны данному запросу или контексту. Эта фаза полагается на эффективные механизмы извлечения для быстрой идентификации и извлечения уместной информации.
-
Генерация: Извлеченная информация затем подается в генеративную базовую модель, которая использует этот контекст для производства связного и контекстуально подходящего ответа. Генеративная модель синтезирует извлеченные данные со своими собственными изученными знаниями, улучшая релевантность и точность сгенерированного текста.
RAG представляет мощный подход для улучшения возможностей агентных систем путем объединения методов на основе извлечения с генеративными моделями. Используя внешние знания и интегрируя их в процесс генерации, RAG позволяет создавать более информированные, точные и контекстуально релевантные ответы. По мере того, как технология продолжает развиваться, RAG будет играть решающую роль в продвижении производительности и универсальности LLM-приложений в различных доменах. Это особенно ценно для включения доменно- или компаний-специфичной информации или политик для влияния на выход.
Семантическая память опыта
Хотя включение внешней базы знаний с семантическим хранилищем является эффективным способом включения внешних знаний в нашего агента, наш агент будет начинать каждую сессию с чистого листа, и контекст долго работающих или сложных задач постепенно выпадет из окна контекста. Обе эти проблемы могут быть решены семантической памятью опыта.
С каждым пользовательским вводом текст превращается в векторное представление с использованием модели встраивания. Встраивание затем используется как запрос в векторном поиске по всем предыдущим взаимодействиям в хранилище памяти. Часть окна контекста резервируется для лучших совпадений из семантической памяти опыта, затем остальное пространство распределяется для системного сообщения, последнего пользовательского ввода и самых последних взаимодействий.
Семантическая память опыта позволяет агентным системам не только опираться на широкую базу знаний, но и адаптировать свои ответы и действия на основе накопленного опыта, приводя к более адаптивному и персонализированному поведению.