Школа Больших Данных
566 subscribers
117 photos
711 links
Канал Школы Больших Данных https://www.bigdataschool.ru/ - обучение технологиям Big Data: разработка приложений и администрирование кластеров Hadoop, Kafka, Spark, NoSQL, Python, ML и DS.
Тел: +7 (495) 41-41-121
Контакты: @Bigdataschool_msk @olga_burykh
Download Telegram
#MLOps #анализданных
🍡О процессе создания ПО, связанное разработкой моделей машинного обучением (Machine Learning).
Этот процесс включает три главных ипостаси: данные, ML-модель, код. Отсюда возникают, три стадии разработки модели машинного обучения: обработка данных, конструирование модели, внедрение модели.
@BigDataSchool_ru
https://python-school.ru/blog/steps-of-ml-development/
#MLOps #анализданных
🖥О процессе создания ПО, связанное разработкой моделей машинного обучением (Machine Learning).
Этот процесс включает три главных ипостаси: данные, ML-модель, код. Отсюда возникают, три стадии разработки модели машинного обучения: обработка данных, конструирование модели, внедрение модели.
@BigDataSchool_ru
https://python-school.ru/blog/steps-of-ml-development/
#BigData #MLOps
🖍️Сегодня рассмотрим, как MLflow реализует управление версиями модели и данных, а также чем это отличается от DVC.

Преимущества и недостатки популярных MLOps-инструментов с возможностями их совместного использования.
@BigDataSchool_ru
https://www.bigdataschool.ru/blog/mlflow-vs-dvc-for-data-version-control-in-mlops.html
#MLOps #ML #статьи
👁️‍🗨️Что общего у FastAPI с BentoML и при чем здесь MLOps
С точки зрения промышленной эксплуатации, в проектах машинного обучения следует фокусироваться не только и не столько на точности самих алгоритмов Machine Learning. Огромного внимания требует автоматизация рутинных процессов развертывания и сопровождения ML-моделей, что превратилось в целую концепцию под названием MLOps. Поскольку это направление инженерной науки о данных еще довольно молодое, в нем постоянно появляются новые идеи и инструменты.
В частности, одним из самых популярных MLOps-средств считается FastAPI – высокопроизводительный веб-фреймворк для создания API с помощью стандартной аннотации типов Python 3.6+. ML-инженеры часто используют его для развертывания своих моделей в качестве сервисов API.
Впрочем, FastAPI используется не только в ML-проектах. Этот фреймворк отлично подходит для быстрого создания любых REST-приложений на Python. Его дополнительным преимуществом является автогенерация документации API в формате Swagger (открытый стандарт OpenAPI 3) и JSON Schema. Пример создания такого REST API с тестированием методов в Swagger UI мы описывали в этой статье на блоге нашей Школы прикладного бизнес-анализа.
Возвращаясь к тему MLOps, отметим, что способность FastAPI генерировать документацию поддерживает идеи MLOps, а потому этот фреймворк можно отнести к набору инструментальных средств MLOps-Инженера. Однако, это далеко не единственный инструмент этой категории.
Сюда же относится BentoML – открытая библиотека для быстрого создания MVP систем машинного обучения. Она упрощает создание API методов для доступа к обученной ML-модели и совместима со всеми крупными фреймворками: Tensorflow, Keras, PyTorch, XGBoost, scikit-learn и fastai.
BentoML поддерживает адаптивную микропакетную обработку данных, а также предоставляет функции управления моделью и ее развертывания. BentoML отлично реализует идеи MLOps, позволяя разработчикам ML-моделей использовать лучшие практики DevOps. Специалисты по Data Science и инженеры Machine Learning используют BentoML для ускорения и стандартизации процесса запуска моделей в производство, создавая масштабируемые и высокопроизводительные сервисы машинного обучения. Библиотека поддерживает непрерывное развертывание, мониторинг и сопровождение сервисов в производственной среде. Пример практического использования BentoML мы рассматривали в этом материале.
Отметим общие функции FastAPI и BentoML с точки зрения MLOps:
они оба основаны на Starlette – легковесной ASGI-платформе для создания асинхронных веб-сервисов на Python;
автоматическая документация в Swagger UI согласно открытому стандарту OpenAPI 3;
асинхронные запросы, что позволяет обрабатывать несколько запросов одновременно, а не выполнять их линейно.
Несмотря на схожесть в этих фундаментальных вопросах, ключевые различия между BentoML и FastAPI для MLOps заключаются в сценариях использования, характерных для разработки и развертывания систем машинного обучения, что мы и рассмотрим далее.

