Ultralytics YOLO27:
통합

Neural Magic의 DeepSparse로 Ultralytics YOLOv5를 배포해 CPU에서 GPU급 성능 구현하기

Neural Magic의 DeepSparse를 활용해 Ultralytics YOLOv5 모델 학습 및 배포를 강화하고 CPU에서 GPU급 성능을 구현하세요. YOLOv5를 더 빠르고 확장성 있게 배포할 수 있습니다.

NUNuvola Ladi6 분 읽기
Neural Magic의 DeepSparse를 사용해 CPU에서 Ultralytics YOLOv5 배포하기

YOLOv5 모델의 학습과 배포를 가속화하고 싶으신가요? 저희가 도와드리겠습니다! 새로운 파트너 Neural Magic을 소개합니다. Neural Magic은 모델의 최고 성능과 간소한 워크플로에 중점을 둔 소프트웨어 도구를 제공하므로, 함께 YOLOv5 배포 프로세스를 한층 개선하는 솔루션을 제공하게 된 것은 자연스러운 일입니다.

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

DeepSparse를 사용한 Ultralytics YOLOv5 처리량 비교

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

  1. 유연한 배포: 하드웨어 제공업체에 관계없이 클라우드, 데이터 센터, 엣지 전반에서 일관되게 실행할 수 있습니다.
  2. 무한한 확장성: 표준 Kubernetes로 수평 확장하거나 수백 개의 코어로 수직 확장할 수 있으며, 서버리스 환경에서는 인프라를 완전히 추상화할 수 있습니다.
  3. 간편한 통합: 깔끔한 API를 사용해 모델을 애플리케이션에 통합하고 프로덕션 환경에서 모니터링할 수 있습니다.

범용 CPU에서 GPU급 성능 구현#

DeepSparse는 모델의 희소성을 활용해 성능을 높입니다.

가지치기와 양자화를 통한 희소화는 높은 정확도를 유지하면서 네트워크 실행에 필요한 크기와 연산량을 크게 줄일 수 있습니다. DeepSparse는 희소성을 인식해 0에 해당하는 곱셈-덧셈 연산을 건너뛰고 순전파에 필요한 연산량을 줄입니다. 희소 연산은 메모리 대역폭에 제한을 받으므로 DeepSparse는 네트워크를 깊이 방향으로 실행하고, 문제를 캐시에 들어가는 세로 방향 연산 스트라이프인 Tensor Columns로 나눕니다.

DeepSparse와 Ultralytics YOLOv5 네트워크

캐시에 깊이별로 실행되는 압축 연산의 희소 네트워크를 통해 DeepSparse는 CPU에서 GPU급 성능을 제공합니다!

사용자 지정 데이터로 학습한 Ultralytics YOLOv5의 희소 버전 만들기#

Neural Magic의 오픈 소스 모델 저장소인 SparseZoo에는 각 YOLOv5 모델의 사전 희소화된 체크포인트가 포함되어 있습니다. Ultralytics와 통합된 SparseML을 사용하면 단일 CLI 명령으로 희소 체크포인트를 데이터에 맞게 파인튜닝할 수 있습니다.

DeepSparse로 Ultralytics YOLOv5 배포하기#

DeepSparse 설치#

DeepSparse를 설치하려면 다음을 실행하세요. Python 가상 환경을 사용하는 것이 좋습니다.

pip install deepsparse[server,yolo,onnxruntime]

ONNX 파일 가져오기#

DeepSparse는 다음 형식 중 하나로 전달되는 ONNX 형식의 모델을 지원합니다.

  • ONNX 모델의 로컬 경로
  • SparseZoo에서 모델을 식별하는 SparseZoo 스텁

표준 밀집 YOLOv5s와 가지치기 및 양자화된 YOLOv5s를 다음 SparseZoo 스텁으로 식별하여 비교합니다.

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

모델 배포하기#

DeepSparse는 모델을 애플리케이션에 통합할 수 있는 편리한 API를 제공합니다.

아래 배포 예제를 사용해 보려면 다음 명령으로 예제용 샘플 이미지를 가져와 basilica.jpg로 저장하세요.

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

Python API#

파이프라인은 런타임에 전처리와 출력 후처리를 결합하여 애플리케이션에 DeepSparse를 추가하기 위한 깔끔한 인터페이스를 제공합니다. DeepSparse-Ultralytics 통합에는 원본 이미지를 입력받아 바운딩 박스를 출력하는 기본 제공 파이프라인이 포함되어 있습니다.

파이프라인을 만들고 추론을 실행합니다.

from deepsparse import Pipeline

# 로컬 파일 시스템에 있는 이미지 목록
images = ["basilica.jpg"]

# 파이프라인 만들기
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# 이미지에서 추론을 실행하고 바운딩 박스와 클래스를 받습니다
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

