Трансформеры могут генерировать игры NFL представляем QB-GPT

Трансформеры-гиганты игры NFL, где выступает искусственный интеллект QB-GPT

Преодоление разрыва между GenAI и спортивным анализом

Фото от Zetong Li на Unsplash

С тех пор, как я опубликовал свою первую статью о StratFormer, я получил относительно большое количество отзывов и идей (поэтому, прежде всего, спасибо!). Это побудило меня углубить свою работу и попробовать дополнительный шаг: создание генератора игровых тактик в футболе. В этой статье я представляю модель QB-GPT, которая может эффективно генерировать игровые тактики в футболе, если предоставлены определенные элементы. Здесь вы можете найти выделенное пространство HuggingFace, чтобы поиграть с ней. В ближайшие месяцы я поделюсь результатами своей работы и выводами о том, как с помощью таких генеративных моделей в качестве основы лучше предсказывать игровые тактики в НФЛ. Также индустрия следит за этой областью, так как исследовательская группа DeepMind по безопасности в настоящее время занимается исследованиями в сфере футбола с Ливерпулем для понимания движения игроков на поле.

Сгенерированная траектория QB-GPT
Реальная траектория

Stratformer, моя первая идея, с которой я начал в октябре 2021 года, была моделью только с кодировщиком, которая принимала на вход траекторию, пыталась ее завершить и предсказывала связанные с ней контекстные элементы (команда, позиции и разыгрывания). Хотя эта модель показала интересные закономерности (например, понимание, что на самом деле отличает RB от WR), она полагалась на «послефактный» взгляд на игру. Что может быть еще более интересным, это глубоко понять, как расстановка игроков, с учетом некоторых контекстных элементов, действительно влияет на движение команды. Другими словами, когда команды стоят друг против друга на линии сфраживания, что произойдет?

Построив такой алгоритм, мы теперь можем создать модель, которая «на самом деле» понимает игру в футбол, потому что она пытается воссоздать разыгрывания на основе нескольких элементов. Вот цель QB-GPT. GPT здесь, потому что он основан на тех же концепциях декодирования, какие используются в любых моделях GPT.

В этой статье будет рассмотрена модель и несколько необходимых хитростей, которые я пришлось реализовать, чтобы сделать ее «приемлемой». Здесь доступно пространство HuggingFace, где вы можете сгенерировать некоторые разыгрывания, если хотите. Я оставлю его открытым на ограниченное время в зависимости от затрат. Хотя я признаю, что это ограничено и может быть улучшено, я считаю, что такое приложение заслуживает того, чтобы быть распространенным среди широкой аудитории. Если вас интересует обсуждение или углубление некоторых аспектов, мои контактные данные есть в приложении и в конце статьи. Еще раз, я сделал эту работу самостоятельно, используя доступные данные, которые я смог найти, и с некоторыми связанными с ними недостатками (если кто-то из команды НФЛ / NGS читает это, то я готов к диалогу).

Часть 1: Данные

Данные, необходимые для выполнения такой задачи, очень трудно найти. Я полагаюсь на конкретный тип данных, предоставляемый только инструментом Next Gen Stats (NGS) НФЛ, где я могу отслеживать до 22 игроков, присутствующих на поле для каждого отдельного разыгрывания. Проблема в том, что эти данные недоступны с помощью классического API. Однако с 2019 года НФЛ предлагает широкий спектр данных для соревнований на Kaggle, часто с наборами данных из NGS. Также некоторые люди на GitHub раньше уже скрапили браузер NGS. Я не пытался это сделать и полагался только на доступные данные с удобной структурой.

Было затрачено длительное время на объединение данных между собой (около 200 часов). Самые важные задачи были следующими:

  • Находить игроков на поле с помощью nflVerse
  • Сопоставлять их позиции
  • Определение линии розыгрыша с использованием данных о ходе игры nflVerse
  • Нормализация траектории путем вычитания начального положения игрока из каждого момента траектории. Таким образом, каждый элемент траектории представляет собой расстояние между временем i и временем 0.
  • Преобразование расстояний в индексы (как при создании словаря для BERT)
  • Применение некоторых проверок (например, удаление игроков, которых нет на поле)
  • Преобразование данных в формат массивов и словарей для TensorFlow

