Сделайте вашего ИИ-агента в 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-бот,
который смотрит видео за вас
и создает саммари
с ключевыми идеями.