<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Yuriy Gavrilov: posts tagged MCP</title>
<link>https://gavrilov.info/tags/mcp/</link>
<description>Welcome to my personal place for love, peace and happiness 🤖 Yuiry Gavrilov</description>
<author></author>
<language>en</language>
<generator>Aegea 11.4 (v4171e)</generator>

<itunes:owner>
<itunes:name></itunes:name>
<itunes:email>yvgavrilov@gmail.com</itunes:email>
</itunes:owner>
<itunes:subtitle>Welcome to my personal place for love, peace and happiness 🤖 Yuiry Gavrilov</itunes:subtitle>
<itunes:image href="https://gavrilov.info/pictures/userpic/userpic-square@2x.jpg?1643451008" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>Действительно ли данные готовы к ИИ</title>
<guid isPermaLink="false">321</guid>
<link>https://gavrilov.info/all/deystvitelno-li-dannye-gotovy-k-ii/</link>
<pubDate>Sat, 14 Mar 2026 00:19:28 +0300</pubDate>
<author></author>
<comments>https://gavrilov.info/all/deystvitelno-li-dannye-gotovy-k-ii/</comments>
<description>
&lt;p&gt;&lt;b&gt;Автор: Джейкоб Мэтсон&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://motherduck.com/blog/bird-bench-and-data-models"&gt;https://motherduck.com/blog/bird-bench-and-data-models&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Несколько месяцев назад я писал о том, почему нам может &lt;a href="https://motherduck.com/blog/who-needs-a-semantic-layer-anyway"&gt;не понадобиться семантический слой&lt;/a&gt;. Аргумент заключался в том, что ИИ может обнаруживать бизнес-логику из истории запросов, вместо того чтобы заставлять людей заранее определять каждую метрику. Я верил в это. Но у меня не было данных, чтобы это доказать.&lt;/p&gt;
&lt;p&gt;Теперь они у меня есть.&lt;/p&gt;
&lt;p&gt;Все началось с вопроса одного из наших инвесторов: *“Как различные модели справляются с BIRD при использовании MotherDuck MCP?”* Поэтому я провел эксперимент. Три передовые LLM модели (`Claude Opus 4.5`, `GPT-5.2` и `Gemini 3 Flash`), каждая из которых подключена к базе данных через сервер `MotherDuck MCP`, были запущены на наборе данных `BIRD Mini-Dev`.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Пояснение:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MCP (Model Context Protocol):** Стандарт, позволяющий ИИ-моделям безопасно и стандартизировано подключаться к внешним источникам данных и инструментам.&lt;/li&gt;
&lt;li&gt;BIRD (BIg Bench for Large-scale Database Grounded Text-to-SQL):** Популярный и сложный бенчмарк (набор тестов) для оценки того, насколько хорошо нейросети умеют переводить естественный язык в SQL-запросы.&lt;/li&gt;
&lt;li&gt;Mini-Dev:** Это официальная выборка из 500 вопросов для разработки из бенчмарка BIRD. Она охватывает 11 баз данных в сферах финансов, спорта, образования и здравоохранения.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Модели данных здесь простые. В среднем 7 таблиц на базу данных. Ни в одной нет больше 13 таблиц. Объединения (joins) в основном «один-ко-многим», максимальная глубина — два или три перехода, ноль отношений «многие-ко-многим». Это тот тип схемы, который можно понять за пять минут, прочитав `DDL`.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Пояснение:&lt;/b&gt; `DDL` (Data Definition Language) — это часть SQL, используемая для описания структуры базы данных (создание таблиц, колонок, связей).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Результат? &lt;b&gt;95% точности.&lt;/b&gt; Никакого семантического слоя. Никакой истории запросов. Никакого специального контекста. Только схема базы данных.&lt;/p&gt;
&lt;p&gt;Но это число требует «звездочки» (примечания), и, честно говоря, эта звездочка — самая интересная часть.&lt;/p&gt;
&lt;h3&gt;Что на самом деле означают 95%&lt;/h3&gt;
&lt;p&gt;Вот что я измерял на самом деле.&lt;/p&gt;
&lt;p&gt;Бенчмарк BIRD оценивает точность, используя &lt;b&gt;Execution Accuracy (EX)&lt;/b&gt;: запускается предсказанный SQL и «золотой» (эталонный) SQL, сравниваются наборы результатов, и ставится бинарная оценка «сдал/не сдал». При этих строгих правилах текущий уровень развития технологий (SOTA) составляет около 76. Мои модели набрали 64 на тренировочной выборке и 58 на тестовой.&lt;/p&gt;
&lt;p&gt;Звучит плохо. Но у строгой оценки BIRD есть хорошо задокументированная проблема. В статье 2025 года, представляющей метрику `FLEX`, было обнаружено, что точность выполнения (execution accuracy) BIRD совпадает с оценками экспертов-людей только в 62% случаев. Почти 4 из 10 суждений ошибочны, в основном это ложноотрицательные результаты, когда бенчмарк отвергает ответы, которые люди бы приняли.&lt;/p&gt;
&lt;p&gt;Эти 62 бросились мне в глаза, потому что они почти точно совпадают с моей смешанной точностью при строгой оценке в 60.5 (64 обучение / 58 тест). То же наблюдение, но с другой стороны. Метрика `FLEX` пришла к этому с помощью проверяющих людей. Я пришел к этому, ослабив условия тестирования.&lt;/p&gt;
&lt;p&gt;Подумайте, что это значит для таблицы лидеров. Если бенчмарк согласен с людьми только в 62 случаев, то чтобы набрать выше 62 по строгим правилам, вы должны начать воспроизводить ошибки бенчмарка. Вы перестаете учиться писать правильный SQL. Вы начинаете учиться соответствовать специфической, иногда ошибочной интерпретации каждого вопроса в BIRD. Системы с рейтингом 76 закрепили эти ошибки суждения в своем обучении. Они получают более высокие баллы, становясь *хуже* в выполнении реальной задачи.&lt;/p&gt;
&lt;p&gt;Поэтому я построил более реалистичную оценку. Я разделил 500 вопросов на тренировочный набор (151 вопрос) и тестовый набор (349 вопросов).&lt;/p&gt;
&lt;p&gt;Я использовал &lt;b&gt;тренировочный набор (train)&lt;/b&gt; для калибровки оценки: вручную пересматривал ошибки, создавал исправленные «платиновые» ответы там, где «золотой» SQL BIRD был ошибочным, и настраивал правила частичного совпадения. &lt;b&gt;Тестовый набор (test)&lt;/b&gt; был контрольным.&lt;/p&gt;
&lt;p&gt;Вот как выглядит точность, если смягчать критерии оценки уровень за уровнем:&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Уровень оценки (Scoring Tier)&lt;/td&gt;
&lt;td style="text-align: center"&gt;Train&lt;/td&gt;
&lt;td style="text-align: center"&gt;Test&lt;/td&gt;
&lt;td style="text-align: center"&gt;Что добавляется&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Только совпадение с Gold&lt;/b&gt; (≈ офиц. BIRD)&lt;/td&gt;
&lt;td style="text-align: center"&gt;64.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;58.2&lt;/td&gt;
&lt;td style="text-align: center"&gt;Строгое равенство наборов результатов&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;+ Платиновые ответы&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;73.1&lt;/td&gt;
&lt;td style="text-align: center"&gt;58.5&lt;/td&gt;
&lt;td style="text-align: center"&gt;Исправляет известные ошибки в «золотом» SQL BIRD (см. примечание ниже)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;+ Допуск форматирования&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;78.8&lt;/td&gt;
&lt;td style="text-align: center"&gt;65.5&lt;/td&gt;
&lt;td style="text-align: center"&gt;Различия в `DISTINCT`, лишние колонки, округление&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;+ Судья LLM&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.9&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.4&lt;/td&gt;
&lt;td style="text-align: center"&gt;“Принял бы человек этот ответ?”&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Примечание:&lt;/b&gt; «Платиновые» исправления существуют только для тренировочного набора, так как я вручную проверил эти 151 вопрос. Вот почему уровень «Платина» почти не меняется на тесте +0.3 pp против +9.1 pp на тренировке). Но посмотрите на уровень с судьей: 94.9 на тренировке и 94.4 на тесте. Разница всего в половину процентного пункта. Оценка держится на контрольной выборке даже без моих исправлений вручную.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Результаты тренировочной выборки (151 вопрос, все 3 модели):&lt;/h4&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Модель&lt;/td&gt;
&lt;td style="text-align: center"&gt;STRICT (≈ BIRD EX)&lt;/td&gt;
&lt;td style="text-align: center"&gt;REALISTIC&lt;/td&gt;
&lt;td style="text-align: center"&gt;Общая стоимость&lt;/td&gt;
&lt;td style="text-align: center"&gt;Вызовы инструментов (P5 / Median / P95)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`Gemini 3 Flash`&lt;/td&gt;
&lt;td style="text-align: center"&gt;68.2&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;1.80&lt;/td&gt;
&lt;td style="text-align: center"&gt;3 / 6 / 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`Claude Opus 4.5`&lt;/td&gt;
&lt;td style="text-align: center"&gt;64.9&lt;/td&gt;
&lt;td style="text-align: center"&gt;95.4&lt;/td&gt;
&lt;td style="text-align: center"&gt;26.37&lt;/td&gt;
&lt;td style="text-align: center"&gt;4 / 6 / 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`GPT-5.2`&lt;/td&gt;
&lt;td style="text-align: center"&gt;58.9&lt;/td&gt;
&lt;td style="text-align: center"&gt;95.4&lt;/td&gt;
&lt;td style="text-align: center"&gt;6.87&lt;/td&gt;
&lt;td style="text-align: center"&gt;4 / 7 / 12&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h4&gt;Результаты тестовой выборки (349 вопросов, 2 модели):&lt;/h4&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Модель&lt;/td&gt;
&lt;td style="text-align: center"&gt;STRICT (≈ BIRD EX)&lt;/td&gt;
&lt;td style="text-align: center"&gt;REALISTIC&lt;/td&gt;
&lt;td style="text-align: center"&gt;Общая стоимость&lt;/td&gt;
&lt;td style="text-align: center"&gt;Вызовы инструментов (P5 / Median / P95)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`Gemini 3 Flash`&lt;/td&gt;
&lt;td style="text-align: center"&gt;60.7&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.6&lt;/td&gt;
&lt;td style="text-align: center"&gt;3.96&lt;/td&gt;
&lt;td style="text-align: center"&gt;4 / 6 / 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`GPT-5.2`&lt;/td&gt;
&lt;td style="text-align: center"&gt;55.6&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.3&lt;/td&gt;
&lt;td style="text-align: center"&gt;15.32&lt;/td&gt;
&lt;td style="text-align: center"&gt;4 / 7 / 11&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;*Примечание: `Claude Opus` не запускался на тестовом наборе. После того как все три модели сошлись на ~95% на тренировке, тратить еще 60+, чтобы доказать то же самое на 349 вопросах, показалось нецелесообразным.*&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Медианная модель делает 6-7 вызовов инструментов MCP на вопрос при лимите в 10 итераций. Типичный вопрос выглядит так: изучить схему, просмотреть некоторые колонки, набросать запрос, проверить результаты, уточнить, готово. Некоторые модели, такие как `GPT-5.2`, делают несколько вызовов инструментов за итерацию, поэтому его показатель P95, равный 12, превышает лимит итераций.&lt;/p&gt;
&lt;p&gt;Все три модели достигают &lt;b&gt;94-95% при реалистичной оценке&lt;/b&gt;, независимо от того, где они начинают при строгой оценке. На тренировочной выборке разрыв между «лучшим» и «худшим» сокращается с 12.6 процентных пунктов до 1.4. На тесте — с 5.1 до 0.3. Берите любую передовую модель.&lt;/p&gt;
&lt;h3&gt;Бенчмарк иногда ошибается&lt;/h3&gt;
&lt;p&gt;BIRD — хороший бенчмарк. Но в нем есть баги. Только в тренировочном наборе (151 вопрос) я нашел 49 случаев, где «золотой» SQL явно неверен. Я не проверял вручную тестовый набор, поэтому реальное число для всех 500 вопросов, вероятно, выше.&lt;/p&gt;
&lt;p&gt;Вот пример, который мне запомнился. Вопрос просит список школ, чей совокупный балл превышает 1500. «Золотой» SQL проверяет `count` (количество) студентов, набравших более 1500 баллов. Совершенно другой запрос, совершенно другой ответ. Вы читаете вопрос, читаете «правильный» ответ и думаете: подождите, но спрашивали-то не об этом.&lt;/p&gt;
&lt;p&gt;Я создал исправленные «платиновые» ответы для этих случаев. В среднем около 14 из 151 вопроса тренировочной выборки для каждой модели совпали с платиновым ответом вместо золотого, добавив 9.1 процентных пунктов.&lt;/p&gt;
&lt;h3&gt;Людей не волнует форматирование&lt;/h3&gt;
&lt;p&gt;На тренировочной выборке еще +5.7 pp получается за счет принятия результатов, которые верны по существу, но не проходят проверку на строгое равенство:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Лишние колонки (30 случаев):&lt;/b&gt; Модель вернула запрошенные данные плюс дополнительный контекст. Человек сказал бы «спасибо, это полезно». Бенчмарк говорит «провал».&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Несовпадения `DISTINCT` (41 случай):&lt;/b&gt; Модель использовала `SELECT DISTINCT`, когда в золотом ответе этого не было, или наоборот. Уникальные значения совпадают идеально. Человек бы даже не заметил.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Различия в округлении (3 случая):&lt;/b&gt; Золотой ответ 24.67, ответ модели 24.6667. То же число, разная точность.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ни один из этих ответов не является неверным. Это различия в форматировании, которые важны только для функции сравнения строк.&lt;/p&gt;
&lt;h3&gt;Человек (LLM)-в-петле (The LLM-in-the-Loop)&lt;/h3&gt;
&lt;p&gt;Оставшийся разрыв (16 pp на тренировке, 29 pp на тесте) закрывается &lt;b&gt;судьей LLM&lt;/b&gt;. Я использовал `Gemini 3 Flash` для проверки каждого «проваленного» ответа с вопросом: *действительно ли этот SQL отвечает на вопрос?*&lt;/p&gt;
&lt;p&gt;На тестовой выборке судья выполняет больше тяжелой работы, потому что там нет «платиновых» исправлений для предварительного отлова багов бенчмарка. Что именно он спасал?&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Причина&lt;/td&gt;
&lt;td style="text-align: center"&gt;Кол-во&lt;/td&gt;
&lt;td style="text-align: center"&gt;Что произошло&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Больше отфильтровано&lt;/b&gt; (Missing rows)&lt;/td&gt;
&lt;td style="text-align: center"&gt;57&lt;/td&gt;
&lt;td style="text-align: center"&gt;Модель отфильтровала строже, чем золотой стандарт, но это обоснованно.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Лишние строки&lt;/b&gt; (Extra rows)&lt;/td&gt;
&lt;td style="text-align: center"&gt;33&lt;/td&gt;
&lt;td style="text-align: center"&gt;Модель интерпретировала вопрос более широко.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Близкие значения&lt;/b&gt; (Values close)&lt;/td&gt;
&lt;td style="text-align: center"&gt;19&lt;/td&gt;
&lt;td style="text-align: center"&gt;Числовые результаты в пределах допуска.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Пустой результат&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;14&lt;/td&gt;
&lt;td style="text-align: center"&gt;Модель ничего не вернула, но логика была верной (данных нет).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Пропущенные колонки&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;11&lt;/td&gt;
&lt;td style="text-align: center"&gt;Возвращено меньше колонок, но ответ на вопрос дан.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Это оценочные суждения. Должен ли запрос «перечислите все школы в районе» включать чартерные школы? Разумные люди могут не согласиться. Строгий бенчмарк выбирает одну интерпретацию и наказывает за все остальные. Судья просто спрашивает, можно ли обосновать интерпретацию модели.&lt;/p&gt;
&lt;p&gt;Если вы создаете ИИ-аналитику, это важно. Никто не выпускает продукт text-to-SQL, где пользователь видит сырые результаты без этапа проверки. Всегда есть человек или LLM, проверяющий выходные данные. Эти 94-95% отражают то, как эти продукты работают на самом деле. 58-64% отражают то, как работают бенчмарки.&lt;/p&gt;
&lt;h3&gt;А как насчет контекста?&lt;/h3&gt;
&lt;p&gt;Вы могли бы ожидать, что дополнительный контекст поможет. Комментарии к колонкам, описания, подсказки о значении данных. Это интуиция, лежащая в основе семантических слоев и механизмов контекста.&lt;/p&gt;
&lt;p&gt;Я протестировал это. Те же 500 вопросов, все модели, с комментариями к колонкам каждой таблицы и без них.&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Схема&lt;/td&gt;
&lt;td style="text-align: center"&gt;Train&lt;/td&gt;
&lt;td style="text-align: center"&gt;Test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Без комментариев&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.9&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;С комментариями&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;96.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;94.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;b&gt;Дельта&lt;/b&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;1.1 pp&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.2 pp&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Один процентный пункт на тренировке, почти ничего на тесте. В большинстве вопросов правильность не изменилась.&lt;/p&gt;
&lt;p&gt;Если разбить по базам данных, становится интересно. Чем сложнее схема, тем больше помогают комментарии (усредненно по train и test):&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;База данных&lt;/td&gt;
&lt;td style="text-align: center"&gt;Базовая точность&lt;/td&gt;
&lt;td style="text-align: center"&gt;Эффект комментариев&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`debit_card_specializing`&lt;/td&gt;
&lt;td style="text-align: center"&gt;85.5 (самая сложная)&lt;/td&gt;
&lt;td style="text-align: center"&gt;8.7 pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`european_football_2`&lt;/td&gt;
&lt;td style="text-align: center"&gt;93.2&lt;/td&gt;
&lt;td style="text-align: center"&gt;3.4 pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;`california_schools`&lt;/td&gt;
&lt;td style="text-align: center"&gt;95.7 (самая легкая)&lt;/td&gt;
&lt;td style="text-align: center"&gt;2.9 pp&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Комментарии помогают, когда схема действительно запутанная. Таблица `debit_card_specializing` (попробуйте угадать, как выглядит эта схема) получила самый большой прирост. Но схемы с интуитивными названиями и очевидными связями? Там комментарии сделали только хуже. У моделей уже сформировалась правильная ментальная модель, а комментарии внесли шум.&lt;/p&gt;
&lt;p&gt;Каждый разработчик знает это о комментариях в коде. Полезны при реальной неоднозначности. Вредны, когда констатируют очевидное. `// увеличить i на 1` еще никому не помогло.&lt;/p&gt;
&lt;h3&gt;Почему простые модели данных работают&lt;/h3&gt;
&lt;p&gt;Базы данных BIRD — это не корпоративные хранилища данных. Они простые:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;7 таблиц в среднем.&lt;/li&gt;
&lt;li&gt;9 внешних ключей в среднем, в основном «один-ко-многим».&lt;/li&gt;
&lt;li&gt;Ноль связей «многие-ко-многим».&lt;/li&gt;
&lt;li&gt;Глубина join макс. 2-3 перехода, нет глубоких иерархий.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LLM читают эти схемы так же, как опытный аналитик читает DDL. Они видят таблицу `schools` с колонками `school_name`, `district` и `enrollment`, и они знают, что делать. Внешний ключ от `schools` к `scores`? Они знают, как их соединить (join). Никому не нужен семантический слой, чтобы объяснить, что “enrollment” означает «количество студентов».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Хорошее моделирование данных — это и есть семантический слой.&lt;/b&gt; Когда ваши таблицы названы хорошо, а объединения прямолинейны, у LLM есть всё необходимое.&lt;/p&gt;
&lt;h3&gt;Во что я бы инвестировал в первую очередь&lt;/h3&gt;
&lt;p&gt;Каждая среда уникальна, но вот как бы я расставил приоритеты, основываясь на том, что увидел:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;b&gt;Начните с модели данных.&lt;/b&gt; Чистые таблицы, понятные названия, простые объединения. Если опытный аналитик может посмотреть на вашу схему и понять ее за несколько минут, то и LLM сможет.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Затем добавьте целевой контекст.&lt;/b&gt; Комментарии к колонкам и метаданные, но только там, где действительно существует путаница. Документируйте таблицы типа `debit_card_specializing`, а не `schools`.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;История запросов идет следом.&lt;/b&gt; Она становится важнее по мере усложнения предметной области, особенно для обнаружения недокументированных бизнес-правил (вроде “abnormal GOT &gt; 60”). Базы данных BIRD имеют простые правила. Но я работаю над (проектом) `DABstep`, у которого простая модель данных, но очень сложные правила предметной области. Тот вид знаний, который живет в головах людей, а не в названиях колонок. Там история запросов и подобранный контекст будут значить гораздо больше. Но даже тогда чистая модель данных стоит на первом месте.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Наконец, не беспокойтесь о формальном семантическом слое. Если ваша модель данных чиста, а контекст целенаправлен, это почти ничего не добавляет для сценариев использования ИИ. На самом деле, кажется, что это даже мешает, так как ИИ отлично пишет SQL, но менее хорош в работе с другими инструментами.&lt;/p&gt;
&lt;h3&gt;Начните сейчас&lt;/h3&gt;
&lt;p&gt;Планка для «данных, готовых к ИИ», ниже, чем вам говорит индустрия.&lt;/p&gt;
&lt;p&gt;Вам не нужен “движок контекста”, семантический слой, годы истории запросов или специализированная платформа метаданных. Вам нужна &lt;b&gt;чистая модель данных и LLM&lt;/b&gt;. Найдите домен, который готов к этому, и начните там.&lt;/p&gt;
&lt;p&gt;Разрыв между «точностью бенчмарка» и «примет ли это человек?» составил 31 pp на тренировочной выборке и 36 pp на тестовой. Это огромный разрыв, и он закрывается в тот момент, когда вы включаете человека или LLM в цикл проверки. Именно так и работает любой продукт ИИ-аналитики.&lt;/p&gt;
&lt;p&gt;Если ваша модель данных чиста, начните сегодня. Направьте LLM на вашу схему и задавайте вопросы. Если ваша модель данных не чиста, теперь вы знаете, с чего начать.&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;h4&gt;Итоги статьи&lt;/h4&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;b&gt;Проблема:&lt;/b&gt; Принято считать, что для работы ИИ с базами данных (Text-to-SQL) нужны сложные семантические слои, история запросов и контекст.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Эксперимент:&lt;/b&gt; Автор протестировал работу современных LLM (Claude, Gemini, GPT) на известном наборе данных BIRD.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Открытие 1:&lt;/b&gt; Формальные бенчмарки занижают качество работы ИИ. Они требуют строгого совпадения SQL-запросов, хотя люди принимают ответы с правильными данными, но другим форматированием (лишние колонки, другой порядок сортировки). Истинная (“реалистичная”) точность моделей достигает &lt;b&gt;95%&lt;/b&gt;, тогда как бенчмарк показывает около 60%.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Открытие 2:&lt;/b&gt; “Готовность данных к ИИ” сводится к понятной структуре базы данных. Чистые таблицы, внятные названия колонок и простые связи работают лучше, чем нагромождение комментариев.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Открытие 3:&lt;/b&gt; Дополнительные комментарии (контекст) нужны только для реально запутанных схем. В простых случаях они даже мешают, создавая шум.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Вывод:&lt;/b&gt; Не тратьте ресурсы на сложные семантические надстройки. Инвестируйте в &lt;b&gt;чистоту модели данных&lt;/b&gt; (понятные имена таблиц и полей). Хорошая модель данных — это и есть лучший семантический слой для ИИ.&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>


</channel>
</rss>