Создание приложений, интеграция в ИТ ландшафт
1.78M

Тема 14 Часть 1

1. Создание приложений, интеграция в ИТ ландшафт

Пересунько Евгения Олеговна

2.

Структура занятия
2
1
Создание приложений на Python
2
Особенности создания приложений в области ИИ
3
Внедрение ML-моделей в приложения
4
Инструменты разработки
5
Виды проектов в области ИИ

3.

Создание приложений на Python
Виды приложений на Python:
• Консольные приложения
• Web-приложения
• Desktop-приложения
• Исследования (как правило, в формате Jupyter Notebook)
3

4.

Консольные приложения
• Консольные приложения и приложения с интерфейсом командной строки
не имеют графического интерфейса пользователя
• Принцип работы заключается в запуске приложения с заданными
параметрами и/или текстовым интерфейсом
4

5.

Web-приложения
Веб-приложение — клиент-серверное приложение, в котором клиент
взаимодействует с веб-сервером при помощи браузера.
Библиотеки для «универсальных» веб-приложений:
• Django
• Flask
• FastAPI
Библиотеки для создания приложений визуализации и анализа данных:
• Dash
• Streamlit
5

6.

Процесс создания web-приложения
Основные задачи:
• Разработка базы данных (выбор СУБД)
• Разработка API: описание взаимодействия всех частей системы
• Разработка frontend-части: необходимы знания JavaScript и фреймворков
(React / Angular / и др.)
• Разработка backend-части: для Python – знание Django (DRF) / FastAPI / и др.
• Тестирование (нагрузочное, интеграционное и другие)
Как следствие, требуется широкий набор знаний и много ресурсов
6

7.

Разработка приложений для визуализации
• Приложение для визуализации
данных
• Используемая библиотека: Streamlit
• Преимущества: не требуются
глубокие знания веб-разработки
7

8.

Варианты приложений для демонстрации
Создание отчета
8
Приложение с CLI
Можно сделать в любом удобном
формате (презентация, Jupyter
notebook, текстовый документ)
Возможен интерактив
Не требует специализированных
знаний
Текстовый интерфейс
Нет взаимодействия с разработанной
моделью
Ограниченная визуализация

9.

Варианты приложений для демонстрации
Чат-бот
9
Приложение-дашборд
Большое число библиотек для Python
(и не только)
Большое число библиотек для
создания приложения из готовых
компонентов
Возможность создания без
программирования
Интерактивная визуализация
Ограниченная визуализация
Приложение менее гибкое, чем
«полноценный» веб-сайт

10.

Desktop-приложения
• Desktop-приложения (или настольные) – это программы, которые
нуждаются в операционной системе компьютера для своей работы
• Устанавливаются в систему через специальный инсталлятор
• Используют для работы ресурсы компьютера
10

11.

Библиотеки для создания desktop-приложений
• Tkinter
• PyQt
• PySide
11

12.

Особенности создания приложений в области ИИ
• Приложения в области ИИ направлены на интеллектуальную обработку
каких-либо данных.
• Разработка программного обеспечения – важный шаг в применении
результатов машинного обучения.
• Специалист по машинному обучению – это не только учёный, но и
программист.
12

13.

Основные задачи в ИИ-проекте
Формулировка проблемы
Работа с данными
• Сбор и разметка
• Предобработка
Разработка моделей
• Проектирование
• Разработка
• Обучение
• Тестирование
Применение
13

14.

Сбор требований к системе ИИ
Требования к программному обеспечению
• Функции (функциональные требования)
• Свойства и характеристики (нефункциональные требования)
Требования к процессу машинного обучения
• Скорость работы
• Точность и качество
• Входные и выходные данные
14

15.

Основные проблемы при проектировании
Акцент на модели без конкретизации требований к ПО
Отсутствие требований к модели и данным
Нереалистичные или плохо интерпретируемые метрики качества
Метрики, не соответствующие предметной области
Отсутствие плана разработки ПО в целом
• Как будет работать приложение?
• Как будет интегрироваться модель?
15

16.

Внедрение моделей в приложения
• Модель как зависимость (Model-as-Dependency)
• Модель по запросу (Model-on-Demand)
• Модель как услуга или сервис (Model-as-Service)
16

17.

Модель как зависимость
Наиболее простой способ
упаковать модель
Пример: приложение использует
ML-модель как обычную
зависимость от файла, вызывая
метод прогнозирования и
передавая значения.
Возвращаемое значение: прогноз
от предварительно обученной MLмодели.
17

18.

Модель по запросу
Модель – зависимость, доступная
во время выполнения.
Отличие от шаблона «Модель как
зависимость» - имеется
собственный цикл выпуска
(публикуется независимо)
Обычно используется брокер
сообщений (Apache Kafka /
RabbitMQ и т. д.)
18

19.

Модель как услуга
Заключение ML-модели и интерпретатора в выделенную веб-службу
Запросы - через REST API или удаленный вызов процедур (RPC, Remote
Procedure Call).
Паттерн пригоден для различных рабочих процессов машинного обучения,
от пакетного прогнозирования до онлайн-обучения модели в потоковом
режиме.
19

20.

Библиотеки для разработки моделей
Статистика и математика
• NumPy
• SciPy
• Statsmodels
Визуализация данных
• Matplotlib
• Plotly
Построение ML-моделей
• Scikit-learn
Искусственные нейронные сети
• TensorFlow
• PyTorch
20

21.

Инструменты для улучшения качества
Инструменты для ускорения моделей
• ONNX runtime
• Tensorflow lite
• OpenCV
• TensorRT
Подходы к ускорению моделей
• Квантизация
• Прунинг
• Дистилляция
• Кластеризация весов
21

22.

Управление версиями кода
• Git: https://git-scm.com/
• Сервисы на основе Git:
GitLab, GitHub, GitVerse и другие
22

23.

Управление версиями данных и моделей
• DVC работает поверх Git,
использует его
инфраструктуру и имеет
похожий синтаксис.
• В процессе работы DVC
создает мета-файлы для
описания пайплайнов и
версионируемых файлов,
которые необходимо
сохранять в Git историю
проекта.
23

24.

Виды проектов в области ИИ
• Research / R&D / НИОКР
• Proof-of-Concept
• MVP
• «Готовое» приложение (стабильный релиз)
24

25.

Research / R&D / НИОКР
Возможный результат
• Отчет о НИОКР
• Математическое и алгоритмическое обеспечение
• Прототип приложения
Особенности
• Не всегда можно заранее установить метрики точности
• Есть вероятность того, что ничего не получится
25

26.

Proof-of-Concept
Возможный результат
• Прототип приложения или его части
Особенности
• Рассматривается только функционал самой концепции
• Малое количество ограничений, например, нет ограничений по
производительности или на язык реализации
• На выходе должен получиться прототип, а не работающее приложение
26

27.

MVP
Возможный результат
• MVP (Minimal Viable Product, минимально жизнеспособный продукт) — тестовая версия
товара, услуги или сервиса с минимальным набором функций, которая несет ценность
для конечного потребителя
Особенности
• Описаны все необходимые функции для полноценной работоспособности приложения,
реализован минимальный набор
• Описаны нефункциональные требования
• Определены тесты
27

28.

Готовое приложение
Возможный результат
• Стабильно работающее приложение со всеми функциями
Особенности
• Определены, задокументированы и реализованы все функциональные и
нефункциональные требования
• Составлены диаграммы и схемы
• Подготовлены критерии приемки и приемочные тесты
28

29.

do.bmstu.ru
English     Русский Rules