YOLO26 소개: 차세대 비전 AI입니다.
Ultralytics
통합

CPU에서 GPU급 성능을 위해 Neural Magic의 DeepSparse로 Ultralytics YOLOv5 배포하기

Neural Magic의 DeepSparse를 사용하여 CPU에서 GPU급 성능을 구현함으로써 Ultralytics YOLOv5 모델 학습 및 배포를 강화하세요. 더 빠르고 확장 가능한 YOLOv5 배포를 달성할 수 있습니다.

NUNuvola Ladi5 min read
Neural Magic의 DeepSparse를 사용하여 CPU에 Ultralytics YOLOv5 배포하기

YOLOv5 모델의 학습 및 배포를 가속화하고 싶으신가요? 저희가 도와드리겠습니다! 최신 파트너인 Neural Magic을 소개합니다. Neural Magic은 최고의 모델 성능과 워크플로우 단순화를 강조하는 소프트웨어 도구를 제공하므로, YOLOv5 배포 프로세스를 더욱 개선할 수 있는 솔루션을 제공하기 위해 협력하게 된 것은 매우 자연스러운 일입니다.

DeepSparse는 Neural Magic의 CPU 추론 런타임으로, 신경망 내의 희소성(sparsity)과 저정밀도 산술 연산을 활용하여 범용 하드웨어에서 탁월한 성능을 제공합니다. 예를 들어, ONNX Runtime 기준치와 비교했을 때 DeepSparse는 동일한 머신에서 실행되는 YOLOv5s에 대해 5.8배의 속도 향상을 제공합니다!

DeepSparse을 사용한 YOLOv5 처리량 비교

처음으로 여러분의 딥러닝 워크로드가 하드웨어 가속기의 복잡성과 비용 없이 프로덕션의 성능 요구 사항을 충족할 수 있게 되었습니다. 간단히 말해, DeepSparse는 GPU의 성능과 소프트웨어의 간편함을 제공합니다:

  1. 유연한 배포: 클라우드, 데이터 센터, 에지 전반에서 어떤 하드웨어 공급자와도 일관되게 실행
  2. 무한한 확장성: 표준 Kubernetes로 확장하거나, 수백 개의 코어로 수직 확장하거나, 서버리스로 완벽하게 추상화
  3. 간편한 통합: 깔끔한 API를 사용하여 모델을 애플리케이션에 통합하고 프로덕션에서 모니터링

Link to this section범용 CPU에서 GPU급 성능 달성#

DeepSparse는 모델 희소성을 활용하여 성능 가속을 얻습니다.

가지치기(pruning) 및 양자화(quantization)를 통한 희소화는 높은 정확도를 유지하면서도 네트워크 실행에 필요한 크기와 연산량을 획기적으로 줄여줍니다. DeepSparse는 희소성을 인식하여 0에 의한 곱셈-덧셈 연산을 건너뛰고 포워드 패스에서 연산량을 축소합니다. 희소 연산은 메모리 제약이 크기 때문에 DeepSparse는 캐시에 적합한 연산의 수직 스트라이프인 Tensor Columns으로 문제를 분할하여 네트워크를 깊이 방향으로 실행합니다.

DeepSparse 및 Ultralytics YOLOv5 네트워크

압축된 연산으로 캐시 내에서 깊이 방향으로 실행되는 희소 네트워크 덕분에 DeepSparse는 CPU에서 GPU급 성능을 제공할 수 있습니다!

Link to this section사용자 지정 데이터로 학습된 YOLOv5의 희소 버전 생성#

Neural Magic의 오픈 소스 모델 저장소인 SparseZoo에는 각 YOLOv5 모델의 사전 희소화된 체크포인트가 포함되어 있습니다. Ultralytics와 통합된 SparseML을 사용하면 단일 CLI 명령어로 사용자 데이터에 희소 체크포인트를 미세 조정(fine-tune)할 수 있습니다.

Link to this sectionDeepSparse를 사용하여 YOLOv5 배포하기#

Link to this sectionDeepSparse 설치#

