Перейти к содержимому

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

Deploying advanced computer vision models like Ultralytics' YOLO11 on Amazon SageMaker Endpoints opens up a wide range of possibilities for various machine learning applications. The key to effectively using these models lies in understanding their setup, configuration, and deployment processes. YOLO11 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.

This guide will take you through the process of deploying YOLO11 PyTorch models on Amazon SageMaker Endpoints step by step. You'll learn the essentials of preparing your AWS environment, configuring the model appropriately, and using tools like AWS CloudFormation and the AWS Cloud Development Kit (CDK) for deployment.

Amazon SageMaker

Обзор Amazon SageMaker

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

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

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

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

Шаг 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.

Шаг 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: Подготовь свое окружение AWS к развертыванию CDK:
cdk bootstrap
  • Разверни стек: Это позволит создать необходимые ресурсы AWS и развернуть твою модель:
cdk deploy

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

Before diving into the deployment instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.

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

  • Открой экземпляр ноутбука: Зайди в AWS Console и перейди на сервис 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. Следуй инструкциям в блокноте и запусти ячейки, чтобы загрузить модель YOLO11, упаковать ее с обновленным кодом выводов и загрузить в ведро Amazon S3. Блокнот проведет тебя через создание и развертывание конечной точки SageMaker для модели YOLO11.

Шаг 6: Проверь свою установку

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

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

  • Run the Test Notebook: Follow the instructions within the notebook to test the deployed SageMaker endpoint. This includes sending an image to the endpoint and running inferences. Then, you'll plot the output to visualize the model's performance and accuracy, as shown below.

Testing Results YOLO11

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

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

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

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

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

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

Резюме

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

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

Are you interested in learning more about different YOLO11 integrations? Visit the Ultralytics integrations guide page to discover additional tools and capabilities that can enhance your machine-learning projects.

ВОПРОСЫ И ОТВЕТЫ

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

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

  1. Настрой свое окружение AWS: Убедись, что у тебя есть AWS-аккаунт, IAM-роли с необходимыми правами и настроенный AWS CLI . Установи AWS CDK, если это еще не сделано (смотри инструкцию по AWS CDK).
  2. Clone the YOLO11 SageMaker Repository:
    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 (1_DeployEndpoint.ipynb), чтобы включить эти изменения.

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

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

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

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

Чтобы получить исчерпывающие инструкции по тестированию, посети раздел "Тестирование".

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

Комментарии