Ultralytics YOLO27:

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

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

В этом руководстве ты пошагово разберёшь процесс развёртывания моделей YOLO26 на PyTorch на конечных точках Amazon SageMaker. Ты узнаешь, как подготовить среду AWS, правильно настроить модель и использовать такие инструменты, как AWS CloudFormation и набор средств разработки облачных приложений AWS (CDK), для развёртывания.

Amazon SageMaker#

Amazon SageMaker ML platform architecture

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

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

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

AWS SageMaker YOLO training architecture

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

Сначала убедись, что выполнены следующие предварительные требования:

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

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

  • AWS CLI: если AWS Command Line Interface (CLI) ещё не установлен, скачай и установи его, а затем настрой с данными своей учётной записи. Для установки следуй инструкциям по AWS CLI.

  • AWS CDK: если набор средств разработки облачных приложений AWS (CDK) ещё не установлен, установи его — он будет использоваться для написания сценариев развёртывания. Для установки следуй инструкциям по AWS CDK.

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

Шаг 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. Это включает отправку изображения на конечную точку и выполнение вывода. Затем построй график результатов, чтобы визуализировать производительность и точность модели, как показано ниже.

Testing Results YOLO26

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

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

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

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

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

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

Итоги#

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

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

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

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

  • Чтобы развернуть модель Ultralytics YOLO26 на конечных точках Amazon SageMaker, выполни следующие шаги:

    1. Настрой среду AWS: убедись, что у тебя есть учётная запись AWS, роли IAM с необходимыми разрешениями и настроенный AWS CLI. Установи AWS CDK, если ещё этого не сделал (см. инструкции по AWS CDK).
    2. Клонируй репозиторий YOLO26 для 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

    Дополнительные сведения см. в разделе документации.

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

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

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

  • Использование Ultralytics YOLO26 на Amazon SageMaker даёт несколько преимуществ:

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

    Узнай больше о преимуществах использования SageMaker в разделе введения.

  • Да, ты можешь настроить логику вывода для YOLO26 на 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), чтобы применить эти изменения.

    Инструкции по развёртыванию изменённой модели см. в подробных шагах.

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

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

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

Комментарии