NVIDIA Auto Ontology: открытый семантический слой для SQL-запросов ИИ-агентов

NVIDIA выложила в открытый доступ Auto Ontology — библиотеку под лицензией Apache 2.0, которая строит семантический слой поверх корпоративных метаданных. Задача слоя — не дать агенту сочинять SQL по наитию, а заставить его обращаться к заверенным бизнес-определениям. В репозитории проекта эта мысль сформулирована прямо: быстрый ответ про выручку ничего не стоит, если число в нём неверное.

Auto Ontology встаёт между агентом и хранилищем данных. Она сообщает агенту, где лежат данные, что означают поля, стоит ли пользоваться конкретным полем, как его применять и откуда оно взялось. Пять основных задач слоя — обнаруживать (генерировать онтологии из метаданных и подключать существующие семантические модели), заземлять (давать агенту доверенный смысл метрик, сущностей и связей), проверять (сверять сгенерированные запросы с заверенными определениями и происхождением данных), предоставлять доступ (через MCP, CLI и API) и обучаться (возвращать заверенные исправления обратно в онтологию).

Разработчик подчёркивает: на выходе получается стартовая онтология. Проверять, уточнять и заверять её всё равно должны эксперты предметной области.

Из чего состоит стек и где он запускается

В основе четыре сервиса. Фронтенд на Next.js 16 отвечает за веб-интерфейс и аутентификацию на порту 3000. Бэкенд на FastAPI с LangChain обслуживает чат, преобразование естественного языка в SQL и API каталога на порту 3001. Воркер загрузки пишет эмбеддинги на порту 3002. Postgres с pgvector хранит каталог, онтологию и векторы.

Источниками данных могут быть Databricks, Postgres, Snowflake или DuckDB. Модели задаются через переменные окружения — тройки из адреса эндпоинта, ключа и имени модели. Роли разделены: отдельно для рассуждающих и нерассуждающих моделей, отдельно для эмбеддингов и переранжирования. Подойдёт любой эндпоинт, совместимый с OpenAI.

Локальный запуск — docker compose up -d --build после заполнения .env. Для Kubernetes есть Helm-чарт и руководство DEPLOYMENT.md. Бэкенд также опубликован как контейнер NGC. Ключ API с build.nvidia.com покрывает модели по умолчанию.

Девять инструментов MCP и 87 операций OpenAPI

Сервер MCP предоставляет девять инструментов только для чтения. ask_question возвращает ответ, SQL-запрос и строки результата отдельными полями, результат ограничен 100 строками. check_readiness проверяет, что скомпилированный семантический слой и живое подключение к базе существуют. Инструмента для просмотра сырых схем нет — это сделано намеренно, чтобы агенты доходили до данных только через семантический слой. Спецификация OpenAPI публикует 87 операций. Вход через OAuth, и каждый вызов несёт права вошедшего пользователя.

Как проверяли и что осталось непроверенным

Для оценки NVIDIA выпустила отдельный стенд auto-ontology-eval. Он прогоняет два варианта в NeMo Gym: контрольную LLM, работающую только со схемой, и агента, заземлённого на онтологию. Оценка детерминированная — по совпадению исполнения, без судьи-LLM.

В комплект входят датасеты BIRD Dev (1534 вопроса, 11 баз данных) и Mini-Dev (500 вопросов). FDABench-Lite добавляет 169 вопросов, BEAVER по умолчанию берёт выборку из 100 вопросов.

Сам репозиторий стенда честно перечисляет два ограничения. Необязательные few-shot примеры и привязки значений подаются только в ветку с онтологией — измеренная с ними дельта покрывает и эти входные данные, а не одно лишь заземление. Кроме того, в протестированной конфигурации обе ветки шли через модель Claude на инференс-шлюзе NVIDIA.

