Проекты в общем: Инициирование и планирование проекта
Сбор и анализ информации об исходном положении проекта
Анализ исходной ситуации должен проводится еще до начала проекта, но и в ходе инициирования и планирования проекта сбор и анализ информации продолжается
данные о рынке, потребностях, технологиях, партнерах и конкурентах, ограничениях проекта, включая доступность ресурсов, и др.
Понять
насколько проект реально востребован и реализуем
Инструменты и компетенции
сбор и анализ данных
анализ заинтересованных сторон
дизайн мышление
Определение (уточнение) целей и показателей успеха проекта
Цель - образ желаемого будущего
Цель проекта должна определять, те положительные изменения, ради которых делается проект
Для обеспечения мониторинга достижения целей формулируются показатели успеха проекта, за которые несут ответственность руководитель проекта и члены команды
Цели проекта отражают интересы ключевых заинтересованных сторон проекта и в первую очередь заказчика, но руководитель проекта (РП) должен цели принять и при необходимости уточнить.
Инструменты и комтенции
дерево целей
SMART
Разработка возможных способов достижения целей
Часто цели проекта могут быть достигнуты разными способами или с применением разных решений
приобретение готовых продуктов (активов), усиление существующих или создание нового продукта (актива) своими силами и т.п.
Прежде чем переходить к детальному планированию, необходимо проанализировать альтернативные варианты решений
Инструменты и комтенции
дизайн мышление
системная инженерия
Определение выгод и возможных рисков каждого способа достижения целей
Необходимо оценить альтернативные способы достижения целей
оценка преимуществ и возможных негативных последствий каждого каждого способа (решения)
Инструменты и компетенции
анализ альтернатив
системный анализ
SWOT
взаимодействие с заинтересованными сторонами
привлечение экспертов
Выбор основного способа достижения целей- проектного решения
Инструменты и компетенции
разработка и утверждение основных решений (концетциы проекта)
Определение функциональных областей и видов работ, необходимых для реализации проекта
Понимание решения (продукта проекта и его составных частей) позволяет определить масштаб и основные виды работ, которые надо будет планировать и реализовывать
Позволяет оценить сложность проекта, области неопределенности и рисков, требования к опыту и компетентности команды проекта и привлекаемых экспертов
Инструменты и компетенции
иерархическая структура продукта проекта
иерархическая структура работ проекта
модель компетенний проекта
Определение стратегии реализации проекта (ЖЦ, подходы к реализации, приоритеты и последовательность получения основных результатов)
Стратегия реализации проекта - это укрупненный план, определяющий основные этапы, точки контроля и принятия решений по проекту
Стратегия реализации проекта учитывает, как содержание проекта, так и условия реализации проекта (наличие ресурсов, факторы окружения проекта, наличие приоритеты и поддержки или сопротивления изменениям)
Инструменты и компетенции
жц проекта
процессы управления проектом
план по контрольным точкам
Определение требований к составу и компетентности участников команды управления проектом
уточнить полномочия и ответственность ключевых участников участников команды управления проектом
формирование команды управления
Инструменты и компетенции
роли в команде проекта
отвестственность и полномочия
организационная структура проекта
матрица отвественности
Формирование и утверждение организационной структуры управления проектом, основных требований к управлению и реализации проекта
фиксируются ранее принятые решения о целях и содержании проекта, а также принципы реализации и управления проектом
Формируется и утверждается команда управления проектом, распределение ответственности и полномочий
Инструменты и компетенции
Устав (паспорт) проекта
Детализации состава работ проекта, разработка общего и детальных календарных планов
Инструменты и компетенции
иерархическая структура работ проекта
календарный план
Кто участвует
РП
ключевые коллеги команды управления
ответственные исполнители
эксперты
Определение потребностей в ресурсах ( включая бюджет, мощности, поставки и тд) по работам проекта и по проекту в целом
Когда план проекта детализирован до отдельных задач (работ), можно провести ощенку потребности каждой отдельной работы (задачи, пакета работ) в ресурсах
Оценка трудоемкости и потребностей проекта в ресурсах гораздо точнее, если привязаны к конкретным работам и выполнены с участием специалистов
Инструменты и компетенции
оценка потребности работ в ресурсах
смета
бюджет
план обеспеченыя проекта ресурсами
Разработка плана реагирования на риски. Доработка плана реализации проекта с учетом рисков
План управления рискамия является частью сводного плана проекта, а такие элементы плана, как календарный план, бюджет, план привлечения ресурсов необходимо доработать с учетом плана утравления рисками
Инструменты и компетенции
выявление и анализ рисков
план управления рисками
МЛ
Шаги
Выбрать удобный и подходящий инструмент в качестве
Создать репозиторий документов и сделать его доступным для команды
Версионирование
Docs-as-code
Создать реестр рисков
аналог
LeanDS (Questions)
Риск-Вопрос для изучения- действие по устранению
Создать организационную модель клиента
карта стейкхолдеров
орг единицы
ЛПУ
ключевые лица (бюджетирование, визирование, IT-безопасность и тд
бизнес-приоритеты
кто клиент, а кто заказчик
карта бизнес-процессов
понимание того, как сейчас работает заказчик- увеличивает шансы на успех
адаптация бизнес-процессов. Что необходимо?
Своевременность проекта. (Не опережаем ли мы события? Не действуем ли слишком поздно?).
Организация проекта. (Как будет реализовываться проект? Кто участники рабочей группы? Как мы будем их мотивировать?).
Необходимость и достаточность. (Можно обойтись наименьшими усилиями? Бизнес-процесс – это не просто, не дешево и не быстро).
Техническое задание. (Как правильно оформить ТЗ для оптимизации комплекса критичных бизнес-процессов через карту целей).
основные поинты
как и кем и когда будет финансироваться проект
PandL
какая организационная структура у компании-клиента
зачем клиенту этот проект
- какая IT-архитектура есть у клиента
Проанализировать архитектуру системы клиента и функциональные/нефункциональные ограничения
Функциональные
что будет делать система, какая её функция, какую задачу будет решать, какие требования по метрикам?
Нефункциональные
скорость работы (throughput и latency), стоимость функционирования (железо и поддержка)
Системные требования
какая инфраструктура нужна, с какими системами нужно интегрироваться
Провалидировать бизнес-применение и user stories с клиентами
Определить требования к качеству работы ML-модели
Создать UX-дизайн
а подробнее
Концепт - основная идея, зачем он нужен
Список стейкхолдеров
Приоритеты бизнеса - привлечение клиентов, рост выручки, попуск конкурентов, социальная ответственность
Impact statement - как проект будет приносить ценность, на какие показатели влиять
Дата-ресурсы - какие данные доступы для обучения и в продакшне, как они будут поступать в систему
Концепт модели - что будем тренить
Функциональные и нефункциональные требования
Как и кем модель будет использоваться - дашборд, автономная работа и т.д.
Агрегировать данные в единую картину
Создать дата-пайплайны
выбрать инструмент (Airflow) и настроить доступы
Написать дата-тесты
проверка на дубликаты, качество входных/выходных и тд
Подвязываемся к источникам данных (сырые данные в CSV, Kafka, объектное хранилище и т.д.)
Создать репозиторий моделей
Определить и записать все артефакты, которые будут использоваться в ML-пайплайнах
Запланировать и провести EDA
Перепроверить этические риски в свете новой информации
Обучить бейзлайны моделей
понять
все ли ок и идем дальше
переопределение целей
стоп
Артефакты
Доступ к обучающим и валидационным данным
Data Survey
Дата-пайплайны
Дата-тесты
Репозиторий моделей и других артефактов
EDA
Бейзлайн-модель
Этическая оценка
Работа с моделями. Оценка насколько модель хороша
Модель хороша, если
создана
на основе прозрачной и надёжной дата-инфраструктуры
для решения понятной проблемы и действительно решает её
с учётом этических аспектов
Высокое качество фиче-инжиниринга
Осмысленный дизайн самой модели
Оценена по разным аспектам и с помощью разных метрик
Процесс выбора модели прозрачен и используется понятный процесс моделирования
Хорошо задокументирована
ML
Шаги
Создать план фиче-инжиниринга, провести ревью с командой
Имплементировать пайплайн фиче-инжиниринга
Задизайнить аугментации
Создать и задокументировать дизайн модели. Декомпозировать дизайн на задачи
Факторы, влияющие на дизайн
Метрики
Прозрачность и интерпретируемость
Скорость работы
Стоимость
Приватность данных
Робастность
Время на разработку
Тип данных и особенности домена
Модель может состоять из нескольких компонентов
Несколько несвязанных моделей для разных аупутов
Цепь из моделей (например, классификатор документов, а затем разные OCR-модели для разных типов документов)
Утвердить процесс моделирования
Выбрать эксперимент-трекер. Выбрать репозиторий моделей. Отвергнуть очевидно плохие модели
Признаки плохих моделей
Неконсистентный перфоманс и сильная чувствительность к небольшим изменениям входных данных
Слишком хороший неожиданный перфоманс
Небольшое изменение гиперпараметров ведёт к сильному росту метрик
Имплементировать тестовую среду
Создаём среду для оффлайн-тестирования, по возможности максимально приближенную к реальной работе - получаем доступ к данным, настраиваем дата-пайплайн, запускаем модель, считаем метрики
Разработать метрик-тесты для моделей
Решаем, как будем проводить онлайн-тесты - field trial (деплой на небольшую группу пользователей), A/B-тестирование, multi-armed bandits
Протестировать нефункциональные требования
Финальные latency/throughput, цена, требования по ресурсам
Утвердить алгоритм выбора лучшей модели на основе валидационных и тестовых данных
Учесть нефункциональные требования и другие качественные показатели
Количественные тесты
Сравниваем по какой-нибудь единой метрике
Сравниваем по набору метрик (multi-objective optimization)
Качественные тесты
Безопасность модели
Справедливость модели
Интерпретируемость модели
Написать model delivery отчёт
Задокументировать процедуру выбора модели
Отревьюить и обсудить с клиентом выбор модели
Артефакты
Пайплайн фиче-инжиниринга
Дизайн модели
Ряд обученных моделей
Результаты экспериментов, метрики
Список обнаруженных проблем
Тестовая среда
Алгоритм выбора лучшей модели
Тестовые данные из онлайн-среды
Документация по процессу выбора модели
В Продакшен!
МЛ
Шаги
Определить тип деплоя
Типы деплоя
Assistive - люди смотрят на результаты работы модели, например, в дашборде
Delegative - делают предикт, который используется напрямую, но под контролем человека
Autonomous - автономные системы, работающие без человека
Определить функциональные и нефункциональные эффекты системы
Стоимость
Эффект на экологию
Скорость и пропускная способность
Поддержка очерёдности запросов
Поведение в случае ошибки
Надёжность
Выстроить продакшн дата-пайплайны
Data lake (HDFS, S3) + процессор (Hadoop, Databricks)
Data warehouse (BigQuery, Redshift)
RDMBS-сервер (Oracle, Postgres)
NoSQL (Mongo, Cassandra)
Memory store (Redis, Memcached)
Создать систему инференса
Выбираем inference server
In a database - BigQuery ML, Redshift ML
Application server - Nginx, Flask
Spark-like - Apache Spark, Databricks
Kubernetes/Kubeflow
Serverless - Lambda, Azure Function
Определить необходимые компоненты интерфейса системы
Принципы UI-дизайна ML-систем
Должно быть понятно, что система может и не может делать
Показывать только информацию, которая релевантна текущему контексту пользователя
Должно быть легко отключить систему при необходимости
Если система неуверенна в своём ответе, надо собрать больше информации от пользователя или временно отключиться
Система должно плавно адаптироваться и обновляться. У пользователей есть свои ожидания
Здорово собирать детальный фидбек о работе системы от пользователей
У пользователя должны быть способы мониторить и контролировать работу системы
Нужно заранее оповещать пользователя об изменениях в системе
Выбрать соответствующий подход к разработке интерфейса, который позволит удовлетворить требованиям пользователей
Создать системы логирования, мониторинга и алертинга
Определить процесс управления и передачи модели
Написать документацию по поддержке модели
Run book - документ для HD первой и второй линии, который содержит информацию о всех возможных ошибках, и о том, что нужно делать в каждом случае
Технический обзор - брифинг для новых инженеров, чтоб максимально быстро понять суть системы и заонбордиться
Troubleshooting guide - более подробный гайд по всем возможным проблемам с системой
Создать предрелизный план тестирования
Юнит-тесты
Системные тесты
Интеграционные тесты
Acceptance-тесты
Финальные этические проверки
Провести релиз в продакшн
Создать пострелизный план тестирования
Поблагодарить команду
Постпродакшен: Промышленная эксплуатация
Шаги
Определить основные источники ML-техдолга
Проверять перфоманс модели ее актуальность и необходимость модели
Определить примерную скорость устаревания модели и по необходимости процедуру переобучения
Определить общий software-техдолг системы
Провести пост-ревью, вынести уроки из проекта
Определить новые практики для будущих ML-проектов
Чему научились, какие новые практики попробовали, какие хотим попробовать в будущем