Обзор олимпиады AIIJC 2021 и разбор задачи трека NLP |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-02-12 16:02 Сегодня я хочу рассказать о своем опыте участия в соревновании Artificial Intelligence International Junior Contest и о решении моей команды, которое заняло первое место в треке NLP. Немного про AIIJCAIIJC - это, пожалуй, крупнейшее соревнование в сфере искусственного интеллекта в России (а то и в мире) среди молодежи, а точнее - среди несовершеннолетних. Именно это (помимо весьма солидного призового фонда в 13 миллионов рублей) является отличительной чертой данного мероприятия. ИИ, на мой взгляд, является самой передовой технологией на текущий момент, однако ее популяризации уделяется слишком мало внимания, учитывая ее сложность, на более-менее масштабную популяризацию среди несовершеннолетних даже и рассчитывать не стоило, если бы не Сбер. При поддержке Сбера ежегодно организуется трек по ИИ олимпиады НТО, а в 2021 году впервые была организована олимпиада AIIJC в качестве детского трека соревнований в рамках международной конференции AIJ. Итак, в чем же особенности соревнования:
Теперь некоторый бекграунд представлен, Обзор задачи трека NLP 1. Суть проблемы Проблема заключается в отсутствии в открытом доступе каких-либо качественных доступных инструментов для решения задачи ODQA (Open Domain Question Answering), проще говоря, ответы на вопросы без заданного контекста. 2. Обзор готовых решений Из абзаца выше может сложиться впечатление, что открытых решений вообще нет, но нет, все же есть:
3. Анализ датасета Тренировочный датасет содержал 4000 пар сгенерированных вопросов и ответов на основе англоязычной википедии, большая часть вопросов начиналась с Who/What/Where/When, т.е. это были фактологические вопросы с определенным лаконичным ответом. Но и в этом датасете не без выбросов (вопросы наподобие "Какая улица названа в честь?" или вопросы, на которые даже вручную ответа не найти), но выбросы в итоге нам не сильно помешали. 4. Разработка архитектуры Учитывая, что все ответы на вопросы можно было найти на Википедии, то изначально мы хотели сделать Ranker на основе библиотеки wikipedia, но эксперимент оказался не очень удачным: вероятность нахождения сета из 5 статей, где хотя бы в одной будет содержаться дословный ответ, была около 0.4. Наша первая версия Reader'а выделяла из найденных статей фрагмент с медианной длиной 394, где содержался верный ответ, с вероятностью 0.6654, и QA-модель верно отвечала на вопрос (при условии, что верный ответ есть во фрагменте) с вероятностью более 0.95. 5. Ranker Очевидным был факт, что поиск статей через библиотеку wikipedia - не лучший вариант (потому что алгоритмы википедии плохо ищут статьи самой же себя), и у нас было два других пути: или скачать dump Википедии и попробовать реализовать свой reader/дообучить существующий на основе свежих данных, или использовать сторонние поисковые решения. Из-за трудозатратности и ресурсоемкости первого варианта (хотя он предпочтительнее) мы перешли ко второму, а именно: написали свою библиотеку на основе библиотеки wikipedia и google search engine, где искали топ-2 самых релевантных статей (в менее релевантных статьях вероятность существования верного ответа крайне мала). Единственный, но существенный минус данного решения - ограничения на количество бесплатных запросов в день. Итоговая вероятность найти статью с дословным ответом - 0.5, но все на самом деле лучше, учитывая наличие выбросов в датасете и тот факт, что ответ модели мог не совпадать с эталонным, однако все еще являться верным. 6. Reader Reader у нас состоит из двух частей: выделение небольшого фрагмента из найденных статей, в котором с наибольшей вероятностью лежит верный ответ, и поиск ответа во фрагменте с помощью дообученной модели bert-large-cased-whole-word-masking-finetuned-squad. Алгоритм выделения фрагмента у нас линейный (к сожалению, опять же по причине трудозатратности реализации ML-модели) с использованием токенов, выделенных из текста. Итоговая точность верного выделения фрагмента - 0.734, точность работы qa-модели - 0.9912. 7. Итоговое описание архитектуры решения Команда Команда состояла из 3 человек: Итог Получившееся решение можно использовать, например, для создания бота или для автоматизации службы поддержки каких-нибудь ресурсов, у которых уже есть база знаний, на ее основе можно несколько доработать Ranker и при необходимости Reader. Лучший результат на лидерборде: F1 - 0.3548. В настоящее время я прохожу обучение на курсе Machine Learning. Professional от OTUS и хочу порекомендовать всем бесплатный урок по теме: "Natural language processing: как компьютер общается с людьми", который пройдет 16 февраля. А тем, кто только начинает свой путь в машинном обучении рекомендую рассмотреть специализацию ML. Источник: habr.com Комментарии: |
|