惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
D
DataBreaches.Net
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
F
Full Disclosure
V2EX - 技术
V2EX - 技术
N
News and Events Feed by Topic
Help Net Security
Help Net Security
L
LangChain Blog
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Google Online Security Blog
Google Online Security Blog
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
B
Blog RSS Feed
N
Netflix TechBlog - Medium
N
News | PayPal Newsroom
TaoSecurity Blog
TaoSecurity Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Vulnerabilities – Threatpost
B
Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
AI
AI
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cyberwarzone
Cyberwarzone
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
G
GRAHAM CLULEY
Vercel News
Vercel News
罗磊的独立博客
MyScale Blog
MyScale Blog
Last Week in AI
Last Week in AI
博客园 - 司徒正美
C
CERT Recently Published Vulnerability Notes
GbyAI
GbyAI
Scott Helme
Scott Helme
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
A
About on SuperTechFans
P
Privacy International News Feed

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Метан: как data governance и ИИ вместе создают интерфейс к данным
anvih (МТС) · 2026-05-18 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение9 мин

Охват и читатели217

Кейс

Хабр, привет! Меня зовут Андрей Вихров, я создавал аналитические системы и внедрял data governance (DG) в крупных компаниях больше 15 лет, а сейчас занимаюсь метаданными в Data Office МТС. Тема порядка в данных для меня не нова, а какие выгоды можно извлечь из нее сегодня — стоит отдельного рассказа.

В компании накоплен огромный массив данных — только в дата-каталоге зарегистрировано более 500 тысяч таблиц. С ними ежедневно работают сотни специалистов: от продуктовых аналитиков до инженеров данных, строящих витрины для ML-моделей.

Но в каталоге описаны в основном таблицы — их назначение, поля, владельцы, а вот терминов и тем более их связей на порядок меньше. И это объяснимо: формировать термины сложнее, в производственный процесс они вписываются с трудом, а польза от них неочевидна.

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

Логичный выход — автоматизировать процесс. Но если опытный аналитик справляется (рано или поздно) с задачей в существующих условиях, то ИИ-агент этого сделать уже не сможет, поскольку опирается только на метаданные.

В нашем случае сложились два фактора. За годы работы над DG мы накопили экспертизу в описании и структурировании метаданных. А появление LLM дало возможность создавать семантические слои на промышленной основе и использовать их для ответа на вопросы пользователей. Объединив одно с другим, мы создали и пилотируем систему Метан (метаданные + аналитика).

Метан состоит из двух компонентов:

  • Метан-тулкита, полуавтоматически строящего AI-ready метаданные. 

  • Метан-чата, который на их основе основе работает как интеллектуальный интерфейс к данным: понимает вопросы, подбирает источники, генерирует SQL и объясняет свои решения.

По сути, с его помощью метаданные становятся новыми данными — активом, приносящим осязаемую выгоду. Дальше расскажу, как устроен основанный на них Метан и что уже получилось.

Архитектура — знания поверх данных 

Основа концепции Метана — разделение семантического слоя описания данных на два уровня: 

  • уровень знаний (онтология): сущности, их дата-элементы и связи. «Количество уникальных абонентов», «название приложения», «дата начала периода» — элементы с определениями, типами, синонимами, примерами значений. Мы называем их «объектами онтологии» или «терминами», далее в тексте используются оба варианта.

  • уровень данных (физика): таблицы и поля. Один дата-элемент может быть реализован в нескольких таблицах с разной гранулярностью и глубиной хранения.

Разделение логического и физического уровней описания данных — идея не новая. Метан развивает её, используя сильные стороны каждого уровня как при создании метаданных, так и при навигации по ним.

Механика поиска — что, где, как

Поскольку пользователь мыслит объектами онтологии, агент следует той же логике: сначала находит нужные термины, затем подбирает лучшую физическую реализацию. В метан-чате это происходит в интерактивном диалоге, состоящем из трех этапов: «Что?», «Где?», «Как?».

Работа Метан-чата на основе двухуровневого семантического слоя