@BigDataSchool_ru
https://www.bigdataschool.ru/blog/fastapi-versus-bentoml-for-mlops.html
#MLOps #статьи
Жизненный цикл ML-модели и MLOps
MLOps – это набор методов и техник машинного обучения вместе с лучшими практиками разработки, развертывания и управления масштабируемыми программными продуктами. MLOps автоматизирует весь жизненный цикл машинного обучения, от подготовки данных и обучения модели до ее развертывания и мониторинга, включая сотрудничество между всеми специалистами, задействованными в этих процессах.
Основные компоненты MLOP включают контроль версий и данные машинного обучения, непрерывную интеграцию и конвейеры непрерывного развертывания (CI/CD) для автоматизированного тестирования и развертывания, а также мониторинга и регистрации производительности и качества модели.
MLOPS также включает в себя управление инфраструктурой и ресурсами, необходимыми для машинного обучения, такими как распределенные вычислительные кластеры и облачные сервисы.

MLOps включает следующие этапы:
Исследовательский анализ данных (EDA, Exploratory Data Analysis)
Подготовка данных и проектирование фичей для обучения ML-модели
Обучение и настройка ML-модели
Тестирование ML-модели
Вывод ML-модели в производство и обслуживание
Автоматическое обновление модели во время эксплуатации

Чтобы автоматизировать рутинные операции каждого из вышеперечисленных этапов ЖЦ ML-модели с помощью MLOps, необходимо построить целую полноценную инфраструктуру.
Из каких архитектурных компонентов она может состоять, мы рассмотрим далее.
@BigDataSchool_ru
https://bigdataschool.ru/blog/mlops-architecture-and-infrastructure.html
#MLOps #статьи
Что такое ClearML и как это поможет MLOps-инженеру
Одним из инструментов, автоматизирующим все MLOps-операции, является платформа с открытым исходным кодом ClearML.
Она упрощает разработку кода и развертывание ML-моделей в рабочей среде, делая процесс создания системы машинного обучения воспроизводимым и масштабируемым.

С точки зрения MLOps-инженера ключевыми возможностями ClearML являются следующие:
✔️оркестрация заданий в конвейерах обработки данных
✔️автоматическое масштабирование рабочих процессов, что упрощает поставку ML-продукта в производство, позволяя запускать процессы локально или в облаке
✔️управление экспериментами, включая отслеживание, систематизацию, сравнение и версионирование гиперпараметров ML-модели, кода и результаты для принятия обоснованных решений
✔️управление ML-моделями путем их регистрации в едином реестре, версионировании, упаковки в контейнеры и упрощенного развертывания в разных средах
✔️автоматическое логирование результатов экспериментов, включая показатели, графики и выходные файлы с наглядной визуализацией на дэшбордах
✔️распределенное обучение на нескольких машинах или графических процессорах
✔️интеграция с популярными фреймворками машинного обучения, включая TensorFlow PyTorch, scikit-learn, TensorFlow, XGBoost, Optuna, а также Git-подобными инструментами
✔️поддержка совместной работы через управление доступом на основе ролей и автоматические уведомления членам команды
✔️облачное развертывание ML-моделей в AWS, Azure и GCP, включая поддержку интеграции с популярными DevOps-инструментами развертывания, такими как Kubernetes и Docker.

