콘텐츠로 건너뛰기

아마존 세이지메이커 엔드포인트에 YOLO11 배포 가이드

Ultralytics ' YOLO11 과 같은 고급 컴퓨터 비전 모델을 Amazon SageMaker 엔드포인트에 배포하면 다양한 머신 러닝 애플리케이션에 대한 광범위한 가능성이 열립니다. 이러한 모델을 효과적으로 사용하기 위한 핵심은 설정, 구성 및 배포 프로세스를 이해하는 데 있습니다. YOLO11 는 AWS의 강력하고 확장 가능한 머신 러닝 서비스인 Amazon SageMaker와 원활하게 통합될 때 더욱 강력해집니다.

이 가이드는 아마존 세이지메이커 엔드포인트에 모델을 배포하는 과정을 YOLO11 PyTorch 모델을 배포하는 과정을 단계별로 안내합니다. AWS 환경을 준비하고, 모델을 적절하게 구성하고, 배포를 위해 AWS CloudFormation 및 AWS 클라우드 개발 키트(CDK)와 같은 도구를 사용하는 데 필요한 필수 사항을 배우게 됩니다.

아마존 세이지메이커

아마존 세이지메이커 개요

Amazon SageMaker는 머신 러닝 모델을 구축, 학습 및 배포하는 프로세스를 간소화하는 Amazon Web Services(AWS)의 머신 러닝 서비스입니다. 머신 러닝 워크플로우의 다양한 측면을 처리하기 위한 광범위한 도구를 제공합니다. 여기에는 모델 튜닝을 위한 자동화된 기능, 대규모 모델 학습을 위한 옵션, 모델을 프로덕션에 배포하는 간단한 방법이 포함됩니다. SageMaker는 널리 사용되는 머신러닝 프레임워크를 지원하여 다양한 프로젝트에 필요한 유연성을 제공합니다. 또한 데이터 라벨링, 워크플로 관리 및 성능 분석 기능도 제공합니다.

아마존 세이지메이커 엔드포인트에 YOLO11 배포하기

Amazon SageMaker에 YOLO11 를 배포하면 관리형 환경을 사용하여 실시간 추론을 수행하고 자동 확장 등의 기능을 활용할 수 있습니다. 아래에서 AWS 아키텍처를 살펴보세요.

AWS 아키텍처

1단계: AWS 환경 설정

먼저 다음과 같은 전제 조건이 갖추어져 있는지 확인하세요:

  • AWS 계정: 아직 계정이 없는 경우 AWS 계정에 가입하세요.

  • 구성된 IAM 역할: Amazon SageMaker, AWS CloudFormation 및 Amazon S3에 필요한 권한이 있는 IAM 역할이 필요합니다. 이 역할에는 이러한 서비스에 액세스할 수 있는 정책이 있어야 합니다.

  • AWS CLI: 아직 설치하지 않은 경우 AWS 명령줄 인터페이스(CLI)를 다운로드하여 설치하고 계정 세부 정보로 구성합니다. 설치 방법은 AWS CLI 지침을 따르세요.

  • AWS CDK: 아직 설치하지 않은 경우 배포 스크립팅에 사용할 AWS 클라우드 개발 키트(CDK)를 설치합니다. 설치 방법은 AWS CDK 지침을 따르세요.

  • 적절한 서비스 할당량: 아마존 세이지메이커에서 다음 두 가지 리소스에 대한 충분한 할당량이 있는지 확인합니다. ml.m5.4xlarge 엔드포인트 사용을 위해, 다른 하나는 ml.m5.4xlarge 노트북 인스턴스 사용을 위해. 각각 최소 하나의 할당량 값이 필요합니다. 현재 할당량이 이 요구 사항보다 낮다면 각각에 대해 증량을 요청하는 것이 중요합니다. 할당량 증량을 요청하려면 다음 안내에 따라 AWS 서비스 할당량 문서.

2단계: YOLO11 세이지메이커 리포지토리 복제하기

