Schema linking и NER в доменной базе
Пользователь пишет естественный запрос к большой корпоративной базе. Как матчить сущности, аббревиатуры, таблицы и колонки?
Короткий ответ
Нужны data catalog, glossary, aliases, embeddings по описаниям таблиц/колонок, entity extraction и reranking кандидатов с учетом доступа и бизнес-домена.
Полный разбор
В больших базах названия колонок часто не совпадают с языком пользователя. Поэтому нужен слой metadata: описания таблиц, owner, бизнес-сущности, aliases, аббревиатуры, примеры запросов и ограничения доступа.
Pipeline: извлечь из запроса сущности и намерение, найти candidate tables/columns через lexical и embedding retrieval по catalog, затем rerank с учетом домена, joinability и истории успешных запросов. Для аббревиатур полезны словарь и human feedback от аналитиков.
Важно учитывать безопасность: даже если таблица семантически подходит, пользователь может не иметь доступа. Хороший ответ также упоминает ручную разметку golden examples и continuous improvement по rejected/edited SQL.
Теория
Schema linking - это bridge между естественным языком и физической схемой данных. Без него Text2SQL быстро путает похожие метрики и таблицы.
Типичные ошибки
- Думать, что LLM сама запомнит всю схему.
- Не учитывать aliases и доменные аббревиатуры.
- Не фильтровать кандидатов по правам доступа.
Как отвечать на собеседовании
- Назови data catalog и glossary.
- Раздели retrieval кандидатов и reranking.