YOLO11 빠른 배포를 위해 TorchScript 으로 모델 내보내기
임베디드 시스템, 웹 브라우저 또는 Python 지원이 제한된 플랫폼 등 다양한 환경에 컴퓨터 비전 모델을 배포하려면 유연하고 이식 가능한 솔루션이 필요합니다. TorchScript 은 이식성과 전체 Python 프레임워크를 사용할 수 없는 환경에서 모델을 실행하는 기능에 중점을 둡니다. 따라서 다양한 디바이스나 플랫폼에 컴퓨터 비전 기능을 배포해야 하는 시나리오에 이상적입니다.
Torchscript 으로 내보내서 Ultralytics YOLO11 모델을 직렬화하여 플랫폼 간 호환성을 높이고 배포를 간소화할 수 있습니다. 이 가이드에서는 YOLO11 모델을 TorchScript 형식으로 내보내서 더 다양한 애플리케이션에서 쉽게 사용할 수 있도록 하는 방법을 보여 드리겠습니다.
TorchScript 으로 내보내야 하는 이유는 무엇인가요?
PyTorch 의 개발자가 개발한 TorchScript 은 다양한 플랫폼에서 PyTorch 모델을 최적화하고 배포할 수 있는 강력한 도구입니다. YOLO11 모델로 내보내기 TorchScript 로 내보내는 것은 연구에서 실제 애플리케이션으로 전환하는 데 매우 중요합니다. TorchScript PyTorch 프레임워크의 일부인 PyTorch 모델은 Python 을 지원하지 않는 환경에서도 모델을 사용할 수 있게 함으로써 이러한 전환을 보다 원활하게 해줍니다.
이 프로세스에는 추적과 스크립팅이라는 두 가지 기술이 포함됩니다. 추적은 모델 실행 중 작업을 기록하고, 스크립팅은 Python 의 하위 집합을 사용하여 모델을 정의할 수 있습니다. 이러한 기술을 통해 YOLO11 과 같은 모델은 일반적인 Python 환경 밖에서도 계속 작동할 수 있습니다.
TorchScript 연산자 융합 및 메모리 사용량 개선과 같은 기술을 통해 모델을 최적화하여 효율적인 실행을 보장할 수도 있습니다. TorchScript 으로 내보내는 또 다른 장점은 다양한 하드웨어 플랫폼에서 모델 실행을 가속화할 수 있다는 점입니다. 이는 C++ 환경, 임베디드 시스템에 통합하거나 웹 또는 모바일 애플리케이션에 배포할 수 있는 독립형, 프로덕션 준비 상태의 PyTorch 모델을 생성합니다.
TorchScript 모델의 주요 기능
TorchScript는 PyTorch 에코시스템의 핵심 부분으로, 딥러닝 모델을 최적화하고 배포하기 위한 강력한 기능을 제공합니다.
다음은 TorchScript 을 개발자에게 유용한 도구로 만드는 주요 기능입니다:
-
정적 그래프 실행: TorchScript 은 모델 계산의 정적 그래프 표현을 사용하며, PyTorch 의 동적 그래프 실행과는 다릅니다. 정적 그래프 실행에서는 계산 그래프가 실제 실행 전에 한 번 정의되고 컴파일되므로 추론 시 성능이 향상됩니다.
-
모델 직렬화: TorchScript 를 사용하면 PyTorch 모델을 플랫폼에 독립적인 형식으로 직렬화할 수 있습니다. 직렬화된 모델은 원본 Python 코드 없이도 로드할 수 있으므로 다양한 런타임 환경에 배포할 수 있습니다.
-
JIT 컴파일: TorchScript 은 JIT(Just-In-Time) 컴파일을 사용하여 PyTorch 모델을 최적화된 중간 표현으로 변환합니다. JIT는 모델의 계산 그래프를 컴파일하여 대상 장치에서 효율적으로 실행할 수 있도록 합니다.
-
언어 간 통합: TorchScript 을 사용하면 PyTorch 모델을 C++, Java, JavaScript와 같은 다른 언어로 내보낼 수 있습니다. 이렇게 하면 PyTorch 모델을 다른 언어로 작성된 기존 소프트웨어 시스템에 쉽게 통합할 수 있습니다.
-
점진적 변환: TorchScript 에서는 점진적 변환 방식을 제공하여 PyTorch 모델의 일부를 TorchScript 로 점진적으로 변환할 수 있습니다. 이 유연성은 복잡한 모델을 다루거나 코드의 특정 부분을 최적화하려는 경우에 특히 유용합니다.
배포 옵션 TorchScript
YOLO11 모델을 TorchScript 형식으로 내보내는 코드를 살펴보기 전에 TorchScript 모델이 일반적으로 사용되는 위치를 이해해 보겠습니다.
TorchScript 는 다음과 같은 머신 러닝 모델을 위한 다양한 배포 옵션을 제공합니다:
-
C++ API: TorchScript 의 가장 일반적인 사용 사례는 최적화된 TorchScript 모델을 C++ 애플리케이션 내에서 직접 로드하고 실행할 수 있는 C++ API입니다. 이는 Python 이 적합하지 않거나 사용할 수 없는 프로덕션 환경에 이상적입니다. C++ API는 TorchScript 모델을 오버헤드가 적고 효율적으로 실행하여 성능 잠재력을 극대화합니다.
-
모바일 배포: TorchScript 에서는 모델을 모바일 장치에 쉽게 배포할 수 있는 형식으로 변환하는 도구를 제공합니다. PyTorch 모바일은 iOS 및 Android 앱 내에서 이러한 모델을 실행하기 위한 런타임을 제공합니다. 이를 통해 지연 시간이 짧은 오프라인 추론 기능을 구현하여 사용자 경험과 데이터 프라이버시를 향상시킬 수 있습니다.
-
클라우드 배포: TorchScript 모델은 TorchServe와 같은 솔루션을 사용하여 클라우드 기반 서버에 배포할 수 있습니다. 프로덕션 환경에서 확장 가능한 배포를 위해 모델 버전 관리, 배치 및 메트릭 모니터링과 같은 기능을 제공합니다. TorchScript 을 통한 클라우드 배포는 API 또는 기타 웹 서비스를 통해 모델에 액세스할 수 있도록 합니다.
TorchScript 으로 내보내기: YOLO11 모델 변환
YOLO11 모델을 TorchScript 으로 내보내면 다른 곳에서 더 쉽게 사용할 수 있고 더 빠르고 효율적으로 실행할 수 있습니다. 이 기능은 실제 애플리케이션에서 딥러닝 모델을 보다 효과적으로 사용하려는 모든 사용자에게 유용합니다.
설치
필요한 패키지를 설치하려면 실행합니다:
설치 과정과 관련된 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLO11 에 필요한 패키지를 설치하는 동안 문제가 발생하면 일반적인 문제 가이드를 참조하여 해결 방법과 팁을 확인하세요.
사용법
사용 지침을 살펴보기 전에 모든 Ultralytics YOLO11 모델에서 내보내기를 사용할 수 있지만, 선택한 모델이 내보내기 기능을 지원하는지 여기에서 확인할 수 있다는 점에 유의하세요.
사용법
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
내보내기 인수
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
format |
str |
'torchscript' |
내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz |
int 또는 tuple |
640 |
모델 입력에 사용할 원하는 이미지 크기입니다. 정사각형 이미지의 경우 정수 또는 튜플일 수 있습니다. (height, width) 를 입력합니다. |
optimize |
bool |
False |
모바일 디바이스에 대한 최적화를 적용하여 모델 크기를 줄이고 성능을 개선할 수 있습니다. |
nms |
bool |
False |
정확하고 효율적인 검출 후처리에 필수적인 비최대 억제(NMS)를 추가합니다. |
batch |
int |
1 |
내보내기 모델 일괄 추론 크기 또는 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. predict 모드로 전환합니다. |
내보내기 프로세스에 대한 자세한 내용은 내보내기 관련 문서 페이지(Ultralytics )를 참조하세요.
내보낸 YOLO11 TorchScript 모델 배포
Ultralytics YOLO11 모델을 TorchScript 형식으로 성공적으로 내보낸 후에는 이제 배포할 수 있습니다. TorchScript 모델을 실행하기 위한 기본적이고 권장되는 첫 번째 단계는 이전 사용 코드 조각에 설명된 대로 YOLO("모델.torchscript") 방법을 활용하는 것입니다. 그러나 다양한 다른 설정에서 TorchScript 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 참조하세요:
-
모바일 배포 살펴보기: 모바일 배포 PyTorch 모바일 문서에서는 모바일 디바이스에 모델을 배포하기 위한 포괄적인 지침을 제공하여 애플리케이션의 효율성과 응답성을 보장합니다.
-
마스터 서버 측 배포: 확장 가능하고 효율적인 모델 제공을 위한 단계별 튜토리얼을 제공하는 TorchServe를 사용하여 서버 측에 모델을 배포하는 방법을 알아보세요.
-
C++ 배포 구현: TorchScript 모델을 C++로 로드하는 튜토리얼을 통해 TorchScript 모델을 C++ 애플리케이션에 통합하여 향상된 성능과 다양한 기능을 활용할 수 있습니다.
요약
이 가이드에서는 Ultralytics YOLO11 모델을 TorchScript 형식으로 내보내는 프로세스를 살펴봤습니다. 제공된 지침에 따라 YOLO11 모델을 성능에 맞게 최적화하고 다양한 플랫폼과 환경에 배포할 수 있는 유연성을 확보할 수 있습니다.
사용법에 대한 자세한 내용은 TorchScript 의 공식 문서를 참조하세요.
또한 Ultralytics YOLO11 통합에 대해 더 자세히 알고 싶다면 통합 가이드 페이지를 방문하세요. 유용한 리소스와 인사이트를 많이 찾을 수 있습니다.
자주 묻는 질문
Ultralytics YOLO11 모델 내보내기란 무엇인가요 TorchScript?
Ultralytics YOLO11 모델을 TorchScript 로 내보내면 유연한 크로스 플랫폼 배포가 가능합니다. TorchScript PyTorch 에코시스템의 일부인 모델을 직렬화하면 Python 지원이 없는 환경에서도 모델을 실행할 수 있습니다. 따라서 임베디드 시스템, C++ 환경, 모바일 애플리케이션, 심지어 웹 브라우저에 모델을 배포하는 데 이상적입니다. TorchScript 으로 내보내면 다양한 플랫폼에서 YOLO11 모델의 효율적인 성능과 폭넓은 적용성을 확보할 수 있습니다.
Ultralytics 을 사용하여 YOLO11 모델을 TorchScript 으로 내보내려면 어떻게 해야 하나요?
YOLO11 모델을 TorchScript 으로 내보내려면 다음 예제 코드를 사용할 수 있습니다:
사용법
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
내보내기 프로세스에 대한 자세한 내용은 내보내기 관련 문서(Ultralytics )를 참조하세요.
YOLO11 모델을 배포할 때 TorchScript 을 사용해야 하는 이유는 무엇인가요?
YOLO11 모델을 배포할 때 TorchScript 을 사용하면 몇 가지 이점이 있습니다:
- 이식성: 내보낸 모델은 C++ 애플리케이션, 임베디드 시스템 또는 모바일 디바이스와 같이 Python 이 필요 없는 환경에서도 실행할 수 있습니다.
- 최적화: TorchScript 은 모델 성능을 최적화할 수 있는 정적 그래프 실행 및 JIT(Just-In-Time) 컴파일을 지원합니다.
- 언어 간 통합: TorchScript 모델을 다른 프로그래밍 언어에 통합하여 유연성과 확장성을 향상시킬 수 있습니다.
- 직렬화: 모델을 직렬화할 수 있으므로 플랫폼에 구애받지 않고 로드 및 추론할 수 있습니다.
배포에 대한 자세한 내용은 PyTorch 모바일 문서, TorchServe 문서 및 C++ 배포 가이드를 참조하세요.
YOLO11 모델을 TorchScript 으로 내보내기 위한 설치 단계는 어떻게 되나요?
YOLO11 모델 내보내기에 필요한 패키지를 설치하려면 다음 명령을 사용합니다:
자세한 지침은 Ultralytics 설치 가이드를 참조하세요. 설치 중에 문제가 발생하면 일반적인 문제 가이드를 참조하세요.
내보낸 TorchScript YOLO11 모델을 배포하려면 어떻게 해야 하나요?
YOLO11 모델을 TorchScript 형식으로 내보낸 후 다양한 플랫폼에 배포할 수 있습니다:
- C++ API: 오버헤드가 적고 효율성이 높은 프로덕션 환경에 이상적입니다.
- 모바일 배포: iOS 및 Android 애플리케이션의 경우 PyTorch 모바일을 사용하세요.
- 클라우드 배포: 확장 가능한 서버 측 배포를 위해 TorchServe와 같은 서비스를 활용하세요.
이러한 설정에서 모델을 배포하기 위한 포괄적인 가이드라인을 살펴보고 TorchScript 의 기능을 최대한 활용하세요.