Перейти к содержанию

Руководство по развертыванию YOLO11 на конечных точках Amazon SageMaker

Развертывание продвинутых моделей компьютерного зрения, таких как Ultralytics' YOLO11, на конечных точках Amazon SageMaker открывает широкий спектр возможностей для различных приложений машинного обучения. Ключ к эффективному использованию этих моделей лежит в понимании процессов их настройки, конфигурирования и развертывания. YOLO11 становится еще более мощным, когда он легко интегрируется с Amazon SageMaker, надежным и масштабируемым сервисом машинного обучения от AWS.

В этом руководстве вы пройдете процесс развертывания YOLO11 PyTorch модели на конечных точках Amazon SageMaker Endpoints шаг за шагом. Вы узнаете, как подготовить среду AWS, настроить модель соответствующим образом и использовать для развертывания такие инструменты, как AWS CloudFormation и AWS Cloud Development Kit (CDK).

Amazon SageMaker

Обзор Amazon SageMaker

Amazon SageMaker - это сервис машинного обучения от Amazon Web Services (AWS), который упрощает процесс построения, обучения и развертывания моделей машинного обучения. Он предоставляет широкий набор инструментов для работы с различными аспектами рабочих процессов машинного обучения. Сюда входят автоматизированные функции настройки моделей, опции для обучения моделей в масштабе и простые методы развертывания моделей в производстве. SageMaker поддерживает популярные фреймворки машинного обучения, обеспечивая гибкость, необходимую для различных проектов. Его функции также охватывают маркировку данных, управление рабочими процессами и анализ производительности.

Развертывание YOLO11 на конечных точках Amazon SageMaker

Развертывание YOLO11 на Amazon SageMaker позволяет использовать управляемую среду для выводов в режиме реального времени и воспользоваться такими функциями, как автомасштабирование. Посмотрите на архитектуру AWS ниже.

Архитектура AWS

Шаг 1: Настройка среды AWS

Прежде всего, убедитесь, что у вас есть все необходимые условия:

  • Учетная запись AWS: Если у вас его еще нет, зарегистрируйте учетную запись AWS.

  • Настроенные роли IAM: Вам понадобится роль IAM с необходимыми разрешениями для Amazon SageMaker, AWS CloudFormation и Amazon S3. У этой роли должны быть политики, позволяющие ей получать доступ к этим службам.

  • AWS CLI: Если он еще не установлен, загрузите и установите интерфейс командной строки AWS (CLI) и настройте его, указав данные своей учетной записи. Следуйте инструкциям AWS CLI для установки.

  • AWS CDK: если он еще не установлен, установите комплект AWS Cloud Development Kit (CDK), который будет использоваться для написания сценариев развертывания. Следуйте инструкциям по установке AWS CDK.

  • Достаточная квота на обслуживание: Убедитесь, что у вас достаточно квот для двух отдельных ресурсов в Amazon SageMaker: один для ml.m5.4xlarge для использования конечных точек, а другой - для ml.m5.4xlarge для использования экземпляра ноутбука. Для каждого из них требуется как минимум одна квота. Если ваши текущие квоты ниже этого требования, необходимо запросить увеличение для каждой из них. Вы можете запросить увеличение квоты, следуя подробным инструкциям в Документация по квотам на услуги AWS.

Шаг 2: Клонирование репозитория YOLO11 SageMaker.

Следующим шагом будет клонирование специального репозитория AWS, содержащего ресурсы для развертывания YOLO11 на 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

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

После создания стека AWS CloudFormation следующим шагом будет развертывание YOLO11.

  • Откройте экземпляр ноутбука: Перейдите в консоль AWS Console и перейдите к службе 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. Следуйте инструкциям в блокноте и запустите ячейки, чтобы загрузить модель YOLO11 , упаковать ее с обновленным кодом выводов и загрузить в ведро Amazon S3. Блокнот поможет вам создать и развернуть конечную точку SageMaker для модели YOLO11 .

Шаг 6: Тестирование развертывания

Теперь, когда ваша модель YOLO11 развернута, важно проверить ее производительность и функциональность.

  • Откройте тестовый блокнот: В той же среде Jupyter найдите и откройте блокнот 2_TestEndpoint.ipynb, также находящийся в каталоге sm-notebook.

  • Запустите блокнот тестирования: Следуйте инструкциям в блокноте, чтобы протестировать развернутую конечную точку SageMaker. Это включает в себя отправку изображения на конечную точку и выполнение выводов. Затем вы построите график вывода для визуализации производительности и точности модели, как показано ниже.

Результаты тестирования YOLO11

  • Ресурсы для очистки: Блокнот для тестирования также поможет вам пройти процесс очистки конечной точки и размещенной модели. Это важный шаг для эффективного управления затратами и ресурсами, особенно если вы не планируете использовать развернутую модель сразу.

Шаг 7: Мониторинг и управление

После тестирования необходимо обеспечить непрерывный мониторинг и управление развернутой моделью.

  • Мониторинг с помощью Amazon CloudWatch: Регулярно проверяйте производительность и состояние конечной точки SageMaker с помощью Amazon CloudWatch.

  • Управление конечной точкой: Используйте консоль SageMaker для постоянного управления конечной точкой. Это включает в себя масштабирование, обновление или развертывание модели по мере необходимости.

