YOLO Vision 2026:

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

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

Это руководство пошагово проведет тебя через процесс развертывания моделей YOLO26 PyTorch на Amazon SageMaker Endpoints. Ты узнаешь основы подготовки окружения AWS, правильной настройки модели и использования таких инструментов, как AWS CloudFormation и AWS Cloud Development Kit (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 Cloud Development Kit (CDK), который будет использоваться для написания скриптов развертывания. Следуй инструкциям по AWS CDK для установки.

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

Шаг 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 Cloud Development Kit (CDK). Процесс включает клонирование необходимого репозитория GitHub, настройку среды CDK, развертывание модели с использованием сервисов AWS и тестирование ее производительности на SageMaker.

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

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

FAQ#

  • Чтобы развернуть модель 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 Cloud Development Kit (руководство по настройке CDK).
    5. Квоты сервиса: Достаточные квоты для экземпляров ml.m5.4xlarge как для использования эндпоинта, так и для использования блокнота (запросить увеличение квоты).

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

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

    1. Масштабируемость и управление: SageMaker предоставляет управляемую среду с функциями вроде автомасштабирования, что помогает решать задачи инференса в реальном времени.
    2. Интеграция с сервисами AWS: Бесшовная интеграция с другими сервисами AWS, такими как S3 для хранения данных, CloudFormation для инфраструктуры как кода (IaC) и 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. Визуализируй результаты: Используй встроенные функции построения графиков для визуализации метрик производительности, например, рамок (bounding boxes) вокруг обнаруженных объектов.

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

Комментарии