Similar presentations:
Тема 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