DeepSparse를 설치하려면 다음을 실행하십시오. Python 가상 환경을 사용하는 것을 권장합니다.

pip install deepsparse[server,yolo,onnxruntime]

Link to this sectionONNX 파일 수집#

DeepSparse는 다음 중 하나로 전달되는 ONNX 형식의 모델을 허용합니다:

  • ONNX 모델에 대한 로컬 경로
  • SparseZoo에서 모델을 식별하는 SparseZoo 스텁(stub)

표준 dense YOLOv5s와 다음 SparseZoo 스텁으로 식별되는 pruned-quantized YOLOv5s를 비교하겠습니다:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Link to this section모델 배포#

DeepSparse는 모델을 애플리케이션에 통합하기 위한 편리한 API를 제공합니다.

아래의 배포 예제를 시도하려면 다음 명령어를 사용하여 예제 이미지를 다운로드하고 basilica.jpg로 저장하십시오:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

Link to this sectionPython API#

파이프라인은 런타임 전후의 전처리 및 출력 후처리를 래핑하여 애플리케이션에 DeepSparse를 추가하기 위한 깔끔한 인터페이스를 제공합니다. DeepSparse-Ultralytics 통합에는 원본 이미지를 입력받아 BBox를 출력하는 즉시 사용 가능한 파이프라인이 포함되어 있습니다.

파이프라인을 생성하고 추론을 실행하십시오:

from deepsparse import Pipeline

# list of images in local filesystem
images = ["basilica.jpg"]

# create Pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# run inference on images, receive bounding boxes + classes
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

클라우드에서 실행 중인 경우 open-cv가 libGL.so.1을 찾을 수 없다는 오류가 발생할 수 있습니다. Ubuntu에서 다음을 실행하면 설치됩니다:

apt-get install libgl1-mesa-glx

Link to this sectionHTTP 서버#

DeepSparse 서버는 인기 있는 FastAPI 웹 프레임워크와 Uvicorn 웹 서버 위에서 실행됩니다. 단 하나의 CLI 명령어로 DeepSparse를 사용하여 모델 서비스 엔드포인트를 쉽게 설정할 수 있습니다. 이 서버는 YOLOv5를 이용한 객체 탐지를 포함하여 DeepSparse의 모든 파이프라인을 지원하므로, 원본 이미지를 엔드포인트로 전송하고 BBox를 받을 수 있습니다.

pruned-quantized YOLOv5s로 서버를 가동하십시오:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Python의 requests 패키지를 사용한 예제 요청:

import requests, json

# list of images for inference (local files on client side)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# send request over HTTP to /predict/from_files endpoint
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# response is returned in JSON
annotations = json.loads(resp.text)  # dictionary of annotation results
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

Link to this sectionAnnotate CLI#

annotate 명령어를 사용하여 엔진이 디스크에 주석이 달린 사진을 저장하도록 할 수도 있습니다. 실시간 웹캠 피드에 주석을 달려면 --source 0을 시도해 보세요!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

위 명령어를 실행하면 annotation-results 폴더가 생성되고 그 안에 주석이 달린 이미지가 저장됩니다.

YOLOv5로 주석이 달린 바실리카

Link to this section성능 벤치마크#

DeepSparse의 벤치마킹 스크립트를 사용하여 YOLOv5s에서의 DeepSparse 처리량과 ONNX Runtime 처리량을 비교하겠습니다.

벤치마크는 AWS c6i.8xlarge 인스턴스(16코어)에서 실행되었습니다.

Link to this section배치 32 성능 비교#

Link to this sectionONNX Runtime 기준#

배치 32에서 ONNX Runtime은 표준 dense YOLOv5s로 초당 42개의 이미지를 처리합니다:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 41.9025

Link to this sectionDeepSparse Dense 성능#

DeepSparse는 최적화된 희소 모델에서 최고의 성능을 제공하지만, 표준 dense YOLOv5s에서도 우수한 성능을 보여줍니다.

배치 32에서 DeepSparse는 표준 dense YOLOv5s로 초당 70개의 이미지를 처리하며, ORT 대비 1.7배 성능 향상을 보입니다!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 69.5546

