YOLO26 모델을 위한 TensorRT 내보내기
고성능 환경에서 컴퓨터 비전 모델을 배포하려면 속도와 효율성을 극대화하는 형식이 필요할 수 있습니다. NVIDIA GPU에 모델을 배포할 때는 특히 그렇습니다.
TensorRT 내보내기 형식을 사용하면 NVIDIA 하드웨어에서 빠르고 효율적인 추론을 위해 Ultralytics YOLO26 모델을 향상시킬 수 있습니다. 이 가이드에서는 변환 과정을 쉽게 따라 할 수 있는 단계를 제공하며, 딥러닝 프로젝트에서 NVIDIA의 고급 기술을 최대한 활용하도록 돕습니다.
TensorRT
TensorRT는 NVIDIA에서 개발한 고급 소프트웨어 개발 키트(SDK)로, 고속 딥러닝 추론을 위해 설계되었습니다. 객체 탐지와 같은 실시간 애플리케이션에 매우 적합합니다.
이 툴킷은 NVIDIA GPU를 위해 딥러닝 모델을 최적화하여 더 빠르고 효율적인 작동을 가능하게 합니다. TensorRT 모델은 레이어 퓨전, 정밀도 보정(INT8 및 FP16), 동적 텐서 메모리 관리, 커널 자동 튜닝과 같은 기술을 포함하는 TensorRT 최적화를 거칩니다. 딥러닝 모델을 TensorRT 형식으로 변환하면 개발자는 NVIDIA GPU의 잠재력을 완전히 실현할 수 있습니다.
TensorRT는 TensorFlow, PyTorch, ONNX 등 다양한 모델 형식과의 호환성으로 유명하며, 개발자에게 서로 다른 프레임워크의 모델을 통합하고 최적화할 수 있는 유연한 솔루션을 제공합니다. 이러한 다재다능함 덕분에 다양한 하드웨어 및 소프트웨어 환경 전반에서 효율적인 모델 배포가 가능합니다.
TensorRT 모델의 주요 특징
TensorRT 모델은 고속 딥러닝 추론에서 효율성과 효과를 높이는 다양한 주요 기능을 제공합니다:
-
정밀도 보정(Precision Calibration): TensorRT는 정밀도 보정을 지원하여 특정 정확도 요구 사항에 맞게 모델을 미세 조정할 수 있습니다. 여기에는 INT8 및 FP16과 같이 감소된 정밀도 형식에 대한 지원이 포함되어 있으며, 이는 허용 가능한 정확도 수준을 유지하면서 추론 속도를 더욱 높일 수 있습니다.
-
레이어 퓨전(Layer Fusion): TensorRT 최적화 과정에는 레이어 퓨전이 포함되는데, 여기서 신경망의 여러 레이어가 단일 작업으로 결합됩니다. 이는 메모리 액세스와 계산을 최소화하여 계산 오버헤드를 줄이고 추론 속도를 향상시킵니다.
-
동적 텐서 메모리 관리: TensorRT는 추론 중에 텐서 메모리 사용량을 효율적으로 관리하여 메모리 오버헤드를 줄이고 메모리 할당을 최적화합니다. 그 결과 GPU 메모리 활용도가 더욱 효율적으로 바뀝니다.
-
자동 커널 튜닝: TensorRT는 자동 커널 튜닝을 적용하여 모델의 각 레이어에 대해 가장 최적화된 GPU 커널을 선택합니다. 이 적응형 접근 방식은 모델이 GPU의 계산 능력을 최대한 활용하도록 보장합니다.
TensorRT의 배포 옵션
YOLO26 모델을 TensorRT 형식으로 내보내는 코드를 살펴보기 전에, TensorRT 모델이 일반적으로 어디에 사용되는지 이해해 보겠습니다.
TensorRT는 여러 가지 배포 옵션을 제공하며, 각 옵션은 통합의 용이성, 성능 최적화, 유연성 간의 균형이 다릅니다:
- TensorFlow 내 배포: 이 방식은 TensorRT를 TensorFlow에 통합하여 최적화된 모델이 익숙한 TensorFlow 환경에서 실행되도록 합니다. TF-TRT가 지원되는 레이어와 지원되지 않는 레이어의 혼합을 효율적으로 처리할 수 있으므로, 이러한 모델에 유용합니다.
-
독립형 TensorRT Runtime API: 세밀한 제어 기능을 제공하며 성능이 중요한 애플리케이션에 이상적입니다. 더 복잡하지만 지원되지 않는 연산자에 대한 사용자 지정 구현이 가능합니다.
-
NVIDIA Triton Inference Server: 다양한 프레임워크의 모델을 지원하는 옵션입니다. 특히 클라우드 또는 에지 추론에 적합하며, 동시 모델 실행 및 모델 분석과 같은 기능을 제공합니다.
YOLO26 모델을 TensorRT로 내보내기
YOLO26 모델을 TensorRT 형식으로 변환하여 실행 효율성을 높이고 성능을 최적화할 수 있습니다.
설치
필수 패키지를 설치하려면 다음을 실행하세요.
# Install the required package for YOLO26
pip install ultralytics설치 과정과 관련된 자세한 지침 및 모범 사례는 YOLO26 설치 가이드를 확인하세요. YOLO26용 필수 패키지를 설치하는 동안 문제가 발생하면 일반 문제 가이드에서 해결책과 팁을 확인하세요.
사용법
사용 지침을 살펴보기 전에 Ultralytics에서 제공하는 다양한 YOLO26 모델을 확인하십시오. 이는 프로젝트 요구 사항에 가장 적합한 모델을 선택하는 데 도움이 됩니다.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TensorRT format
model.export(format="engine") # creates 'yolo26n.engine'
# Load the exported TensorRT model
tensorrt_model = YOLO("yolo26n.engine")
# Run inference
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")내보내기 인수
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
format | str | 'engine' | 내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수를, 특정 크기의 경우 (height, width) 튜플을 사용할 수 있습니다. |
half | bool | False | FP16(반정밀도) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다. |
int8 | bool | False | INT8 양자화를 활성화하여 모델을 추가로 압축하고, 주로 엣지 기기에서 정확도 손실을 최소화하면서 추론 속도를 높입니다. |
dynamic | bool | False | 동적 입력 크기를 허용하여 다양한 이미지 크기를 처리하는 유연성을 향상시킵니다. |
simplify | bool | True | onnxslim으로 모델 그래프를 단순화하여 성능과 호환성을 잠재적으로 개선합니다. |
workspace | float 또는 None | None | TensorRT 최적화를 위한 최대 작업 공간 크기를 GiB 단위로 설정하여 메모리 사용량과 성능 간의 균형을 맞춥니다. 장치 최대치까지 TensorRT가 자동 할당하도록 하려면 None을 사용하십시오. |
nms | bool | False | 정확하고 효율적인 탐지 후처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다. |
batch | int | 1 | 내보낸 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
data | str | 'coco8.yaml' | 양자화에 필수적인 데이터셋 구성 파일(기본값: coco8.yaml)의 경로입니다. |
fraction | float | 1.0 | INT8 양자화 보정에 사용할 데이터셋의 비율을 지정합니다. 전체 데이터셋의 일부에서 보정할 수 있게 하여 실험용이나 자원이 제한적일 때 유용합니다. INT8이 활성화된 상태에서 지정하지 않으면 전체 데이터셋이 사용됩니다. |
device | str | None | 내보낼 장치를 지정합니다: GPU(device=0), NVIDIA Jetson용 DLA(device=dla:0 또는 device=dla:1). |
TensorRT로 내보낼 때는 반드시 CUDA를 지원하는 GPU를 사용하십시오.
내보내기 과정에 대한 자세한 내용은 Ultralytics 내보내기 설명서 페이지를 방문하세요.
INT8 양자화로 TensorRT 내보내기
INT8 정밀도를 사용하여 TensorRT로 Ultralytics YOLO 모델을 내보내면 학습 후 양자화(PTQ)가 실행됩니다. TensorRT는 PTQ를 위해 보정을 사용하는데, 이는 YOLO 모델이 대표적인 입력 데이터에 대해 추론을 처리할 때 각 활성화 텐서 내의 활성화 분포를 측정한 다음, 해당 분포를 사용하여 각 텐서의 배율 값을 추정합니다. 양자화 후보인 각 활성화 텐서에는 보정 프로세스에 의해 추론된 관련 배율이 있습니다.
암시적으로 양자화된 네트워크를 처리할 때 TensorRT는 INT8을 기회주의적으로 사용하여 레이어 실행 시간을 최적화합니다. 레이어가 INT8에서 더 빠르게 실행되고 데이터 입력 및 출력에 할당된 양자화 배율이 있는 경우, 해당 레이어에 INT8 정밀도를 가진 커널이 할당됩니다. 그렇지 않으면 TensorRT는 해당 레이어의 실행 시간이 더 빠른 결과를 가져오는 것을 기준으로 FP32 또는 FP16 정밀도를 선택합니다.
보정 결과는 장치마다 다를 수 있으므로, INT8 정밀도로 내보낼 때는 배포 시 TensorRT 모델 가중치를 사용할 동일한 장치를 사용하는 것이 매우 중요합니다.
INT8 내보내기 구성
Ultralytics YOLO 모델에 대해 export를 사용할 때 제공되는 인수는 내보낸 모델의 성능에 크게 영향을 미칩니다. 또한 가용한 장치 리소스에 따라 선택해야 하지만, 기본 인수는 대부분의 Ampere(또는 그 이후) NVIDIA 외장 GPU에서 작동해야 합니다. 사용되는 보정 알고리즘은 "MINMAX_CALIBRATION"이며, 사용 가능한 옵션에 대한 자세한 내용은 TensorRT 개발자 가이드에서 확인할 수 있습니다. Ultralytics 테스트 결과 "MINMAX_CALIBRATION"이 최선의 선택이었으며, 내보내기는 이 알고리즘을 사용하도록 고정되어 있습니다.
-
workspace: 모델 가중치를 변환하는 동안 장치 메모리 할당 크기(GiB 단위)를 제어합니다.-
보정 요구 사항과 리소스 가용성에 따라
workspace값을 조정하십시오. 더 큰workspace는 보정 시간을 증가시킬 수 있지만, TensorRT가 더 넓은 범위의 최적화 전략을 탐색할 수 있게 하여 잠재적으로 모델 성능과 정확도를 향상시킬 수 있습니다. 반대로, 더 작은workspace는 보정 시간을 줄일 수 있지만 최적화 전략을 제한하여 양자화된 모델의 품질에 영향을 미칠 수 있습니다. -
기본값은
workspace=None이며, 이는 TensorRT가 자동으로 메모리를 할당하도록 합니다. 수동으로 구성할 때 보정이 충돌(경고 없이 종료)하면 이 값을 높여야 할 수 있습니다. -
TensorRT will report
UNSUPPORTED_STATEduring export if the value forworkspaceis larger than the memory available to the device, which means the value forworkspaceshould be lowered or set toNone. -
workspace가 최대값으로 설정되었는데도 보정이 실패하거나 충돌하면, 자동 할당을 위해None을 사용하거나imgsz및batch값을 줄여 메모리 요구 사항을 줄이는 것을 고려하십시오. -
주의: INT8 보정은 각 장치마다 다르므로, 보정을 위해 "고성능" GPU를 빌려 사용하는 것은 다른 장치에서 추론을 실행할 때 성능 저하를 초래할 수 있습니다.
-
-
batch: 추론에 사용할 최대 배치 크기입니다. 추론 중에는 더 작은 배치를 사용할 수 있지만, 지정된 것보다 큰 배치는 허용되지 않습니다.
작은 배치를 사용하면 INT8 보정 중에 부정확한 스케일링이 발생할 수 있습니다. 이는 프로세스가 관찰하는 데이터를 기반으로 조정되기 때문입니다. 작은 배치는 값의 전체 범위를 포착하지 못하여 최종 보정에 문제가 발생할 수 있습니다. 더 큰 배치 크기를 사용하면 보다 대표성 있는 보정 결과를 얻는 데 도움이 됩니다.
Experimentation by NVIDIA led them to recommend using at least 500 calibration images that are representative of the data for your model, with INT8 quantization calibration. This is a guideline and not a hard requirement, and you will need to experiment with what is required to perform well for your dataset. Since the calibration data is required for INT8 calibration with TensorRT, make certain to use the data argument when int8=True for TensorRT and use data="my_dataset.yaml", which will use the images from validation to calibrate with. When no value is passed for data with export to TensorRT with INT8 quantization, the default will be to use one of the "small" example datasets based on the model task instead of throwing an error.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(
format="engine",
dynamic=True, # (1)!
batch=8, # (2)!
workspace=4, # (3)!
int8=True,
data="coco.yaml", # (4)!
)
# Load the exported TensorRT INT8 model
model = YOLO("yolo26n.engine", task="detect")
# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")보정 캐시
TensorRT는 동일한 데이터를 사용하여 향후 모델 가중치 내보내기 속도를 높이기 위해 재사용할 수 있는 보정 .cache를 생성하지만, 데이터가 크게 다르거나 batch 값이 크게 변경되면 보정 결과가 나빠질 수 있습니다. 이러한 상황에서는 기존 .cache의 이름을 바꾸고 다른 디렉터리로 이동하거나 완전히 삭제해야 합니다.
YOLO를 TensorRT INT8과 함께 사용할 때의 장점
-
모델 크기 감소: FP32에서 INT8로 양자화하면 모델 크기를 4배(디스크 또는 메모리 상에서) 줄일 수 있어 다운로드 시간이 빨라지고, 저장 요구 사항이 낮아지며, 모델 배포 시 메모리 점유율이 감소합니다.
-
더 낮은 전력 소비: INT8로 내보낸 YOLO 모델의 감소된 정밀도 연산은 FP32 모델에 비해 전력을 덜 소비할 수 있으며, 특히 배터리 구동 장치에서 유리합니다.
-
향상된 추론 속도: TensorRT는 대상 하드웨어에 맞춰 모델을 최적화하여 GPU, 임베디드 장치 및 가속기에서 더 빠른 추론 속도를 낼 수 있습니다.
추론 속도에 관한 참고 사항
TensorRT INT8로 내보낸 모델의 첫 몇 번의 추론 호출은 평소보다 긴 전처리, 추론 및/또는 후처리 시간이 소요될 수 있습니다. 이는 추론 중에 imgsz를 변경할 때도 발생할 수 있으며, 특히 imgsz가 내보내기 시 지정된 값(내보내기 imgsz는 TensorRT "최적" 프로필로 설정됨)과 다를 경우 더욱 그렇습니다.
YOLO를 TensorRT INT8과 함께 사용할 때의 단점
-
Decreases in evaluation metrics: Using a lower precision will mean that
mAP,Precision,Recallor any other metric used to evaluate model performance is likely to be somewhat worse. See the Performance results section to compare the differences inmAP50andmAP50-95when exporting with INT8 on small sample of various devices. -
개발 시간 증가: 데이터셋과 장치에 맞는 "최적"의 INT8 보정 설정을 찾는 데 상당한 테스트 시간이 소요될 수 있습니다.
-
하드웨어 종속성: 보정 및 성능 향상은 하드웨어에 매우 의존적일 수 있으며 모델 가중치의 이식성이 낮아집니다.
Ultralytics YOLO TensorRT 내보내기 성능
NVIDIA A100
Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1 환경에서 테스트
See Detection Docs for usage examples with these models trained on COCO, which include 80 pretrained classes.
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| 정밀도 | 평가 테스트 | mean (ms) | min | max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | 크기 (픽셀) |
|---|---|---|---|---|---|---|---|
| FP32 | 예측(Predict) | 0.52 | 0.51 | 0.56 | 8 | 640 | ||
| FP32 | COCOval | 0.52 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | 예측(Predict) | 0.34 | 0.34 | 0.41 | 8 | 640 | ||
| FP16 | COCOval | 0.33 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | 예측(Predict) | 0.28 | 0.27 | 0.31 | 8 | 640 | ||
| INT8 | COCOval | 0.29 | 0.47 | 0.33 | 1 | 640 |
소비자용 GPU
Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6 환경에서 테스트되었습니다.
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| 정밀도 | 평가 테스트 | mean (ms) | min | max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | 크기 (픽셀) |
|---|---|---|---|---|---|---|---|
| FP32 | 예측(Predict) | 1.06 | 0.75 | 1.88 | 8 | 640 | ||
| FP32 | COCOval | 1.37 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | 예측(Predict) | 0.62 | 0.75 | 1.13 | 8 | 640 | ||
| FP16 | COCOval | 0.85 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | 예측(Predict) | 0.52 | 0.38 | 1.00 | 8 | 640 | ||
| INT8 | COCOval | 0.74 | 0.47 | 0.33 | 1 | 640 |
임베디드 장치
JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1 환경에서 테스트되었습니다.
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| 정밀도 | 평가 테스트 | mean (ms) | min | max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | 크기 (픽셀) |
|---|---|---|---|---|---|---|---|
| FP32 | 예측(Predict) | 6.11 | 6.10 | 6.29 | 8 | 640 | ||
| FP32 | COCOval | 6.17 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | 예측(Predict) | 3.18 | 3.18 | 3.20 | 8 | 640 | ||
| FP16 | COCOval | 3.19 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | 예측(Predict) | 2.30 | 2.29 | 2.35 | 8 | 640 | ||
| INT8 | COCOval | 2.32 | 0.46 | 0.32 | 1 | 640 |
설정 및 구성에 대한 자세한 내용은 NVIDIA Jetson과 Ultralytics YOLO 빠른 시작 가이드를 참조하십시오.
설정 및 구성에 대한 자세한 내용은 NVIDIA DGX Spark와 Ultralytics YOLO 빠른 시작 가이드를 참조하십시오.
평가 방법
이 모델들이 어떻게 내보내지고 테스트되었는지에 대한 정보를 보려면 아래 섹션을 확장하십시오.
내보내기 구성
내보내기 구성 인수에 대한 자세한 내용은 내보내기 모드를 참조하십시오.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)
# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)
# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)예측 루프
자세한 내용은 예측 모드를 참조하십시오.
import cv2
from ultralytics import YOLO
model = YOLO("yolo26n.engine")
img = cv2.imread("path/to/image.jpg")
for _ in range(100):
result = model.predict(
[img] * 8, # batch=8 of the same image
verbose=False,
device="cuda",
)유효성 검사 구성
유효성 검사 구성 인수에 대한 자세한 내용은 val 모드를 참조하십시오.
from ultralytics import YOLO
model = YOLO("yolo26n.engine")
results = model.val(
data="data.yaml", # COCO, ImageNet, or DOTAv1 for appropriate model task
batch=1,
imgsz=640,
verbose=False,
device="cuda",
)내보낸 YOLO26 TensorRT 모델 배포
Ultralytics YOLO26 모델을 TensorRT 형식으로 성공적으로 내보냈으므로, 이제 배포할 준비가 되었습니다. 다양한 환경에서 TensorRT 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 확인하십시오:
-
Triton 서버를 사용한 Ultralytics 배포: Ultralytics YOLO 모델에 NVIDIA의 Triton Inference 서버(이전의 TensorRT Inference)를 사용하는 방법에 대한 가이드입니다.
-
NVIDIA TensorRT를 사용하여 딥 신경망 배포하기: 이 문서는 NVIDIA TensorRT를 사용하여 GPU 기반 플랫폼에 딥 신경망을 효율적으로 배포하는 방법을 설명합니다.
-
NVIDIA 기반 PC를 위한 엔드투엔드 AI: NVIDIA TensorRT 배포: 이 블로그 게시물은 NVIDIA 기반 PC에서 AI 모델을 최적화하고 배포하기 위해 NVIDIA TensorRT를 사용하는 방법을 설명합니다.
-
NVIDIA TensorRT용 GitHub 저장소:: NVIDIA TensorRT의 소스 코드와 문서가 포함된 공식 GitHub 저장소입니다.
요약
이 가이드에서는 Ultralytics YOLO26 모델을 NVIDIA TensorRT 모델 형식으로 변환하는 방법에 중점을 두었습니다. 이 변환 단계는 YOLO26 모델의 효율성과 속도를 개선하여 다양한 배포 환경에서 더 효과적이고 적합하게 만드는 데 매우 중요합니다.
사용 세부 정보에 대한 자세한 내용은 TensorRT 공식 문서를 참조하십시오.
추가적인 Ultralytics YOLO26 통합에 대해 궁금하시다면, 통합 가이드 페이지에서 유익한 리소스와 통찰력을 폭넓게 확인하실 수 있습니다.
FAQ
YOLO26 모델을 TensorRT 형식으로 어떻게 변환하나요?
최적화된 NVIDIA GPU 추론을 위해 Ultralytics YOLO26 모델을 TensorRT 형식으로 변환하려면 다음 단계를 따르십시오:
-
필수 패키지 설치:
pip install ultralytics -
YOLO26 모델 내보내기:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="engine") # creates 'yolo26n.engine' # Run inference model = YOLO("yolo26n.engine") results = model("https://ultralytics.com/images/bus.jpg")
더 자세한 내용은 YOLO26 설치 가이드와 내보내기 문서를 방문하십시오.
YOLO26 모델에 TensorRT를 사용할 때의 장점은 무엇인가요?
TensorRT를 사용하여 YOLO26 모델을 최적화하면 다음과 같은 여러 이점이 있습니다:
- 더 빠른 추론 속도: TensorRT는 모델 레이어를 최적화하고 정밀도 보정(INT8 및 FP16)을 사용하여 정확도 저하 없이 추론 속도를 높입니다.
- 메모리 효율성: TensorRT는 텐서 메모리를 동적으로 관리하여 오버헤드를 줄이고 GPU 메모리 활용도를 개선합니다.
- 레이어 융합: 여러 레이어를 단일 작업으로 결합하여 계산 복잡성을 줄입니다.
- 커널 자동 튜닝: 각 모델 레이어에 대해 최적화된 GPU 커널을 자동으로 선택하여 최대 성능을 보장합니다.
자세한 내용은 NVIDIA 공식 TensorRT 문서와 당사의 심층 TensorRT 개요를 살펴보십시오.
YOLO26 모델에 TensorRT와 함께 INT8 양자화를 사용할 수 있나요?
예, TensorRT와 INT8 양자화를 사용하여 YOLO26 모델을 내보낼 수 있습니다. 이 과정은 학습 후 양자화(PTQ)와 보정을 포함합니다:
-
INT8로 내보내기:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml") -
추론 실행:
from ultralytics import YOLO model = YOLO("yolo26n.engine", task="detect") result = model.predict("https://ultralytics.com/images/bus.jpg")
자세한 내용은 INT8 양자화를 사용하여 TensorRT 내보내기 섹션을 참조하십시오.
NVIDIA Triton Inference 서버에 YOLO26 TensorRT 모델을 어떻게 배포하나요?
NVIDIA Triton Inference 서버에 YOLO26 TensorRT 모델을 배포하는 작업은 다음 리소스를 사용하여 수행할 수 있습니다:
- Triton Server를 사용하여 Ultralytics YOLO26 배포하기: Triton Inference Server 설정 및 사용에 대한 단계별 가이드입니다.
- NVIDIA Triton Inference Server 문서: 상세한 배포 옵션 및 구성을 위한 공식 NVIDIA 문서입니다.
이 가이드들은 다양한 배포 환경에서 YOLO26 모델을 효율적으로 통합하는 데 도움을 줍니다.
TensorRT로 내보낸 YOLO26 모델에서 확인된 성능 향상은 무엇입니까?
TensorRT를 사용한 성능 향상은 사용된 하드웨어에 따라 다를 수 있습니다. 다음은 일반적인 벤치마크 결과입니다:
-
NVIDIA A100:
- FP32 추론: ~0.52 ms / 이미지
- FP16 추론: ~0.34 ms / 이미지
- INT8 추론: ~0.28 ms / 이미지
- INT8 정밀도에서는 mAP가 약간 감소하지만 속도는 크게 향상됩니다.
-
소비자용 GPU (예: RTX 3080):
- FP32 추론: ~1.06 ms / 이미지
- FP16 추론: ~0.62 ms / 이미지
- INT8 추론: ~0.52 ms / 이미지
다양한 하드웨어 구성에 대한 상세 성능 벤치마크는 성능 섹션에서 확인할 수 있습니다.
TensorRT 성능에 대한 더 포괄적인 통찰력을 얻으려면 Ultralytics 문서와 성능 분석 보고서를 참조하십시오.