Заявленный результат — сокращение времени создания онтологии на 90% в тестах самой NVIDIA. Публичных оценок точности text-to-SQL при этом нет: репозиторий оценки поставляет стенд, а не результаты. Вывод из этого простой — открытый и готовый к MCP контекстный слой, который может опрашивать любой агентский каркас, но доверять ему стоит только после собственного прогона бенчмарков.

Чем отличается от других семантических слоёв

Возможность NVIDIA Auto Ontology Wren AI Cube Core dbt MetricFlow
Лицензия Apache 2.0 Apache 2.0 core (open core) Apache 2.0 backend, MIT client Apache 2.0 (v0.209.0+)
Как строится слой Генерируется из метаданных, затем заверяется Контекстные файлы в Git с помощью агента Определяется в коде Определяется в коде в проекте dbt
Интерфейс для агента MCP, CLI, REST API MCP, CLI, SDK SQL, REST, GraphQL API Python-библиотека и CLI
Источники данных Databricks, Postgres, Snowflake, DuckDB 22+ Все SQL-источники Через адаптеры dbt
Модели по умолчанию Nemotron через NVIDIA NIM Не раскрываются Не применимо Не применимо

Что это значит для администратора

Auto Ontology — не готовый продукт, а каркас, который придётся доводить. Модель по умолчанию — nvidia/nemotron-3-nano-30b-a3b вместе с эмбеддингами и моделью переранжирования от Nemotron. Но требование к совместимости с OpenAI снимает привязку к NVIDIA: инференс можно направить на собственный NIM или на другой совместимый эндпоинт. Для тех, кто уже держит Postgres, стек собирается локально одной командой, а pgvector обычно знаком по другим проектам.

Практический риск — доверие к цифрам. Слой создан ровно для того, чтобы агент не выдумывал метрики, но стартовую онтологию кто-то должен проверить. Если в компании нет человека, который заверяет определения выручки и клиентов, автоматическая генерация просто перенесёт путаницу в онтологию, и агент будет уверенно выдавать неверный SQL.

Смежные материалы по теме: открытый оркестратор GPU для Kubernetes от NVIDIA и стек распределённого инференса LLM для Kubernetes.

Частые вопросы

Под какой лицензией выходит Auto Ontology?

Apache 2.0. Это полноценная открытая лицензия, а не open core с платной частью, как у Wren AI.

Какая модель используется по умолчанию?

nvidia/nemotron-3-nano-30b-a3b, плюс эмбеддинги и модель переранжирования Nemotron. Инференс идёт через размещённые эндпоинты NVIDIA NIM или собственные NIM.

Можно ли обойтись без инфраструктуры NVIDIA?

Да. Подойдёт любой эндпоинт, совместимый с OpenAI, — модели задаются через переменные окружения из адреса, ключа и имени.

Какие базы данных поддерживаются как источники?

Databricks, Postgres, Snowflake и DuckDB.

Как развернуть локально?

Заполнить .env и выполнить docker compose up -d --build. Для Kubernetes есть Helm-чарт и руководство DEPLOYMENT.md.

Агент может посмотреть сырые схемы таблиц?

Нет. Инструмента для просмотра сырых схем в MCP-сервере нет намеренно — доступ к данным идёт только через семантический слой.

Сколько строк возвращает ask_question?

Не больше 100. Ответ, SQL-запрос и строки результата приходят отдельными полями.

Есть ли опубликованные оценки точности text-to-SQL?

Нет. Репозиторий auto-ontology-eval содержит стенд, а не результаты, поэтому бенчмарки нужно прогонять самостоятельно.

Что означает заявленное сокращение времени создания онтологии на 90%?

Это результат тестирования самой NVIDIA, самостоятельно ею же и опубликованный. Независимого подтверждения в статье не приводится.

Кто должен проверять сгенерированную онтологию?

Эксперты предметной области. NVIDIA прямо называет результат стартовой онтологией, которую бизнес-специалисты тестируют, уточняют и заверяют.

Источник: marktechpost.com