Я использовал Polars на протяжении всего процесса. Я настоятельно рекомендую любому ученому-данных, инженеру ML, инженеру данных или людям, работающим с большим объемом таблиц данных, быстро добавить этот впечатляющий пакет в свой набор инструментов. Вкратце: Polars лучше, чем pandas на небольшом наборе данных и лучше, чем pypsark на больших.

В общей сложности я собрал 47 991 различную игру, представляющую 870 559 траекторий различных игроков на поле (в среднем за игру наблюдалось 18 игроков, к сожалению, ни одного OL…).

Я фиксирую положение каждого игрока с частотой 0,2 секунды, что составляет 28 147 112 позиций на поле в общей сложности. Я ограничиваю данные первыми 10 секундами, так как траектории становятся все более хаотичными после этого и сложно моделировать с вероятностной точки зрения.

Мой набор данных начинается с 2018 по 2022 годы и включает 3 190 уникальных игроков. Данные не идеальны, но представляют собой хорошую выборку и могут быть достаточными для оценки полезности трансформаторов.

В общем, источниками моих данных являются:

  • Соревнование NFL Big Data Bowl 2021 ссылка
  • Соревнование NFL Big Data Bowl 2022 ссылка
  • Соревнование NFL Big Data Bowl 2023 ссылка
  • Общедоступный git-репозиторий NGS Highlights ссылка

Здесь у вас есть схема, представляющая входной эмбеддинг для одного игрока:

Затем одиннадцать игроков сцеплены для каждой игры, а затем усечены по кадрам, чтобы всегда иметь число токенов, равное 256. Я ограничил число кадров для одного игрока до 21 (максимум = 21 * 11 = 231), чтобы убедиться, что у нас всегда одно и то же число кадров на игрока. Таким образом, мне пришлось создать новые траектории, начиная с определенного момента игры, так как большинство моих игр содержат более 21 кадра. Я создал этап заполнения 12 кадров, что означает, что траектория теперь разделена на подтраектории, каждый раз сдвигаясь на 12 кадров. Этот процесс усложняет задачу предсказания для кадров 12, 24, 36 и 48, как мы увидим позже.

Элементы можно обсудить. Например, актуальность дробления поля с интервалом 1 ярд или использование частоты кадров 0.2 секунды. Я считаю, что модель (также ее обучающие данные) – это начало, и я хочу признать, что не все идеально. Ваши отзывы и мнения приветствуются, если они имеют смысл.

Часть 2: Модель

Модель полностью вдохновлена архитектурой OpenAI GPT. Она основана на слое эмбеддинга, добавляющем различные контекстные элементы к входным токенам. Векторы эмбеддинга затем подаются на вход одному модулю трансформера, использующему многоголовое внимание с 3 головами. В модели Large применяется второй модуль трансформера. Выход затем подается на плотный слой с активацией “relu”. Чтобы получить предсказания, мы применяем активацию “soft-max”.

Для адаптации архитектуры и обучения требовались два трюка:

  • Многовременные причинные маски : В классической GPT внимание встраивания на позиции i может обращаться только к токенам с позиции 0 до i-1. В нашем случае, поскольку я декодирую команду полностью, мне нужны токены на временной i, чтобы они обращали внимание на все доступные токены между временем 0 и i-1. Вместо так называемой “нижней треугольной маски” у вас получается мульти треугольная маска.
Маски внимания
Сырые оценки внимания и вычеты после масок внимания
Оценки внимания с различными значениями vmax scale
  • Предварительная нормализация слоев: Вдохновленный работой Сик-Хо Цанга, я реализовал предложенный им модуль Трансформера, где нормализация выполняется перед многоголовым вниманием и перед FFN.

