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

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

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

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

Amazon SageMaker

Архитектура платформы машинного обучения Amazon SageMaker

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

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

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

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

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

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

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

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

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

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

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

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

Обзор

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

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

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

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

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

Чтобы развернуть модель 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?

Для развертывания 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?

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

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

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

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

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

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

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

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

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



📅 Создано 2 лет назад ✏️ Обновлено 2 дней назад
glenn-jocherLaughing-qUltralyticsAssistantRizwanMunawarambitious-octopussergiuwaxmannabirami-vina

Комментарии