Академия OpenAI на русском

Улучшаем RAG с помощью графов знаний Автоматизация через GraphRAG и API OpenAI

Для разработчиков
Чему вы научитесь
~53 минуты просмотра
🧠
Что такое графы знаний (КГ): Поймете, как они моделируют сущности и их связи для точного извлечения структурированной информации.
Автоматизация с помощью ИИ (Graph RAG): Узнаете, как LLM (GPT-4) переводят запросы на естественном языке в код Cypher для взаимодействия с графами знаний.
Преимущества и применение: Разберетесь, когда Graph RAG эффективнее векторного поиска (точные подсчеты, запросы о связях, верифицируемость) и почему это важно.
🛠️
Практическая реализация: Познакомитесь с основными шагами для создания конвейера Graph RAG: от определения онтологии до выполнения Cypher через API OpenAI.

Словарь Терминов

Cypher (Шифр)
Декларативный язык запросов для графовых баз данных (например, Neo4j). Позволяет описывать шаблоны узлов и связей для поиска и извлечения данных из графа. Аналог SQL для графов.

Embedding (Встраивание / Векторное представление)
Процесс преобразования данных (текста, узлов графа и т.д.) в числовые векторы таким образом, чтобы семантически схожие элементы имели близкие векторы в многомерном пространстве. Используется в векторном поиске.

Entity (Сущность / Объект)
Предмет, событие, концепция или любой другой элемент реального мира, который моделируется в графе знаний. Представляется в виде узла (Node).

Formal Execution Mechanism (Формальный механизм выполнения)
Ключевое преимущество Graph RAG. Означает, что сгенерированный LLM запрос (Cypher) реально выполняется на графовой базе данных. Результаты основаны на фактических данных и связях в графе, что повышает надежность и проверяемость ответа по сравнению с прямым выводом LLM.

Function Calling (Вызов функции)
Функциональность API больших языковых моделей (например, OpenAI), позволяющая модели не просто генерировать текст, но и запрашивать выполнение заранее определенных функций (например, функции для выполнения Cypher-запроса) и использовать результат для формирования итогового ответа.

Graph Database (База данных графов)
Тип базы данных, оптимизированный для хранения и обработки данных в виде графовой структуры (узлы, связи, свойства). Примеры: Neo4j.

Graph RAG (GraphRec)
Разновидность RAG, где источником знаний для LLM выступает граф знаний (Knowledge Graph). LLM генерирует запрос (например, Cypher) к графовой базе данных для извлечения точной, структурированной информации, которая затем используется для генерации ответа.

Knowledge Graph (Граф знаний / КГ)
Структура данных, которая представляет информацию в виде сети связанных сущностей (узлов) и их отношений (связей/ребер). Позволяет моделировать сложные взаимосвязи и выполнять семантический поиск. Также называется Семантической сетью (Semantic Network).

LLM (Large Language Model / Большая языковая модель)
Тип ИИ-модели (например, GPT-4), обученный на огромных объемах текстовых данных, способный понимать, генерировать и обрабатывать человеческий язык, а также генерировать код (включая Cypher).

Neo4j
Популярная графовая база данных, используемая в демонстрации видео для хранения и запроса графа знаний с помощью Cypher.

Node (Узел)
Основной элемент графа знаний, представляющий сущность (например, пациент, врач, лекарство, болезнь).

Ontology (Онтология)
Формальное описание структуры графа знаний. Определяет типы узлов, типы связей между ними и их свойства (атрибуты). По сути, это схема графовой базы данных.

Pipeline (Конвейер)
Последовательность шагов или процессов, через которые проходят данные или запрос в системе. В контексте видео — конвейер обработки запроса в системе RAG (например, запрос -> генерация Cypher -> выполнение Cypher -> получение результатов -> генерация ответа LLM).

Pydantic
Библиотека Python, упомянутая в видео для определения моделей данных (структуры узлов и их свойств), что помогает в создании и валидации онтологии графа.

RAG (Retrieval-Augmented Generation / Генерация с дополненным извлечением)
Техника ИИ, при которой LLM перед генерацией ответа извлекает релевантную информацию из внешнего источника знаний (например, базы данных, набора документов, графа знаний), чтобы сделать ответ более точным, актуальным и обоснованным.

Relationship (Связь / Ребро)
Элемент графа знаний, соединяющий два узла и описывающий тип их взаимосвязи (например, "прописан", "лечит", "специализируется на").

Semantic Network (Семантическая сеть)
Синоним графа знаний, подчеркивающий, что связи в сети несут смысловую (семантическую) нагрузку.

Transpiler (Транспилятор)
В контексте видео, LLM выступает как транспилятор, преобразуя запрос на одном языке (естественный язык) в код на другом языке (Cypher).

Triple (Тройка / Триплет)
Базовая единица представления данных в графе знаний, состоящая из трех частей: Субъект (узел) - Предикат (связь) - Объект (узел или значение). Пример: (Пациент А) - [ПРОПИСАН] -> (Магний).

Vector Search (Векторный поиск)
Метод поиска информации, основанный на сравнении векторных представлений (embeddings) запроса и данных. Находит наиболее "близкие" по смыслу фрагменты данных. Часто используется в RAG для неструктурированных данных (текста), но, как показано в видео, может быть менее точным для структурированных запросов (подсчеты, связи), чем Graph RAG.

Полезные ссылки

Neo4j
Сайт: https://neo4j.com/
Документация Cypher: https://neo4j.com/docs/cypher-manual/current/
Ведущая платформа графовых баз данных, использованная в демонстрации. На сайте можно найти документацию, примеры, информацию о языке запросов Cypher и скачать саму базу данных.

OpenAI
Сайт: https://openai.com/
Документация API: https://platform.openai.com/docs/
Компания-разработчик LLM (GPT-4), использованных в видео. Документация API содержит информацию о моделях, ценах и функциональности (включая Function Calling). OpenAI Academy - образовательная инициатива, организатор мероприятия.

Pydantic
Документация: https://docs.pydantic.dev/
Библиотека Python, которая использовалась для определения структуры данных (онтологии) узлов графа перед загрузкой в Neo4j.

Synthea™ Patient Generator
https://synthetichealth.github.io/synthea/
Инструмент с открытым исходным кодом для генерации синтетических медицинских записей (данных пациентов), подобных тем, что использовались для наполнения графа в демонстрации.

LlamaIndex
https://www.llamaindex.ai/
Фреймворк для создания приложений на базе LLM, упрощающий подключение к различным источникам данных, включая графовые БД. Упомянут в Q&A.

LangChain
https://www.langchain.com/
Еще один популярный фреймворк для разработки приложений с использованием LLM, также упомянут в Q&A как возможный инструмент.
🚀
Доступ к API ведущих AI-моделей из России
Интегрируйте GPT-4o, Claude 3, Midjourney, Gemini и другие нейросети в ваши проекты. Стабильный доступ без VPN, оплата в рублях, договор и закрывающие документы для юрлиц.
Подробнее о API и тарифах