Блог Sistemma.ru

От обычного RAG к Graph RAG

Введение

Как мы знаем, модели большого языка (LLM) работают с фиксированными наборами данных, при этом их знания замораживаются на момент последнего обновления обучения.
Обычные пользователи ChatGPT могли заметить известное ограничение: « Данные обучения до сентября 2021 года ».
Это ограничение может привести к неточностям или устаревшим ответам, поскольку эти модели могут « галлюцинировать » .
Обновление их новой информацией или улучшение понимания контекста без переподготовки или тонкой настройки может оказаться сложной задачей как с точки зрения ресурсов, так и с точки зрения рабочей силы.

Поисково-дополненная генерация (RAG)

Поисковая дополненная генерация ( или сокращенно RAG ) была представлена ​​как метод улучшения моделей больших языков ( LLM ) путем включения информации из внешних надежных баз знаний.
Принцип RAG прост; когда LLM задают вопрос, он не просто опирается на то, что уже знает.
Вместо этого он сначала ищет соответствующую информацию из указанного источника знаний.
Этот подход гарантирует, что сгенерированные выходные данные ссылаются на огромное количество контекстуально обогащенных данных, дополненных самой актуальной и актуальной доступной информацией.
RAG в основном функционирует в рамках двухэтапного процесса: поиск и генерация контента .

Фаза поиска

На этапе поиска алгоритм находит и собирает соответствующие фрагменты информации, относящиеся к запросу или запросу пользователя.
Например, если вы ищете рецепт «Хоккиен Ми», запрос может быть таким: « Каковы ингредиенты Хоккиен Ми?» »
Система идентифицирует документы, содержание которых семантически связано с запросом, и вычисляет релевантность с использованием меры сходства, обычно косинусного сходства (Действительно ли косинусное подобие вложений связано со сходством? ) между их векторами.
После сопоставления внешних данных он добавляет их к приглашению пользователя и отправляет их в качестве расширенных входных данных в языковую модель.

Фаза создания контента

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

Почему RAG имеет значение

В сегодняшнем технологическом ландшафте LLM используют многочисленные приложения на естественном языке , способные понимать или генерировать текст, похожий на человеческий.
Несмотря на невероятную мощность, эти модели иногда могут дать сбой.
Иногда они могут быть слишком уверены в своих неверных ответах, и их чрезвычайно убедительные аргументы можно легко убедить.
Когда вы уверенно проговариваете неправильный ответ на уроке.
RAG пытается смягчить эти проблемы, предписывая LLM использовать информацию из надежных источников, тем самым поддерживая актуальность и точность результатов модели.

Ограничения RAG

Как и все в жизни, традиционный подход RAG имеет свои сложности и проблемы.
Будучи новаторским в расширении возможностей LLM, RAG также имеет определенные ограничения, которые могут повлиять на их эффективность и применимость.
Одна из основных проблем связана с точностью получаемой информации и неоднородностью источников данных.
Чтобы RAG был эффективным, он часто опирается на несколько внешних источников, которые могут иметь разные форматы, стандарты и уровни надежности. ( например, PDF-файлы, плоские файлы, Markdown, CSV, веб-контент и т. д. )
Реализации RAG также сталкиваются с трудностями при работе с неоднозначными запросами или запросами, требующими глубокого понимания контекста.
Эти проблемы, присущие конструкции технологии, в основном возникают из-за процесса поиска, когда иногда упускаются из виду нюансы, необходимые для точного реагирования.
Контекст важен, и удачно поставленная запятая тоже.

Улучшения в RAG

Повышение точности и эффективности поиска в системах RAG — это постоянная область исследований в области обработки естественного языка и машинного обучения.
Существует несколько стратегий, которые можно использовать для достижения этих улучшений, но я хотел бы выделить два заметных улучшения, которых можно достичь с помощью сегодняшних технологий.
1. Реализация более сложных алгоритмов поиска, которые могут лучше понять семантику запроса, может повысить релевантность извлекаемых документов.
2. Эффективная индексация базы знаний для ускорения процесса поиска без ущерба для качества результатов.
Что приводит нас к…

Граф RAG: RAG x Графы знаний