@BigDataSchool_ru
https://bigdataschool.ru/blog/mlops-with-clearml.html
#MlOps #статьи
MLOps в production: шаблоны развертывания на платформе Databricks

MLOps представляет собой набор лучших практик и инструментов для автоматизации управления кодом, данными и моделями, направленных на устранение организационных и технических разрывов между этапами и участниками процессов создания и развертывания систем Machine Learning. Эта концепция сочетает в себе элементы DevOps, DataOps и ModelOps. Ресурсы машинного обучения, такие как код, данные и модели, разрабатываются поэтапно, с относительно свободной стадии разработки через промежуточную стадию тестирования и конечную стадию производства, которая строго контролируется. Databricks Lakehouse позволяет управлять этими активами на единой платформе с унифицированным контролем доступа. MLOps-инженер может разрабатывать приложения для анализа данных и приложений машинного обучения на одной платформе, что снижает риски и задержки, связанные с перемещением данных.

Важным элементом жизненного цикла ML-модели является среда выполнения – место, где модели и данные создаются или используются кодом. Каждая среда выполнения состоит из вычислительных экземпляров, их сред выполнения и библиотек, а также автоматизированных заданий. Databricks рекомендует создавать отдельные среды для разных этапов кода машинного обучения и разработки моделей с четко определенными переходами между этапами. 

В большинстве случаев Databricks рекомендует в процессе разработки машинного обучения перемещать код, а не модели Machine Learning, из одной среды в другую. Такое перемещение ресурсов проекта гарантирует, что весь код в процессе разработки системы машинного обучения проходит одни и те же процессы проверки кода и интеграционного тестирования. Кроме того, именно такой вариант развертывания гарантирует, что производственная версия модели обучена производственному коду. 

Однако, возможны два шаблона перемещения артефактов машинного обучения через промежуточную стадию и в рабочую среду. Асинхронный характер изменений моделей и кода означает, что существует несколько альтернативных паттернов, которым может следовать процесс разработки машинного обучения.
Модели создаются кодом, но результирующие артефакты модели и создавший их код могут работать асинхронно. Это означает, что новые версии модели и изменения кода могут происходить не одновременно, в зависимости от различных вариантов использования. 
Например, для обнаружения мошеннических финансовых транзакций ML-конвейер еженедельно переобучает модель. Код меняется не очень часто, но сама модель переобучается каждую неделю для включения новых данных. А в случае классификации документов понадобится большая нейросеть Deep Learning, обучение которой требует значительных вычислительных ресурсов и времени, но переобучение модели происходит нечасто. При этом код, который развертывает, обслуживает и отслеживает эту модель, можно обновить без ее повторного обучения.

Таким образом, шаблоны развертывания отличаются тем, что перемещается в производственную среду: артефакт модели или обучающий код, создающий этот артефакт модели.
Каковы достоинства и недостатки каждого из этих паттернов, рассмотрим далее.

@BigDataSchool_ru
https://bigdataschool.ru/blog/mlops-deployment-patterns-on-databricks-lakehouse-platform.html
#MlOps #статьи
Развертывание ML-модели

В этом шаблоне развертывания артефакт модели создается обучающим кодом в среде разработки, затем тестируется в промежуточной среде перед развертыванием в производственной.
Этот вариант подходит, когда обучение ML-модели очень дорого или трудно воспроизводимо, вся работа выполняется в единой рабочей области Databricks и нет внешних репозиториев или процессов непрерывной интеграции и поставки (CI/CD).

Такой подход проще для специалистов по данным и требует однократного обучения модели. Что особенно важно при высокой стоимости этого процесса.

Однако, если производственные данные недоступны из среды разработки, например, по соображениям безопасности, эта архитектура может оказаться нежизнеспособной.