Модель не требует большого количества слоев внимания, так как базовые шаблоны для моделирования довольно просты. Я обучил 4 различные модели с использованием тех же параметров. Результаты показывают, что размерности внедрений играют важную роль в уровне точности, которую мы можем достичь, в то время как количество модулей внимания не значительно повышает точность:

  • Маленькая: размер внедрения 64, представляющий 1,539,452 параметров
  • Средняя : размер внедрения 128, представляющий 3,182,716 параметров
  • VoAGI : размер внедрения 256, представляющий 6,813,308 параметров
  • Большая : размер внедрения 128, но с двумя модулями внимания, представляющими 7,666,556 параметров

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

(Для сравнения, у GPT3 175 миллиардов параметров)

На следующих графиках показано сравнение точности и потерь во время обучения между различными моделями:

Потери и точность четырех моделей

Часть 3: Обучение

Набор тренировочных данных состоит из 80% траекторий, представляющих 205,851 примеров. Тестовый набор данных состоит из 20% траекторий, представляющих 51,463 примеров.

Модели обучаются с использованием простого планировщика обратного вызова на 9 эпохах, где скорость обучения начинается с 1e-3 и заканчивается на 5e-4, с размером пакета 32.

Потеря является категориальной перекрестной энтропией с весами классов, определенными порогами появления в тренировочном наборе данных (числа, которые встречаются чаще, имеют меньший вес в потерях). Метки, установленные на -100, не учитываются при расчете потерь.

Используемые метрики:

  • Точность : Предсказывается ли следующее движение команды точно так же, как и обозначенное?
  • Точность top 3 : Входит ли следующее обозначенное движение в топ 3 предсказаний?
  • Точность top 5 : Входит ли следующее обозначенное движение в топ 5 предсказаний?
Точность top 3 и top 5 у четырех моделей

В конечном итоге была выполнена проверка RMSE по координатам x и y, связанным с каждым движением. Эта проверка позволяет нам отслеживать, чтобы помимо недостоверного прогнозирования, оно не отклонялось слишком далеко от истины (прогнозирование траектории 1 ярд-квадрат может быть трудным).

Часть 4: Результаты

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

Я решил разделить эти прогнозы на 3 категории: время, типы игры и позиции.

Точность и RMSE по времени (кадрам)

Первые 5 кадров относительно легко прогнозируются моделью, так как игроки часто начинают с похожих движений. Между кадрами 5 и 10 происходит снижение точности на 40-50%. Это момент, когда ходы начинают отличаться и имеют свои собственные пути. Среди четырех моделей самой маленькой модели самое сложно, особенно в конце траектории. Модель VoAGI показывает очень хорошую производительность даже на долгосрочной основе (более 20 кадров). Пиковые значения связаны со стартами заполненных траекторий, поскольку они поступают без каких-либо предыдущих знаний о траектории.

Точность и RMSE по типам игры

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

Точность и RMSE по позициям

Позиция является очень различимым фактором, с точностью различия между 10 и 20%. В целом, наиболее подвижные позиции также самые сложные для прогнозирования. Мелкие и небольшие модели обычно менее точны, чем остальные в общем.

Часть 5: Что я заметил, играя с ней

Идеальная температура модели, кажется, находится между 1,5 и 2,5. Я протестировал выборку из 10, 20 и 50. Чем больше вы увеличиваете температуру и выборку, тем больше она склонна становиться безумной и давать странные паттерны (игроки уходят с поля, меняют направление, большие разрывы между двумя кадрами).

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

Что дальше?

Эта модель сырая. Ее можно использовать позже для изучения стратегии оппонентов, создания новых и даже использования ее для улучшения системы анализа игрока.

Тем не менее, главная идея состоит в том, чтобы увидеть, может ли эта модель эффективно прогнозировать результаты игры, такие как выигрыши в ярдах. Скоро я поделюсь своей работой по прогнозированию игр NFL, основанной на результате QBGPT. Используя генеративные возможности такой модели, можно получить большое количество сценариев, среди которых прогнозирование игр становится более простой задачей 😉

Между тем, вы можете играть с QB-GPT на этом пространстве Hugging Face, если вам понравилась эта статья, работа и результаты, не забудьте поделиться и поставить лайк!

(Кроме указанных источников, все изображения принадлежат автору)

Samuel Chaineau: Linkedin