Link to this sectionDeepSparse Sparse 성능#

모델에 희소성을 적용하면 ONNX Runtime 대비 DeepSparse의 성능 향상은 더욱 강력해집니다.

배치 32에서 DeepSparse는 pruned-quantized YOLOv5s로 초당 241개의 이미지를 처리하며, ORT 대비 5.8배 성능 향상을 보입니다!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 32 Scenario: sync Throughput (items/sec): 241.2452

Link to this section배치 1 성능 비교#

DeepSparse는 지연 시간에 민감한 배치 1 시나리오에서도 ONNX Runtime보다 높은 속도 향상을 얻을 수 있습니다.

Link to this sectionONNX Runtime 기준#

배치 1에서 ONNX Runtime은 표준 dense YOLOv5s로 초당 48개의 이미지를 처리합니다.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 1 Scenario: sync Throughput (items/sec): 48.0921

Link to this sectionDeepSparse Sparse 성능#

모델에 희소성을 적용하면 ONNX Runtime 대비 DeepSparse의 성능 향상은 더욱 강력해집니다.

배치 1에서 DeepSparse는 pruned-quantized YOLOv5s로 초당 135개의 이미지를 처리하며, ONNX Runtime 대비 2.8배 성능 향상을 보입니다!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 1 Scenario: sync Throughput (items/sec): 134.9468

c6i.8xlarge 인스턴스에는 VNNI 명령어가 있으므로, 가중치가 4개 블록 단위로 가지치기되면 DeepSparse의 처리량을 더욱 높일 수 있습니다.

배치 1에서 DeepSparse는 4개 블록 pruned-quantized YOLOv5s로 초당 180개의 항목을 처리하며, ONNX Runtime 대비 3.7배 성능 향상을 보입니다!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni Batch Size: 1 Scenario: sync Throughput (items/sec): 179.7375

완성되었습니다! 이제 DeepSparse로 YOLOv5 배포를 최적화할 준비가 되었습니다.

Link to this sectionYOLOv5와 DeepSparse 시작하기#

저희와 소통하려면 커뮤니티에 참여하여 질문과 의견을 남겨주세요. Ultralytics YOLOv5 저장소YOLOv5 배포를 위한 전체 Neural Magic 문서를 확인해 보시기 바랍니다.

Ultralytics는 YOLOv5와 같은 멋진 오픈 소스 도구를 연구하고 개발하여 모두에게 무료로 제공할 수 있도록 다른 스타트업과 상업적으로 파트너십을 맺고 있습니다. 이 기사에는 해당 파트너에 대한 제휴 링크가 포함되어 있을 수 있습니다.

Explore solutions

Real-time AI that works with your team

로봇 공학에서의 AI

Ultralytics YOLO 모델로 더 스마트한 기기를 구동하십시오. 로봇 공학의 비전 AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 촉진합니다.
더 알아보기
Real-time AI that works with your team

물류 분야의 AI

Ultralytics YOLO 모델로 물류 프로세스를 간소화하십시오. 비전 AI를 통해 패키지 검사, 분류, 차량 추적 및 실시간 창고 안전 모니터링이 가능합니다.
더 알아보기
Real-time AI that works with your team

소매업에서의 AI

Ultralytics YOLO 모델로 소매업을 재구상하십시오. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
더 알아보기
Real-time AI that works with your team

의료 분야의 AI

Ultralytics YOLO 모델로 의료 솔루션을 구축하십시오. 의료 분야의 비전 AI는 더 빠른 의료 영상 분석, 더 스마트한 진단 및 환자 모니터링을 지원합니다.
더 알아보기
Real-time AI that works with your team

제조 분야의 AI

Ultralytics YOLO 모델로 제조 공정을 최적화하십시오. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수 및 조립 라인 자동화를 주도합니다.
더 알아보기
Real-time AI that works with your operation

자동차 분야의 AI

Ultralytics YOLO 모델을 통해 자동차 분야에 컴퓨터 비전을 적용하십시오. 비전 AI는 도로 안전, 운전자 보조 및 차량 자동화를 향상하여 더 스마트한 도로를 만듭니다.
더 알아보기
Real-time AI tailored to your operation

