Заметки

Заметка

Нейросети для аналитики: что им доверить, а что посчитать кодом

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

Содержание ↓
  1. Где нейросети для аналитики экономят время
  2. Когда нейросеть уверенно врёт
  3. Как устроена наша схема ИИ для аналитики
  4. Как это работает в Marketing OS

За 14 лет в digital я защищал бюджеты до 2 млрд ₽ в год и помню, как одна непересчитанная цифра на защите обесценивает всю презентацию. С 2025 года я пишу для своей команды AI-инструменты на Claude Code. Главный из них, Marketing OS, читает и размечает тексты и пишет пояснения к отчётам. Так что ошибки нейросетей в аналитике я вижу изнутри, на собственном коде.

Одни шаги модель заметно ускоряет, на других уверенно выдумывает цифры. ИИ для аналитики данных окупается, когда заранее понятно, где какие. Для этого у меня есть чек-лист из десяти пунктов, он в самом конце: по нему я проверяю цифру, прежде чем нести её дальше.

Где нейросети для аналитики экономят время

Модели я отдаю две работы: писать черновики кода и читать тексты. Итоговое число нейросеть у меня не выдаёт никогда, сложить и разделить лучше поручить самому скромному SQL-запросу. Примеры ниже из маркетинга, но для любой бизнес-аналитики раскладка та же.

ЗадачаМодельКод или SQLЧеловек
Запрос к базе по описаниюпишет черновик запросавыполняет его и возвращает строкипериод, фильтры, источник
Незнакомая выгрузкаописывает колонки и подозрительные значениясчитает пропуски, дубли, контрольную суммурешает, что из найденного чинить
Отзывы и обращенияставит одну тему из спискасчитает доли по неделямпроба и ручная выборка
Поисковые фразы, публикацииназывает группугруппирует по порогу сходства, считает размерне обманывает ли название
Просадка метрикипредлагает гипотезыпроверяет каждую отдельным запросомкакую гипотезу брать в работу

Черновик SQL-запроса или скрипта на Python

Чаще всего модель работает у меня автором черновика. Задачу я описываю словами, как описал бы её аналитику: таблица заказов, период, выручка по каналам с разбивкой по неделям. Для аналитики продаж это типичный запрос. Модель отдаёт SQL или скрипт на Python. Я читаю его построчно и запускаю только после того, как проверил период в фильтре и статусы заказов, попавшие в выборку.

Берёте ChatGPT для анализа данных — первым делом смотрите, запустил ли он код. По справке OpenAI, для части задач он пишет Python и выполняет его в среде Jupyter, у которой нет выхода в интернет. У Claude есть инструмент выполнения кода в изолированной песочнице. В документации Claude анализ данных и разбор файлов прямо названы среди задач для него.

Gemini через API тоже генерирует и запускает Python, а потом поправляет ответ по результату выполнения (документация Gemini API). Сам я такой код пишу в Claude Code (про него отдельная заметка, «Claude Code для маркетолога»). Агент собирает запрос или функцию, я читаю изменения и прогоняю их на живых данных.

Первый осмотр таблицы или выгрузки

Больше всего толку от модели в первые минуты, пока файл ещё чужой. Скажем, выгрузка из CRM: колонки названы сокращениями, даты записаны в разных форматах. Модель быстро описывает структуру и находит поля, которые легко перепутать, вроде даты создания заказа и даты оплаты. Она подсвечивает отрицательные количества и даты из будущего, находит пустые ячейки там, где пусто быть не может, и строки с итогами, которые кто-то оставил внутри данных. С выгрузкой в Excel всё так же.

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

Разметка отзывов и обращений

С разметкой текстов модели справляются лучше всего. Работа тут узкая: прочитать отзыв и поставить ему одну тему из списка, заданного заранее. У условного интернет-магазина электроники в списке доставка, возврат, гарантийный ремонт, консультация в чате и отдельная метка «не относится». Каждое обращение получает одну метку, а долю каждой темы по неделям потом считает SQL.

Насколько хорошо это работает, показали Gilardi, Alizadeh и Kubli в статье для PNAS. На 2 382 твитах ChatGPT без единого обучающего примера размечал точнее исполнителей с краудсорсинговой площадки в четырёх задачах из пяти. Сам с собой ChatGPT соглашался чаще, чем люди между собой, причём во всех задачах, а одна метка стоила меньше 0,003 доллара, примерно в 20 раз дешевле MTurk (arXiv 2303.15056).

Только учтите, что это модель 2023 года и английские твиты. На русских отзывах про вашу доставку качество придётся мерить самим, и результат может отличаться.

