Сделайте вашего ИИ-агента в 100 раз умнее с KAG

Владимир Карпухин·

Что такое KAG? [00:00]

  • KAG (Knowledge Augmented Generation) — это фреймворк для логического рассуждения и ответов на вопросы в профессиональных областях, делающий ИИ-агентов в 100 раз умнее и точнее [00:00]
  • Обычный RAG (Retrieval Augmented Generation) ищет информацию, ориентируясь только на векторное сходство, что приводит к проблемам с контекстом и несвязанными данными [01:00]
  • Graph RAG умнее обычного RAG, так как работает с контекстом и связанностью данных через сущности и отношения, но остается поисковой системой [03:08]
  • KAG представляет собой полноценного агента, который выстраивает план поиска, рефлексирует и ищет заново, используя графы, сущности, отношения и векторы с другой архитектурой [03:08]
  • KAG — это конкретный фреймворк от китайской компании Open SPG, появившийся осенью 2024 года, с малой информацией в интернете, но с репозиторием на GitHub и UI [04:30]

KAG builder [06:03]

  • KAG состоит из трех основных компонентов: KAG builder, KAG solver и KAG model [06:03]
  • KAG builder отвечает за построение графа знаний: документ семантически делится на логически завершенные чанки [06:03]
  • Извлечение информации происходит с помощью инструмента Open Information Extraction (OIE), который находит субъект, предикат и объект (SPO триплеты) [08:00]
  • Этап Knowledge Alignment склеивает дубликаты и разбирает синонимы, например, "А.С. Пушкин" и "Александр Пушкин" склеиваются в одну сущность [09:26]
  • Для каждой сущности создается краткое резюме (summary) и описание (description), чтобы система понимала, о каком именно экземпляре идет речь [09:26]
  • Извлеченные данные загружаются в графовую базу данных (например, Neo4j), где субъекты и объекты становятся сущностями, а предикаты — ребрами (relationships) [11:00]
  • Сущности и отношения ссылаются на исходные чанки в векторной базе данных, что называется взаимным индексированием (mutual indexing) [12:00]

KAG solver [13:53]

  • KAG solver — это агент, который ищет информацию в подготовленном графе знаний, используя логическую форму (logical form) для декомпозиции запроса и гибридного поиска [13:53]
  • Сложные многошаговые запросы (multi-hop queries) преобразуются в последовательность команд: retrieval (поиск), sort (сортировка), math (математические вычисления), deduce (вывод) и output (вывод) [15:54]
  • Пример сложного запроса: "Как часто случалась чума в городе, где родился композитор концерта До мажор Op. 3 № 6?" — KAG solver находит композитора (Антонио Вивальди), его место рождения (Венеция), а затем ищет информацию о чуме в Венеции [15:54]
  • При отсутствии ответа система запускает механизм рефлексии, переформулирует вопрос и ищет снова, чтобы получить точный ответ [15:54]
  • KAG solver может выполнять математические расчеты, например, "какова сумма 30 + 6 и возраст основателя Tesla в 2027 году?", комбинируя функции math и retrieval [17:00]
  • Основные функции logical forms: retrieval (извлечение данных на основе SPO триплетов), sort (сортировка), math (математические вычисления), deduce (вывод ответов), output (вывод переменных результатов) [18:58]

KAG model [18:58]

  • KAG model — это набор улучшений для больших языковых моделей (LLM), используемых в KAG для понимания языка, логического мышления и генерации ответов [18:58]
  • LLM улучшается за счет системных промтов и специальных fine-tuned моделей KAG, доступных на Hugging Face [20:00]
  • Существуют датасеты для fine-tuning моделей под задачи KAG, что должно повысить эффективность [21:07]

UI overview. Adding LLM and embedded data [21:20]

  • Интерфейс KAG включает вкладки: Knowledge Base, Tutorial, Website, Repository, Settings [21:20]
  • В Model Configuration можно подключить LLM и модель для преобразования векторов (embedding model) [22:00]
  • Data Source Configuration позволяет настраивать источники данных, а Monitoring — отслеживать использование токенов и активных пользователей [23:00]
  • Для подключения LLM можно использовать модели от OpenAI, Poul.ai через OpenRouter; для embedding моделей также подходят модели OpenAI [24:12]
  • При создании Knowledge Base необходимо указать китайское имя (Chinese name), английское имя (English name), описание (description), которое используется как промт для извлечения знаний [26:10]
  • Можно выбрать тип Knowledge Base: Local (локальное хранение) или External (подключение к внешним базам данных, например, S3-серверу) [27:10]
  • При локальном хранении используется графовая база данных Neo4j, установленная вместе с KAG [27:10]

