Link to this sectionРуководство по развертыванию YOLO26 на конечных точках Amazon SageMaker#
Развертывание передовых моделей компьютерного зрения, таких как Ultralytics YOLO26, на конечных точках Amazon SageMaker открывает широкие возможности для различных приложений машинного обучения. Ключ к эффективному использованию этих моделей заключается в понимании процессов их настройки, конфигурирования и развертывания. YOLO26 становится еще мощнее при бесшовной интеграции с Amazon SageMaker — надежным и масштабируемым сервисом машинного обучения от AWS.
Это руководство шаг за шагом проведет тебя через процесс развертывания моделей PyTorch YOLO26 на конечных точках Amazon SageMaker. Ты изучишь основы подготовки среды AWS, правильной настройки модели и использования таких инструментов, как AWS CloudFormation и AWS Cloud Development Kit (CDK), для развертывания.
Link to this sectionAmazon SageMaker#
Amazon SageMaker — это сервис машинного обучения от Amazon Web Services (AWS), который упрощает процесс создания, обучения и развертывания моделей машинного обучения. Он предоставляет широкий спектр инструментов для управления различными аспектами рабочих процессов машинного обучения. Сюда входят автоматизированные функции настройки моделей, возможности обучения моделей в масштабе и простые методы развертывания моделей в продакшн. SageMaker поддерживает популярные фреймворки машинного обучения, обеспечивая гибкость, необходимую для разнообразных проектов. Его функционал также охватывает разметку данных, управление рабочими процессами и анализ производительности.
Link to this sectionРазвертывание YOLO26 на конечных точках Amazon SageMaker#
Развертывание YOLO26 на Amazon SageMaker позволяет использовать его управляемую среду для инференса в реальном времени и применять такие функции, как автомасштабирование. Взгляни на архитектуру AWS ниже.
Link to this sectionШаг 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.
Link to this sectionШаг 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
Link to this sectionШаг 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
Link to this sectionШаг 4: Создание стека AWS CloudFormation#
-
Синтезируй CDK-приложение: Сгенерируй шаблон AWS CloudFormation из своего кода CDK:
cdk synth -
Выполни бутстрап CDK-приложения: Подготовь свою среду AWS к развертыванию через CDK:
cdk bootstrap -
Разверни стек: Это создаст необходимые ресурсы AWS и развернет твою модель:
cdk deploy
Link to this sectionШаг 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.
Link to this sectionШаг 6: Тестирование развертывания#
Теперь, когда твоя модель YOLO26 развернута, важно проверить ее производительность и функциональность.
-
Открой тестовый блокнот: В той же среде Jupyter найди и открой блокнот 2_TestEndpoint.ipynb, также находящийся в директории sm-notebook.
-
Запусти тестовый блокнот: Следуй инструкциям в блокноте для тестирования развернутой конечной точки SageMaker. Это включает отправку изображения на конечную точку и выполнение инференса. Затем ты построишь график вывода, чтобы визуализировать производительность и точность модели, как показано ниже.
- Очистка ресурсов: Тестовый блокнот также поможет тебе пройти процесс удаления конечной точки и размещенной модели. Это важный шаг для эффективного управления затратами и ресурсами, особенно если ты не планируешь использовать развернутую модель сразу.
Link to this sectionШаг 7: Мониторинг и управление#
После тестирования критически важен постоянный мониторинг и управление развернутой моделью.
-
Мониторинг с помощью Amazon CloudWatch: Регулярно проверяй производительность и работоспособность своей конечной точки SageMaker, используя Amazon CloudWatch.
-
Управление конечной точкой: Используй консоль SageMaker для текущего управления конечной точкой. Сюда входит масштабирование, обновление или повторное развертывание модели по мере необходимости.
Выполнив эти шаги, ты успешно развернул и протестировал модель YOLO26 на конечных точках Amazon SageMaker. Этот процесс не только дает тебе практический опыт использования сервисов AWS для развертывания машинного обучения, но и закладывает основу для развертывания других передовых моделей в будущем.
Link to this sectionРезюме#
Это руководство шаг за шагом провело тебя через процесс развертывания YOLO26 на конечных точках Amazon SageMaker с использованием AWS CloudFormation и AWS Cloud Development Kit (CDK). Процесс включает клонирование необходимого репозитория GitHub, настройку среды CDK, развертывание модели с использованием сервисов AWS и тестирование ее производительности на SageMaker.
Для получения более подробной технической информации обратись к этой статье в блоге AWS Machine Learning. Ты также можешь ознакомиться с официальной документацией Amazon SageMaker для получения дополнительной информации о различных функциях и возможностях.
Хочешь узнать больше о других интеграциях YOLO26? Посети страницу руководства по интеграциям Ultralytics, чтобы открыть для себя дополнительные инструменты и возможности, которые могут улучшить твои проекты машинного обучения.
Link to this sectionFAQ#
Link to this sectionКак мне развернуть модель 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
Для получения дополнительных сведений изучи раздел документации.
Link to this sectionКаковы предварительные требования для развертывания 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как для конечной точки, так и для использования блокнота (запроси увеличение квоты).
Для подробной настройки обратись к этому разделу.
Link to this sectionПочему мне стоит использовать Ultralytics YOLO26 на Amazon SageMaker?#
Использование Ultralytics YOLO26 на Amazon SageMaker предлагает несколько преимуществ:
- Масштабируемость и управление: SageMaker предоставляет управляемую среду с функциями вроде автомасштабирования, что помогает решать задачи инференса в реальном времени.
- Интеграция с сервисами AWS: Бесшовная интеграция с другими сервисами AWS, такими как S3 для хранения данных, CloudFormation для инфраструктуры как кода (IaC) и CloudWatch для мониторинга.
- Простота развертывания: Упрощенная настройка с использованием скриптов AWS CDK и оптимизированные процессы развертывания.
- Производительность: Используй высокопроизводительную инфраструктуру Amazon SageMaker для эффективного выполнения масштабных задач инференса.
Узнай больше о преимуществах использования SageMaker в разделе введения.
Link to this sectionМогу ли я настроить логику инференса для 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), чтобы включить эти изменения.
Обратись к подробным шагам по развертыванию измененной модели.
Link to this sectionКак я могу протестировать развернутую модель YOLO26 на Amazon SageMaker?#
Чтобы протестировать развернутую модель YOLO26 на Amazon SageMaker:
- Открой тестовый блокнот: Найди блокнот
2_TestEndpoint.ipynbв среде Jupyter на SageMaker. - Запусти блокнот: Следуй инструкциям в блокноте для отправки изображения на конечную точку, выполнения инференса и отображения результатов.
- Визуализируй результаты: Используй встроенные функции построения графиков для визуализации метрик производительности, например, рамок (bounding boxes) вокруг обнаруженных объектов.
Для получения полных инструкций по тестированию посети раздел тестирования.