Вкратце, MLOps не сильно отличается от DevOps и содержит ряд методов развертывания модели в реальном мире. Для всех очевидно, что после разработки модели нужно развернуть ее в реальном мире для различных вариантов использования. Эта статья представляет собой краткое изложение важнейших компонентов, о которых вам необходимо знать, чтобы завершить свое путешествие в области ML/DL в качестве инженера ML/DL, специалиста по данным и т. д.
Это общая процедура, с которой мы в основном сталкиваемся как специалисты по данным.
- Предварительная обработка данных
- Найдите согласованные модели с нашими данными
- Кодирование – предложение/разработка моделей
- Обучение/тестирование — тонкая настройка
- Развертывание
- Из процедуры видно, что три компонента (Процесс вывода) имеют решающее значение: 1. Входные данные 2. Интерпретатор (для выполнения)3. Модель
- Модель без развертывания бесполезна в реальном мире.
- Развертывание может быть приложением на вашем мобильном телефоне или программным обеспечением в вашей системе и т. д.
- Нет необходимости в обслуживающей инфраструктуре, можно использовать Colab
Сервировка модели:
- Существует два типа развертывания предлагаемой нами модели: 1. Пакетное 2. Онлайн
Пакетный вывод (статическое обучение)
- При пакетном вмешательстве, которое является наиболее распространенным способом, мы обучаеммодель и предсказываемавтономно. сильный>
- При пакетном развертывании модель останется неизменной до тех пор, пока мы не решим ее переобучить. Решение о переобучении связано с большим количеством реальных данных (распад модели).
- Прогноз основан на исторических данных, которые использовались ранее.
- Этот способ хорош для таких данных, которые не являются последовательными или не меняются со временем.
Онлайн-вывод (динамическое обучение)
- Модель переобучается по мере получения новых данных, таких как потоковые данные и т. д.
- Этот тип обучения в основном используется для тех видов данных, которые меняются со временем, таких как речь, датчики и т. д.
- Этот способ хорош для прогнозирования в реальном времени (прогнозирования по запросу) благодаря способности адаптироваться к новым событиям или поведению.
Оптимизация онлайн-вывода
Есть три важных показателя, которые мы должны учитывать:
1. Задержка
- Задержка – это время от запроса пользователя до получения ответа.
- Другими словами, процесс отправки запроса, операционного вывода и получения ответа
- Задержка является решающим требованием для удовлетворения потребностей клиентов
2. Стоимость
- Цель состоит в том, чтобы сделать стоимость минимальноймаксимально возможной.
Для этого мы можем использовать разные инфраструктуры: CPU/ GPU/ Кэширование
3. Пропускная способность
- Это относится к количеству успешных запросов, выполненных в единицу времени.
- В некоторых случаях мы ценим пропускную способность больше, чем задержку (особенно для тяжелых задач, таких как модели для видео и т. д.).
В двух словах, мы стремимся свести к минимуму задержку, одновременно максимизировав пропускную способность.
Однако это резко увеличивает затраты. Итак, мы должны найти баланс между этими тремя компонентами.
Есть некоторые задачи, для которых мы можем увеличить пропускную способность и уменьшить задержку с учетом затрат. : 1. Используйте совместное использование графического процессора 2. Мультимодельное обслуживание и т. д. 3. Оптимизируйте модель.
Это основные концепции MLOps для размещения модели на сервере и критерии, которые необходимо учитывать на этапе принятия решения.
Я делаю эту статью достаточно короткой, чтобы не тратить время или слишком подробно. Этого достаточно для знакомства. В любом случае, я напишу больше статей о MLOps, чтобы разобраться в этом глубже.
Надеюсь, вы нашли мою статью полезной; если это правда, я рекомендую вам следить за мной на среднем, потому что я собираюсь написать больше о MLOpsи, возможно, руках- встатьях.
Если есть что-то еще, вы можете связаться со мной напрямую через Twitterили LinkedIn. 😉