클라우드에서 실행하는 경우 OpenCV에서 libGL.so.1을 찾을 수 없다는 오류가 발생할 수 있습니다. Ubuntu에서 다음 명령을 실행하면 해당 라이브러리가 설치됩니다.

apt-get install libgl1-mesa-glx

HTTP 서버#

DeepSparse Server는 널리 사용되는 FastAPI 웹 프레임워크와 Uvicorn 웹 서버를 기반으로 실행됩니다. CLI 명령 하나만으로 DeepSparse를 사용해 모델 서비스 엔드포인트를 쉽게 설정할 수 있습니다. Server는 Ultralytics YOLOv5를 사용한 객체 감지를 포함해 DeepSparse의 모든 파이프라인을 지원하므로, 엔드포인트에 원본 이미지를 보내고 바운딩 박스를 받을 수 있습니다.

가지치기 및 양자화된 YOLOv5s로 Server를 실행합니다.

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

Python의 requests 패키지를 사용하는 요청 예시입니다.

import requests, json

# 추론할 이미지 목록(클라이언트 측의 로컬 파일)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# HTTP를 통해 /predict/from_files 엔드포인트로 요청 전송
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# 응답은 JSON으로 반환됩니다
annotations = json.loads(resp.text)  # 주석 결과 딕셔너리
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

주석 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 폴더가 만들어지고 주석이 추가된 이미지가 그 안에 저장됩니다.

Ultralytics YOLOv5로 주석을 추가한 바실리카

성능 벤치마크#

DeepSparse의 벤치마크 스크립트를 사용해 YOLOv5s에서 DeepSparse와 ONNX Runtime의 처리량을 비교합니다.

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

배치 크기 32 성능 비교#

ONNX Runtime 기준 성능#

배치 크기 32에서 ONNX Runtime은 표준 밀집 YOLOv5s로 초당 이미지 42장을 처리합니다.

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

원본 모델 경로: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none 배치 크기: 32 시나리오: sync 처리량(항목/초): 41.9025

DeepSparse 밀집 모델 성능#

DeepSparse는 최적화된 희소 모델에서 최고의 성능을 제공하지만, 표준 밀집 YOLOv5s에서도 우수한 성능을 발휘합니다.

배치 크기 32에서 DeepSparse는 표준 밀집 YOLOv5s로 초당 이미지 70장을 처리합니다. ORT보다 성능이 1.7배 향상되었습니다!

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

원본 모델 경로: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none 배치 크기: 32 시나리오: sync 처리량(항목/초): 69.5546

DeepSparse 희소 모델 성능#

모델에 희소성을 적용하면 ONNX Runtime 대비 DeepSparse의 성능 향상 폭이 더욱 커집니다.

배치 크기 32에서 DeepSparse는 가지치기 및 양자화된 YOLOv5s로 초당 이미지 241장을 처리합니다. ORT보다 성능이 5.8배 향상되었습니다!

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

원본 모델 경로: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none 배치 크기: 32 시나리오: sync 처리량(항목/초): 241.2452

배치 크기 1 성능 비교#

DeepSparse는 지연 시간에 민감한 배치 크기 1 시나리오에서도 ONNX Runtime보다 빠르게 실행됩니다.

ONNX Runtime 기준 성능#

배치 크기 1에서 ONNX Runtime은 표준 밀집 YOLOv5s로 초당 이미지 48장을 처리합니다.

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

원본 모델 경로: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none 배치 크기: 1 시나리오: sync 처리량(항목/초): 48.0921

DeepSparse 희소 모델 성능#

모델에 희소성을 적용하면 ONNX Runtime 대비 DeepSparse의 성능 향상 폭이 더욱 커집니다.

배치 크기 1에서 DeepSparse는 가지치기 및 양자화된 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

원본 모델 경로: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none 배치 크기: 1 시나리오: sync 처리량(항목/초): 134.9468

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

배치 크기 1에서 DeepSparse는 4블록 가지치기 및 양자화된 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

원본 모델 경로: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni 배치 크기: 1 시나리오: sync 처리량(항목/초): 179.7375

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

Ultralytics YOLOv5와 DeepSparse 시작하기#

문의 사항이 있으시면 커뮤니티에 참여하여 질문과 의견을 남겨 주세요. Ultralytics YOLOv5 저장소와 YOLOv5 배포를 위한 Neural Magic 전체 문서도 확인해 보세요.

Ultralytics는 YOLOv5와 같은 훌륭한 오픈 소스 도구를 누구나 무료로 사용할 수 있도록 연구 개발 자금을 마련하기 위해 다른 스타트업과 상업적 파트너십을 맺고 있습니다. 이 글에는 해당 파트너의 제휴 링크가 포함될 수 있습니다.

Explore solutions

항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 환경 모니터링, 자연 보호, 공간정보 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 공간정보 산업을 지원하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 환경 모니터링, 자연 보호, 공간정보 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 공간정보 산업을 지원하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 환경 모니터링, 자연 보호, 공간정보 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 공간정보 산업을 지원하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요