Группировка запросов и публикаций по смыслу

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

Так длинный список поисковых фраз или публикаций превращается в группы с размером и динамикой, и то и другое считает SQL. Для семантики я расписал этот приём подробнее в заметке «ИИ для SEO». Человеку остаётся прочитать названия групп и открыть те, что выросли.

Гипотезы, почему просела метрика

Конверсия в заявку упала со вторника. Модель быстрее, чем я открою второй отчёт, выдаст список причин: сломалась цель в счётчике, выросла доля мобильного трафика, на посадочной странице перестала отправляться форма, закончилась акция, запустилась кампания на другую аудиторию. У человека обычно есть одна любимая версия, а тут их сразу пять, этим список и полезен.

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

Какая нейросеть лучше для аналитики

В подборках «лучшие ИИ для аналитики» лидеры меняются с каждой версией моделей. Мне же нужен инструмент под конкретную работу: посчитать по файлу проверяемым кодом и разметить тексты по моим правилам. Поэтому я задаю инструменту четыре вопроса.

  • Запускает ли он код над вашим файлом и показывает ли этот код вместе с выводом. У ChatGPT и Claude такой режим есть, у Gemini он доступен через API.
  • Можно ли загружать туда ваши данные по правилам вашей компании. Выгрузка с телефонами клиентов в личном аккаунте — риск, который не окупит сэкономленный час.
  • Как он прошёл пробу на ваших записях, для которых правильный ответ известен заранее.
  • Умеет ли он ответить «нет данных» и насколько расходятся его ответы при втором прогоне.

Когда нейросеть уверенно врёт

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

Число в тексте ответа никто не считал

Когда модель пишет «средний чек вырос» и ставит рядом цифру, эта цифра — продолжение текста. Модель подбирает число, которое уместно смотрится в этом месте. Уместное и верное совпадают часто. Всегда — нет.

OpenAI в той же справке уточняет, что Python запускается «для некоторых задач» анализа. Для остальных ответ пишет языковая модель без всякого калькулятора. Число без блока кода и его вывода я считаю непроверенным, даже если оно совпало с ожиданием.

С арифметикой в словесных задачах у моделей хуже, чем кажется по демо. Mirzadeh и соавторы из Apple в работе GSM-Symbolic брали школьные задачи и меняли в них только числа, и точность падала у всех проверенных моделей. Одна добавленная фраза, которая выглядит уместной, но на ответ не влияет, давала падение точности до 65% (arXiv 2410.05229, страница Apple).

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

Подробное объяснение расчёта тоже не спасает. Anthropic разбирала, как Claude складывает 36 и 59. Внутри работают два параллельных пути: один грубо прикидывает сумму, другой вычисляет последнюю цифру. А на вопрос, как он посчитал, Claude описывает школьный способ с переносом единицы (Anthropic, 27.03.2025). Рассказ о расчёте сочиняется отдельно от самого расчёта.

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

Метрика, которую «оценила» модель

Одна из самых неприятных моих ошибок выглядела солидно: метрику для отчёта «оценивала» модель. Потом выяснилось, что на одних и тех же входах оценка дрейфует от прогона к прогону и при этом завышается. Метрика выглядела красиво и оказалась фейком.

У Reiss в работе 2023 года та же картина: ChatGPT классифицировал тексты, и повтор того же входа или мелкая правка формулировки промта давали другой результат. Согласованность может не дотягивать до порогов надёжности, принятых в научной разметке (arXiv 2304.11085).

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

Ответ там, где честнее сказать «не знаю»

В сентябре 2025 года OpenAI опубликовала разбор, почему модели галлюцинируют. Причина, по их словам, в том, что обучение и тесты награждают угадывание сильнее, чем признание неуверенности. В таблице по одному из тестов o4-mini почти никогда не отказывается от ответа (1% отказов) и ошибается в 75% случаев, верных ответов у неё 24%. У gpt-5-thinking-mini отказов 52%, ошибок 26%, верных 22% (OpenAI, 05.09.2025).

Доля верных у двух моделей почти одинаковая. Разница в том, сколько уверенных неверных ответов попадёт к вам в таблицу. Для разметки отсюда следует конкретная вещь: в формате ответа нужны варианты «нет данных» и «не относится».

Без них модель выберет ближайшую подходящую тему, и отзыв из одного слова «ок» уедет в «качество обслуживания». Эти варианты код считает отдельной строкой. Выросла доля «нет текста» — значит, сломался парсер или источник, и клиенты тут ни при чём.