Graph RAG основывается на концепции RAG, используя графы знаний (KG).
Этот инновационный подход, концепция, впервые разработанная NebulaGraph , меняет способ, которым специалисты LLM интерпретируют запросы и отвечают на них посредством интеграции графовых баз данных.
Graph RAG работает путем интеграции структурированных данных из KG в обработку LLM, обеспечивая более тонкую и информативную основу для ответов модели.
KG представляют собой структурированные представления объектов реального мира и отношений между ними и состоят из узлов, которые представляют такие объекты, как люди , места , объекты или концепции , а также края .
В свою очередь, эти узлы представляют отношения или связи между этими сущностями.
Простой график знаний
Эта структура значительно улучшает способность LLM генерировать обоснованные ответы, позволяя моделям получать доступ к точным и контекстуально релевантным данным.
Инновация Graph RAG заключается в интеграции графовых баз данных с LLM для обогащения контекста модели перед генерированием ответа.
Некоторые популярные предложения GraphDB — это Ontotext , NebulaGraph и Neo4J .

Что делает Graph RAG важным?

Поскольку программы LLM продолжают становиться все более сложными и функциональными, Graph RAG может оказать существенное влияние на сферу искусственного интеллекта.
Вот как я вижу развитие этой интеграции:
1. Ожидается, что будущие студенты LLM будут демонстрировать лучшее понимание сложных запросов и способности к рассуждению.
Graph RAG может использовать эти достижения, чтобы предлагать более точные и контекстно-зависимые ответы.
Структурированные знания из графов знаний в сочетании с более сложными LLM могут привести к прорыву в способности ИИ улавливать абстрактные идеи, рассуждать на их основе и давать детальные ответы.
2. Учитывая, казалось бы, неумолимый прогресс LLM, их интеграция с графами знаний, вероятно, станет более динамичной и плавной.
Это может включать в себя обновление данных КР в режиме реального времени на основе глобальных событий или открытий.
LLM могут сыграть роль в автоматическом расширении и обновлении графиков знаний путем включения новой информации, полученной в результате взаимодействия с пользователем или других источников данных.
Использование таких методов, как обучение с подкреплением на основе обратной связи человека ( RLHF ) и обучение с подкреплением на основе обратной связи ИИ ( RLAIF ), может дополнительно помочь согласовать модели с человеческими предпочтениями и придерживаться принципов HHH ( не борца, а полезности, честности, безвредности ).
3. Благодаря усилиям Nvidia по демократизации вычислений с использованием искусственного интеллекта будущие достижения в области LLM и реализации Graph RAG будут сосредоточены на повышении вычислительной эффективности и масштабируемости.
Этот сдвиг позволит использовать Graph RAG в более широком спектре приложений, включая те, которые требуют ответов в реальном времени или работают в условиях ограниченных ресурсов.
4. Ожидается, что в будущем у LLM будут более широкие и глубокие знания в различных областях. Graph RAG может облегчить передачу знаний из разных областей, что позволит генерировать идеи или решения, основанные на информации из разрозненных областей.
Например, применение результатов когнитивной науки может привести к разработке более естественных моделей взаимодействия человека и робота, а сочетание кибербезопасности с психологией может повысить эффективность мер безопасности.
5. По мере развития технологии Graph RAG принятие таких стандартов, как Resource Description Framework ( RDF ) для графов знаний, может улучшить совместимость между различными системами.
Это может означать, что различные реализации будут взаимодействовать и сотрудничать друг с другом, что впоследствии подтолкнет стремление к более широкому внедрению и инновациям.

Граф RAG Демо

Для этой демонстрации мы будем использовать информацию о продукте с портала разработчиков Govtech в качестве нашей базы знаний.

1. Настройка

  • Запустите локальный экземпляр Neo4j с помощью Neo4j Desktop.
  • Подключитесь к базе данных Neo4j локально с помощью LangChain. Хорошей новостью является то, что у LangChain есть готовый шаблон для простой настройки.

2. Добыча

  • Используйте быстрое проектирование и LLM для извлечения информации, узлов и их связей. Пример приглашения ниже:
# Инструкции по созданию диаграмм знаний 
## Обзор 
Вы созданы для организации данных в диаграммы знаний.
- **Узлы**: представляют объекты и идеи.
- Цель состоит в том, чтобы диаграмма знаний была простой и понятной для широкого использования.

