Создание платформы для конкурса по разработке искусственного интеллекта Up Great ПРО//ЧТЕНИЕ

клиент
АО «Российская венчурная компания», проект «Технологические конкурсы Up Great»
Отрасль
Инновации
Технологии
Node.js, NestJS, RabbitMQ, SSR, React, SPA, Microservice, CodeceptJS, Kubernetes, Helm

ПРО//ЧТЕНИЕ. Технологии понимания

Международный конкурс для разработчиков в области понимания естественного языка. Глобальная цель конкурса — преодолеть технологический барьер, научив искусственный интеллект понимать текст на естественных языках (NLU).
Призовой фонд — 200 млн рублей.

Командам надо разработать алгоритм, который будет в режиме реального времени

— анализировать тексты на русском или английском,
— находить и выделять смысловые и фактические ошибки в них,
— давать объяснение (классифицировать ошибки).
и делать это в 15-20 раз быстрее, чем профессионал!
В случае преодоления технологического барьера, новая технология позволит не просто автоматизировать анализ текстов. «Роботы», обученные по ней, смогут самостоятельно находить причинно-следственные связи в любом массиве информации независимо от темы. А значит, им можно будет делегировать самые разные задачи из любых отраслей. И это кардинально изменит всю мировую экономику.

Задача

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

Общие требования к платформе — высокая отказоустойчивость и принцип open source ключевых сервисов (для обеспечения прозрачности испытаний).

Если сам конкурс ПРО//ЧТЕНИЕ — вызов для профессионалов в BigData и Machine Learning, то реализация его технической части — вызов для Вебпрактик.

Сложности

01. Нет подробного техзадания

Конкурс с подобным заданием проводится впервые в мире. Поэтому рабочей платформы, которую можно скопировать и адаптировать под задачи «ПРО//ЧТЕНИЕ», не существовало.
В техзадании заказчика был список задач, но без подробностей, как именно надо их решить. Таким образом, провести бизнес-анализ, разработать архитектуру платформы, отладить все процессы нам предстояло вместе с командой заказчика.

02. Жёсткий дедлайн

Техзадание мы получили в мае, а 1 октября конкурсанты должны были получить доступ к работающей платформе. Все дедлайны были привязаны к публичному графику конкурса и не было никакой возможности их сдвигать. Уже в июле мы запустили Разметчик для Специалистов. Он позволил начать подготовку датасетов конкурса на русском и английском языках. В сентябре запустили тестирование платформы с первыми Участниками.

Процесс

Чтобы запустить платформу вовремя, нам предстояло
  • 1.Провести бизнес-анализ
  • 2.Прототипировать интерфейсы и собрать обратную связь по ним от целевых групп (Преподаватель и Участники конкурса)
  • 3.Разработать архитектуру платформы
  • 4.Запустить в кратчайшие сроки MVP платформы
  • 5.Отладить процессы в ходе обучения алгоритмов участников

Архитектура платформы

Платформа должна сравнить то, как тексты проанализировал программный комплекс, с анализом специалистов-учителей. Поэтому для старта испытаний на платформе нужны:

Тексты

Учителя

Инструменты для анализа текстов

Как это происходит у людей, а не роботов? Учитель выделяет красным ошибки, «на полях» поясняет, в чем ошибка заключается. Но проверяющие, прежде всего, — люди. А значит, могут формулировать одни и те же мысли разными словами. Человек-читатель поймет смысл в любом случае, а вот искусственный интеллект — нет.
Учителей, тексты, технический регламент, который описывал математику, и классификатор ошибок нам предоставил заказчик.

Браузерный сервис «Разметчик»

Он помогает специалистам выделять смысловые блоки в тексте и оставлять единообразные комментарии с описанием ошибки, сверяясь с Классификатором.

Разметчик был запущен в июле. Разметки специалистов мы назвали Экспертными. Самих проверяющих объединили в группу пользователей Редакторы. Запустить сервисы для Участников было необходимо не позднее 29 сентября.

Сначала мы загрузили в систему разработанные совместно с партнерами конкурса тестовые и обучающие датасеты. Чтобы программные комплексы конкурсантов смогли в реальном времени передавать размеченные файлы на платформу для испытаний, был разработан модуль Программный Комплекс Участника (ПКУ).

Программный Комплекс Участника (ПКУ)

В ПКУ входит консольная утилита и два пакета данных.
PSR — c метриками сравнения, Criteria — c критериями точности разметки (метрики и критерии даны в техническом регламенте от организаторов). Архивы для скачивания доступны в личном кабинете Участника и на GitHub.
Используя ПКУ, Участник может в любой момент через API установить сессию между своим локальным устройством и платформой. Последняя по запросу отдаёт файлы с неразмеченным эссе. Затем на локальном устройстве алгоритм участника размечает их и передает обратно. Пакет парсера собирает разметку и преобразует в машиночитаемую JSON-структуру.
Чтобы Участники были независимы от языка платформы (TypeScript), мы "завернули"‎ приложение и пакеты в Docker-контейнер и предоставили к ним готовый консольный интерфейс. Его можно использовать из любого языка программирования.