Сверка сошлась, отчёт неверный

Эту историю я вспоминаю каждый раз, когда слышу «я перепроверил». Мы сверили числа в отчёте встречным счётом, и всё сошлось. Оба счёта при этом опирались на агрегат поставщика данных, который расходился со вторым представлением тех же данных в 17 раз. Сверка доказала одно: мы дважды правильно сложили один и тот же неверный источник.

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

Как устроена наша схема ИИ для аналитики

Эта схема выросла из Marketing OS. На большинство ошибок из предыдущего раздела мы наступили сами, пока его строили, и после каждой в конвейере появлялся новый шаг или проверка между шагами.

Кто за что отвечает

Этапов пять, у каждого один хозяин. В правой колонке поломки, которые на этом этапе встречаются чаще всего, и почти каждую из них мы видели в своём коде.

ЭтапКто делаетЧто на выходеТипичная поломка
ВыборкаSQL, постранично, подсчёт строк на стороне базыполный набор строк и их числопотолок в 1000 строк на запрос
Разметкамодель, закрытый список тем плюс «не относится» и «нет текста»одна метка на записьтема, притянутая к чужому тексту
Доли и динамикаSQL или Pythonтаблица чисел с формуламиметрика, которую «оценила» модель
Объяснениемодель, по готовой таблицекороткий текст с числами из таблицычисло, которого в таблице нет
Решениечеловекчто делаем дальшесверка, которая ничего не доказала

С ИИ-агентами для аналитики, которые сами пишут и запускают запросы, схема та же. Агент просто совмещает две роли из таблицы, и его результат проверяется по тем же строкам. Каждая поломка из правой колонки у нас записана правилом в файл проекта, который Claude Code читает перед работой: симптом, причина, правило в три строки. На уровне отдела такая схема становится частью внедрения ИИ в маркетинг.

Проба на трёх-пяти записях до массового прогона

Новый промт должен был пройти по нескольким сотням публикаций. До запуска мы прогнали его на четырёх живых постах и прочитали каждый ответ глазами. На четырёх постах нашлось два дефекта. Модель вопреки запрету притянула нужную тему к посту про аренду квартир. Второй дефект оказался хуже: у половины источников в базе вообще не было текста, только анонс на 130–300 знаков.

Массовый прогон заполнил бы поле догадками по заголовкам, и на графике это выглядело бы как обычные данные. Проба на четырёх записях занимает меньше времени, чем совещание, где потом разбирают кривой отчёт.

После пробы идёт контрольная выборка, размеченная руками, и сравнение с ней кодом. Совпадение я считаю по каждой теме отдельно: средняя цифра прячет тему, которую модель путает систематически. Размер выборки здесь не называю, он зависит от числа тем и цены ошибки. Reiss в той же работе прямо советует сверку с разметкой людей и отмечает, что объединение нескольких прогонов повышает надёжность. Ответ модели у нас ещё и проходит проверку схемой: метка не из списка превращается в пустое значение и строку в логе.

Потолок в 1000 строк

Эта ошибка случается до всякой модели. База через API отдавала не больше 1000 строк на запрос, даже если попросить 10 000. Никакой ошибки: статус успешный, в логах тишина. А дашборды упирались в подозрительно круглые 1000 публикаций.

Такой лимит бывает настройкой по умолчанию. У Supabase, например, проект отдаёт не больше 1000 строк, а для постраничной выборки в документации описан метод range(). Лечится это постраничной выборкой и подсчётом на стороне базы: COUNT считает сама база, до того как строки уйдут в код или к модели.

Модель такой потолок не заметит и объяснит динамику по обрезанному массиву тем же уверенным тоном. Поэтому круглое число в отчёте я сначала сверяю с COUNT в источнике.

Сверка с сырьём и ревью другой моделью

Последняя проверка самая скучная. За итоговой цифрой я открываю несколько записей из источника: сам текст и строку выгрузки, через которую он попал в отчёт. Если в отчёте тема выросла за неделю, я хочу прочитать пару отзывов из этой темы за эту неделю.

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

Совету «попросите модель проверить саму себя» я поэтому не доверяю. В том же разборе Anthropic видно, что рассказ модели о своём ходе мысли может расходиться с тем, что она делала. А если подсказать ей ответ, она может подогнать шаги рассуждения под эту подсказку.

Как это работает в Marketing OS

В Marketing OS по этой схеме устроены, например, три раздела, где ИИ разбирает отзывы, публикации и спрос. Что они показывают на данных компании, я не публикую, так что примеры условные.

Темы отзывов