농업 분야의 AI

Ultralytics YOLO 모델을 통해 스마트 농업에 비전 AI를 도입하십시오. 작물 모니터링, 가축 추적 및 정밀 농업을 강화하여 더 높고 스마트한 생산량을 달성하십시오.
더 알아보기
Real-time AI that works with your team

로봇 공학에서의 AI

Ultralytics YOLO 모델로 더 스마트한 기기를 구동하십시오. 로봇 공학의 비전 AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 촉진합니다.
더 알아보기
Real-time AI that works with your team

물류 분야의 AI

Ultralytics YOLO 모델로 물류 프로세스를 간소화하십시오. 비전 AI를 통해 패키지 검사, 분류, 차량 추적 및 실시간 창고 안전 모니터링이 가능합니다.
더 알아보기
Real-time AI that works with your team

소매업에서의 AI

Ultralytics YOLO 모델로 소매업을 재구상하십시오. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
더 알아보기
Real-time AI that works with your team

의료 분야의 AI

Ultralytics YOLO 모델로 의료 솔루션을 구축하십시오. 의료 분야의 비전 AI는 더 빠른 의료 영상 분석, 더 스마트한 진단 및 환자 모니터링을 지원합니다.
더 알아보기
Real-time AI that works with your team

제조 분야의 AI

Ultralytics YOLO 모델로 제조 공정을 최적화하십시오. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수 및 조립 라인 자동화를 주도합니다.
더 알아보기
Real-time AI that works with your operation

자동차 분야의 AI

Ultralytics YOLO 모델을 통해 자동차 분야에 컴퓨터 비전을 적용하십시오. 비전 AI는 도로 안전, 운전자 보조 및 차량 자동화를 향상하여 더 스마트한 도로를 만듭니다.
더 알아보기
Real-time AI tailored to your operation

농업 분야의 AI

Ultralytics YOLO 모델을 통해 스마트 농업에 비전 AI를 도입하십시오. 작물 모니터링, 가축 추적 및 정밀 농업을 강화하여 더 높고 스마트한 생산량을 달성하십시오.
더 알아보기
Real-time AI that works with your team

로봇 공학에서의 AI

Ultralytics YOLO 모델로 더 스마트한 기기를 구동하십시오. 로봇 공학의 비전 AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 촉진합니다.
더 알아보기
Real-time AI that works with your team

물류 분야의 AI

Ultralytics YOLO 모델로 물류 프로세스를 간소화하십시오. 비전 AI를 통해 패키지 검사, 분류, 차량 추적 및 실시간 창고 안전 모니터링이 가능합니다.
더 알아보기
Real-time AI that works with your team

소매업에서의 AI

Ultralytics YOLO 모델로 소매업을 재구상하십시오. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
더 알아보기
Real-time AI that works with your team

의료 분야의 AI

Ultralytics YOLO 모델로 의료 솔루션을 구축하십시오. 의료 분야의 비전 AI는 더 빠른 의료 영상 분석, 더 스마트한 진단 및 환자 모니터링을 지원합니다.
더 알아보기
Real-time AI that works with your team

제조 분야의 AI

Ultralytics YOLO 모델로 제조 공정을 최적화하십시오. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수 및 조립 라인 자동화를 주도합니다.
더 알아보기
Real-time AI that works with your operation

자동차 분야의 AI

Ultralytics YOLO 모델을 통해 자동차 분야에 컴퓨터 비전을 적용하십시오. 비전 AI는 도로 안전, 운전자 보조 및 차량 자동화를 향상하여 더 스마트한 도로를 만듭니다.
더 알아보기
Real-time AI tailored to your operation

농업 분야의 AI

Ultralytics YOLO 모델을 통해 스마트 농업에 비전 AI를 도입하십시오. 작물 모니터링, 가축 추적 및 정밀 농업을 강화하여 더 높고 스마트한 생산량을 달성하십시오.
더 알아보기

미래의 AI를 함께 구축합시다!

머신 러닝의 미래와 함께 여정을 시작하십시오.