Где ИИ помогает аналитику и где вредит
ИИ для аналитики данных · Урок 2 / 24
Уверенный тон и правильный ответ — независимые вещи
Языковая модель предсказывает правдоподобное продолжение текста. Правдоподобный SQL синтаксически корректен, выполняется без ошибок и возвращает результат. Совпадает ли этот результат с реальностью — отдельный вопрос, на который сама генерация не отвечает. Отсюда сквозное правило курса: сверка встроена в процесс, а не приделана в конце.
Где выигрыш реальный
- Черновик запроса по описанной схеме. Вы даёте DDL таблиц и словами задачу, получаете каркас на 40 строк вместо получаса набора текста.
- Чтение чужого кода. Запрос на 200 строк с шестью CTE модель разбирает по шагам и называет, что делает каждый блок.
- Перевод между диалектами и инструментами. Оконная функция, синтаксис интервалов дат, регулярные выражения.
- Генерация проверок. «Какими тремя независимыми способами можно перепроверить это число» — сильный запрос, модель предлагает сверки, о которых вы не подумали.
- Черновик текста отчёта по уже посчитанным и проверенным цифрам.
- Разбор незнакомого домена. Что обычно означает поле с таким именем, какие ловушки бывают в биллинговых данных.
Где вред систематический
- Арифметика по вставленным данным. «Посчитай сумму по этим 300 строкам» — число будет похоже на правду и почти наверняка неверно.
- Догадки о схеме. Модель допишет условие по полю is_deleted, которого у вас нет, или наоборот забудет его, потому что вы не показали DDL.
- Бизнес-определения. Что в вашей компании считается активным пользователем, знает только ваша компания.
- Причинность. На просьбу объяснить падение модель выдаёт связную историю по любым данным, включая случайный шум.
- Согласие под давлением. Скажите «по-моему, тут ошибка» — и модель найдёт ошибку даже в верном запросе.
Слабо: «Посчитай выручку по регионам»
Сильно: схема: orders(id, user_id, created_at timestamptz,
status, amount_minor int, currency)
refunds(order_id, refunded_at, amount_minor)
задача: нетто-выручка = оплаченные заказы минус возвраты,
возврат относим к месяцу исходного заказа,
статус paid, валюта приводится к RUB по курсу из fx_rates
на дату заказа, период 2025-01..2025-06, разрез по region
верни SQL и отдельно три способа проверить результат
Правило разделения труда
Модель формулирует и пишет код, считает — база. Любой ответ модели, содержащий число, должен быть либо превращён в запрос, либо отброшен. Это звучит жёстко, но избавляет от целого класса ошибок: число из чата невоспроизводимо, его нельзя пересчитать завтра и нельзя показать в отчёте со ссылкой на источник.
Проверка на подтверждающее смещение
Модель подстраивается под формулировку запроса. Попросите показать, что новая цена подняла конверсию, — получите набор срезов, где она поднялась. Попросите показать обратное — получите не менее убедительный набор. Оба ответа сгенерированы по одним и тем же данным. Отсюда рабочий приём: любую гипотезу прогоняйте дважды, в утвердительной и в опровергающей формулировке, и смотрите, устоял ли эффект. Если обе стороны получили сильные аргументы, значит, вы смотрите на шум, а не на эффект, и разбирать надо не выводы, а размер выборки.
Шпаргалка
- Правдоподобный SQL выполняется и возвращает неверное.
- Код и формулировки — модели, числа — базе.
- Схему показывайте явно, определения задавайте сами.
- Просите список допущений и способы проверки.
Возьмите реальную задачу из своей работы за последнюю неделю. Опишите её модели двумя способами: сначала одной фразой без схемы, затем с DDL таблиц, определением метрики и границами. Сравните два ответа: какие поля модель домыслила в первом случае, какие фильтры пропустила, изменился ли смысл расчёта. Отдельно попросите список допущений и отметьте, какое из них было бы ошибкой на ваших данных.