Работа Метан-чата на основе двухуровневого семантического слоя

Рассмотрим на примере поиска данных по Kion:

1. «Что?». Агент анализирует запрос и определяет, какие объекты онтологии упоминаются. В нашем случае он находит три термина и предлагает подтвердить понимание сути запроса:

Шаг 1. Поиск терминов

Шаг 1. Поиск терминов

На этом этапе пользователь может задать дополнительные вопросы про предложенные термины (он же находится на уровне знаний), и на основе ответов попросить другие варианты.

2. «Где?». Зная нужные термины, агент подбирает соответствующие таблицы и ранжирует их:

Шаг 2. Выбор таблиц (имена таблиц заменены)

Шаг 2. Выбор таблиц (имена таблиц заменены)

Можно согласиться или попросить подробнее рассказать об альтернативах и выбрать одну из них.

3. «Как?». Ориентируясь на выбранную таблицу агент генерирует SQL с комментариями: какие допущения сделаны, какие фильтры добавлены и почему. 

Шаг 3. Построение SQL. Фильтрregion = 'GLOB' взят из бизнес-правил таблицы

Шаг 3. Построение SQL. Фильтрregion = 'GLOB' взят из бизнес-правил таблицы

На каждом этапе агент объясняет свои решения, а пользователь может его направлять — скорректировать набор терминов, выбрать другую таблицу, уточнить условия. В итоге он получает не просто SQL, а управляет процессом его создания. По обратной связи мы видим что такой UX очень нравится пользователям. 

А еще на каждом из этапов используется наиболее подходящая технология поиска: семантическое сопоставление для терминов, графовый поиск для навигации по связям, LLM для генерации и ранжирования. 

Как устроен семантический слой AIMeta

AIMeta (семантический слой Метана) описывает предметную область на четырех уровнях: продукт (общие правила), термины (суть данных), таблицы (гранулярность, периодичность, сочетание полей) и поля (маппинг на термины).

Структура AIMeta задается с помощью манифеста — YAML-шаблона, который определяет иерархию объектов и правила их описания. Вот выжимка из структуры манифеста:

products:
  - product_name: "Customer App Tracker"
    product_descr: "Описание продукта, сущности, особенности данных"
 
terms:
  - term_name: "Количество уникальных абонентов"
    term_type: "Measure"        
    parent_term: "Пользовательская сессия"  # тип - "Fact"
    synonyms: [...]               
    term_rules: "Правила использования в SQL-запросах"
    term_descr: "Определение, использование, сэмплы, особенности"
 
tables:
  - table_name: "agg_application_sessions_m"
    granularity: "Время: month | Аналитика: приложение x абонент"
    table_descr: "Назначение, обновление, глубина, особенности"
    table_rules: "Правила использования в SQL-запросах"
 
fields:
  - field_name: "msisdn_count"
    term_id: "<ссылка на термин>"   # Связь слоя данных со слоем знаний

Типизация: встроили правила в структуру

Один из ключевых механизмов — типизация. Вот как она работает: 

  1. Каждый объект онтологии имеет тип, который определяет правила работы с ним как при сборке AIMeta, так и при её использовании.

  2. Сущности делятся на Fact (события), Masterdata (объекты) и Dictionary (классификаторы), а их дата-элементы на Key, Timekey (темпоральный ключ), Title, Measure и Attribute.

  3. Каждый тип содержит правила, которые агент применяет автоматически. Например, встретив Measure msisdn_count агент понимает, что нужна агрегация через SUM, а встретив Timekey period_start_dt у факта — фильтрует по периоду.

Единожды описав правила работы с типом дата-элемента, мы обеспечиваем их применение во всех таблицах и разных слоях хранилища, где есть этот тип. При подключении новой предметной области достаточно описать онтологию с правильными типами, а детали можно добавить в описание отдельных элементов.

Описание: нашли компромисс между AI и каталогом

Описание следует структуре MD-шаблона, на примере термина это разделы ## Определение, ## Использование, ## Сэмплы, ## Особенности.