Условно возьмём сеть клиник. Список тем задан заранее: запись на приём, ожидание в очереди, врачи, цены, приложение, «не относится», «нет текста». Каждый отзыв получает одну тему. У темы есть короткое описание, чтобы модель не путала «цены» с «приложением», когда пациент пишет, что в приложении показаны другие цены.

Доли тем и их изменение по неделям считает SQL. Модель в конце получает готовую таблицу и пишет пару абзацев о том, какие темы выросли. Каждое число в её тексте должно совпасть с числом из таблицы. Если модель вставила число, которого там нет, текст пересобирается. Так устроен радар рынка, где рядом с отзывами живут публикации СМИ.

Кластеры публикаций

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

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

Поисковый спрос

В поисковом спросе модели достаётся меньше всего работы. Частоты берутся из статистики поиска. Изменение к прошлому месяцу код считает только по фразам, которые есть в обоих месяцах, иначе разница измерит состав списка фраз. Модель помогает разложить запросы по смысловым группам и пишет абзац о спросе, где разрешены только посчитанные числа.

Экономия, которую даёт Marketing OS, — до 15% рабочего времени маркетолога. Набирается она как раз на такой рутине: прочитать сотни текстов и набросать черновик пояснения. Проверка цифр остаётся отдельной работой, и для неё у меня есть список.

Чек-лист: прежде чем поверить цифре от нейросети

  1. Под цифрой виден код или SQL и вывод этого кода. Если есть только текст ответа, число пока черновик.
  2. Число строк совпадает с COUNT в источнике. Круглые 1000 или 10 000 сначала проверяются как потолок выгрузки и только потом читаются как факт о рынке.
  3. У всех записей есть поле, которое размечали. Если в поле лежит анонс на пару строк, разметка пойдёт по заголовку.
  4. Метрику посчитала формула. Если её «оценила» модель, цифра поплывёт при следующем прогоне.
  5. Разметку проверили на пробе из трёх-пяти записей и на выборке, размеченной руками.
  6. Два прогона с тем же промтом на контрольной выборке разошлись не больше, чем вы заранее готовы допустить. Модель недетерминирована, поэтому порог расхождения задаётся до запуска.
  7. Понятно, что доказывает сверка: сравнили два независимых источника или один агрегат с самим собой.
  8. Данные свежие, и известно, когда они обновлялись. У нас n8n после перезапуска контейнера снял расписания со всех сценариев, хотя в логах было чисто (история целиком — в заметке про n8n для маркетинга). Остановку через несколько дней поймал только наш сторож свежести данных.
  9. Исходные события собраны правильно. Если цели в Яндекс Метрике настроены с ошибкой, нейросеть аккуратно объяснит неправильную таблицу. Цели мы проверяем отдельным инструментом, это аудит Метрики.
  10. Итоговый отчёт открыт глазами. У меня проходили тысячи тестов, а выгруженный отчёт открывался пустой страницей и повторял абзацы.

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

Вопросы

Вопросы и ответы

Какая нейросеть лучше для аналитики?

Единого рейтинга нет: версии моделей меняются быстрее, чем статьи-рейтинги. Я выбираю по вопросам: запускает ли инструмент код над вашим файлом и показывает ли его (ChatGPT и Claude это умеют, Gemini — через API), можно ли загружать туда данные по правилам компании, как он прошёл пробу на ваших записях и умеет ли ответить «нет данных».

Можно ли доверять расчётам ChatGPT по таблице?

Только если под числом виден выполненный код и его вывод. По справке OpenAI Python запускается «для некоторых задач» анализа, а в остальных случаях число пишет сама языковая модель. С любой другой нейросетью для анализа данных правило то же, и итог стоит сверить с контрольной суммой в исходном файле.

Подходит ли нейросеть для анализа отзывов?

Да, разметка по темам у моделей получается хорошо: в работе Gilardi и соавторов 2023 года ChatGPT размечал твиты точнее краудсорсинга в четырёх задачах из пяти. Условия — закрытый список тем, вариант «не относится», проба на нескольких записях и сверка с ручной разметкой. Доли и динамику считает код.

Почему нейросеть на один и тот же вопрос по данным отвечает по-разному?

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

Заменит ли ИИ аналитика данных?

Скорее поменяет его работу. Черновики кода и разметку текстов уже сейчас можно отдавать модели, а за человеком остаются вопрос, метрика, проверка источников и решение, что делать с результатом.

Консультация

Разберём вашу задачу

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

Дмитрий Щеголяев с микрофоном на Мобильном Форуме