Руководство по развертыванию YOLO26 на эндпоинтах Amazon SageMaker
Развертывание современных моделей computer vision, таких как Ultralytics' YOLO26, на эндпоинтах Amazon SageMaker открывает широкие возможности для различных приложений machine learning. Ключ к эффективному использованию этих моделей заключается в понимании процессов их настройки, конфигурации и развертывания. YOLO26 становится еще мощнее при бесшовной интеграции с Amazon SageMaker, надежным и масштабируемым сервисом машинного обучения от AWS.
Это руководство шаг за шагом проведет тебя через процесс развертывания моделей PyTorch YOLO26 на эндпоинтах Amazon SageMaker. Ты узнаешь основы подготовки среды AWS, правильной настройки модели и использования таких инструментов, как AWS CloudFormation и AWS Cloud Development Kit (CDK), для развертывания.
Amazon SageMaker
Amazon SageMaker — это сервис машинного обучения от Amazon Web Services (AWS), который упрощает процесс создания, обучения и развертывания моделей машинного обучения. Он предоставляет широкий набор инструментов для работы с различными аспектами рабочих процессов машинного обучения. Сюда входят автоматизированные функции для настройки моделей, опции для обучения моделей в масштабе и простые методы развертывания моделей в продакшн. SageMaker поддерживает популярные фреймворки машинного обучения, предлагая гибкость, необходимую для разнообразных проектов. Его функции также охватывают разметку данных, управление рабочими процессами и анализ производительности.
Развертывание YOLO26 на эндпоинтах Amazon SageMaker
Развертывание YOLO26 на Amazon SageMaker позволяет использовать управляемую среду для инференса в реальном времени и преимущества таких функций, как автомасштабирование. Взгляни на архитектуру AWS ниже.
Шаг 1: Настройка среды AWS
Сначала убедись, что у тебя выполнены следующие предварительные требования:
-
Аккаунт AWS: Если у тебя его еще нет, зарегистрируй аккаунт AWS.
-
Настроенные роли IAM: Тебе потребуется роль IAM с необходимыми разрешениями для Amazon SageMaker, AWS CloudFormation и Amazon S3. Эта роль должна иметь политики, позволяющие доступ к этим сервисам.
-
AWS CLI: Если он еще не установлен, скачай и установи AWS Command Line Interface (CLI) и настрой его, используя данные своего аккаунта. Следуй инструкциям AWS CLI для установки.
-
AWS CDK: Если он еще не установлен, установи AWS Cloud Development Kit (CDK), который будет использоваться для написания скриптов развертывания. Следуй инструкциям AWS CDK для установки.
-
Достаточная квота сервисов: Убедись, что у тебя достаточно квот для двух отдельных ресурсов в Amazon SageMaker: один для
ml.m5.4xlargeдля использования эндпоинта и другой дляml.m5.4xlargeдля использования инстанса ноутбука. Для каждого из них требуется минимальное значение квоты, равное единице. Если твои текущие квоты ниже этого требования, важно запросить их увеличение для каждого ресурса. Ты можешь запросить увеличение квоты, следуя подробным инструкциям в документации AWS Service Quotas.
Шаг 2: Клонирование репозитория YOLO26 для SageMaker
Следующий шаг — клонирование специального репозитория AWS, который содержит ресурсы для развертывания YOLO26 на SageMaker. Этот репозиторий, размещенный на GitHub, включает необходимые скрипты CDK и файлы конфигурации.
-
Клонирование репозитория GitHub: Выполни следующую команду в терминале, чтобы клонировать репозиторий host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Переход в клонированную директорию: Перейди в директорию клонированного репозитория:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Шаг 3: Настройка среды CDK
Теперь, когда у тебя есть необходимый код, настрой свою среду для развертывания с помощью AWS CDK.
-
Создание виртуального окружения Python: Это изолирует твое окружение Python и зависимости. Выполни:
python3 -m venv .venv -
Активация виртуального окружения:
source .venv/bin/activate -
Установка зависимостей: Установи необходимые зависимости Python для проекта:
pip3 install -r requirements.txt -
Обновление библиотеки AWS CDK: Убедись, что у тебя установлена последняя версия библиотеки AWS CDK:
pip install --upgrade aws-cdk-lib
Шаг 4: Создание стека AWS CloudFormation
-
Синтез приложения CDK: Сгенерируй шаблон AWS CloudFormation из своего кода CDK:
cdk synth -
Бутстрапинг приложения CDK: Подготовь свою среду AWS к развертыванию CDK:
cdk bootstrap -
Развертывание стека: Это создаст необходимые ресурсы AWS и развернет твою модель:
cdk deploy
Шаг 5: Развертывание модели YOLO
Прежде чем переходить к инструкциям по развертыванию, обязательно ознакомься с ассортиментом моделей YOLO26, предлагаемых Ultralytics. Это поможет тебе выбрать наиболее подходящую модель для требований твоего проекта.
После создания стека AWS CloudFormation следующий шаг — развертывание YOLO26.
-
Открытие инстанса ноутбука: Перейди в консоль AWS и открой сервис Amazon SageMaker. Выбери "Notebook Instances" на панели управления, затем найди инстанс ноутбука, который был создан твоим скриптом развертывания CDK. Открой инстанс ноутбука для доступа к среде Jupyter.
-
Доступ и изменение inference.py: После открытия инстанса ноутбука SageMaker в Jupyter найди файл inference.py. Отредактируй функцию output_fn в файле inference.py, как показано ниже, и сохрани изменения в скрипте, убедившись в отсутствии синтаксических ошибок.
import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" print("Executing output_fn from inference.py ...") infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() if result.masks is not None: infer["masks"] = result.masks.numpy().data.tolist() if result.keypoints is not None: infer["keypoints"] = result.keypoints.numpy().data.tolist() if result.obb is not None: infer["obb"] = result.obb.numpy().data.tolist() if result.probs is not None: infer["probs"] = result.probs.numpy().data.tolist() return json.dumps(infer) -
Развертывание эндпоинта с помощью 1_DeployEndpoint.ipynb: В среде Jupyter открой ноутбук 1_DeployEndpoint.ipynb, расположенный в директории sm-notebook. Следуй инструкциям в ноутбуке и выполни ячейки, чтобы загрузить модель YOLO26, упаковать ее с обновленным кодом инференса и загрузить в бакет Amazon S3. Ноутбук проведет тебя через создание и развертывание эндпоинта SageMaker для модели YOLO26.
Шаг 6: Тестирование развертывания
Теперь, когда твоя модель YOLO26 развернута, важно протестировать ее производительность и функциональность.
-
Открытие тестового ноутбука: В той же среде Jupyter найди и открой ноутбук 2_TestEndpoint.ipynb, также находящийся в директории sm-notebook.
-
Запуск тестового ноутбука: Следуй инструкциям внутри ноутбука для тестирования развернутого эндпоинта SageMaker. Это включает отправку изображения на эндпоинт и выполнение инференса. Затем ты построишь график вывода, чтобы визуализировать производительность и accuracy модели, как показано ниже.
- Очистка ресурсов: Тестовый ноутбук также подскажет тебе процесс очистки эндпоинта и размещенной модели. Это важный шаг для эффективного управления затратами и ресурсами, особенно если ты не планируешь использовать развернутую модель сразу.
Шаг 7: Мониторинг и управление
После тестирования необходимы постоянный мониторинг и управление развернутой моделью.
-
Мониторинг с помощью Amazon CloudWatch: Регулярно проверяй производительность и работоспособность своего эндпоинта SageMaker, используя Amazon CloudWatch.
-
Управление эндпоинтом: Используй консоль SageMaker для текущего управления эндпоинтом. Это включает масштабирование, обновление или повторное развертывание модели по мере необходимости.
Выполнив эти шаги, ты успешно развернешь и протестируешь модель YOLO26 на эндпоинтах Amazon SageMaker. Этот процесс не только даст тебе практический опыт использования сервисов AWS для развертывания машинного обучения, но и заложит основу для развертывания других продвинутых моделей в будущем.
Резюме
Это руководство шаг за шагом провело тебя через процесс развертывания YOLO26 на эндпоинтах Amazon SageMaker с использованием AWS CloudFormation и AWS Cloud Development Kit (CDK). Процесс включает клонирование необходимого репозитория GitHub, настройку среды CDK, развертывание модели с использованием сервисов AWS и тестирование ее производительности на SageMaker.
Для получения дополнительных технических деталей обратись к этой статье в блоге AWS Machine Learning. Ты также можешь ознакомиться с официальной документацией Amazon SageMaker для получения более глубоких знаний о различных функциях и возможностях.
Тебе интересно узнать больше о различных интеграциях YOLO26? Посети страницу руководства по интеграциям Ultralytics, чтобы открыть для себя дополнительные инструменты и возможности, которые могут улучшить твои проекты машинного обучения.
Часто задаваемые вопросы (FAQ)
Как мне развернуть модель Ultralytics YOLO26 на эндпоинтах Amazon SageMaker?
Чтобы развернуть модель Ultralytics YOLO26 на эндпоинтах Amazon SageMaker, следуй этим шагам:
- Настройка среды AWS: Убедись, что у тебя есть аккаунт AWS, роли IAM с необходимыми разрешениями и настроенный AWS CLI. Установи AWS CDK, если это еще не сделано (см. инструкции AWS CDK).
- Клонирование репозитория YOLO26 для SageMaker:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk - Настройка среды CDK: Создай виртуальное окружение Python, активируй его, установи зависимости и обнови библиотеку AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib - Развертывание с помощью AWS CDK: Синтезируй и разверни стек CloudFormation, выполни бутстрапинг среды.
cdk synth cdk bootstrap cdk deploy
Для получения дополнительных деталей изучи раздел документации.
Каковы предварительные требования для развертывания YOLO26 на Amazon SageMaker?
Для развертывания YOLO26 на Amazon SageMaker убедись, что у тебя выполнены следующие предварительные требования:
- Аккаунт AWS: Активный аккаунт AWS (зарегистрируйся здесь).
- Роли IAM: Настроенные роли IAM с разрешениями для SageMaker, CloudFormation и Amazon S3.
- AWS CLI: Установленный и настроенный AWS Command Line Interface (руководство по установке AWS CLI).
- AWS CDK: Установленный AWS Cloud Development Kit (руководство по настройке CDK).
- Квоты сервисов: Достаточные квоты для инстансов
ml.m5.4xlargeкак для эндпоинта, так и для использования ноутбука (запроси увеличение квоты).
Для детальной настройки обратись к этому разделу.
Почему мне стоит использовать Ultralytics YOLO26 на Amazon SageMaker?
Использование Ultralytics YOLO26 на Amazon SageMaker предлагает несколько преимуществ:
- Масштабируемость и управление: SageMaker предоставляет управляемую среду с функциями типа автомасштабирования, что помогает решать задачи инференса в реальном времени.
- Интеграция с сервисами AWS: Бесшовная интеграция с другими сервисами AWS, такими как S3 для хранения данных, CloudFormation для инфраструктуры как кода и CloudWatch для мониторинга.
- Простота развертывания: Упрощенная настройка с использованием скриптов AWS CDK и оптимизированные процессы развертывания.
- Производительность: Используй высокопроизводительную инфраструктуру Amazon SageMaker для эффективного выполнения крупномасштабных задач инференса.
Узнай больше о преимуществах использования SageMaker в вводном разделе.
Могу ли я настроить логику инференса для YOLO26 на Amazon SageMaker?
Да, ты можешь настроить логику инференса для YOLO26 на Amazon SageMaker:
-
Изменение
inference.py: Найди и настрой функциюoutput_fnв файлеinference.py, чтобы адаптировать форматы вывода.import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # Add more processing logic if necessary return json.dumps(infer) -
Развертывание обновленной модели: Убедись, что ты повторно развернул модель, используя предоставленные ноутбуки Jupyter (
1_DeployEndpoint.ipynb), чтобы включить эти изменения.
Обратись к подробным шагам для развертывания измененной модели.
Как мне протестировать развернутую модель YOLO26 на Amazon SageMaker?
Чтобы протестировать развернутую модель YOLO26 на Amazon SageMaker:
- Открытие тестового ноутбука: Найди ноутбук
2_TestEndpoint.ipynbв среде Jupyter на SageMaker. - Запуск ноутбука: Следуй инструкциям ноутбука, чтобы отправить изображение на эндпоинт, выполнить инференс и отобразить результаты.
- Визуализация результатов: Используй встроенные функции построения графиков для визуализации метрик производительности, таких как ограничивающие рамки вокруг обнаруженных объектов.
Для получения подробных инструкций по тестированию посети раздел тестирования.