ВВЕДЕНИЕ 4
1 Анализ предметной области 5
1.1 Изучение предметной области 6
1.2 Проблемы предметной области 6
1.3 Особенности пользовательских данных и их влияние на качество нейронных
сетей 8
1.4 Подходы к решению проблемы 8
1.5 Анализ существующих решений 9
2 Проектирование веб-сервиса 12
2.1 Функциональные требования 12
2.2 Нефункциональные требования 15
2.3 Сценарии вариантов использования 14
2.4 Общая архитектура 19
2.5 Архитектура клиентской части 24
2.6 Архитектура серверной части 27
2.7 ML Orchestrator 31
2.8 Архитектура ML-части и интеграция нейронных сетей 32
2.9 ML-сервисы 34
2.10 CI/CD и оркестрация 36
3 Технические средства разработки 38
3.1 Архитектура веб-сервиса 38
3.2 Серверная часть 38
3.3 Клиентская часть 40
3.4 База данных 42
3.5 Мониторинг и метрики 44
3.6 Сторонние решения 44
4 ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС 46
ЗАКЛЮЧЕНИЕ 53
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 54
ПРИЛОЖЕНИЕ А 57
ПРИЛОЖЕНИЕ Б 61
Актуальность данной работы определяется необходимостью создания эффективного механизма обратной связи между пользователями и разработчиками нейронных сетей [1]. С развитием технологий искусственного интеллекта машинное обучение проникло во все сферы жизни - от медицины до развлекательных сервисов. Однако большинство нейронных сетей разрабатываются и тестируются в "лабораторных" условиях, без учета реальных сценариев использования.
Появление многочисленных платформ для машинного обучения (Kaggle, Hugging Face, Clarifai) решило проблему доступа к моделям, но не решило ключевую проблему - отсутствие систематизированной обратной связи от конечных пользователей. Каждая из существующих платформ имеет свои ограничения: одни ориентированы только на разработчиков, другие предоставляют закрытые API без возможности сравнения альтернативных решений.
В связи с этим возникла необходимость создания специализированной платформы, которая:
• позволяет пользователям легко сравнивать разные нейронные сети на своих данных;
• дает разработчикам постоянный поток тестов и обратной связи ;
• обеспечивает разработчиков реальными данными для исследований.
Цель работы - разработать веб-сервис для оценки нейросетевых моделей с поддержкой пользовательской обратной связи .
Для реализации поставленной цели были выдвинуты следующие задачи:
1. Проанализировать предметную область и аналогичные веб-сервисы.
2. Сформулировать функциональные и нефункциональные требования к разрабатываемому веб-сервису.
3. Спроектировать веб-сервис.
4. Реализовать веб-сервис.
В ходе работы была изучена и исследована предметная область машинного обучения и внедрения нейронных сетей в реальные условия использования. Проанализированы существующие решения, выявлены их преимущества и недостатки. Ключевыми недостатками являлось отсутствие сбора механизма обратной связи от пользователей и ограниченная адаптация моделей к реальным практическим условиям. На этой основе были сформулированы функциональные и нефункциональные требования к разрабатываемому веб-сервису.
Спроектирована микросервисная архитектура системы, обеспечивающая гибкость, масштабируемость и изоляцию компонентов (клиентская чать, серверная часть, ML-сервисы).
Реализована клиенсткая и серверная часть веб-сервиса с использованием технологий: React, Spring Boot, PostgreSQL, Docker, RabbitMQ.
Реализованы ML-сервисы, позволяющие динамически запускать нейросетевые модели в контейнерах, обеспечивая их изолированную работу.
В результате проделанной работы был спроектирован и реализован веб-сервис, для апробации нейронных сетей. Реализовано хранение данных внутри веб-сервиса.
Реализована CI/CD система, обеспечивающая автоматизированную сборку, тестирование и развертывание сервиса.
В рамках данной работы, была создана технология разработки клиент-серверных приложений и на практике приобретены навыки их разработки.
По итогу был реализован высоконагруженный веб-сервис для апробации нейронных сетей.