다음 단계는 세이지메이커에 YOLO11 배포를 위한 리소스가 포함된 특정 AWS 리포지토리를 복제하는 것입니다. GitHub에서 호스팅되는 이 리포지토리에는 필요한 CDK 스크립트 및 구성 파일이 포함되어 있습니다.

  • GitHub 리포지토리를 복제합니다: 터미널에서 다음 명령을 실행하여 호스트-yolov8-온-새그메이커-엔드포인트 리포지토리를 복제합니다:
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 애플리케이션을 합성합니다: CDK 코드에서 AWS CloudFormation 템플릿을 생성합니다:
cdk synth
  • CDK 애플리케이션 부트스트랩: CDK 배포를 위해 AWS 환경을 준비합니다:
cdk bootstrap
  • 스택을 배포합니다: 필요한 AWS 리소스를 생성하고 모델을 배포합니다:
cdk deploy

5단계: YOLO 모델 배포

배포 지침을 살펴보기 전에 Ultralytics 에서 제공하는 다양한 YOLO11 모델을 확인하세요. 이를 통해 프로젝트 요구 사항에 가장 적합한 모델을 선택할 수 있습니다.

AWS 클라우드포메이션 스택을 생성한 후, 다음 단계는 YOLO11 을 배포하는 것입니다.

  • 노트북 인스턴스를 엽니다: AWS 콘솔로 이동해 Amazon SageMaker 서비스로 이동합니다. 대시보드에서 "노트북 인스턴스"를 선택한 다음, CDK 배포 스크립트로 만든 노트북 인스턴스를 찾습니다. 노트북 인스턴스를 열어 Jupyter 환경에 액세스합니다.

  • inference.py에 액세스하고 수정합니다: Jupyter에서 SageMaker 노트북 인스턴스를 연 후, inference.py 파일을 찾습니다. 아래와 같이 inference.py의 output_fn 함수를 편집하고 구문 오류가 없는지 확인하면서 변경 사항을 스크립트에 저장합니다.

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 환경에서 sm-notebook 디렉터리에 있는 1_DeployEndpoint.ipynb 노트북을 엽니다. 노트북의 지침에 따라 셀을 실행하여 YOLO11 모델을 다운로드하고 업데이트된 추론 코드와 함께 패키징한 다음 Amazon S3 버킷에 업로드합니다. 이 노트북은 YOLO11 모델에 대한 SageMaker 엔드포인트를 만들고 배포하는 과정을 안내합니다.

6단계: 배포 테스트

이제 YOLO11 모델이 배포되었으므로 성능과 기능을 테스트하는 것이 중요합니다.

  • 테스트 노트북을 엽니다: 동일한 Jupyter 환경에서 sm-notebook 디렉터리에서 2_TestEndpoint.ipynb 노트북을 찾아 엽니다.

  • 테스트 노트북을 실행합니다: 노트북의 지침에 따라 배포된 SageMaker 엔드포인트를 테스트합니다. 여기에는 엔드포인트에 이미지를 전송하고 추론을 실행하는 것이 포함됩니다. 그런 다음 아래와 같이 모델의 성능과 정확도를 시각화하기 위해 출력을 플로팅합니다.

테스트 결과 YOLO11

  • 리소스 정리: 테스트 노트북은 엔드포인트와 호스팅된 모델을 정리하는 과정도 안내합니다. 이는 특히 배포된 모델을 즉시 사용할 계획이 없는 경우 비용과 리소스를 효과적으로 관리하기 위한 중요한 단계입니다.

7단계: 모니터링 및 관리

테스트 후에는 배포된 모델을 지속적으로 모니터링하고 관리하는 것이 필수적입니다.

  • Amazon CloudWatch로 모니터링: Amazon CloudWatch를 사용하여 SageMaker 엔드포인트의 성능과 상태를 정기적으로 확인합니다.

  • 엔드포인트 관리: 엔드포인트의 지속적인 관리를 위해 SageMaker 콘솔을 사용합니다. 여기에는 필요에 따라 모델을 확장, 업데이트 또는 재배포하는 것이 포함됩니다.

이 단계를 완료하면 Amazon 세이지메이커 엔드포인트에 YOLO11 모델을 성공적으로 배포하고 테스트한 것입니다. 이 프로세스를 통해 머신 러닝 배포를 위한 AWS 서비스 사용에 대한 실무 경험을 쌓을 수 있을 뿐만 아니라 향후 다른 고급 모델을 배포할 수 있는 기반을 마련할 수 있습니다.

요약

