Канадские исследователи разработали метод поиска багов в играх по видеозаписям игрового процесса. Они предложили использовать для этого нейросеть CLIP, позволяющую искать кадры, подходящие под описание простым языком, например, «Машина, летающая в воздухе». Разработка будет представлена на конференции MSR 2022, препринт статьи доступен на arXiv.org.
CLIP — это нейросеть, представленная OpenAI в январе 2021 года. Она состоит из двух кодировщиков, превращающих даваемый ей текст или изображение в эмбеддинг — компактное векторное представление этих данных. Эти кодировщики работают с данными разных типов, но создаваемые ими эмбеддинги имеют одинаковую размерность, и что более важно, располагаются в одном пространстве признаков. Например, вектор для изображения собаки в этом пространстве располагается очень близко к вектору для слова «собака», а вот вектора для автомобиля или дерева будут расположены далеко от них. Поскольку эта нейросеть обучалась на сотнях миллионах пар изображений и текста из интернета, она научилась качественно связывать визуальное и текстовое представление очень многих предметов и явлений.
Первая задача, для которой предложили использовать CLIP ее авторы — классификация изображений без необходимости дообучать модель на конкретном датасете. Вместо этого CLIP можно дать набор интересующих классов. Мохаммед Реза Таесири (Mohammad Reza Taesiri) вместе с коллегами из Альбертского университета предложил использовать CLIP для поиска багов в большом количестве роликов, опубликованных игроками и стримерами в интернете.
Для поиска потенциальных багов нужно дать модели видео с записью игры и текстовое описание того, что он ищет, например, лошадь, висящую в воздухе, что в большинстве игр явно может произойти только по ошибке. Поскольку CLIP работает с изображениями, алгоритм разбивает видео на отдельные кадры. Каждый кадр кодируется в эмбеддинг, который сравнивается с эмбеддингом текстового описания. Если вектора расположены близко, это дает понять, что, вероятно, на кадре есть то, что пользователь описал в текстовом запросе. Проанализировав видеоролик, алгоритм выдает два показателя: максимальную степень соответствия кадра запросу и количество соответствующих запросу кадров. Авторы отмечают, что первая метрика более чувствительна и чаще находит нужные моменты с багами.
Разработчики собрали датасет из 26954 роликов из сообщества Physics gone wild! на Reddit, в котором пользователи публикуют баги из разных игр. Для каждого кадра они посчитали эмбеддинги кодировщика CLIP, отвечающего за изображения, чтобы затем не тратить на это вычисления и время при поиске. Для проверки авторы отобрали восемь популярных игр, с большим отрывом лидировала GTA V — часто встречаются ролики с необычным поведением автомобилей именно в этой игре:
Авторы проверили модель на разных запросах. Сначала они искали с ее помощью конкретные объекты и объекты с описанием, а затем проверили на основной задаче — поиске багов. Разработчики составили 44 фразы, описывающие вероятные баги, например, «Человек, застрявший в дереве». Тест показал, что средняя полнота (доля найденных багов относительно всех багов в выборке) составила 66,35 процента, то есть алгоритм нашел большую часть багов. Самая высокая точность была на роликах из Grand Theft Auto V, Just Cause 3 и Far Cry 5.
У CLIP есть нейросеть-близнец DALL-E, которая тоже выучивает связь изображений и текста, но работает в обратную сторону, рисуя картинки по описанию. В конце 2021 года Сбер сделал русскую версию этой нейросети, которая работает достаточно хорошо, но иногда сталкивается с забавными трудностями перевода.
Григорий Копиев