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

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

Развертывание передовых моделей компьютерного зрения, таких как Ultralytics' YOLO11, на Amazon SageMaker Endpoints открывает широкий спектр возможностей для различных приложений машинного обучения. Ключ к эффективному использованию этих моделей заключается в понимании их настройки, конфигурации и процессов развертывания. 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 Endpoints

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

Архитектура 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.

Шаг 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 Application: подготовьте вашу среду AWS для развертывания CDK:

    cdk bootstrap
    
  • Развертывание стека: Это создаст необходимые ресурсы AWS и развернет вашу модель:

    cdk deploy
    

Шаг 5: Развертывание модели YOLO

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

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

  • Открыть экземпляр блокнота: Перейдите в консоль 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)
    
  • Развертывание Endpoint с использованием 1_DeployEndpoint.ipynb: В среде Jupyter откройте блокнот 1_DeployEndpoint.ipynb, расположенный в каталоге sm-notebook. Следуйте инструкциям в блокноте и запустите ячейки, чтобы загрузить модель YOLO11, упаковать ее с обновленным кодом инференса и загрузить в корзину Amazon S3. Блокнот проведет вас через создание и развертывание SageMaker endpoint для модели YOLO11.

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

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

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

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

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

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

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

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

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

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

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

Обзор

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

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

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

Часто задаваемые вопросы

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

Чтобы развернуть модель 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 notebooks (1_DeployEndpoint.ipynb) чтобы включить эти изменения.

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

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

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

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

Подробные инструкции по тестированию можно найти в разделе тестирования.



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

Комментарии