Кроме того, автоматическое переобучение модели в этом шаблоне затруднительно: можно автоматизировать переобучение в среде разработки, но команда, ответственная за развертывание модели в производственной среде, может не принять полученную ML-модель как готовую к эксплуатации.

Наконец, этот шаблон требует дополнительных усилий, поскольку вспомогательный код, такой как конвейеры, используемые для разработки фичей, логических выводов и мониторинга, необходимо развертывать в рабочей среде отдельно.

Таким образом, в шаблоне развертывания моделей окончательное модульное и интеграционное тестирование выполняется в среде разработки. А в паттерне развертывания кода модульные тесты и интеграционные тесты выполняются в средах разработки, тогда как окончательное модульное и интеграционное тестирование выполняется в промежуточной среде.

Впрочем, следует еще раз подчеркнуть, что выбор окончательного варианта развертывания зависит от нескольких условий:

✔️сценарий использования системы Machine Learning, включая частоту обновления модели, данных и кода;
✔️компетенции команды, в т.ч. специалистов по Data Science и MLOps-инженеров;
✔️строгость правил обеспечения информационной безопасности, действующих в компании;
✔️использование внешних сервисов и репозиториев за пределами единой платформы Databricks Lakehouse

@BigDataSchool_ru
https://bigdataschool.ru/blog/mlops-deployment-patterns-on-databricks-lakehouse-platform.html
#MlOps #статьи
Что такое TAO Toolkit от NVIDIA.

Набор инструментов NVIDIA TAO Toolkit позволяет комбинировать предварительно обученные модели NVIDIA с пользовательскими данными для создания моделей компьютерного зрения и диалогового ИИ.

TAO Toolkit использует простой CLI-интерфейс, который абстрагируется от сложности инфраструктуры ИИ, позволяя создавать модели ИИ производственного качества, используя только файл спецификации и одну из предварительно обученных моделей NVIDIA.

В общем виде использования TAO Toolkit для трансферного Machine Learning выглядит так:
Формирование датасета – сперва следует загрузить свой набор данных в преобразователь, чтобы обогатить их и создать датасет для обучения модели;
Обучение модели с использованием файла спецификации для выбора гиперпараметров;
Оценка — после первого этапа обучения модели следует оценить ее на тестовом датасете, чтобы увидеть, как модель работает с данными, которые она никогда раньше не видела. Если точность модели недостаточна, надо настроить некоторые гиперпараметры и повторно обучить модель. Обучение — это итеративный процесс, который занимает несколько циклов.
Сокращение модели, когда TAO будет алгоритмически удалять нейроны из нейросети, которые не вносят существенного вклада в общую точность. Также сокращение модели уменьшает ее общий размер, дает значительное уменьшение объема потребляемой памяти и увеличение пропускной способности логических выводов, что очень важно для периферийного развертывания. Это необходимо только для моделей компьютерного зрения, но не требуется для разговорного ИИ. Сокращение модели снизит точность модели, поэтому придется повторно обучить модель на том же наборе данных, чтобы восстановить потерянную точность. После повторного обучения необходимо снова оценить модель на том же тестовом наборе данных.
Экспорт модели будет в формате .etlt, который можно развернуть непосредственно на любом графическом процессоре NVIDIA с помощью DeepStream и TensorRT. На этапе экспорта можно дополнительно сгенерировать калибровочный кэш INT8, который квантует веса с плавающей запятой до целочисленных значений. Вывод с точностью INT8 может более чем удвоить производительность по сравнению с точностью FP16 или FP32 без ущерба для точности модели. После экспорта любую модель компьютерного зрения в TAO можно развернуть в оптимизированном для TensorRT движке с помощью преобразователя TAO.

Познакомившись с возможностями и вариантами использования NVIDIA TAO Toolkit, рассмотрим, как применять этот набор инструментов со средствами MLOps – концепции, которая направлена на устранение организационных и технических разрывов между этапами и участниками процессов создания и развертывания систем Machine Learning.

