Ottimizzazione delle inferenze YOLO11 con il motore DeepSparse di Neural Magic
Quando si distribuiscono modelli di object detection come Ultralytics YOLO11 su vari hardware, è possibile imbattersi in problemi unici come l'ottimizzazione. È qui che entra in gioco l'integrazione di YOLO11 con DeepSparse Engine di Neural Magic. Trasforma il modo in cui i modelli YOLO11 vengono eseguiti e consente prestazioni a livello di GPU direttamente sulle CPU.
Questa guida mostra come distribuire YOLO11 utilizzando DeepSparse di Neural Magic, come eseguire inferenze e anche come valutare le prestazioni per garantire che siano ottimizzate.
SparseML EOL
Neural Magic era acquisita da Red Hat nel gennaio 2025, e sta dismettendo le versioni community dei loro deepsparse
, sparseml
, sparsezoo
, e sparsify
librerie. Per ulteriori informazioni, consultare l'avviso pubblicato nel Readme su sparseml
Repository GitHub.
DeepSparse di Neural Magic
DeepSparse di Neural Magic è un runtime di inferenza progettato per ottimizzare l'esecuzione di reti neurali su CPU. Applica tecniche avanzate come sparsity, pruning e quantizzazione per ridurre drasticamente le esigenze computazionali mantenendo al contempo la precisione. DeepSparse offre una soluzione agile per un'esecuzione efficiente e scalabile di reti neurali su vari dispositivi.
Vantaggi dell'integrazione di DeepSparse di Neural Magic con YOLO11
Prima di approfondire come implementare YOLO11 utilizzando DeepSparse, cerchiamo di capire i vantaggi dell'utilizzo di DeepSparse. Alcuni vantaggi chiave includono:
- Velocità di Inferenza Migliorata: Raggiunge fino a 525 FPS (su YOLO11n), accelerando significativamente le capacità di inferenza di YOLO11 rispetto ai metodi tradizionali.
- Efficienza del Modello Ottimizzata: Utilizza pruning e quantizzazione per migliorare l'efficienza di YOLO11, riducendo le dimensioni del modello e i requisiti computazionali, mantenendo al contempo la precisione.
-
Alte prestazioni su CPU standard: Offre prestazioni simili a quelle di una GPU su CPU, fornendo un'opzione più accessibile ed economica per varie applicazioni.
-
Integrazione e Distribuzione Semplificate: Offre strumenti intuitivi per una facile integrazione di YOLO11 nelle applicazioni, comprese le funzionalità di annotazione di immagini e video.
-
Supporto per vari tipi di modelli: Compatibile sia con i modelli YOLO11 standard che con quelli ottimizzati per la sparsità, offrendo maggiore flessibilità di implementazione.
-
Soluzione Scalabile ed Economicamente Vantaggiosa: Riduce le spese operative e offre una distribuzione scalabile di modelli avanzati di object detection.
Come funziona la tecnologia DeepSparse di Neural Magic?
La tecnologia Deep Sparse di Neural Magic si ispira all'efficienza del cervello umano nel calcolo delle reti neurali. Adotta due principi chiave dal cervello come segue:
-
Sparsezza: Il processo di sparsificazione comporta la rimozione di informazioni ridondanti dalle reti di deep learning, portando a modelli più piccoli e veloci senza compromettere l'accuratezza. Questa tecnica riduce significativamente le dimensioni della rete e le esigenze computazionali.
-
Località di riferimento: DeepSparse utilizza un metodo di esecuzione univoco, suddividendo la rete in colonne tensor. Queste colonne vengono eseguite in senso di profondità, adattandosi interamente alla cache della CPU. Questo approccio imita l'efficienza del cervello, riducendo al minimo lo spostamento dei dati e massimizzando l'uso della cache della CPU.
Creazione di una versione sparse di YOLO11 addestrata su un dataset personalizzato
SparseZoo, un repository di modelli open-source di Neural Magic, offre una raccolta di checkpoint di modelli YOLO11 pre-sparificati. Con SparseML, perfettamente integrato con Ultralytics, gli utenti possono facilmente mettere a punto questi checkpoint sparse sui loro set di dati specifici utilizzando una semplice interfaccia a riga di comando.
Dai un'occhiata alla documentazione SparseML YOLO11 di Neural Magic per maggiori dettagli.
Utilizzo: Distribuzione di YOLO11 tramite DeepSparse
La distribuzione di YOLO11 con DeepSparse di Neural Magic prevede alcuni semplici passaggi. Prima di immergerti nelle istruzioni per l'uso, assicurati di dare un'occhiata alla gamma di modelli YOLO11 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più appropriato per i requisiti del tuo progetto. Ecco come puoi iniziare.
Passaggio 1: Installazione
Per installare i pacchetti richiesti, esegui:
Installazione
# Install the required packages
pip install deepsparse[yolov8]
Fase 2: Esportazione di YOLO11 in formato ONNX
DeepSparse Engine richiede modelli YOLO11 in formato ONNX. L'esportazione del modello in questo formato è essenziale per la compatibilità con DeepSparse. Utilizzare il seguente comando per esportare i modelli YOLO11:
Esportazione del modello
# Export YOLO11 model to ONNX format
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
Questo comando salverà il yolo11n.onnx
modello sul tuo disco.
Fase 3: Distribuzione ed esecuzione delle inferenze
Con il tuo modello YOLO11 in formato ONNX, puoi distribuire ed eseguire inferenze utilizzando DeepSparse. Questo può essere fatto facilmente con la loro API Python intuitiva:
Distribuzione ed esecuzione di inferenze
from deepsparse import Pipeline
# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.onnx"
# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)
Fase 4: Valutazione comparativa delle prestazioni
È importante verificare che il tuo modello YOLO11 funzioni in modo ottimale su DeepSparse. Puoi effettuare un benchmark delle prestazioni del tuo modello per analizzare throughput e latenza:
Benchmarking
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
Fase 5: Funzionalità aggiuntive
DeepSparse fornisce funzionalità aggiuntive per l'integrazione pratica di YOLO11 nelle applicazioni, come l'annotazione delle immagini e la valutazione del set di dati.
Funzionalità aggiuntive
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo11n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.onnx"
L'esecuzione del comando di annotazione elabora l'immagine specificata, rilevando gli oggetti e salvando l'immagine annotata con caselle di delimitazione e classificazioni. L'immagine annotata verrà archiviata in una cartella annotation-results. Questo aiuta a fornire una rappresentazione visiva delle capacità di rilevamento del modello.
Dopo aver eseguito il comando eval, riceverai metriche di output dettagliate come precisione, richiamo e mAP (precisione media media). Questo fornisce una visione completa delle prestazioni del tuo modello sul set di dati. Questa funzionalità è particolarmente utile per la messa a punto e l'ottimizzazione dei tuoi modelli YOLO11 per casi d'uso specifici, garantendo elevata precisione ed efficienza.
Riepilogo
Questa guida ha esplorato l'integrazione di YOLO11 di Ultralytics con il DeepSparse Engine di Neural Magic. Ha evidenziato come questa integrazione migliori le prestazioni di YOLO11 sulle piattaforme CPU, offrendo efficienza a livello di GPU e tecniche avanzate di sparsità della rete neurale.
Per informazioni più dettagliate e un utilizzo avanzato, visita la documentazione di DeepSparse di Neural Magic. Puoi anche esplorare la guida all'integrazione di YOLO11 e guardare una sessione dimostrativa su YouTube.
Inoltre, per una comprensione più ampia delle varie integrazioni di YOLO11, visita la pagina della guida all'integrazione di Ultralytics, dove puoi scoprire una serie di altre entusiasmanti possibilità di integrazione.
FAQ
Cos'è il DeepSparse Engine di Neural Magic e come ottimizza le prestazioni di YOLO11?
Neural Magic's DeepSparse Engine è un runtime di inferenza progettato per ottimizzare l'esecuzione di reti neurali su CPU attraverso tecniche avanzate come la sparsità, la potatura e la quantizzazione. Integrando DeepSparse con YOLO11, è possibile ottenere prestazioni simili a quelle di una GPU su CPU standard, migliorando significativamente la velocità di inferenza, l'efficienza del modello e le prestazioni complessive, pur mantenendo la precisione. Per maggiori dettagli, consulta la sezione DeepSparse di Neural Magic.
Come posso installare i pacchetti necessari per distribuire YOLO11 utilizzando DeepSparse di Neural Magic?
L'installazione dei pacchetti necessari per distribuire YOLO11 con DeepSparse di Neural Magic è semplice. Puoi installarli facilmente utilizzando la CLI. Ecco il comando da eseguire:
pip install deepsparse[yolov8]
Una volta installato, segui i passaggi forniti nella sezione Installazione per configurare il tuo ambiente e iniziare a utilizzare DeepSparse con YOLO11.
Come posso convertire i modelli YOLO11 nel formato ONNX per l'uso con DeepSparse?
Per convertire i modelli YOLO11 nel formato ONNX, necessario per la compatibilità con DeepSparse, puoi utilizzare il seguente comando CLI:
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
Questo comando esporterà il tuo modello YOLO11 (yolo11n.pt
) a un formato (yolo11n.onnx
) che può essere utilizzato dal DeepSparse Engine. Ulteriori informazioni sull'esportazione del modello sono disponibili nella Sezione Esportazione del modello.
Come posso valutare le prestazioni di YOLO11 sul DeepSparse Engine?
La valutazione comparativa delle prestazioni di YOLO11 su DeepSparse ti aiuta ad analizzare throughput e latenza per garantire che il tuo modello sia ottimizzato. Puoi utilizzare il seguente comando CLI per eseguire un benchmark:
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
Questo comando ti fornirà metriche di performance vitali. Per maggiori dettagli, consulta la sezione Sezione Benchmarking Performance.
Perché dovrei usare DeepSparse di Neural Magic con YOLO11 per attività di rilevamento oggetti?
L'integrazione di DeepSparse di Neural Magic con YOLO11 offre diversi vantaggi:
- Velocità di Inferenza Migliorata: Raggiunge fino a 525 FPS, accelerando significativamente le capacità di YOLO11.
- Efficienza del Modello Ottimizzata: Utilizza tecniche di sparsità, pruning e quantizzazione per ridurre le dimensioni del modello e le esigenze computazionali, mantenendo al contempo la precisione.
- Alte prestazioni su CPU standard: Offre prestazioni simili a quelle di una GPU su hardware CPU economico.
- Integrazione Semplificata: Strumenti intuitivi per una facile implementazione e integrazione.
- Flessibilità: Supporta sia i modelli YOLO11 standard che quelli ottimizzati per la sparsità.
- Economicamente Vantaggioso: Riduce le spese operative attraverso un utilizzo efficiente delle risorse.
Per un approfondimento di questi vantaggi, visitare la sezione Vantaggi dell'integrazione di DeepSparse di Neural Magic con YOLO11.