Ultralytics YOLO27:
Get Started

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

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

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

Amazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker — это сервис машинного обучения от веб-сервисов Amazon (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 (CLI) ещё не установлен, скачай и установи его, а затем настрой данные своей учётной записи. Инструкции по установке смотри в руководстве по AWS CLI.

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

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

Шаг 2. Клонирование репозитория SageMaker для YOLO26#

Следующий шаг — клонировать специальный репозиторий 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. На панели управления выбери «Экземпляры ноутбуков», затем найди экземпляр, созданный скриптом развёртывания CDK. Открой его, чтобы получить доступ к среде Jupyter.

  • Открой и измени inference.py: после открытия экземпляра ноутбука SageMaker в Jupyter найди файл inference.py. Отредактируй функцию output_fn в inference.py, как показано ниже, и сохрани изменения в скрипте. Убедись, что в коде нет синтаксических ошибок.

    import json
    
    def output_fn(prediction_output, content_type):
        """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 Endpoints. Этот процесс не только даст тебе практический опыт использования сервисов AWS для развёртывания моделей машинного обучения, но и заложит основу для развёртывания других передовых моделей в будущем.

Итоги#

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

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

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

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

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

    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 (руководство по установке AWS CLI).
    4. AWS CDK: Установленный AWS Cloud Development Kit (руководство по настройке 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, content_type):
          """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()
              # При необходимости добавь дополнительную логику обработки
          return json.dumps(infer)
    2. Разверни обновлённую модель: Чтобы применить изменения, повторно разверни модель с помощью предоставленных блокнотов Jupyter (1_DeployEndpoint.ipynb).

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

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

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

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

Комментарии