Такой чёткий формат LLM парсит без ошибок, причем основное описание умещается в одно текстовое поле, которое можно совместить с существующим дата-каталогом, что важно для актуализации описаний. При этом часть ключевых атрибутов (например, бизнес-правила, синонимы, тип) выносятся в отдельные поля для нативного машинного доступа.

Полуавтоматическая генерация AIMeta

Создать семантический слой вручную для сотен и тысяч таблиц нереально. Поэтому на помощь приходит полуавтоматическая генерация, которая позволяет Метан-тулкиту переработать разнородные материалы в сжатый и структурированный вид. 

Генерация семантического слоя AIMeta в Метан-тулкит

Генерация семантического слоя AIMeta в Метан-тулкит

Готовим материалы

Для создания AIMeta мы собираем все, что содержит знания о данных: Confluence-страницы продуктов, дата-каталог, справочники значений, lineage, логи SQL-запросов и задачи аналитиков. Для разных продуктов доступны разные источники. 

Отдельный этап подготовки — обработка логов запросов по скоупу таблиц. На выходе получается: 

  • Дистиллят запросов полезная метаинформация, извлеченная из всего массива SQL: алиасы, джойны, литералы (текстовые условия), востребованность полей. 

  • Golden set — топ-30 популярных типов SQL-запросов и созданные на их основе запросы на естественном языке. Для создания такого сета запросы предварительно типизируются.

Из материалов создаем AIMeta

Разнородные источники пропускаются через LLM-агент, который, руководствуясь манифестом, извлекает нужные фрагменты и располагает их в целевой структуре.

Подготовка проходит в пять шагов:

  1. Создание онтологии — LLM-агент формирует сущности, дата-элементы и связи.

  2. Маппинг на слой данных — термины привязываются к полям таблиц, создаются недостающие термины.

  3. Описание генерируется базовое описание терминов и таблиц.  

  4. Обогащение — добавляются синонимы, примеры значений, правила использования. На этом шаге активно активно используется подготовленный ранее дистиллят запросов.

  5. Проверка — прогоняется набор базовых тестов с автофиксами: на полноту, синтаксис и тому подобное.

Результат визуализируется для ревью инженером. На каждом шаге человек также может вмешиваться, но только для точечных корректировок, что принципиально проще написания всего с нуля.

Результат тестируем и тюним на основе тестов

Качество тестируется на golden set. Агент генерирует свой SQL для каждого вопроса, после чего сравнивает результат с эталоном. Основная метрика — доля полей в сгенерированном SQL (разделы SELECT и WHERE), совпавших с эталонным запросом, аналог метрики "recall". Сейчас на пилотных областях ее уровень составляет порядка 90%.

Не менее важна детальная аналитика отклонений. Мы анализируем ошибки на двух уровнях и соответственно формируем реестр доработок описания онтологии или описание данных. Такие доработки также в значительной степени генерируются автоматически и добавляются в пайплайн создания AIMeta.

Есть ли подводные камни?

Когда мы рассказываем о Метане, слушатели часто высказывают естественные опасения. Они отражают реальные подводные камни, но для каждого мы нашли решение, подробнее ниже.

Проблема

Решение

LM это дорого

> Разные модели для разных задач.

Фронтирные модели используются для формирования онтологии и установления связей, лёгкие - для обогащения описаний и извлечения фактов, средние - для работы чата с пользователем. В результате сложилась ставка описания "один рубль за поле таблицы".

LLM галлюцинирует

> Ограничение на работу только с AIMeta и нулевая температура

Сейчас большинство остающихся ошибок связано с неточным описанием, галлюцинации единичны.

LLM утонет в потоке информации

> Порционное приготовление. 

Мы готовим AIMeta порциями по продуктам, а у крупных продуктов - по функциональным областям. Это позволяет помещать всю необходимую информацию в контекстное окно и иметь возможность оценить результат.

На Сonfluence много мусора

