Развертывание модели
Узнайте об основах развертывания моделей, превращая ML-модели в реальные инструменты для прогнозирования, автоматизации и аналитики на основе AI.
Развертывание модели представляет собой важнейший этап жизненного цикла машинного обучения, на котором обученная
модель машинного обучения (ML) интегрируется в
в производственную среду для работы с живыми данными. Это преодолевает разрыв между разработкой, где модели обучаются и
и проверкой в контролируемых условиях, и реальным применением, когда они генерируют ценность, предоставляя полезную информацию.
полезные идеи. Без эффективного развертывания даже самая совершенная
нейронная сеть (НС) останется статичным файлом, неспособным
взаимодействовать с конечными пользователями или внешними программными системами. Главная задача - сделать прогностические возможности модели
чтобы прогнозные возможности модели были доступны, надежны и масштабируемы для различных приложений - от мобильных приложений до корпоративных облачных сервисов.
сервисов.
Конвейер развертывания
Переход модели из исследовательской среды в производственную обычно включает в себя структурированный конвейер, разработанный для обеспечения
для обеспечения производительности и стабильности.
-
Оптимизация модели: Прежде чем модель покинет среду обучения, она часто подвергается
оптимизации модели, чтобы
чтобы повысить скорость выполнения и сократить потребление памяти. Такие методы, как
квантование, уменьшают точность
весов модели (например, с 32-битной плавающей точки до 8-битного целого числа), что значительно снижает вычислительные требования
при минимальном влиянии на точность.
-
Экспорт модели: Оптимизированная модель преобразуется в стандартный формат, который не зависит от
обучающей среды. Такие форматы, как
ONNX (Open Neural Network Exchange)
позволяют моделям, обученным в PyTorch , работать на различных механизмах вывода. Для аппаратного ускорения разработчики
могут экспортировать в TensorRT для графических процессоров NVIDIA или OpenVINO для
процессоров Intel .
-
Контейнеризация: Чтобы обеспечить стабильную работу модели в различных вычислительных средах, обычно
принято использовать контейнеризацию.
Такие инструменты, как Docker, упаковывают модель, ее
зависимости и среду выполнения в единую легковесную единицу, что устраняет проблемы "это работает на моей
на моей машине".
-
Оркестровка и масштабирование: В сценариях с высоким спросом развернутые контейнеры управляются
системы оркестрации, такие как Kubernetes. Эти платформы обеспечивают
масштабируемость, автоматически создавая новые модели
экземпляров, чтобы справиться со скачками трафика и обеспечить высокую доступность.
Среды развертывания
Выбор среды в значительной степени зависит от требований приложения в отношении
задержки вывода, конфиденциальности данных и
возможности подключения.
-
Развертывание в облаке: Размещение моделей на облачных платформах, таких как
AWS SageMaker или
Google Vertex AI обеспечивает практически неограниченную вычислительную мощность и
легкую масштабируемость. Это идеально подходит для сложных
больших языковых моделей (LLM) или пакетных
задач пакетной обработки, где отклик в реальном времени не так важен.
-
Edge AI: для приложений, требующих
выводы в реальном времени без зависимости от интернета
Модели развертываются непосредственно на локальных устройствах.
Edge AI использует компактное оборудование, такое как
NVIDIA Jetson или
Raspberry Pi, для обработки данных в источнике. Такой подход минимизирует
задержки и повышает конфиденциальность данных, сохраняя
конфиденциальность данных за счет сохранения конфиденциальной информации на устройстве.
-
Браузерные: Такие фреймворки, как TensorFlow.js, позволяют
запускать модели полностью в веб-браузере, используя аппаратное обеспечение клиента. Такой подход с нулевой установкой отлично подходит для
интерактивных веб-приложений и легких
задач компьютерного зрения (КВ).
Применение в реальном мире
-
Автоматизированный контроль качества производства: В заводских условиях
YOLO11 модель обнаружения объектов развернута на пограничном
устройстве, подключенном к камере над конвейерной лентой. По мере прохождения продукции модель в режиме реального времени выполняет
обнаружение аномалий для выявления таких дефектов, как
трещины или неправильно расположенные этикетки. Система мгновенно запускает механический манипулятор для удаления дефектных изделий, что значительно
что значительно повышает эффективность по сравнению с ручным контролем. Узнайте больше о
ИИ в производстве.
-
Smart Retail Analytics: Ритейлеры внедряют
модели отслеживания объектов для анализа поведения покупателей
поведения покупателей в магазинах. Обрабатывая видеопоток на локальном сервере, система генерирует тепловые карты зон с высокой проходимостью и отслеживает длину очередей.
и отслеживает длину очередей. Эти данные помогают менеджерам оптимизировать планировку магазинов и численность персонала. Узнайте, как
ИИ в розничной торговле меняет покупательский
опыт.
Связанные понятия: Развертывание по сравнению с обслуживанием по сравнению с MLOps
Важно отличать "развертывание модели" от смежных терминов в экосистеме:
-
Развертывание модели по сравнению с обслуживанием модели: Развертывание относится к общему процессу передачи модели в производство. Обслуживание модели - это конкретный
механизм или программное обеспечение (например
NVIDIA Triton Inference Server или
TorchServe), которые слушают API запросы и запускают модель для
генерирует прогнозы. Обслуживание является компонентом развертывания.
-
Развертывание модели по сравнению с MLOps.
MLOps: развертывание - это отдельный этап в рамках более широкой структуры MLOps. MLOps (Machine Learning Operations) охватывает
весь жизненный цикл, включая сбор данных, обучение, оценку, развертывание и непрерывный
мониторинг модели для detect таких проблем, как
дрейф данных.
Экспорт модели для развертывания
Обычно первым шагом в развертывании является экспорт обученной модели в совместимый формат. Следующий пример
демонстрирует, как экспортировать модель YOLO11 в формат ONNX с помощью программы ultralytics пакет, что делает его готовым
для развертывания на различных платформах.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format for broad compatibility
# This creates 'yolo11n.onnx' which can be used in deployment environments
model.export(format="onnx")