@BigDataSchool_ru
https://bigdataschool.ru/blog/what-us-nvidia-tao-toolkit-for-mlops.html
#MLOps #статьи
Что такое CRISP-ML(Q) и при чем здесь MLOps

Стандартизация подходов и процессов позволяет унифицировать и масштабировать лучшие практики управления исследованиями и разработкой, в т.ч. распространяя их на другие домены.
Например, CRISP-DM (Cross-Industry Standard Process for Data Mining) как наиболее распространенная методология выполнения Data Science проектов описывает их жизненный цикл в 6 фазах, каждая из которых включает ряд задач.
Аналогично свод знаний по бизнес-анализу BABOK®Guide структурирует задачи, которые решает бизнес-аналитик, по 6 областям знаний.

Аналогичный подход к организации машинного обучения был опубликован в 2012 году под названием CRISP-ML(Q).
Это аббревиатура от CRoss-Industry Standard Process model for the development of Machine Learning applications with Quality assurance methodology.

Будучи основанной на CRISP-DM, модель процесса CRISP-ML(Q) описывает шесть этапов:
1️⃣Понимание бизнеса и данных
2️⃣Инженерия данных (подготовка данных)
3️⃣Моделирование машинного обучения
4️⃣Обеспечение качества приложений машинного обучения
5️⃣Развертывание ML-модели;
6️⃣Мониторинг и обслуживание ML-системы.

Для каждого этапа модели процесса подход к обеспечению качества в CRISP-ML(Q) требует определения требований и ограничений, таких как производительность, требования к качеству данных, к устойчивости модели и пр.
Также должны быть определены этапы создания экземпляра модели процесса, конкретные задачи, например, выбор алгоритма Machine Learning, обучение ML-модели.

Особое внимание уделяется рискам, которые могут негативно повлиять на эффективность и успех ML-приложения, например, смещение данных, переобучение алгоритмов, отсутствие воспроизводимости и т. д. Для этого должны быть определены методы обеспечения качества, такие как перекрестная проверка, документирование процесса и результатов, логирование экспериментов и пр.

Инструментально это поддерживается средствами MLOps-концепции, которая стремится устранить организационные и технические барьеры между разнопрофильными участниками процессов создания ML-систем, от подготовки данных до развертывания в производстве.

Далее про фазы CRISP-ML(Q) более подробно.

@BigDataSchool_ru
https://bigdataschool.ru/blog/crisp-mlq-and-mlops.html
#MLOps #статьи
6 фаз CRISP-ML(Q).

Визуализируем этапы и задачи CRISP-ML(Q) в табличном виде.

Далее можете изучить подробно.

@BigDataSchool_ru
https://bigdataschool.ru/blog/crisp-mlq-and-mlops.html
#MLOps #статьи
С чего начать: определение структуры проекта

Напомним, концепция MLOps ориентирована на устранение организационных и технических разрывов между разнопрофильными участниками процессов создания систем машинного обучения.

Когда речь заходит о межпроцессном взаимодействии, неудивительно, что для успеха подобных коммуникаций они должны быть, как минимум, определены.

В частности, MLOps легче внедрить, когда структура ML-проекта четко организована, включая следующие компоненты:
✔️проектная база знаний, в которой собраны исходные требования от заказчика, доменные и технические ограничения, варианты решений;
✔️система управления требованиями и задачами;
✔️репозиторий кода и данных;
✔️правила именования функций и датасетов;
✔️правила взаимодействия с определением канала коммуникаций и области ответственности каждого члена команды;
✔️конфигурации сред разработки, тестирования и развертывания;
✔️система контроля версий, например, Git для кода и dvc для данных, чтобы отслеживать изменения;
✔️репозиторий идей по улучшению документации и коммуникаций.

Далее: Стек MLOps-инструментов

@BigDataSchool_ru
https://bigdataschool.ru/blog/techstack-template-for-mlops-tools.html