빠른 배포를 위한 YOLO26 모델의 TorchScript 내보내기#
PyTorch는 TorchScript를 더 이상 사용하지 않도록 지정했으며 관련 기능을 점차 제거하고 있습니다. 새로운 모바일 및 엣지 배포에는 지원되는 ExecuTorch 통합을 사용하세요. Ultralytics는 레거시 C++ 호환성을 위해 일반 TorchScript 내보내기를 유지합니다.
Python 없이 C++ 환경에 컴퓨터 비전 모델을 배포하려면 이식 가능한 직렬화 표현이 필요합니다. TorchScript는 레거시 LibTorch 애플리케이션에 이러한 호환성을 제공합니다.
Ultralytics YOLO26 모델을 직렬화하여 플랫폼 간 호환성을 확보하고 배포를 간소화하려면 TorchScript로 내보내세요. 이 가이드에서는 YOLO26 모델을 TorchScript 형식으로 내보내 더 다양한 애플리케이션에서 쉽게 사용하는 방법을 설명합니다.
TorchScript로 내보내야 하는 이유는 무엇인가요?#

PyTorch를 만든 개발자들이 개발한 TorchScript는 다양한 플랫폼에서 PyTorch 모델을 최적화하고 배포할 수 있는 강력한 도구입니다. YOLO26 모델을 TorchScript로 내보내는 것은 연구 단계에서 실제 애플리케이션으로 전환하는 데 중요합니다. PyTorch 프레임워크의 일부인 TorchScript를 사용하면 Python을 지원하지 않는 환경에서도 PyTorch 모델을 사용할 수 있어 이러한 전환이 원활해집니다.
이 과정에는 트레이싱과 스크립팅이라는 두 가지 기법이 사용됩니다. 트레이싱은 모델 실행 중 연산을 기록하고, 스크립팅은 Python의 일부 기능을 사용해 모델을 정의할 수 있게 합니다. 이러한 기법을 사용하면 YOLO26과 같은 모델을 일반적인 Python 환경 외부에서도 계속 활용할 수 있습니다.

TorchScript 모델은 연산자 융합이나 메모리 사용 개선과 같은 기법으로 최적화하여 효율적으로 실행할 수도 있습니다. TorchScript로 내보내면 다양한 하드웨어 플랫폼에서 모델 실행을 가속화할 수 있다는 점도 장점입니다. 이 과정에서는 PyTorch 모델을 독립형 프로덕션용 표현으로 변환하여 C++ 환경에 통합할 수 있습니다.
TorchScript 모델의 주요 기능#
PyTorch 생태계의 핵심 요소인 TorchScript는 딥러닝 모델을 최적화하고 배포할 수 있는 강력한 기능을 제공합니다.

