моя контактная информация
Почтамезофия@protonmail.com
2024-07-15
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Отчет о сердце машины
Монтажер: Панда В.
Граф знаний никогда не отступает от окружающей среды!
LLM очень мощный инструмент, но у него также есть некоторые очевидные недостатки, такие как проблемы с галлюцинациями, плохая интерпретируемость, неспособность понять суть проблемы, проблемы конфиденциальности и безопасности и т. д. Генерация с расширенным поиском (RAG) может значительно улучшить качество генерации и полезность результатов LLM.
В начале этого месяца Microsoft выпустила GraphRAG, самое мощное решение для базы знаний RAG с открытым исходным кодом. Проект стал популярным сразу после выхода в сеть, и теперь количество звезд достигло 10,5 тысяч.
Некоторые говорят, что она мощнее обычной ТРЯПКИ:
GraphRAG использует LLM для создания графов знаний, что может значительно улучшить производительность вопросов и ответов при выполнении анализа документов со сложной информацией, особенно при работе с частными данными.
Результаты сравнения GraphRAG и традиционного RAG
Сегодня RAG — это метод, который использует реальную информацию для улучшения результатов LLM и является важной частью большинства инструментов на основе LLM. Вообще говоря, RAG использует векторное сходство в качестве поиска, называемого Baseline RAG. Однако в некоторых ситуациях Baseline RAG работает не идеально. Например:
GraphRAG, предложенный Microsoft, использует LLM для создания графа знаний на основе входной текстовой библиотеки. Этот график объединяет сводные данные сообщества и результаты машинного обучения для улучшения подсказок во время запроса. GraphRAG демонстрирует значительные улучшения в ответах на оба типа вопросов, демонстрируя превосходство по сравнению с предыдущими методами на частных наборах данных.
Однако, когда все стали глубже понимать GraphRAG, они обнаружили, что его принципы и содержание действительно трудны для понимания.
Недавно Филип Ратл, технический директор компании Neo4j, опубликовал в блоге статью под названием «Манифест GraphRAG: добавление знаний к генеративному искусственному интеллекту». Рэтл представил принципы GraphRAG, отличие от традиционного RAG, преимущества GraphRAG и многое другое.
Он сказал: «Ваше следующее приложение генеративного ИИ, вероятно, будет использовать граф знаний».
Технический директор Neo4j Филип Ратл
Прочтите эту статью ниже.
Мы начинаем понимать следующее: чтобы сделать что-то действительно значимое с помощью генеративного ИИ, вы не можете просто полагаться на авторегрессионные LLM, которые будут принимать решения за вас.
Я знаю, о чем вы думаете: «Используйте RAG или доработайте, или дождитесь GPT-5».
Да. Вам могут помочь такие методы, как векторное поисковое расширение (RAG) и точная настройка. И они достаточно хорошо решают определенные случаи использования. Но есть один вариант использования, который остановит все эти технологии.
Для многих задач решение векторной RAG (и тонкой настройки) заключается, по сути, в увеличении вероятности правильного ответа. Но ни один из методов не обеспечивает определенного уровня уверенности в правильном ответе. Им часто не хватает контекста, и им сложно подключиться к чему-то, что вы уже знаете. Кроме того, эти инструменты не дают подсказок о том, почему было принято то или иное решение.
Давайте вернемся в 2012 год, когда Google запустил свою поисковую систему второго поколения и опубликовал культовую публикацию в блоге «Представляем диаграмму знаний: вещи, а не строки». Они обнаружили, что если в дополнение к различной обработке строк использовать граф знаний для организации всего, что представлено в виде строк на веб-странице, это может привести к огромному улучшению поиска.
Теперь аналогичная картина наблюдается в области генеративного искусственного интеллекта. Многие проекты генеративного ИИ зашли в тупик, поскольку качество их результатов ограничивается тем фактом, что решение имеет дело со строками, а не с вещами.
Перенесемся в сегодняшний день: передовые инженеры искусственного интеллекта и академические исследователи заново открыли то, что когда-то обнаружил Google: секрет преодоления этого узкого места — это граф знаний. Другими словами, это введение знаний о вещах в текстовую технологию, основанную на статистике. Принцип работы аналогичен другим RAG, за исключением того, что помимо индексации векторов он также вызывает граф знаний. То есть: GraphRAG! (GraphRAG = График знаний + RAG)
Цель этой статьи — предоставить всестороннее и понятное введение в GraphRAG. Исследования показывают, что объединение данных в график знаний и использование их через RAG может принести вам несколько значительных преимуществ. Существует множество исследований, которые доказывают, что GraphRAG может ответить на большинство или все вопросы, которые вы задаете LLM, лучше, чем RAG, который использует только обычные векторы.
Одного этого преимущества достаточно, чтобы значительно способствовать внедрению GraphRAG.
Но на этом все не заканчивается: поскольку данные видны при создании приложения, его также проще разрабатывать.
Третье преимущество GraphRAG заключается в том, что и люди, и машины могут хорошо понимать графики и делать на их основе выводы. В результате создание приложений с использованием GraphRAG становится проще и дает лучшие результаты, а также его легче интерпретировать и проверять (что критически важно для многих отраслей).
Я считаю, что GraphRAG заменит векторный RAG в качестве архитектуры RAG по умолчанию для большинства случаев использования. В этой статье объясняется, почему.
Что такое карта?
Сначала нам нужно выяснить, что такое график.
Граф, также известный как граф, часто переводится как «график», но поэтому его легко спутать с такими понятиями, как изображение и картинка. Чтобы облегчить различие, в этой статье используется только метод перевода «图图».
Вероятно, график выглядит так:
Пример карты
Хотя эту картинку часто используют в качестве примера графа знаний, ее источник и автор уже не известны.
или это:
Карта взаимоотношений персонажей «Игры престолов» Уильяма Лайона.
или это:
Карта метро Лондона. Интересный факт: транспорт Лондона недавно внедрил приложение цифрового двойника на основе графов, чтобы улучшить возможности реагирования на инциденты и уменьшить заторы.
Другими словами, карта — это не диаграмма.
Здесь мы не будем слишком подробно останавливаться на вопросах определений, предполагая, что вы уже понимаете, что такое карта.
Если вы понимаете приведенные выше изображения, то, вероятно, сможете увидеть, как базовые данные графа знаний (хранящиеся в базе данных графов) могут быть запрошены и использованы как часть рабочего процесса RAG. Это ГрафРАГ.
Две формы представления знаний: векторы и графики
Ядром типичного RAG является векторный поиск, который заключается в поиске и возврате концептуально схожих текстов из письменных материалов-кандидатов на основе входных текстовых блоков. Такая автоматизация работает отлично, и даже базовый поиск полезен.
Но каждый раз, выполняя поиск, вы, возможно, не задумывались о том, что такое вектор и как реализуется вычисление сходства. Далее давайте посмотрим на Apple. Он представляет различные формы с точки зрения человека, векторной перспективы и графической точки зрения:
Apple с человеческой точки зрения, векторной точки зрения и точки зрения карты
Для человека представление о яблоке сложное и многомерное, и его характеристики невозможно полностью описать на бумаге. Здесь мы можем поэтично представить, что эта красная фотография может перцептивно и концептуально представлять яблоко.
Векторное представление этого яблока представляет собой массив. Магия векторов заключается в том, что каждый из них отражает суть соответствующего текста в закодированной форме. Но в контексте RAG векторы нужны только тогда, когда нужно определить, насколько фрагмент текста похож на другой фрагмент текста. Для этого просто выполните расчет сходства и проверьте совпадение. Но если вы хотите понять значение вектора, понять, что представлено в тексте, и понять его связь с более широким контекстом, тогда использование векторного представления вам не поможет.
Графы знаний, напротив, представляют мир в декларативной форме — в терминологии сферы ИИ, то есть символической. Таким образом, как люди, так и машины могут понимать граф знаний и выполнять рассуждения на его основе. Это важно и будет упомянуто позже.
Кроме того, вы можете запрашивать, визуализировать, аннотировать, изменять и расширять граф знаний. Граф знаний — это модель мира, которая может представлять мир в вашей текущей сфере работы.
ГрафРАГ и РАГ
Эти двое не конкурируют. Для RAG полезны как векторные запросы, так и графовые запросы. Как отмечает Джерри Лю, основатель LlamaIndex: «Размышляя о GraphRAG, полезно включать векторы. Это отличается от «только векторного RAG», который полностью основан на сходстве между встраиваниями текста.
По сути, GraphRAG — это своего рода RAG, за исключением того, что его путь поиска включает в себя граф знаний. Как вы увидите ниже, основная схема GraphRAG очень проста. Его архитектура аналогична RAG с использованием векторов, но включает слой графа знаний.
Режим GraphRAG
Общий шаблон для GraphRAG
Как видите, на изображении выше был запущен запрос графа. Он может дополнительно включать в себя компонент сходства векторов. Вы можете сохранить график и векторы в двух разных базах данных или использовать базу данных графов, например Neo4j, которая поддерживает векторный поиск.
Ниже приведен общий шаблон использования GraphRAG:
1. Выполните векторный поиск или поиск по ключевым словам, чтобы найти набор начальных узлов;
2. Пересечь граф и получить информацию о соответствующих узлах;
3. (Необязательно) Используйте алгоритмы ранжирования на основе графиков, такие как PageRank, для повторного ранжирования документов.
Различные варианты использования приведут к различным моделям использования. Как и все направления исследований в сегодняшней области искусственного интеллекта, GraphRAG также является богатой исследовательской областью, в которой каждую неделю появляются новые открытия.
Жизненный цикл GraphRAG
Генеративный ИИ с использованием GraphRAG также следует шаблону любого другого приложения RAG. В начале есть шаг «создания графа»:
Жизненный цикл GraphRAG
Создание графа похоже на разделение документа на части и загрузку его в векторную базу данных. Развитие инструментов сделало создание карт довольно простым. Вот три хорошие новости:
1. Карты очень итеративны — вы можете начать с «минимально жизнеспособной карты», а затем расширять ее на основе нее.
2. После добавления данных в граф знаний их можно легко развивать. Вы можете добавить больше типов данных, чтобы получить выгоду от эффектов сети передачи данных. Вы также можете улучшить качество своих данных, чтобы повысить ценность своего приложения.
3. Эта область быстро развивается, а это означает, что по мере усложнения инструментов создание карт будет становиться все проще и проще.
Добавление шагов создания карты к предыдущему изображению приведет к рабочему процессу, показанному ниже:
Добавьте этапы создания карты
Давайте посмотрим, какие преимущества может принести GraphRAG.
Зачем использовать GraphRAG?
По сравнению с векторным RAG преимущества GraphRAG в основном делятся на три категории:
1. Более высокая точность и более полные ответы (преимущество во времени выполнения/производстве)
2. После создания графа знаний будет проще создавать и поддерживать приложения RAG (преимущество во времени разработки).
3. Лучшая объяснимость, отслеживаемость и контроль доступа (преимущества управления)
Ниже мы рассмотрим эти преимущества более подробно.
1. Больше точности и больше полезных ответов
Первое преимущество GraphRAG (и наиболее заметное) — более высокое качество ответов. Будь то в академических кругах или в промышленности, мы можем увидеть множество доказательств, подтверждающих это наблюдение.
Как этот пример из каталога данных компании Data.world. В конце 2023 года они опубликовали исследовательский отчет, показывающий, что GraphRAG может повысить точность ответов LLM в среднем в 3 раза на 43 бизнес-вопроса. Это сравнительное исследование доказывает, что графы знаний могут значительно повысить точность ответов.
График знаний повышает точность ответа LLM на 54,2 процентных пункта, что примерно в 3 раза.
Microsoft также предоставила ряд доказательств, в том числе исследовательский блог «GraphRAG: открытие LLM для описательных частных данных» за февраль 2024 года и связанную с ним исследовательскую работу «От локального к глобальному: подход Graph RAG к суммированию, ориентированному на запросы». 》И программное обеспечение: https://github.com/microsoft/graphrag (GraphRAG, упомянутый в начале выше).
Среди них они заметили следующие две проблемы с базовой RAG с использованием векторов:
Microsoft обнаружила: «Используя граф знаний, созданный LLM, GraphRAG может значительно улучшить «поисковую» часть RAG, заполняя более релевантным контентом для контекстного окна, тем самым получая более качественные ответы и источники доказательств. Они также обнаружили, что по сравнению с другими альтернативными методами GraphRAG требует на 26–97% меньше токенов, поэтому он не только дает лучшие ответы, но также имеет более низкую стоимость и лучшую масштабируемость.
Копнув немного глубже в вопрос точности, мы знаем, что, хотя важно, чтобы ответ был правильным, он также должен быть полезным. Было обнаружено, что GraphRAG не только делает ответы более точными, но также делает ответы более богатыми, полными и более полезными.
Недавняя статья LinkedIn «Расширенная поисковая генерация с помощью графов знаний для ответов на вопросы обслуживания клиентов» является отличным примером влияния GraphRAG на приложения обслуживания клиентов. GraphRAG повысил точность и полноту ответов службы поддержки клиентов, сделав их более полезными, а также сократил среднее время, необходимое команде обслуживания клиентов для решения каждой проблемы, на 28,6%.
На семинаре Neo4j по генеративному искусственному интеллекту есть аналогичный пример. Как показано ниже, это ответ, полученный методами «вектор + GraphRAG» и «только вектор» для набора документов SEC:
Сравнение методов «только вектор» и «вектор + GraphRAG»
Обратите внимание на разницу между «описать характеристики компаний, на которых может повлиять нехватка лития» и «перечислить конкретные компании, которые могут пострадать». Если вы инвестор, стремящийся сбалансировать портфель в ответ на изменения рынка, или компания, желающая перестроить свою цепочку поставок в ответ на стихийное бедствие, информация в правой части приведенной выше диаграммы, безусловно, гораздо важнее, чем информация. слева. Здесь оба ответа точны. Но ответ справа явно полезнее.
Эпизод 23 Going Meta Хесуса Баррасы дает еще один замечательный пример: начиная с карты слов для работы с юридическими документами.
Мы также время от времени видим новые примеры из научных кругов и промышленности. Например, Чарльз Бордери из Lettria привел сравнительный пример методов «только вектор» и «вектор + GraphRAG» GraphRAG использует рабочий процесс преобразования текста в график на основе LLM для организации 10 000 финансовых статей в граф знаний:
Методы только для поиска и методы поиска по графам
Видно, что по сравнению с использованием обычного RAG, использование GraphRAG позволяет не только улучшить качество ответов, но и на треть сократить количество токенов в его ответах.
Давайте возьмем еще один пример из Writer. Недавно они опубликовали отчет о тестировании RAG на основе платформы RobustQA, в котором сравнивался их метод на основе GraphRAG с другими аналогичными инструментами. Оценка, полученная GraphRAG, составляет 86 %, что значительно лучше, чем у других методов (в диапазоне от 33 % до 76 %), при аналогичной или лучшей производительности по задержке.
Результаты оценки точности и времени отклика метода RAG
GraphRAG помогает различным приложениям генеративного искусственного интеллекта. Графики знаний открывают путь к тому, чтобы сделать результаты генеративного ИИ более точными и полезными.
2. Улучшенное понимание данных и более быстрая итерация.
Графики знаний интуитивно понятны как концептуально, так и визуально. Изучение графиков знаний часто приводит к новым знаниям.
Многие пользователи графов знаний поделились этим неожиданным результатом: как только они инвестируют в создание собственного графа знаний, это может помочь им неожиданным образом создавать и отлаживать собственные генеративные приложения ИИ. Частично причина в том, что если вы посмотрите на данные в виде графика, вы увидите, что данные, лежащие в основе этих приложений, представляют собой яркую картину данных.
Графики позволяют отслеживать ответы, находить данные и прослеживать причинно-следственную цепочку на этом пути.
Давайте посмотрим на приведенный выше пример, касающийся нехватки лития. Если вы визуализируете его вектор, вы получите что-то вроде изображения ниже, но с большим количеством строк и столбцов.
Векторная визуализация
И если вы преобразуете данные в график, вы сможете понять их так, как не может векторное представление.
Ниже приведен пример из недавнего вебинара LlamaIndex, показывающий, как они используют отношение «УПОМИНАНИЯ» для извлечения векторизованных фрагментов слов (словарный граф) и LLM для извлечения графа сущностей (граф предметной области) и соединения двух способностей:
Извлечение словарной карты и карты доменов
(Существует также множество примеров использования таких инструментов, как Langchain, Haystack и SpringAI.)
На этой диаграмме вы можете увидеть богатую структуру данных и представить себе новые возможности разработки и отладки, которые она открывает. Каждый фрагмент данных имеет свое значение, а сама структура хранит и передает дополнительное значение, которое вы можете использовать, чтобы сделать свое приложение более интеллектуальным.
Это не просто визуализация. Речь также идет о том, чтобы позволить вашим структурам данных передавать и хранить смысл. Вот реакция разработчика из известной финтех-компании всего через неделю после того, как они ввели графы знаний в рабочий процесс RAG:
Реакция разработчиков на GraphRAG
Реакция этого разработчика очень согласуется с гипотезой «разработки через тестирование», которая заключается в проверке (но не доверии) правильности ответа. Лично я был бы в ужасе, если бы меня попросили предоставить 100% моей автономии ИИ, процесс принятия решений которого совершенно непрозрачен. Точнее, даже если вы не верите в конец света искусственного интеллекта, вы согласитесь: если вы не можете сопоставить слова или документы, относящиеся к «Apple, Inc.», к компании «Apple Corps» (это две совершенно разные вещи), действительно будет иметь большую ценность. Поскольку в конечном итоге именно данные определяют генеративные решения ИИ, возможно, наиболее важно оценить и обеспечить правильность данных.
3. Управление: объяснимость, безопасность и многое другое
Чем больше влияние генеративного решения ИИ, тем больше вам нужно убеждать людей, которые в конечном итоге несут ответственность, если решение пойдет не так. Обычно это предполагает проверку каждого решения. Это требует надежного и воспроизводимого учета хороших решений. Но этого недостаточно. При принятии или отказе от решения также необходимо объяснить причины его принятия.
LLM сама по себе не справляется с этой задачей. Да, вы можете обратиться к документации, использованной для принятия этого решения. Но эти документы не объясняют само решение - не говоря уже о том, что LLM выдвинула источники. Графы знаний находятся на совершенно другом уровне, что делает логику рассуждений генеративного ИИ более понятной и упрощает интерпретацию входных данных.
Давайте продолжим приведенный выше пример: Чарльз из Lettria загрузил сущности, извлеченные из 10 000 финансовых статей, в граф знаний и использовал LLM для выполнения GraphRAG. Мы видим, что это действительно дает лучшие ответы. Давайте посмотрим на данные:
Загрузите сущности, извлеченные из 10 000 финансовых статей, в граф знаний.
Во-первых, представьте себе данные как график. Кроме того, мы можем перемещаться по данным и запрашивать их, а также пересматривать и обновлять их в любое время. Преимущество управления заключается в том, что становится намного проще просматривать и проверять «мировую модель» этих данных. Использование графика повышает вероятность того, что лицо, ответственное за решение, поймет причину решения, чем использование векторной версии тех же данных.
Когда дело доходит до обеспечения качества, если вы сможете поместить свои данные в график знаний, вам будет легче найти ошибки и неожиданности и отследить их до источника. Вы также можете получить информацию о происхождении и достоверности в графике, которую затем можно использовать в расчетах и интерпретациях. Вы просто не сможете сделать это с векторной версией тех же данных, и, как мы обсуждали ранее, векторизованные данные сложны для понимания обычным (и даже несредними) людьми.
Графики знаний также могут значительно повысить безопасность и конфиденциальность.
Безопасность и конфиденциальность часто не очень важны при создании прототипа, но они имеют решающее значение, если их нужно встроить в продукт. В регулируемых отраслях, таких как банковское дело или здравоохранение, доступ к данным любого сотрудника зависит от его должности.
Будь то LLM или векторная база данных, нет хорошего способа ограничить объем доступа к данным. Графы знаний могут стать хорошим решением, используя контроль разрешений для регулирования объема баз данных, к которым участники могут получить доступ, не позволяя им видеть данные, которые им не разрешено видеть. Ниже приведена простая политика безопасности, которая может реализовать детальный контроль разрешений в графе знаний:
Простая стратегия безопасности, которую можно реализовать в графах знаний.
Создайте график знаний
Что нужно для построения графа знаний? Первый шаг — понять два графика, наиболее важные для генеративных приложений ИИ.
Граф предметной области представляет модель мира, соответствующую текущему приложению. Вот простой пример:
Карта домена
Лексический граф – это граф структуры документа. Самый простой граф словаря состоит из узлов, состоящих из фрагментов слов:
словарная карта
Люди часто расширяют его, включая связи между частями, объектами документов (например, таблицами), главами, абзацами, номерами страниц, именами или номерами документов, коллекциями, источниками и т. д. Вы также можете объединить карты доменов и карты словаря, как показано ниже:
Объедините слой предметной области и слой словаря
Создать словарную карту очень просто, в основном это простой анализ и разбиение на фрагменты. Что касается карты домена, существуют разные пути создания в зависимости от источника данных (из источников структурированных данных, источников неструктурированных данных или обоих). К счастью, инструменты для создания графов знаний из неструктурированных источников данных быстро развиваются.
Например, новый Neo4j Knowledge Graph Builder может автоматически создавать диаграммы знаний с использованием PDF-документов, веб-страниц, видеороликов YouTube и статей Википедии. Весь процесс так же прост, как несколько щелчков кнопки, и вы можете визуализировать и запрашивать карты предметной области и словаря введенного вами текста. Этот инструмент очень мощный и интересный и может значительно снизить порог создания графиков знаний.
Что касается структурированных данных (например, структурированных данных, которые ваша компания хранит о клиентах, продуктах, географических местоположениях и т. д.), их можно напрямую отобразить в графе знаний. Например, для структурированных данных, которые чаще всего хранятся в реляционных базах данных, можно использовать некоторые стандартные инструменты для отображения связей в графах на основе проверенных и надежных правил.
Использовать граф знаний
Имея график знаний, вы можете создать GraphRAG. На выбор предлагается множество фреймворков, таких как Индекс графа свойств LlamaIndex, интегрированная версия Langchain Neo4j и интегрированная версия Haystack. Эта область быстро развивается, но сейчас метод программирования становится очень простым.
То же самое относится и к созданию графиков. Теперь появились такие инструменты, как Neo4j Importer (который может импортировать и отображать табличные данные в графиках через графический интерфейс) и вышеупомянутый Neo4j Knowledge Graph Builder. На рисунке ниже показаны этапы построения графа знаний.
Автоматически создавайте графики знаний для генеративного ИИ
Использование графов знаний также позволяет сопоставить вопросы человеческого языка с запросами к базе данных графов. Neo4j выпустила инструмент с открытым исходным кодом NeoConverse, который помогает использовать естественный язык для запроса графиков знаний: https://neo4j.com/labs/genai-ecosystem/neoconverse/
Хотя для того, чтобы начать использовать графики, требуется некоторое обучение, хорошая новость заключается в том, что по мере развития инструментов это становится проще.
Резюме: GraphRAG — это неизбежное будущее RAG.
Присущие LLM вычислительные и лингвистические навыки на основе слов в сочетании с векторным RAG могут привести к очень хорошим результатам. Чтобы стабильно получать хорошие результаты, необходимо выйти за пределы строкового уровня и построить модель мира над моделью слова. Аналогичным образом, Google обнаружил, что для того, чтобы освоить поиск, им нужно выйти за рамки простого анализа текста и наметить отношения между вещами, которые представляют собой строки. Мы начинаем видеть ту же самую картину, возникающую в мире ИИ. Этот режим — GraphRAG.
Кривая развития технологий имеет S-образную форму: после того, как одна технология достигнет своего пика, другая будет способствовать прогрессу и превзойдет первую. По мере развития генеративного ИИ будут возрастать и требования к сопутствующим приложениям — от качественных ответов до объяснимости до детального контроля прав доступа к данным, конфиденциальности и безопасности, также будет возрастать ценность графов знаний.
Эволюция генеративного ИИ
Ваше следующее приложение генеративного ИИ, вероятно, будет использовать граф знаний.
Справочная ссылка: https://neo4j.com/blog/graphrag-manifesto/