Данные сессии и результаты проверки размеченных файлов отображаются в ЛК Участника.

Пользователь может скачать отчёт и логи, посмотреть в визуальном интерфейсе, чем отличается его вариант разметки от Экспертной.
Когда на платформу приходят размеченные файлы, включается автоматическая система проверки решений, которая анализирует присланные разметки, сравнивая с Экспертными. Это алгоритмическая квалификация.
Кроме того, система проверяет состояние подключенного ПКУ каждые 4 часа и оценивает его готовность к работе. Этот процесс — техническая квалификация, имитирующая финальные состязания.
Чтобы снизить нагрузку на Систему проверки решений, мы разработали вспомогательный инструмент — Валидатор. Он автоматически проверяет присланные файлы на наличие логических ошибок в разметке и высылает Участнику багрепорт.

Программа сравнения решений (ПСР)

Для проведения финальных испытаний 9 ноября 2020 мы разработали отдельный сервис — Программу Сравнения Решений (ПСР).

Он представляет собой worker, который считывает задачи из сервера очередей и сохраняет результаты в базу датасетов. Она хранится на отказоустойчивом облаке Yandex Object Storage. Логи сессий отправляются в ELK стек.

Сохраненные файлы с алгоритмической разметкой проверяют 20 лучших специалистов из числа тех, кто делал Экспертную разметку. За результатами проверки Участники могли следить на Лидерборде в личном кабинете.

Лидерборд динамически обновляется через сервис финала и квалификаций с websocket-интерфейсом для платформы и http-интерфейсом для скачивания и загрузки файлов датасетов с выданным токеном. В этом сервисе хранится информация по финалу и квалификациям, он отвечает за выдачу файлов датасетов с необходимыми таймаутами и сохранение данных (для статистики).

В день состязаний команды, успешно прошедшие квалификацию, одновременно установили сессии с платформой, используя ПКУ. В режиме реального времени их алгоритмы получали файлы от платформы, размечали в них тексты и возвращали обратно. Испытания длились более 8 часов, а точнее, 500 минут, из расчета по минуте на файл. Для финала были использованы датасеты с новыми текстами, которые не использовались для обучения на этапе квалификаций.

Итого, в ходе разработки платформы мы создали:

  • 1.Сервис «Разметчик»,
  • 2.Сервис «Валидатор»,
  • 3.Систему проверки решений,
  • 4.Модуль «Персональный Комплекс Участника»,
  • 5.Программу Сравнения Решений.

А также пакеты данных, вспомогательные микросервисы, мануалы и техническую документацию. Как и хотел заказчик, наши решения имеют открытый код, ознакомиться с которым и дать фидбэк можно на GitHub.

Системы личных кабинетов на платформе получилось две, с разной архитектурой и функционалом. С визуальным интерфейсом, но без программного для Редакторов и с обоими для Участников.

Результаты

Работающая платформа, не имеющая аналогов в мире;
Уникальная база датасетов с размеченными файлами;
Более 200 пользователей-участников;
9 команд, прошедших квалификацию;
500 минут бесперебойной работы платформы в день финальных испытаний;
8 000 файлов, обработанных в ходе финалов по русской и английской грамматике;
Есть победители в номинациях по русской и английской грамматике.

Команда

Вебпрактик

Иван Поддубный
руководитель группы разработки
Алексей Кореньков
back-end teamlead
Пётр Клёнкин
старший back-end разработчик
Александр Забанов
старший Back-end разработчик
Сергей Аверкиев
back-end разработчик
Александр Гурнак
back-end разработчик
Павел Воробьёв
старший front-end разработчик
Сергей Близнюк
front-end разработчик
Константин Кулишов
старший DevOps
Илья Рыбаков
QA тестировщик
Николай Цай
старший дизайнер

Технологические конкурсы Up Great, АО «РВК»

Константин Кайсин
операционный директор Up Great, АО «РВК»
Максим Матросов
руководитель направления по техническому сопровождению Up Great, АО «РВК»
Юрий Молодых
директор по развитию Up Great, АО «РВК»
Мария Ульянова
организационный менеджер Up Great, АО «РВК»

Отзыв

Платформа для конкурса ПРО//ЧТЕНИЕ — сложная и многоуровневая система. На начальном этапе требовалась тщательная проработка архитектуры, а в течение самих испытаний — оперативная и качественная реакция на запросы в режиме non-stop. Всё это мы получили во время работы с командой «Вебпрактик». Такое глубокое погружение в проект редко встретишь со стороны подрядчика. Нам повезло работать с профессионалами в своем деле.»»
Команда Up Great
Следующий проект
Поддержка и модернизация сайта и внутреннего портала РЭЦ
Группа РЭЦ
Как мы 24/7 поддерживаем тех, кто поддерживает экономику страны