## Маркировка узлов 
— **Единообразность**: используйте простые метки для узлов. Например, обозначайте любое лицо, являющееся организацией, как  «компания» , а не используйте такие термины, как «Микрософт»  или  «Amazon» .
- **Идентификаторы узлов **: выбирайте текстовые или понятные идентификаторы вместо числовых.
  - **Допустимые метки узлов**: если существуют определенные разрешенные метки узлов, перечислите их здесь.
  - **Допустимые типы отношений**. Если существуют определенные разрешенные типы отношений, перечислите их здесь.

## Управление числовыми данными и датами 
. Интегрируйте числовую информацию непосредственно в качестве атрибутов узлов.
- **Интегрированные даты/числа**: воздержитесь от создания отдельных узлов для дат или чисел, вместо этого прикрепляя их как атрибуты.
– **Формат свойств **: используйте формат пары «ключ-значение» .
- **Избегайте кавычек**: не используйте экранированные кавычки в значениях свойств .
- **Именование клавиш**: используйте верблюжий регистр для именования ключей, например dateTime .

## Единообразие
— **Единообразность сущностей**. Обеспечьте единообразную идентификацию сущностей в различных упоминаниях или ссылках.
## Соблюдение инструкций 
Строгое соблюдение данных инструкций является обязательным. Несоблюдение приведет к расторжению договора.

3. Построение графа

  • Используйте CSVLoader и сегментацию документов для обработки наших документов.
  • Сопоставьте извлеченную информацию с узлами и связями графа.
  • Обрабатывайте документы через наш конвейер извлечения и сохраняйте информацию в Neo4j.
