Хайп? Философия? Повседневность? Будущее?
Давайте разбираться.
TL;DR:
Онтология в IT - это способ структурировать знания о мире в виде связанных категорий и их свойств.
Например, в онтологии "Игры престолов" есть категории "дома", "персонажи" и связи между ними. Когда мы наполняем онтологию реальными данными, получается граф знаний.
Семантический слой - это более абстрактное понятие, включающее все способы придания смысла данным.
Вместе они помогают ИИ-системам лучше понимать контекст и давать более точные ответы.
Динамические онтологии используются для выявления скрытых связей в больших объемах данных, что помогает принимать более обоснованные бизнес-решения.
Онтология - это формальное представление категорий объектов, их свойств и взаимодействий.
Если для примера взять Игру Престолов, то онтология будет включать такие категории как "великие дома", "замки", "персонажи", и т.д.
В этой же онтологии связи между категориями могут быть следующими:
a → союзничает с → b
x → правит → y
z → принял присягу → w
В применении к LLM, онтология - это описание информации в структурированном виде. А если мы к этой структуре добавим саму информацию (например, Баратеоны, Старки, Винтерфелл, и т.д.), то получим граф.
То есть если онтология - это модель данных, то граф - это реализация этой модели.
Задача онтологии - создать мост между сырыми данными и их смысловыми концепциями, и тем самым предоставить удобный формат, который и понятен человеку, и может быть обработан алгоритмически.
Многие современные системы, использующие большие языковые модели, применяют RAG-подходы - то есть сначала из структурированного хранилища данных выбирается информация, релевантная пользовательскому запросу, а потом эта выборка скармливается LLM для формирования осмысленного ответа. Так вот часть таких RAG-систем строятся на графовых базах данных, например Neo4j.
Используя схему графа, включающую сущности и их отношения, LLM-системы могут лучше понимать контекст, более точно выбирать релевантную информацию и минимизировать галлюцинации при формировании ответа.
В простом случае, создание схемы графа, или онтологии, предполагает определения концепций предметной области и их взаимосвязей, и выполняется, как правило, экспертно.
Однако если работать с большим объёмом данных, то рано или поздно начинают проявляться скрытые взаимосвязи, например, зависимость продаж от прогноза погоды, или связь качества доставки заказов с футбольными матчами чемпионата мира. И такие зависимости, как правило, очень сложны в понимании и предсказании. Экспертно выделить такие связи практически невозможно.
На помощь приходит динамическая онтология. Существуют системы, позволяющие на основании сырых данных строить онтологии автоматически. То есть система сама выделяет значимые сущности и их взаимосвязи.
Платформы подобные Palantir позволяют аккумулировать сырые данные из различных источников (например, ERP, CRM, IoT датчики, кликстрим, видеопоток, и т.д.), выявлять в них паттерны, прогнозировать ход бизнес-процессов, и формировать логические и аргументированные решения.
Интегрируя и обрабатывая данные, прогнозируя события и действия, в подобных платформах выстраивается цифровая модель нашего мира, с которой можно взаимодействовать как пользователям, так и ИИ-агентам.
Можно пойти ещё дальше. Если у нас есть система, к которой подключены все наши бизнес-приложения и хранилища данных (скажем, SAP, Salesforce, Jira, Ms Office и пр.), и эта система умеет формировать бизнес-решения (например, нужно ли заказать техобслуживание автомобиля, или отправить напоминалку клиенту), то эта же система сможет не только подсказать, что нужно сделать, чтобы увеличить бизнес-метрики, но и сделать это самостоятельно.
Но как бы ни были привлекательны перспективы создать сверхразум для бизнеса, подобные технологические платформы несут за собой ряд новых задач. Динамически создаваемая онтология всё равно нуждается в человеческой валидации. Отсюда вырастают процессы управления, контроля, версионирования, тестирования и мониторинга онтологий. Уже представили себе департамент, который будет заниматься Ontology Governance? Про техническую сложность я вообще молчу.
Неужели онтология - это настолько сложно?
На самом деле, онтологии в графовых структурах достаточно распространены. Существуют даже стандарты для описания онтологий. Самые известные - это RDF и OWL.
Resource Description Framework (RDF) - это фреймворк для моделирования и обмена данными в сети интернет. Он включает набор спецификаций для представления данных в виде триплетов: субъект-предикат-объект.
Например: Sansa Stark → Ruler of → Winterfell
Web Ontology Language (OWL) - это язык для создания онтологий в интернете. Он основывается на RDF и предоставляет способ описания концептуальных сущностей (классов) и их взаимосвязей.
В заключении несколько слов про семантику.
В отличие от онтологии, которая выражается в структурированном виде (в виде кода или графа), имеет стандарты, фреймворки и свой язык, семантика (или семантический слой) - это обобщённое понятие, суть которого - придание смысла данным.
Семантический слой - это зонтичный термин, который может представлять собой описание модели данных, метаданных, правил взаимодействия, политики, спецификации API, механизмы кеширования и преобразования данных и любую другую информацию, которая позволит нашим данным иметь какой-то смысл.
Задача семантического слоя - обеспечить согласованность и прозрачность данных.
Представьте, что у нас есть данные о продажах из CRM и данные о доставках из логистической системы. Семантический слой может включать определение «проблемного заказа», описание меппинга заказов между системами, формулы расчета времени доставки и пр.
В отличие от строгой структуры онтологии, семантический слой может быть представлен в текстовом формате, конфигурационных файлах, коде, схемах и т.д.