TorchScript를 개발자에게 유용한 도구로 만들어 주는 주요 기능은 다음과 같습니다.
-
정적 그래프 실행: TorchScript는 PyTorch의 동적 그래프 실행과 달리 모델 연산을 정적 그래프로 표현합니다. 정적 그래프 실행에서는 실제 실행 전에 연산 그래프를 정의하고 한 번 컴파일하므로 추론 성능이 향상됩니다.
-
모델 직렬화: TorchScript를 사용하면 PyTorch 모델을 플랫폼에 종속되지 않는 형식으로 직렬화할 수 있습니다. 직렬화된 모델은 원본 Python 코드 없이도 로드할 수 있어 다양한 런타임 환경에 배포할 수 있습니다.
-
JIT 컴파일: TorchScript는 적시(JIT) 컴파일을 사용하여 PyTorch 모델을 최적화된 중간 표현으로 변환합니다. JIT는 모델의 연산 그래프를 컴파일하여 대상 디바이스에서 효율적으로 실행할 수 있게 합니다.
-
점진적 변환: TorchScript는 PyTorch 모델의 일부를 점진적으로 TorchScript로 변환할 수 있는 방식을 제공합니다. 복잡한 모델을 다루거나 코드의 특정 부분만 최적화하려는 경우 특히 유용합니다.
TorchScript의 배포 옵션#
YOLO26 모델을 TorchScript 형식으로 내보내는 코드를 살펴보기 전에, TorchScript 모델이 일반적으로 사용되는 분야를 알아보겠습니다.
TorchScript는 머신러닝 모델에 다음과 같은 다양한 배포 옵션을 제공합니다.
-
C++ API: TorchScript의 가장 일반적인 사용 사례는 LibTorch C++ API입니다. 이 API를 사용하면 최적화된 TorchScript 모델을 C++ 애플리케이션에서 직접 로드하고 실행할 수 있습니다. Python이 적합하지 않거나 사용할 수 없는 프로덕션 환경에 이상적입니다. C++ API는 TorchScript 모델을 낮은 오버헤드로 효율적으로 실행하여 성능을 극대화합니다.
-
모바일 배포: 모바일 디바이스에서 낮은 지연 시간으로 오프라인 추론을 수행하고 데이터 개인정보 보호를 유지하려면 PyTorch의 TorchScript Mobile 대체 솔루션인 ExecuTorch를 사용하세요.
-
클라우드 배포: TorchServe와 같은 솔루션을 사용하여 TorchScript 모델을 클라우드 기반 서버에 배포할 수 있습니다. TorchServe는 프로덕션 환경에서 확장 가능한 배포를 위해 모델 버전 관리, 배치 처리, 메트릭 모니터링 등의 기능을 제공합니다. TorchScript를 클라우드에 배포하면 API나 기타 웹 서비스를 통해 모델에 접근할 수 있습니다.
지원 작업#
TorchScript 내보내기는 Ultralytics의 7개 작업을 모두 지원합니다. 의미론적 분할과 깊이 추정은 해당 헤드를 제공하는 유일한 제품군인 YOLO26에서만 사용할 수 있습니다.
TorchScript로 내보내기: YOLO26 모델 변환#
YOLO26 모델을 TorchScript로 내보내면 다양한 환경에서 더 쉽게 사용할 수 있고, 모델을 더 빠르고 효율적으로 실행할 수 있습니다. 실제 애플리케이션에서 딥러닝 모델을 더 효과적으로 사용하려는 경우 유용합니다.
설치#
필수 패키지를 설치하려면 다음을 실행하세요:
# Install the required package for YOLO26
pip install ultralytics설치 절차에 대한 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLO26에 필요한 패키지를 설치하는 중 문제가 발생하면 해결 방법과 팁을 확인할 수 있는 일반적인 문제 가이드를 참조하세요.
사용법#
모든 Ultralytics YOLO26 모델은 별도의 설정 없이 내보내기를 지원하도록 설계되어 있어 원하는 배포 워크플로에 쉽게 통합할 수 있습니다. 애플리케이션에 가장 적합한 설정을 선택하려면 지원되는 내보내기 형식 및 구성 옵션 전체 목록을 확인하세요.
TorchScript 형식은 내보내기, 예측, 검증 모드를 지원합니다. 모델을 내보낸 다음 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하세요.
from ultralytics import YOLO
# YOLO26 모델 로드
model = YOLO("yolo26n.pt")
# 모델을 TorchScript 형식으로 내보냅니다
model.export(format="torchscript") # 'yolo26n.torchscript'를 생성합니다from ultralytics import YOLO
# 내보낸 TorchScript 모델을 로드합니다
model = YOLO("yolo26n.torchscript")
# 추론 실행
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# 내보낸 TorchScript 모델을 로드합니다
model = YOLO("yolo26n.torchscript")
# COCO8 데이터셋에서 정확도 검증
metrics = model.val(data="coco8.yaml")내보내기 인수#
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
format | str | 'torchscript' | 내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 사용할 이미지 크기입니다. 정사각형 이미지에는 정수를 사용하고, 특정 크기에는 튜플 (height, width)을 사용할 수 있습니다. |
dynamic | bool | False | 동적 입력 크기를 허용하여 다양한 이미지 크기를 유연하게 처리할 수 있습니다. |
quantize | int 또는 str | None | 양자화 정밀도: 16 (FP16)을 사용하려면 device=0로 GPU 내보내기를 해야 합니다. 32/설정되지 않음은 FP32입니다. 더 이상 사용되지 않는 half 플래그를 대체합니다. |
nms | bool, 선택 사항 | None | 원시 출력(None, 기본값), 내장 NMS(True) 또는 NMS가 없는 head(False)를 선택합니다. |
batch | int | 1 | 내보내기 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
device | str | None | 내보내기에 사용할 장치를 지정합니다. GPU(device=0), CPU(device=cpu), Apple 실리콘용 MPS(device=mps)를 사용할 수 있습니다. |
내보내기 프로세스에 관한 자세한 내용은 내보내기에 관한 Ultralytics 문서 페이지를 참조하세요.
내보낸 YOLO26 TorchScript 모델 배포#
Ultralytics YOLO26 모델을 TorchScript 형식으로 성공적으로 내보냈다면 이제 배포할 수 있습니다. TorchScript 모델을 실행할 때 가장 먼저 권장하는 방법은 앞서 사용 예제 코드에서 설명한 YOLO("model.torchscript") 메서드를 사용하는 것입니다. 다른 환경에서 TorchScript 모델을 배포하는 자세한 방법은 다음 리소스를 참고하세요.
-
모바일 배포 살펴보기: 현재 PyTorch 모바일 배포에는 ExecuTorch의 별도
torch.export()→.pte파이프라인을 사용하세요. -
서버 측 배포 마스터하기: 확장 가능하고 효율적인 모델 서빙을 위한 단계별 튜토리얼을 통해 TorchServe로 서버 측에 모델을 배포하는 방법을 알아보세요.
-
C++ 배포 구현하기: C++에서 TorchScript 모델을 로드하는 튜토리얼을 살펴보고, TorchScript 모델을 C++ 애플리케이션에 통합하여 성능과 유연성을 높이는 방법을 알아보세요.
요약#
이 가이드에서는 Ultralytics YOLO26 모델을 TorchScript 형식으로 내보내는 과정을 살펴봤습니다. 안내된 지침에 따라 YOLO26 모델의 성능을 최적화하고 다양한 플랫폼과 환경에 배포할 수 있는 유연성을 확보할 수 있습니다.
사용에 대한 자세한 내용은 TorchScript 공식 문서를 참고하세요.
다른 Ultralytics YOLO26 통합 옵션에 대해 알아보려면 통합 가이드 페이지를 방문하세요. 이 페이지에서 유용한 자료와 인사이트를 확인할 수 있습니다.
자주 묻는 질문#
Ultralytics YOLO26 모델을 TorchScript로 내보내면 플랫폼 간 유연한 배포가 가능합니다. PyTorch 생태계의 일부인 TorchScript는 모델 직렬화를 지원하며, 직렬화된 모델은 Python을 지원하지 않는 환경에서도 실행할 수 있습니다. 따라서 C++ 환경에 모델을 배포할 때 유용합니다.
YOLO26 모델을 TorchScript로 내보내려면 다음 예제 코드를 사용하면 됩니다.
사용법from ultralytics import YOLO # YOLO26 모델 로드 model = YOLO("yolo26n.pt") # 모델을 TorchScript 형식으로 내보냅니다 model.export(format="torchscript") # 'yolo26n.torchscript'를 생성합니다 # 내보낸 TorchScript 모델을 로드합니다 torchscript_model = YOLO("yolo26n.torchscript") # 추론 실행 results = torchscript_model("https://ultralytics.com/images/bus.jpg")내보내기 과정에 대한 자세한 내용은 Ultralytics 내보내기 문서를 참고하세요.
YOLO26 모델 배포에 TorchScript를 사용하면 다음과 같은 이점이 있습니다.
- 이식성: 내보낸 모델은 Python 없이 C++ 애플리케이션에서 실행할 수 있습니다.
- 최적화: TorchScript는 정적 그래프 실행과 적시(JIT) 컴파일을 지원하여 모델 성능을 최적화할 수 있습니다.
- 언어 간 통합: TorchScript 모델을 다른 프로그래밍 언어에 통합하여 유연성과 확장성을 높일 수 있습니다.
- 직렬화: 모델을 직렬화하면 플랫폼에 관계없이 모델을 로드하고 추론을 실행할 수 있습니다.
배포에 대한 자세한 내용은 TorchServe Documentation 및 C++ Deployment Guide를 참조하세요. 모바일 온디바이스 배포의 경우, PyTorch는 이제 TorchScript 대신 자체적인 별도의
torch.export()→.pte파이프라인을 사용하는 ExecuTorch를 권장합니다.YOLO26 모델을 내보내는 데 필요한 패키지를 설치하려면 다음 명령어를 사용하세요:
설치# Install the required package for YOLO26 pip install ultralytics자세한 안내는 Ultralytics Installation guide를 참조하세요. 설치 중 문제가 발생하면 Common Issues guide를 확인하세요.
YOLO26 모델을 TorchScript 형식으로 내보낸 후에는 다양한 플랫폼에 배포할 수 있습니다:
- C++ API: 오버헤드가 적고 효율성이 높은 프로덕션 환경에는 LibTorch를 사용하세요.
- 모바일 배포: 별도의
.pte내보내기 파이프라인을 사용하는 PyTorch 지원 대체 솔루션 ExecuTorch를 사용하세요. - 클라우드 배포: 확장 가능한 서버 측 배포에는 TorchServe와 같은 서비스를 활용하세요.
이러한 환경에서 모델을 배포하는 종합적인 지침을 살펴보고 TorchScript의 기능을 최대한 활용하세요.