648.08K

2024_0616_ПМИ_4,_Русаков_В_В_презентация_предзащита

1.

Микросервис no-code системы
анализа данных
Выполнил:
студент 4 курса механико-математического факультета группы ПМИ-4
Русаков Вадим Вячеславович
Научный руководитель:
к.т.н. Селетков Илья Павлович

2.

Введение
Современные инструменты машинного, интеллектуального анализа данных
требуют разработки программ, например, на языке Python.
Многие эксперты-аналитики не имеют достаточных знаний в области
программирования и не могут полноценно использовать инструменты и
библиотеки для обработки и анализа данных.
Это может приводить к недостаточно эффективному использованию данных в
процессе принятия решений и снижению качества аналитических исследований.
2/20

3.

Цель работы
Цель разработки системы - позволить экспертам-аналитикам, у которых
отсутствуют навыки написания программного кода, обрабатывать и анализировать
данные с использованием всех современных инструментов.
Объект исследования - процесс обработки, анализа и хранения данных.
Предмет исследования – структура и алгоритмы работы серверной части no-code
системы для обработки и анализа данных.
3/20

4.

Постановка задачи
Разработать микросервис, позволяющий:
• загружать наборы данных из файлов и по ссылкам из внешних ресурсов;
• хранить, загружать, удалять наборы данных;
• по командам из web-интерфейса выполнять заранее настроенные действия
обработки данных;
• рассчитывать численные и статистические характеристики наборов данных;
• строить интеллектуальные модели.
Нефункциональные требования:
• связь с web-интерфейсом по протоколу HTTP REST;
• язык разработки - Python;
• фреймворк – FastAPI;
• контейнеризация – Docker.
4/20

5.

Структура системы
Блоки с готовым
кодом
Код требуется
найти/разработать
5/20

6.

Обзор существующих решений
Система
Minitab
Преимущества
богатый функционал;
поддержка машинного
обучения.
Недостатки
ML – тренажер
для работы с
большими
данными
(Иннополис)
поддержка машинного
обучения.
большая стоимость: 1780$ 3040$;
предоставляется только для юр.
лиц и ИП;
ограниченные возможности
интеграции.
большая стоимость;
использование только для
обучения студентов.
6/20

7.

Проработка и детализация решения
Интеграция с сервисом хранения файлов MinIo.
Интеграция с СУБД PostgreSQL: хранение метаданных о наборах данных.
Интеграция с сервисом авторизации / аутентификации Keycloak.
Реализация логики работы с наборами данных.
Реализация логики обработки данных с использованием библиотеки Pandas.
Реализация функционала построения аналитических моделей машинного
обучения с использованием библиотеки Scikit-learn.
Интеграция с другими техническими сервисами системы, web-интерфейсом.
Тестирование.
Разработка скрипта для формирования образа docker.
Подготовка документации.
7/20

8.

Логическая модель программы
8/20

9.

Структура таблиц в БД
9/20

10.

Загрузка набора данных
10/20

11.

Замена пропущенных значений
11/20

12.

Построение регрессионной модели
12/20

13.

Используемый инструментарий
Язык программирования
Python
Среда разработки
PyCharm
Программная платформа
FastAPI
Ключевые библиотеки
Pandas, scikit-learn, pickle, joblib
Сервис хранения файлов
MinIo
СУБД
PostgreSQL
Аутентификация и авторизация
Keycloak
Хранение кода/Управление
задачами/Ревью
Jetbrains Space
Среда моделирования процессов
Diagrams.net
13/20

14.

Программный интерфейс
Взаимодействие с наборами данных
6 методов
Обработка данных
9 методов
Анализ данных
9 методов
14/20

15.

Реализация запросов, API
Как реализовано? Какие библиотеки? Какой код? Как xlsx файлы читаются? Пример отправки
запроса и пример соответствующего ответа.
15/20

16.

Способ хранения моделей данных
Для хранения настроек аналитических моделей используется библиотека joblib, позволяющая
сохранить и прочитать модель из текстового формата pkl.
16/20

17.

Тестирование
Способ осуществления тестирования – ручной.
Инструменты для тестирования:
FastAPI Swagger UI;
Среды: Google colab и PyCharm.
Основные сценарии тестирования:
Тестирование запросов с клиента на сервер;
Тестирование методов работы с пользовательскими наборами данных;
Тестирование методов обработки наборов данных;
Тестирование методов анализа данных.
17/20

18.

Публикации по теме работы
Русаков, В.В. Разработка NO-Code системы обработки и хранения данных / В.В.
Русаков, В.Е. Мокунева, И.П. Селетков // Актуальные проблемы математики,
механики и информатики 2023 [Электронный ресурс] : сборник статей по
материалам студенческой конференции / Пермский государственный национальный
исследовательский университет ; под редакцией М. М. Бузмаковой. – Пермь, 2023.
C. 312-317. – Режим доступа: http://www.psu.ru/files/
docs/science/books/sborniki/aktualnye-problemy-matematikimekhaniki-informatiki2023.pdf. - ISBN 978-5-7944-4043-0.
18/20

19.

Заключение
Разработан сервис для выполнения основных действия обработки данных:
загрузки, удаления, сортировки, фильтрации и т.д. .
Разработан сервис для построения регрессионных моделей данных: линейной,
логистической, дерево, случайный лес и т.д.
Произведено тестирование разработанного функционала (более 100 тестов).
Разработан скрипт создания контейнера Docker.
Сервис опубликован и развёрнут в составе системы.
19/20

20.

Спасибо за внимание!
English     Русский Rules