Выполнив эти шаги, вы успешно развернете и протестируете модель YOLO11 на конечных точках Amazon SageMaker. Этот процесс не только даст вам практический опыт использования служб AWS для развертывания машинного обучения, но и заложит основу для развертывания других продвинутых моделей в будущем.

Резюме

В этом руководстве мы шаг за шагом рассмотрим процесс развертывания YOLO11 на конечных точках Amazon SageMaker с помощью AWS CloudFormation и AWS Cloud Development Kit (CDK). Процесс включает клонирование необходимого репозитория GitHub, настройку среды CDK, развертывание модели с помощью служб AWS и тестирование ее производительности на SageMaker.

Для получения более подробной технической информации обратитесь к этой статье в блоге AWS Machine Learning Blog. Вы также можете ознакомиться с официальной документацией Amazon SageMaker для получения более подробной информации о различных возможностях и функциях.

Вам интересно узнать больше о различных интеграциях YOLO11 ? Посетите страницу руководства по интеграциямUltralytics , чтобы узнать о дополнительных инструментах и возможностях, которые могут улучшить ваши проекты по машинному обучению.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как развернуть модель Ultralytics YOLO11 на конечных точках Amazon SageMaker?

Чтобы развернуть модель Ultralytics YOLO11 на конечных точках Amazon SageMaker Endpoints, выполните следующие действия:

  1. Настройте среду AWS: Убедитесь, что у вас есть учетная запись AWS, роли IAM с необходимыми правами и настроен AWS CLI . Установите AWS CDK, если это еще не сделано (см. инструкции по AWS CDK).
  2. Клонирование репозитория YOLO11 SageMaker.:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. Настройка среды CDK: Создание виртуальной среды Python , ее активация, установка зависимостей и обновление библиотеки AWS CDK.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Развертывание с помощью AWS CDK: Синтезируйте и разверните стек CloudFormation, загрузите среду.
    cdk synth
    cdk bootstrap
    cdk deploy
    

Для получения более подробной информации ознакомьтесь с разделом документации.

Каковы предварительные условия для развертывания YOLO11 на Amazon SageMaker?

Чтобы развернуть YOLO11 на Amazon SageMaker, убедитесь, что у вас есть следующие предварительные условия:

  1. Учетная запись AWS: Активная учетная запись AWS(зарегистрируйтесь здесь).
  2. Роли IAM: Настройка ролей IAM с разрешениями для SageMaker, CloudFormation и Amazon S3.
  3. AWS CLI: Установлен и настроен интерфейс командной строки AWS(руководство по установке AWS CLI ).
  4. AWS CDK: Установленный комплект AWS Cloud Development Kit(руководство по настройке CDK).
  5. Квоты на обслуживание: Достаточные квоты для ml.m5.4xlarge экземпляры для конечных точек и ноутбуков (запросить увеличение квоты).

Подробную информацию о настройке см. в этом разделе.

Почему я должен использовать Ultralytics YOLO11 на Amazon SageMaker?

Использование Ultralytics YOLO11 на Amazon SageMaker имеет ряд преимуществ:

  1. Масштабируемость и управление: SageMaker предоставляет управляемую среду с такими функциями, как автомасштабирование, что помогает при необходимости делать выводы в режиме реального времени.
  2. Интеграция с сервисами AWS: Бесшовная интеграция с другими сервисами AWS, такими как S3 для хранения данных, CloudFormation для инфраструктуры как кода и CloudWatch для мониторинга.
  3. Простота развертывания: Упрощенная настройка с помощью скриптов AWS CDK и оптимизированные процессы развертывания.
  4. Производительность: Используйте высокопроизводительную инфраструктуру Amazon SageMaker для эффективного выполнения масштабных задач вывода.

Подробнее о преимуществах использования SageMaker читайте в разделе "Введение".

Можно ли настроить логику выводов для YOLO11 в Amazon SageMaker?

Да, вы можете настроить логику выводов для YOLO11 в Amazon SageMaker:

  1. Изменить 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)
    
  2. Развертывание обновленной модели: Убедитесь, что вы развернули модель, используя предоставленные блокноты Jupyter (1_DeployEndpoint.ipynb), чтобы включить эти изменения.

Обратитесь к подробным шагам по развертыванию модифицированной модели.

Как протестировать развернутую модель YOLO11 на Amazon SageMaker?

Чтобы протестировать развернутую модель YOLO11 на Amazon SageMaker:

  1. Откройте блокнот для тестирования: Найдите 2_TestEndpoint.ipynb блокнот в среде SageMaker Jupyter.
  2. Запустите блокнот: Следуйте инструкциям блокнота, чтобы отправить изображение на конечную точку, выполнить вывод и отобразить результаты.
  3. Визуализация результатов: Используйте встроенные функции построения графиков для визуализации показателей производительности, таких как ограничительные рамки вокруг обнаруженных объектов.

Для получения подробных инструкций по тестированию посетите раздел "Тестирование".

📅 Создано 11 месяцев назад ✏️ Обновлено 2 месяца назад

Комментарии