За последний год я видел много попыток собрать ИИ-аналитика. Обычно получается убедительное демо: модель подключают к базе, задают подготовленный вопрос, она пишет SQL и рисует график. Потом демо заканчивается, а человек снова выбирает тему, ищет нужные таблицы и объясняет модели, как надо считать тут или иную метрику и откуда правильно её брать.
Ранее я писал, что веду ламповый канальчик по футбольной аналитике FootballDataLab, всегда мечтал сделать полную автоматизация, и кажется я приблизился и довёл эту идею до работающего конвейера. Агент получает свежие данные, сам выбирает допустимую тему, проверяет выборку, ищет контраст, строит графики, пишет гипотезы и выпускает контент. В штатном режиме я не передаю ему тему, SQL или готовый вывод.
По сути алгоритм сам собирает данные, анализирует их, вытаскивает инсайт, рисует визуалки и упаковывает в текстовый и видео контент.
Каждый вторник в 08:05 скрейпер идёт в FotMob. Примерно за 19 часов он собирает новый срез по 30 тысячам активных футболистов и пополняет базу: 113 полей с анкетой (80+ метрик), карьерой и статистикой текущего периода. Снапшот попадает в PostgreSQL и сохраняет историю изменений.
После загрузки агент идёт по каскаду скиллов. Каждый скилл хранит операционный контракт для отдельной части работы.
▫️ Скилл исследования данных: фиксирует формулы метрик, минимальные выборки, разрешённые разрезы и границы источника. Например, FotMob хранит сезонные агрегаты и дает статистику накопительно, поэтому агент не имеет права придумывать события отдельных матчей или выдавать дату парсинга за спортивную динамику.
▫️ Скилл поиска темы: перебирает допустимые связки лиги, метрики и разрезов. Он отбрасывает маленькие выборки, учитывает историю публикаций, считает разрыв лидеров, форму распределения и описательную корреляцию. Полный набор параметров не повторяется 90 дней.
▫️ Скилл визуализации: описывает графики до пикселя: размер холста, палитру, шрифт, подписи, оси, единицы, сокращения стран, положение значений и футер с размером выборки. Для статпоста агент строит горизонтальный барчарт с рейтингом и гистограмму-профиль той же метрики по точному возрасту, месяцу рождения или росту.
Агент пишет текст после расчётов. Сначала он получает факт-пакет с размером выборки, числом клубов, значением по лиге и точками обоих графиков. Затем собирает превью с цифрами, по три гипотезы к каждому графику и общее резюме. Каждая интерпретация остаётся гипотезой и содержит возможный механизм или следующую проверку, пытаясь объяснить почему так получается на данных, кажется, что это пока самое слабое место алгоритма.
Для видео я собрал соседнюю ветку каскада. Движок выбирает метрику и позицию, затем сужает контекст по шести сценам: страны, лиги, клубы, позиции, игроки и дополнительный разрез, например по возрасту, месяц рождения или антропометрическим данным. Из одной выборки он делает графики, английский сценарий, русскую адаптацию, озвучку, монтаж и обложку. По понедельникам, средам и пятницам готовый выпуск уходит на YouTube, а русская версия - в Telegram и VK.
На выходе FDL поддерживает три независимых формата:
▫️ новостная лента даёт ежедневный футбольный контекст;
▫️ статпосты показывают один срез через два графика и шесть гипотез;
▫️ видео превращает метрику в последовательный разбор от страны до конкретных игроков.
Для любителя футбольной статистики это регулярный доступ к срезам, которые редко попадают в обычные медиа. Тут попадаются и лиги Саудовской Аравии, Чемпионшип Англии, или как в последнем посте вторая лига Португалии.
Можно увидеть распределение метрики по всей лиге, проверить, не держится ли среднее на одном клубе, и получить несколько объяснений для дальнейшего анализа. Размер выборки и ограничения остаются рядом с выводом.
Система пока ошибается. Иногда она выбирает корректный, но скучный контраст, слишком смело объясняет групповую связь или делает неудачную подпись. Или вовсе дает слабенькую гипотезу описывающую то или иное наблюдение. Я правлю такие случаи и добавляю в каскад новое ограничение, тест или пример. Косметическую шероховатость можно пережить, ошибку в данных или смысле - нет.
Я оцениваю готовность ИИ-аналитика по скучным признакам: крон запустил скрейпер, новый срез попал в базу, проверка подтвердила цифры, ротация выбрала новую тему, публикация вышла, а лог объяснил сбой. На сегодня FootballDataLab проходит большую часть этого пути без моего участия. Иногда мне приходится поправлять слух, но большую часть недели ИИ-аналитик по футбольной статистике работает сам. ⚽️