Uploading a document to KAG. Creating a knowledge base [26:10]

  • Для создания Knowledge Base необходимо указать имя, описание (используемое как промт), выбрать тип (Local/External) и настроить векторную конфигурацию [26:10]
  • В Knowledge Base Builder можно создавать задачи (tasks) для загрузки документов через "Create Task" [28:00]
  • Документы можно загружать как локальные файлы (Local File), использовать данные с китайского сайта uQ.com (Sparrow Token) или подключать real-time данные [30:34]
  • При загрузке документа выбирается тип контента: structured (табличный) или unstructured (текстовый) [30:34]
  • На этапе настройки индексации доступны различные методы: KG Hybrid Index (рекомендуется), Atomic Query Index, Outline Index, Summary Index, Table Index, NaN Index [33:55]
  • KG Hybrid Index является наиболее мощным, так как комбинирует различные подходы к индексации [33:55]
  • После выбора настроек и модели извлечения (extraction model) запускается процесс создания графа знаний [33:55]

Searching for information in KAG. Creating an application [35:45]

  • После создания графа знаний можно перейти в раздел Retrieval для тестирования поиска без агента [35:45]
  • Для тестирования поиска можно выбрать типы индексов и модель LLM [35:45]
  • Создание приложения (Application) позволяет интегрировать KAG в другие системы и предоставляет API для взаимодействия [37:04]
  • При создании приложения можно выбрать тип Think Pipeline (для сложных задач) или более простой вариант (для средних и простых задач) [37:04]
  • Think Pipeline использует специальную LLM, но при подключении своей LLM через API рекомендуется выбирать "Think Pipeline" [37:04]
  • Опубликованное приложение можно использовать через публичный URL или API [39:50]

Displaying KAG via the API [39:50]

  • Для взаимодействия с KAG через API необходимо получить API ключ, создать сессию и затем отправлять запросы на чат комплекции [40:26]
  • N8N может быть использован для создания HTTP-запросов к API KAG, но не поддерживает режим стриминга ответов [43:21]
  • Режим стриминга, когда ответ приходит по частям, поддерживается в AI Agents N8N, но не в HTTP Request узлах [43:21]
  • При использовании HTTP Request узлов в N8N ответ собирается целиком, что может занимать много времени и возвращать большие JSON-файлы [43:21]
  • Для корректной работы со стримингом ответов KAG через API рекомендуется использовать код или специализированные инструменты, поддерживающие этот режим [46:30]
  • Проблема с API заключается в том, что N8N не поддерживает стриминг, что затрудняет интеграцию [46:30]

Why is KAG better than GraphRAG? [47:41]

  • KAG умнее GraphRAG, так как понимает связи между знаниями, умеет думать и связывать разную информацию для точного ответа [47:41]
  • KAG делит сложные вопросы на фрагменты, поэтапно выполняет их, создает карту знаний с взаимным индексированием и выравниванием знаний [47:41]
  • GraphRAG показывает, как связаны факты, но не объясняет почему; KAG — это "суперпрофессор" среди систем поиска ответов [47:41]
  • KAG может быть дороже, чем RAG, но дешевле, чем GraphRAG [48:51]

Installing KAG on the server [48:51]

  • Установка KAG возможна в двух режимах: Developer mode (через Python, больше настроек) и Product mode (через Docker, проще установка) [48:51]
  • Рекомендуемая конфигурация сервера для KAG: 8+ ядер CPU, 32 ГБ RAM, 100+ ГБ диска [48:51]
  • Для установки Product mode используется Docker, инструкция для установки предоставляется в виде скрипта [52:08]
  • После установки Docker и KAG необходимо настроить Firewall, разрешив необходимые порты (SSH, 887 для WebUI, 887/api для API) [52:08]
  • Доступ к WebUI осуществляется по IP сервера:порт 887, к API — по IP сервера:порт 887/api [52:08]
  • После установки требуется сменить пароль для доступа к WebUI [52:08]

Where is KAG already used? LLM context window [54:45]

  • KAG используется в электронном правительстве (Government Q&A) и электронном здравоохранении [54:45]
  • KAG — это инструмент, а не замена специалистов; для разных задач подходят разные решения [55:37]
  • Ожидается появление большего количества готовых KAG-фреймворков, которые будут решать множество задач без необходимости строить системы с нуля [55:37]
  • Knowledge Augmented Generation (KAG, через 'K') отличается от C-Augmented Generation (через 'C'), где весь документ помещается в контекстное окно LLM [55:37]
  • С ростом контекстного окна LLM (например, 1 млн токенов у Claude 3.5 Sonnet) возможно помещение больших объемов данных в системный промт, но это пока далеко от реализации для огромных датасетов [55:37]
  • Для больших объемов данных RAG и KAG остаются актуальными [55:37]

Это саммари создано в Summa AI

Summa AI — это Telegram-бот,
который смотрит видео за вас
и создает саммари
с ключевыми идеями.