이 가이드는 AWS CloudFormation 및 AWS 클라우드 개발 키트(CDK)를 사용하여 Amazon SageMaker 엔드포인트에 YOLO11 배포하는 과정을 단계별로 안내합니다. 이 프로세스에는 필요한 GitHub 리포지토리 복제, CDK 환경 설정, AWS 서비스를 사용하여 모델 배포, SageMaker에서 성능 테스트가 포함됩니다.

자세한 기술적 내용은 AWS 머신 러닝 블로그의 이 글을 참조하세요. 다양한 특징과 기능에 대한 자세한 내용은 Amazon SageMaker 공식 설명서에서 확인할 수도 있습니다.

다양한 YOLO11 통합에 대해 자세히 알아보고 싶으신가요? Ultralytics 통합 가이드 페이지를 방문하여 머신러닝 프로젝트를 향상시킬 수 있는 추가 도구와 기능을 알아보세요.

자주 묻는 질문

Amazon SageMaker 엔드포인트에 Ultralytics YOLO11 모델을 배포하려면 어떻게 해야 하나요?

Amazon SageMaker 엔드포인트에 Ultralytics YOLO11 모델을 배포하려면 다음 단계를 따르세요:

  1. AWS 환경 설정하기: AWS 계정, 필요한 권한이 있는 IAM 역할 및 AWS CLI 가 구성되어 있는지 확인합니다. 아직 설치하지 않은 경우 AWS CDK를 설치합니다( AWS CDK 지침 참조).
  2. YOLO11 세이지메이커 리포지토리 복제하기:
    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
    

자세한 내용은 문서 섹션을 참조하세요.

Amazon SageMaker에 YOLO11 배포를 위한 전제 조건은 무엇인가요?

Amazon SageMaker에 YOLO11 를 배포하려면 다음 사전 요구 사항이 있는지 확인하세요:

  1. AWS 계정: 활성 AWS 계정(여기에서 가입).
  2. IAM 역할: SageMaker, CloudFormation 및 Amazon S3에 대한 권한이 있는 IAM 역할을 구성합니다.
  3. AWS CLI: AWS 명령줄 인터페이스 설치 및 구성(AWS CLI 설치 가이드).
  4. AWS CDK: 설치된 AWS 클라우드 개발 키트(CDK 설정 가이드).
  5. 서비스 할당량: 다음에 대한 충분한 할당량 ml.m5.4xlarge 엔드포인트와 노트북 사용 모두에 대한 인스턴스(할당량 증가 요청).

자세한 설정은 이 섹션을 참조하세요.

아마존 세이지메이커에서 Ultralytics YOLO11 을 사용해야 하는 이유는 무엇인가요?

아마존 세이지메이커에서 Ultralytics YOLO11 을 사용하면 몇 가지 이점이 있습니다:

  1. 확장성 및 관리: SageMaker는 자동 확장 등의 기능을 갖춘 관리형 환경을 제공하여 실시간 추론에 도움이 됩니다.
  2. AWS 서비스와의 통합: 데이터 스토리지를 위한 S3, 코드형 인프라를 위한 CloudFormation, 모니터링을 위한 CloudWatch와 같은 다른 AWS 서비스와 원활하게 통합할 수 있습니다.
  3. 배포의 용이성: AWS CDK 스크립트를 사용하여 설정이 간소화되고 배포 프로세스가 간소화됩니다.
  4. 성능: 대규모 추론 작업을 효율적으로 실행하기 위해 Amazon SageMaker의 고성능 인프라를 활용하세요.

소개 섹션에서 세이지메이커 사용의 장점에 대해 자세히 알아보세요.

Amazon SageMaker에서 YOLO11 에 대한 추론 로직을 사용자 지정할 수 있나요?

예, Amazon SageMaker에서 YOLO11 에 대한 추론 로직을 사용자 지정할 수 있습니다:

  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 노트북을 사용하세요.
  2. 노트북을 실행합니다: 노트북의 지침에 따라 이미지를 엔드포인트로 보내고, 추론을 수행하고, 결과를 표시합니다.
  3. 결과 시각화: 기본 제공 플로팅 기능을 사용하여 감지된 개체 주변의 경계 상자 등의 성능 메트릭을 시각화할 수 있습니다.

종합적인 테스트 지침은 테스트 섹션을 참조하세요.

📅1 년 전 생성됨 ✏️ 5개월 전 업데이트됨

댓글