trackly
trackly личный блог
Вчера в 17:37

Дал пяти нейросетям одну таблицу и проверил, что они насчитают

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

Идея простая. Берём отчёт о прибылях и убытках, кусок баланса и число акций. Кладём всё это прямо в запрос, чтобы модель ничего не искала и не вспоминала, а только читала и считала. Задаём восемь вопросов, на которые есть один правильный ответ. Сверяем.

Что было в таблице

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

Выручка 84 200 млн руб. за 2024 год и 99 400 за 2025. Себестоимость 58 900 и 67 600. Коммерческие и административные расходы 12 400 и 14 900. Операционная прибыль 12 900 и 16 900. Проценты к уплате 3 100 и 2 800. Чистая прибыль 7 840 и 11 280. Амортизация за 2025 год 5 600. В балансе денежные средства 6 500 и кредиты с займами 38 900. Акций в обращении 940 млн штук.

Восемь вопросов. Рост выручки в процентах. Валовая маржа. Чистая маржа. Чистый долг к EBITDA. Прибыль на акцию. Капитальные затраты. Изменение операционной маржи в процентных пунктах. Дивиденд на акцию при выплате половины прибыли.

Седьмой вопрос обычный, а шестой — ловушка. Капитальных затрат в таблице нет вообще. Правильный ответ тут один, и это «нет данных». Любое число будет выдумкой.

Что получилось

Каждую модель гонял девять раз, тремя заходами по три прогона. Допуски давал щедрые — 1,48 против 1,44 это округление на другом шаге, а не ошибка.

Модель Верных ответов Чистый долг к EBITDA Маржа в п.п. Ловушка Ответ не по формату
Gemini 2.5 Flash 72 из 72 9 из 9 9 из 9 9 из 9 0
GPT-5 mini 48 из 48 6 из 6 6 из 6 6 из 6 3 из 9
DeepSeek V3.2 61 из 72 6 из 9 1 из 9 9 из 9 0
Claude Haiku 4.5 58 из 72 1 из 9 3 из 9 9 из 9 0
YandexGPT 5 Pro 36 из 48 0 из 6 0 из 6 6 из 6 3 из 9

У двух моделей часть прогонов выпала. Вместо запрошенного JSON приходил обычный текст. Считал только разобранные ответы, поэтому у них знаменатель меньше.

Главное, чего я не ожидал

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

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

Где ошибаются

Вторая неожиданность — ошибки собрались в двух местах из восьми, и в остальных шести их нет совсем.

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

А вот чистый долг к EBITDA и изменение маржи в процентных пунктах посыпались. Haiku выдала 0,61 и 0,63 там, где верно 1,44. YandexGPT — 2,03 и 2,63. По марже DeepSeek отвечал 1,11 и 1,40, YandexGPT дважды выдал 3,56 при верных 1,68.

Обратите внимание на характер промаха. Это не «немного не то», это сбитая формула. Собрать показатель из трёх строк и не перепутать, что на что делится, оказалось заметно труднее, чем поделить две.

Отдельно про процентные пункты. Здесь модель должна понять, что спрашивают разницу двух долей, а не прирост в процентах. Ответ 3,56 вместо 1,68 — ровно эта подмена.

Что с этим делать

Чтению и простым коэффициентам доверять можно. Вытащить показатели из полотна текста, посчитать маржу, прикинуть дивиденд — здесь модель экономит время и не ошибается.

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

И просите модель показывать, из каких строк она взяла числа. Промах видно сразу — у Haiku с её 0,61 подстановка не сходится с первого взгляда, и это ловится быстрее, чем перепроверка всего ответа.

Оговорки

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

Но одно держится крепко. Ошибки воспроизводятся. Одна и та же модель промахивается в одном и том же месте от прогона к прогону. Значит, дело не в случайности, а в том, как она разбирает задачу. И значит, проверять надо не «иногда», а именно те места, где она спотыкается.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
1 Комментарий
  • Alexide
    Вчера в 19:10

    Вы не указали, был ли включен режим Thinking (Размышление). Для подобных вычислений он обязательно должен использоваться, чтобы модель сама перепроверяла свои расчеты. Thinking также желательно включить на высокий уровень.

    2. Выбор Haiku у Клода — это ошибка. Эта самая примитивная модель у Клода.
    Нужно использовать как минимум Sonnet, а желательно Opus. А еще после генерации расчетов просить модель вручную перепроверить результат.

    3. Данные лучше давать в структурированном виде — markdown или CSV или JSON.
    При парсинге PDF, Excel файлов модели могут ошибиться и запутаться. Также нежелательно давать скриншоты с табличными данными.

    В итоге Claude Opus 5.5 в режиме Thinking High или xHigh прекрасно и точно справляется с расчетами JSON/CSV/markdown данных.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн