엔터프라이즈급 보안: ISO 27001 및 SOC 2 Type I 규정을 준수합니다.

Link to this section신속한 배포를 위한 YOLO26 모델의 TorchScript 내보내기#

PyTorch는 TorchScript 사용을 중단하고 있습니다.

PyTorch는 TorchScript를 지원 중단(deprecated)했으며 해당 기능을 점진적으로 제거하고 있습니다. 새로운 모바일 및 엣지 배포의 경우, 지원되는 ExecuTorch 통합을 사용하십시오. Ultralytics는 기존 C++ 호환성을 위해 정기적인 TorchScript 내보내기 기능을 유지합니다.

Python 없이 C++ 환경에서 컴퓨터 비전 모델을 배포하려면 이식 가능한 직렬화된 표현이 필요합니다. TorchScript는 기존 LibTorch 애플리케이션을 위해 이러한 호환성을 제공합니다.

Ultralytics YOLO26 모델을 직렬화하여 플랫폼 간 호환성과 간소화된 배포를 달성하기 위해 TorchScript로 내보내십시오. 이 가이드에서는 YOLO26 모델을 TorchScript 형식으로 내보내는 방법을 보여드리며, 이를 통해 더 광범위한 애플리케이션에서 모델을 더 쉽게 사용할 수 있도록 지원합니다.

Link to this sectionTorchScript로 내보내야 하는 이유는 무엇입니까?#

TorchScript 모델 직렬화 및 배포 워크플로우 개요

PyTorch 제작자가 개발한 TorchScript는 다양한 플랫폼에서 PyTorch 모델을 최적화하고 배포하기 위한 강력한 도구입니다. YOLO26 모델을 TorchScript로 내보내는 것은 연구 단계에서 실제 애플리케이션으로 전환하는 데 매우 중요합니다. PyTorch 프레임워크의 일부인 TorchScript는 Python을 지원하지 않는 환경에서도 PyTorch 모델을 사용할 수 있게 함으로써 이러한 전환을 보다 원활하게 만들어 줍니다.

이 과정에는 트레이싱(tracing)과 스크립팅(scripting)이라는 두 가지 기술이 포함됩니다. 트레이싱은 모델 실행 중 작업을 기록하며, 스크립팅은 Python의 하위 집합을 사용하여 모델을 정의할 수 있게 합니다. 이러한 기술을 사용하면 YOLO26과 같은 모델이 기존 Python 환경 외부에서도 정상적으로 작동할 수 있습니다.

TorchScript 스크립팅 vs 트레이싱 비교

TorchScript 모델은 연산자 융합(operator fusion) 및 메모리 사용 최적화와 같은 기술을 통해 최적화할 수 있어 효율적인 실행을 보장합니다. TorchScript로 내보낼 때의 또 다른 장점은 다양한 하드웨어 플랫폼에서 모델 실행을 가속화할 수 있다는 것입니다. 이는 C++ 환경에 통합할 수 있는 독립형 프로덕션 준비 모델 표현을 생성합니다.

Link to this sectionTorchScript 모델의 주요 특징#

PyTorch 생태계의 핵심 부분인 TorchScript는 deep learning 모델을 최적화하고 배포하기 위한 강력한 기능을 제공합니다.

TorchScript 주요 기능 개요

개발자에게 TorchScript를 가치 있는 도구로 만들어 주는 주요 기능은 다음과 같습니다:

  • 정적 그래프 실행(Static Graph Execution): TorchScript는 PyTorch의 동적 그래프 실행과는 다른 모델 연산의 정적 그래프 표현을 사용합니다. 정적 그래프 실행에서는 실제 실행 전에 연산 그래프가 정의되고 컴파일되므로 추론 중 성능이 향상됩니다.

  • 모델 직렬화(Model Serialization): TorchScript를 사용하면 PyTorch 모델을 플랫폼 독립적인 형식으로 직렬화할 수 있습니다. 직렬화된 모델은 원본 Python 코드 없이도 로드할 수 있어 다양한 런타임 환경에 배포가 가능합니다.

  • JIT 컴파일: TorchScript는 JIT(Just-In-Time) 컴파일을 사용하여 PyTorch 모델을 최적화된 중간 표현으로 변환합니다. JIT는 모델의 연산 그래프를 컴파일하여 대상 장치에서 효율적인 실행을 가능하게 합니다.

  • 점진적 변환(Gradual Conversion): TorchScript는 점진적 변환 방식을 제공하여 PyTorch 모델의 일부를 단계적으로 TorchScript로 변환할 수 있습니다. 이러한 유연성은 복잡한 모델을 다루거나 코드의 특정 부분을 최적화하려는 경우 특히 유용합니다.

Link to this sectionTorchScript의 배포 옵션#

YOLO26 모델을 TorchScript 형식으로 내보내는 코드를 살펴보기 전에, TorchScript 모델이 일반적으로 어디에 사용되는지 알아보겠습니다.

TorchScript는 다음과 같은 machine learning 모델에 대한 다양한 배포 옵션을 제공합니다.

  • C++ API: TorchScript의 가장 일반적인 사용 사례는 LibTorch C++ API로, 이를 통해 C++ 애플리케이션 내에서 최적화된 TorchScript 모델을 직접 로드하고 실행할 수 있습니다. 이는 Python을 사용하기 어렵거나 사용할 수 없는 프로덕션 환경에 이상적입니다. C++ API는 TorchScript 모델을 오버헤드가 적고 효율적으로 실행하여 성능 잠재력을 극대화합니다.

  • 모바일 배포: 모바일 장치에서의 저지연 오프라인 추론 및 데이터 개인정보 보호를 위해서는 TorchScript Mobile의 PyTorch 대체재인 ExecuTorch를 사용하십시오.

  • 클라우드 배포: TorchScript 모델은 TorchServe와 같은 솔루션을 사용하여 클라우드 기반 서버에 배포할 수 있습니다. 이는 프로덕션 환경에서의 확장 가능한 배포를 위해 모델 버전 관리, 배치 처리, 메트릭 모니터링과 같은 기능을 제공합니다. TorchScript를 사용한 클라우드 배포는 API나 기타 웹 서비스를 통해 모델을 액세스할 수 있게 합니다.

Link to this sectionTorchScript로 내보내기: YOLO26 모델 변환#

YOLO26 모델을 TorchScript로 내보내면 다양한 장소에서 더 쉽게 사용할 수 있으며, 더 빠르고 효율적으로 실행하는 데 도움이 됩니다. 이는 실제 애플리케이션에서 딥러닝 모델을 보다 효과적으로 사용하려는 모든 사람에게 유용합니다.

Link to this section설치#

필수 패키지를 설치하려면 다음을 실행하십시오:

설치
# Install the required package for YOLO26
pip install ultralytics

설치 과정과 관련된 자세한 지침 및 모범 사례는 Ultralytics 설치 가이드를 확인하십시오. YOLO26용 필수 패키지를 설치하는 동안 문제가 발생하면 일반 문제 가이드에서 해결책과 팁을 확인하십시오.

Link to this section사용법#

모든 Ultralytics YOLO26 모델은 즉시 내보내기를 지원하도록 설계되어 있어 선호하는 배포 워크플로우에 쉽게 통합할 수 있습니다. 전체 지원 내보내기 형식 및 구성 옵션 목록을 보고 애플리케이션에 가장 적합한 설정을 선택할 수 있습니다.

TorchScript 형식은 Export, Predict, Validate 모드를 지원합니다. 모델을 내보낸 다음 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하십시오.

내보내기(Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
추론(Predict)
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
검증
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this section내보내기 인수#

인수유형기본값설명
formatstr'torchscript'내보낸 모델의 대상 형식이며, 다양한 배포 환경과의 호환성을 정의합니다.
imgszint 또는 tuple640모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수를 사용할 수 있으며, 특정 치수의 경우 (height, width) 튜플을 사용할 수 있습니다.
dynamicboolFalse동적 입력 크기를 허용하여 다양한 이미지 크기를 처리하는 데 유연성을 높입니다.
quantizeint 또는 strNone양자화 정밀도: 16 (FP16)은 device=0을 사용한 GPU 내보내기가 필요하며, 32/미설정은 FP32입니다. 이는 더 이상 사용되지 않는 half 플래그를 대체합니다.
nmsboolFalse정확하고 효율적인 탐지 후처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다.
batchint1내보낸 모델의 배치 추론 크기 또는 내보낸 모델이 predict 모드에서 동시에 처리할 최대 이미지 수를 지정합니다.
devicestrNone내보내기를 위한 장치를 지정합니다: GPU(device=0), CPU(device=cpu), Apple silicon용 MPS(device=mps).

내보내기 프로세스에 대한 자세한 내용은 내보내기에 대한 Ultralytics 문서 페이지를 참조하십시오.

Link to this section내보낸 YOLO26 TorchScript 모델 배포#

Ultralytics YOLO26 모델을 TorchScript 형식으로 성공적으로 내보낸 후에는 이를 배포할 수 있습니다. TorchScript 모델을 실행하기 위한 기본적이고 권장되는 첫 번째 단계는 이전 사용 코드 스니펫에 설명된 대로 YOLO("model.torchscript") 메서드를 사용하는 것입니다. 다른 설정에서 TorchScript 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 참조하십시오:

  • 모바일 배포 알아보기: 현재 PyTorch 모바일 배포를 위해서는 ExecuTorch의 별도 torch.export().pte 파이프라인을 사용하십시오.

  • 서버 측 배포 마스터: 확장 가능하고 효율적인 모델 서비스를 위한 단계별 자습서를 제공하는 TorchServe를 사용하여 서버 측에 모델을 배포하는 방법을 배우십시오.

  • C++ 배포 구현: C++ 애플리케이션에 TorchScript 모델을 로드하는 방법에 대한 자습서를 살펴보고 향상된 성능과 다양성을 위해 C++ 애플리케이션에 모델을 통합하는 방법을 배우십시오.

Link to this section요약#

이 가이드에서는 Ultralytics YOLO26 모델을 TorchScript 형식으로 내보내는 과정을 살펴보았습니다. 제공된 지침을 따르면 YOLO26 모델을 성능을 위해 최적화하고 다양한 플랫폼과 환경에 배포할 수 있는 유연성을 확보할 수 있습니다.

사용법에 대한 자세한 내용은 TorchScript 공식 문서를 방문하십시오.

또한 다른 Ultralytics YOLO26 통합에 대해 자세히 알고 싶다면 통합 가이드 페이지를 방문하십시오. 그곳에서 유용한 리소스와 통찰력을 많이 얻으실 수 있습니다.

Link to this sectionFAQ#

Link to this sectionUltralytics YOLO26 모델의 TorchScript 내보내기란 무엇입니까?#

Ultralytics YOLO26 모델을 TorchScript로 내보내면 유연한 크로스 플랫폼 배포가 가능합니다. PyTorch 생태계의 일부인 TorchScript는 모델의 직렬화를 용이하게 하여 Python 지원이 없는 환경에서도 실행할 수 있게 합니다. 이는 C++ 환경에 모델을 배포할 때 유용합니다.

Link to this sectionUltralytics를 사용하여 YOLO26 모델을 어떻게 TorchScript로 내보낼 수 있습니까?#

YOLO26 모델을 TorchScript로 내보내려면 다음 예제 코드를 사용할 수 있습니다:

사용법
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo26n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")

내보내기 과정에 대한 자세한 내용은 내보내기에 관한 Ultralytics 문서를 참조하십시오.

Link to this sectionYOLO26 모델을 배포하는 데 왜 TorchScript를 사용해야 합니까?#

YOLO26 모델 배포에 TorchScript를 사용하면 다음과 같은 여러 가지 장점이 있습니다:

  • 이식성: 내보낸 모델은 Python 없이 C++ 애플리케이션에서 실행될 수 있습니다.
  • 최적화: TorchScript는 정적 그래프 실행과 JIT(Just-In-Time) 컴파일을 지원하여 모델 성능을 최적화할 수 있습니다.
  • 언어 간 통합: TorchScript 모델을 다른 프로그래밍 언어에 통합하여 유연성과 확장성을 높일 수 있습니다.
  • 직렬화: 모델을 직렬화하여 플랫폼 독립적인 로딩과 추론을 가능하게 합니다.

For more insights into deployment, visit the TorchServe Documentation and the C++ Deployment Guide. For on-device mobile deployment, PyTorch now recommends ExecuTorch, which uses its own separate torch.export().pte pipeline rather than TorchScript.

Link to this sectionYOLO26 모델을 TorchScript로 내보내기 위한 설치 단계는 무엇입니까?#

YOLO26 모델을 내보내는 데 필요한 패키지를 설치하려면 다음 명령을 사용하십시오:

설치
# Install the required package for YOLO26
pip install ultralytics

자세한 지침은 Ultralytics 설치 가이드를 방문하십시오. 설치 중 문제가 발생하면 공통 문제 가이드를 참조하십시오.

Link to this section내보낸 TorchScript YOLO26 모델을 어떻게 배포합니까?#

YOLO26 모델을 TorchScript 형식으로 내보낸 후에는 다양한 플랫폼에 배포할 수 있습니다:

  • C++ API: 오버헤드가 낮고 효율성이 뛰어난 프로덕션 환경을 위해 LibTorch를 사용하십시오.
  • Mobile Deployment: Use ExecuTorch, PyTorch's supported replacement with a separate .pte export pipeline.
  • 클라우드 배포: 확장 가능한 서버 측 배포를 위해 TorchServe와 같은 서비스를 활용하십시오.

TorchScript의 기능을 최대한 활용하려면 이러한 환경에서 모델을 배포하기 위한 포괄적인 지침을 살펴보십시오.

댓글