> Структурирование, лимитирование размера, механизм корректировок. 

Грубые ошибки корректируются тюнингом по golden set, более тонкие - экспертной корректировкой на описаниях через UI. Достигнутая точность ответов показывает что проблема в основном решена, но здесь еще есть куда расти.  

Термины привяжутся не туда

> Фокус на точность привязки в ущерб дедупликации.

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

При дальнейшем расширении могут появиться и другие сложности, например кросс-доменные запросы, обработка обновлений - но в рамках нашего подхода мы оцениваем их как вполне решаемые.

Как Метан меняет работу людей

У дата-стюардов функционал сдвигается к контекст-инжинирингу

Автоматизация не убирает человека из процесса подготовки метаданных, но сдвигает фокус с создания описаний с нуля к управлению тем, как понимает данные ИИ. Такую роль можно назвать «контекст-инженер» или «инженер по семантике». 

Он подбирает и комбинирует источники знаний для генерации AIMeta, оценивает результаты автотестов и направляет доработку, решает нестандартные задачи на стыке предметных областей.

Если дата-стюард отвечает за корректность метаданных, то контекст-инженер — за то, чтобы агент на основе этих метаданных принимал верные решения, причем количественно измеряемые на тестах.

У аналитиков появляется прозрачность процесса

Помимо удобной функциональности превращения вопроса в SQL, аналитики получают прозрачность процесса с двойным контролем:

  • Результат запроса контролируется через трехшаговый процесс, с возможностью корректировки на каждом шаге и пояснениями со стороны агента   

  • Контекст контролируется через знакомую структуру описания объектов онтологии (терминов), с возможностью точечно уточнять описания

Вместо заключения

В индустрии продолжается дискуссия: заменит ли ИИ традиционный data governance? Не станут ли ненужными каталоги и глоссарии, если модель может разобраться сама?

На нашем примере можно убедиться в обратном. LLM не заменит data governance, а сделает его работу еще полезнее. Полуавтоматическая генерация позволит создавать описания в разы быстрее, а агент будет подсказывать, где их не хватает, — через ошибки в тестах и уточняющие вопросы пользователей.

Чем точнее описания, тем лучше будет работать агент. А чем лучше работает агент, тем выше будет мотивация поддерживать эти описания. Кажется, именно этого сейчас не хватает классическому data governance.

Буду рад вопросам и обсуждению в комментариях. Особенно интересен опыт коллег, которые строят семантические слои для Text2SQL — с какими проблемами столкнулись, какие подходы сработали?

Что взяли из существующих решений

При поиске готовых решений мы не встречали вариантов с аналогичной архитектурой, но идея семантической навигации по данным развивается активно. Существующие подходы решают свои задачи, но сложно применимы к нашей реальности - сотни широких денормализованных витрин в legacy-хранилище, где одни и те же дата-элементы переиспользуются в разных слоях и разных продуктах.

Мы поделили существующие решения на три основных класса, в каждом из них нашлись идеи, которые мы смогли применить у себя:

  1. Text2SQL (Vanna.ai, DAIL-SQL) работают с DDL и few-shot примерами. На компактных схемах они показывают хорошие результаты, но на широких витринах страдают от комбинаторного взрыва, а примеры приходится поддерживать вручную. Мы взяли идею примеров, но используем их не как few-shot для модели, а как сырье для обогащения онтологии и формирования golden set тестов.

  2. Метрические слои (MetricFlow, Cube) строятся вокруг ручного проектирования метрик и измерений поверх таблиц. Требуют хорошо структурированных данных и значительных ресурсов на поддержку. Мы взяли идею состава объектов семантического слоя и структуризации сущностей.

  3. Онтологические платформы (Palantir Foundry, MS Fabric IQ) идеологически ближе всего — в них онтология используется как первоклассная сущность для AI-агентов. Но это экосистемы полного цикла, требующие миграции, а также предполагающие ручное моделирование. Мы взяли фокус на сущностях, но строим онтологию полуавтоматически поверх существующего хранилища.