Процесс занял почти час, в результате чего был получен окончательный список извлеченных меток узлов.
  • К сожалению, не все метки узлов полезны для нашего контекста или соответствуют нашим потребностям.
{ "identity" :  1040 , "labels" :  [ "Feedbackstatus" ] , "properties" :  { "id" :  "Feedback-Success" , "message" :  "Отправлено. Спасибо за отзыв!" } , "elementId" :  "4:81cd2613-0f18-49c1-8134-761643e88b7a:1040" 
} , 
{ "identity" :  1582 , "labels" :  [ "Feedbackstatus" ] , "properties" :  { "id" :  " Feedbacksuccess" , "status" :  "Отправлено. Спасибо за отзыв!" } , "elementId" :  "4:81cd2613-0f18-49c1-8134-761643e88b7a:1582" 
} , 
{ "identity" :  1405 , "labels" :  [ "Header" ] , "properties" :  { "id" :  " Modalcardhead" , "класс" :  "sgds-modal-card-head" } , "elementId" :  "4:81cd2613-0f18-49c1-8134-761643e88b7a:1405" 
} , 
{ "identity" :  1112 , "labels" :  [ "Индикатор обратной связи" ] , "свойства" :  { "id" :  "Успех обратной связи" , "title" :  "проверка" , "сообщение" :  "Отправлено. Спасибо за отзыв!" } , "elementId" :  "4:81cd2613-0f18-49c1-8134-761643e88b7a:1112" 
...

4. Оценка и уточнение

  • Мы укажем, какие метки узлов должен извлечь LLM, чтобы усовершенствовать наш подход.
допустимые_узлы_to_extract = [
     "Aisubfield" ,
     "Приложение" ,
     "Облачный сервис" ,
     "Концепция" ,
     "Цифровое решение " ,
     "Подразделение" ,
     "Сущность" ,
     "Функция" ,
     "Финансовая инициатива" ,
     "Инициатива" ,
     "Ссылка" ,
     "Местоположение" ,
     «Организация» ,
     «Человек» ,
     «Платформа» ,
     «Политика» ,
     «Программа» , «Ресурс» ,
     «Роль» ,
     «Схема» ,
     «Сервис» ,
     «Стандарт» ,
     «Технология» ,
     «Технологическая платформа» ,
     «Стек технологий ». " ,
     "Вебфреймворк" ,
     "Вебресурс" ,
     "Веб-сайт" 
]
  • Изучите наш недавно построенный график знаний с помощью браузера Neo4j.
  • Постоянно совершенствовать наши методы извлечения данных и построения графиков.
После всех усилий волшебство наконец начинается!
Рассмотрим следующий запрос:
Вопрос: «Расскажите мне больше об AiSay, которая разработала этот продукт, его преимуществах и приложениях. Также расскажите мне, чем уникален AiSay».
Base RAG: «AiSay — это программа для чтения документов на базе искусственного интеллекта, разработанная правительством Сингапура. Он может автоматически обнаруживать, сканировать и понимать различные типы документов, включая рукописные заметки, печатные статьи, многоязычный текст, а также структурированные/неструктурированные документы. В отличие от традиционных систем оптического распознавания символов, AiSay может предоставлять структурированные ответы на такие документы, как изображения и файлы PDF. Он использует OCR, методы документирования вопросов и ответов и модель большого языка для получения контекста и ответов на запросы. AiSay масштабируется как с синхронным, так и с асинхронным вызовом, что позволяет обрабатывать файлы большого размера. Он размещается в облаке без сервера, что делает его масштабируемым по объему и способным обрабатывать файлы большого размера. AiSay находится в стадии активной разработки и поддерживает безопасность и классификацию данных до ОГРАНИЧЕННОГО/ЧУВСТВИТЕЛЬНОГО НОРМАЛЬНОГО уровня. В дальнейшем будет поддерживаться больше типов документов. Уникальные особенности AiSay включают в себя способность предоставлять структурированные ответы для различных типов документов, масштабируемость и поддержку безопасности и классификации данных».
Graph RAG: «AiSay — это программа для чтения документов на базе искусственного интеллекта, разработанная правительством Сингапура. Это анализатор документов, который может предоставлять структурированные ответы, извлекать и интегрировать информацию из различных документов в существующие системы. AiSay может автоматически обнаруживать, сканировать и понимать различные документы, включая рукописные заметки, печатные статьи, многоязычный текст, а также структурированные/неструктурированные документы. В отличие от традиционных систем оптического распознавания символов (OCR), AiSay может предоставлять структурированные ответы для таких документов, как изображения (JPEG, PNG, TFIF) и файлы PDF.
Некоторые ключевые преимущества AiSay включают в себя:
1. Сокращение количества ручных ошибок и повышение точности данных за счет автоматического заполнения ключевых данных для отправки форм из загруженных документов.
2. Улучшение качества цифровых услуг, поскольку AiSay может автоматически заполнять ключевые данные после загрузки документов.
AiSay уникален своей способностью предоставлять структурированные ответы для широкого спектра типов документов, поддерживая различные форматы и языки. Он также предлагает оценку уверенности для каждой задачи, чтобы определить, требуется ли дополнительная поддержка, что позволяет минимальное вмешательство человека в задачи с высоким уровнем достоверности. Кроме того, AiSay является масштабируемым, поскольку он размещается в облаке без сервера, что позволяет асинхронно обрабатывать файлы большого размера и выполнять процессы извлечения».
Граф RAG против базового RAG
В этом случае преимущества Graph RAG по сравнению с традиционными методами RAG были очевидны.
Ответ не только демонстрирует точность, но также обогащен контекстом и связями, обеспечивая уровень глубины, отсутствующий в стандартных подходах RAG.
Секрет Graph RAG заключается в его способности анализировать запрос пользователя, выявлять соответствующие данные в базе данных графов и включать эту контекстуальную информацию для руководства ответом LLM.
Этот подход задействует сеть взаимосвязанной информации, которую обычные методы могут упустить, что приводит к более детальному пониманию запроса.
Давайте попробуем еще на нескольких примерах
Вопрос: «Мне нужно удалить конфиденциальную информацию из некоторых моих документов. Какие продукты, обладающие такими возможностями, предлагает Govtech?»
База RAG: «Govtech предлагает продукты Cloak и FileSG, которые позволяют удалять конфиденциальную информацию из документов».
Graph RAG: «GovTech предлагает продукт под названием Cloak, который представляет собой центральный набор инструментов обеспечения конфиденциальности для анонимизации данных в соответствии с политикой. Этот продукт помогает государственным служащим применять методы анонимизации данных к наборам данных и анализировать риски повторной идентификации в соответствии с руководящими принципами».
Вопрос: «Чем DIAB отличается от SIaC?»
Базовая RAG: «Предоставленные документы не сравнивают напрямую инфраструктуру данных в коробке (DIAB) с чем-либо под названием SIaC и не упоминают SIaC. Следовательно, исходя из данного контекста, невозможно прямо обозначить различия между DIAB и SIaC. Однако мы можем резюмировать ключевые аспекты DIAB следующим образом:
1. **Цель и разработка**: DIAB разработан отделом GovTech по науке о данных и искусственному интеллекту (DSAID) и служит ускорителем развертывания и обслуживания инфраструктуры данных в правительстве в коммерческом облаке (GCC). Он специально разработан для оказания помощи правительственным учреждениям в проектировании, развертывании и обеспечении безопасности инфраструктуры данных.
2. **Сосредоточьтесь на инфраструктуре данных**: DIAB уделяет особое внимание построению согласованной и масштабируемой инфраструктуры данных, позволяющей агентствам экономить время и сокращать накладные расходы при проектировании и внедрении облачной инфраструктуры. Такой фокус позволяет агентствам больше сосредоточиться на создании уровня приложений.
3. **Использование инфраструктуры как кода (IaC)**: DIAB использует шаблоны IaC и эталонную архитектуру, чтобы помочь в разработке данных, оптимизируя процесс настройки и управления инфраструктурой данных.
Без информации о SIaC провести сравнение невозможно. Характеристики DIAB подчеркивают его роль в качестве инструмента для правительственных учреждений для эффективного развертывания и управления инфраструктурой данных в облаке, используя IaC для повышения эффективности и масштабируемости».
График RAG: «DIAB (инфраструктура данных в коробке) и SIaC (безопасная инфраструктура как код) — это продукты, предназначенные для облегчения развертывания облачной инфраструктуры для государственных учреждений. Однако они различаются по своей конкретной направленности и особенностям.
DIAB служит ускорителем развертывания и обслуживания инфраструктуры данных в правительственном коммерческом облаке (GCC). Он помогает агентствам проектировать, развертывать и защищать инфраструктуру данных, уделяя особое внимание вопросам инженерии данных и предоставляя шаблоны «Инфраструктура как код» (IaC). Цель DIAB — помочь агентствам создать согласованную и масштабируемую инфраструктуру данных с ключевыми преимуществами, включая простоту использования, повышенную эффективность, встроенное соответствие требованиям, гибкость в развертывании и готовность к будущему.
С другой стороны, SIaC предоставляет настраиваемые шаблоны для развертывания облачной инфраструктуры безопасным, совместимым и автоматизированным способом. Основное внимание уделяется безопасной настройке управляемых сервисов и инструментов от поставщиков облачных услуг с помощью модульных и легко адаптируемых шаблонов. Ключевые особенности SIaC включают соответствие стандартам правительства Сингапура, модульность для различных вариантов использования, интеграцию с компонентами SGTS и облачный дизайн.
Таким образом, хотя и DIAB, и SIaC нацелены на оптимизацию развертывания облачной инфраструктуры для государственных учреждений, DIAB конкретно нацелен на развертывание инфраструктуры данных с упором на вопросы инженерии данных и шаблоны IaC, в то время как SIaC фокусируется на безопасном и совместимом развертывании облачной инфраструктуры с настраиваемыми шаблонами и модульными дизайн."

Заключение

Переход от традиционной поисково-дополненной генерации (RAG) к Graph RAG представляет собой важный шаг вперед в том, как мы взаимодействуем с моделями большого языка (LLM).
Этот переход решает фундаментальную задачу: как улучшить способность LLM предоставлять контекстуально точные ответы на сложные запросы .
При сравнении двух подходов становятся очевидными преимущества Graph RAG при обработке контекстно сложных запросов.
Обычные методы RAG часто не достигают цели при решении контекстуально сложных вопросов.
Напротив, Graph RAG использует более сложную сеть данных, предоставляя ответы, которые отражают более глубокое понимание тонкостей запроса.
Однако эффективность Graph RAG не является универсальным решением.
Это по-прежнему во многом зависит от качества, глубины и широты лежащих в основе КР.
В сценариях, где KG ограничен или смещен в сторону определенных областей, производительность Graph RAG может не превосходить традиционные методы RAG.
Тем не менее, мы надеемся, что этот переход может привести к созданию систем искусственного интеллекта, которые лучше отражают человеческие мысли и открытия.
Дополнительные ресурсы
Разработка чатботов на основе RAG LLM открывает новые горизонты для общения и бизнеса. Если после прочтения статьи у вас возникли идеи или вопросы о том, как ИИ может обогатить ваш проект, не стесняйтесь делиться ими. Мы всегда рады обсуждению новых концепций и поможем вам найти наилучший путь к реализации ваших инновационных идей.
Новое