Привет, Хабр! Сегодня мы расскажем об интересных задачах соревнования Fusion Brain Challenge с международной конференции AIJ 2021 по искусственному интеллекту, нейросетям и смежным темам. Цель проведения ― собрать на одной площадке представителей международных организаций, бизнеса, научного сообщества и технических специалистов.

Конференция проводилась в прошлом году, но решения, которые предлагались участниками, оказались настолько интересными, что некоторые из них мы сохранили на потом. Время пришло, и сегодня мы решили поделиться этими кейсами. Речь идет, в первую очередь, о решениях, предложенных участниками соревнования Fusion Brain Challenge. В его ходе решались задачи, связанные с нейросетями, multitask-моделями, обработкой данных. Подробности (а их немало, так что вы можете почерпнуть что-то для себя), как всегда, ― под катом.

Кратко о конференции

 Если вам интересно, что это за конференция такая, то ниже ― её описание. Если хотите приступить сразу к разбору задач с соревнования, можете смело пролистывать этот раздел и наслаждаться техническими подробностями. 

Итак, конференция AIJ 2021 ― знаковое событие в ИИ-отрасли. В 2019 году по числу участников конференция попала в топ-5 мировых конференций, а в 2020 она стала крупнейшим профильным онлайн-мероприятием по числу регистраций. 

В 2021 году в ней приняли участие около 250 спикеров со всего мира, 50 keynote-спикеров, также было проведено 20+ тематических стримов. Конференция получила 40+ млн просмотров в сети.

Для примера ― вопросы, которые обсуждались на конференции в ноябре 2021 года:

  • Применение технологий ИИ в обществе, бизнесе и на уровне государства.

  • Вопросы этики и регулирования искусственного интеллекта.

  • Актуальные практики внедрения ИИ в финансах, ретейле, медицине, промышленности, образовании и других сферах.

  • Роль технологии в области ESG и устойчивого развития.

  • Новейшие научные разработки в сфере искусственного интеллекта.

  • Выступления спикеров из разных регионов России.

  • Практические воркшопы и демонстрации разработок.

В рамках Fusion Brain Challenge на конференции AIJ 2021 задача Visual Question Answering (VQA) была одной из ключевых, её предлагалось решить с помощью единой multitask-модели.

Для чего нужен бенчмарк VQA и что он собой представляет

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

Мы попытались предложить собственное решение, создав датасеты для задач VQA и ZsOD (Zero-shot Object Detection). Ниже расскажем о первом датасете.

Решение задачи Visual Question Answering предполагает генерацию текстового ответа на вопрос, касающийся контента изображения. Модель, получая на вход изображение и вопрос на естественном языке, должна на выходе выдать корректный ответ на соответствующем вопросу языке (в нашем случае ― русском или английском). Вопросы могут относиться к различным областям изображения, включая как основные объекты, так и детали фона.

Для оценки качества предсказания мы использовали метрику Accuracy, которая показывает долю точных совпадений среди пар предсказанных и истинных ответов, то есть отражает отношение числа совпавших ответов (когда модель предсказала верный ответ) к общему числу ответов. Эта метрика изменяется от 0 до 1, где 0 ― наихудшее значение, 1 ― наилучшее.   

Нюансы задачи и технические подробности

Решение задачи усложняется её специфичностью. Так, например, информации на русском языке по задаче практически не существует (во всяком случае, её не было в момент, когда мы приступили к решению), как и необходимых в нашем случае инструкций. Да, есть ссылки на зарубежные датасеты, но без подробностей. В качестве публичной тестовой выборки было решено взять часть англоязычного VQA v2 и при составлении приватного тестового датасета ориентироваться на этот источник. Вооружившись этим «путеводным камнем», оставалось начать протаптывать свою дорожку через тёмную чащу вопросов и ответов.

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

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

Все числительные в вопросах и ответах мы просили задавать цифрами. При этом, как и в случае оригинального датасета VQA v2, в скрипте оценки был словарь соответствия числительных, выраженных словами (и слов со схожей семантикой, например «нисколько»), и цифр. На этапе обработки предсказаний модели все ответы приводились к цифровому виду.

Ещё одно правило: если вопрос задан к изображённой надписи, язык ответа должен соответствовать языку надписи вне зависимости от языка вопроса (в таких случаях задача, по сути, сводилась к Text Recognition in the Wild).

Дополнительно мы упомянули, что не стоит задавать абстрактные вопросы, ответа на которые нельзя получить непосредственно из содержания изображения. Например, по фото мы не можем понять, почему никто не гуляет по тротуару. Но понимаем, однако, что машины размыты из-за движения.

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

Спасение разметчиков

Всё это было здорово, но людям нужны примеры, ориентиры. Шпаргалка, куда можно подглядывать и откуда черпать вдохновение. И мы пошли по лёгкому пути: из публичного тестового датасета по ключевым словам выделили условные 9 групп вопросов во избежание большого числа повторов, серьёзных различий между публичной и приватной частью, а также для охвата различных доменов.

Вот они вместе с примерами:

  • yes/noэто? есть ли? is this? are they? are there? (простые вопросы, подразумевающие бинарный ответ «да/нет»)

  • whatчто? кто? what? who? (вопросы, призванные определить объект на изображении)

  • or ..или..? ..or..? (альтернативные вопросы ― на выбор одного из указанных вариантов)

  • colorкакого цвета? what color? (вопросы о цвете объекта/изображения)

  • where где? куда? откуда? where? (вопросы о местоположении объекта или направлении его движения)

  • numсколько? как много? how many? how much? what number? (вопросы о количестве чего-либо на изображении; ответ, вероятнее всего, подразумевает число)

  • time сколько времени? какое время? what time? what season? when? (вопросы, связанные с определением времени на часах, времени года, времени суток)

  • why почему? как? why? how? (вопрос о причине чего-либо или образе действия)

  • action что делает?  what is .. doing? what are .. doing? (вопрос, касающийся изображённого действия)

Инструмент, процесс, контроль

С примерами и объяснением нюансов процесс должен был пойти быстро. Оставалось только определиться с инструментом. От CVAT было решено отказаться ради экономии времени на разметку номинальных bounding box’ов (ведь они не были нужны в этой задаче). Мысль вторая ― запилить бот в Telegram, который бы поочерёдно выдавал изображения и требовал нужное количество пар вопросов-ответов. Но хотелось дать разметчикам больше свободы, предоставить возможность переходить сначала к более простым или, наоборот, сложным вариантам, при этом не перегружая функционал. Тут на помощь пришла ещё одна идея ― старый добрый файл Excel и небольшие папки с изображениями, примерно по 10 в каждой. Всё это мы сложили в общее рабочее пространство и посредством менеджера задач ClickUp предложили ребятам самим назначать себя на обработку выбранных папок. На каждое изображение необходимо было придумать 6 пар вопросов и подходящих к ним ответов.

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

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

Главное ― необходимый результат был получен достаточно быстро и относительно безболезненно (редкий нервный тик на лицах валидаторов не в счёт).

А что в итоге?

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

Теперь самое время узнать, как наш датасет показал себя в деле, а именно, какие результаты показали на нём модели участников.

Итоговый рейтинг участников AI Journey Contest 2021

(Подзадача VQA соревнования Fusion Brain Challenge)

Комментарии (0)