Ottimizzazione delle inferenze di YOLO26 con il motore DeepSparse di Neural Magic#
Quando distribuisci modelli di object detection come Ultralytics YOLO26 su hardware diversi, potresti riscontrare problemi specifici come l'ottimizzazione. È qui che entra in gioco l'integrazione di YOLO26 con DeepSparse Engine di Neural Magic. Trasforma il modo in cui vengono eseguiti i modelli YOLO26 e consente prestazioni di livello GPU direttamente sulle CPU.
Questa guida ti mostra come distribuire YOLO26 utilizzando DeepSparse di Neural Magic, come eseguire inferenze e anche come valutare le prestazioni per assicurarti che siano ottimizzate.
Neural Magic è stata acquisita da Red Hat a gennaio 2025 e sta deprecando le versioni community delle proprie librerie deepsparse, sparseml, sparsezoo e sparsify. Per ulteriori informazioni, consulta l'avviso pubblicato nel Readme sul repository GitHub sparsify.
DeepSparse di Neural Magic#
DeepSparse di Neural Magic è un runtime di inferenza progettato per ottimizzare l'esecuzione delle reti neurali sulle CPU. Applica tecniche avanzate come la sparsità, il pruning e la quantizzazione per ridurre drasticamente i requisiti di calcolo mantenendo al contempo l'accuratezza. DeepSparse offre una soluzione agile per un'esecuzione efficiente e scalabile delle reti neurali su vari dispositivi.
Vantaggi dell'integrazione di DeepSparse di Neural Magic con YOLO26#
Prima di immergerci in come distribuire YOLO26 utilizzando DeepSparse, capiamo 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 YOLO rispetto ai metodi tradizionali.
- Efficienza del modello ottimizzata: Utilizza il pruning e la quantizzazione per migliorare l'efficienza di YOLO26, riducendo le dimensioni del modello e i requisiti di calcolo pur mantenendo l'accuratezza.
-
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 facili da usare per una semplice integrazione di YOLO26 nelle applicazioni, incluse le funzionalità di annotazione di immagini e video.
-
Supporto per vari tipi di modello: Compatibile con modelli YOLO26 sia standard che ottimizzati per la sparsità, aggiungendo flessibilità di distribuzione.
-
Soluzione economica e scalabile: 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 DeepSparse di Neural Magic si ispira all'efficienza del cervello umano nel calcolo delle reti neurali. Adotta due principi chiave dal cervello come segue:
-
Sparsità: Il processo di sparsificazione prevede la rimozione delle 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 di calcolo.
-
Località di riferimento: DeepSparse utilizza un metodo di esecuzione unico, dividendo la rete in colonne tensoriali (Tensor Columns). Queste colonne vengono eseguite in profondità, adattandosi interamente all'interno della cache della CPU. Questo approccio imita l'efficienza del cervello, riducendo al minimo lo spostamento dei dati e massimizzando l'utilizzo della cache della CPU.
Creazione di una versione sparsa di YOLO26 addestrata su un dataset personalizzato#
SparseZoo, un repository di modelli open-source di Neural Magic, offre una raccolta di checkpoint di modelli YOLO26 pre-sparsificati. Con SparseML, integrato perfettamente in Ultralytics, gli utenti possono facilmente mettere a punto questi checkpoint sparsi sui propri dataset specifici utilizzando una semplice interfaccia a riga di comando.
Dai un'occhiata alla documentazione di SparseML YOLO26 di Neural Magic per maggiori dettagli.
Utilizzo: Distribuzione di YOLO26 utilizzando DeepSparse#
La distribuzione di YOLO26 con DeepSparse di Neural Magic richiede pochi semplici passaggi. Prima di immergiti nelle istruzioni d'uso, assicurati di verificare la gamma di modelli YOLO26 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto ai requisiti del tuo progetto. Ecco come iniziare.
Passaggio 1: Installazione#
Per installare i pacchetti richiesti, esegui:
# Install the required packages
pip install deepsparse[yolov8]Passaggio 2: Esportazione di YOLO26 in formato ONNX#
DeepSparse Engine richiede i modelli YOLO26 in formato ONNX. Esportare il modello in questo formato è essenziale per la compatibilità con DeepSparse. Usa il seguente comando per esportare i modelli YOLO26:
# Export YOLO26 model to ONNX format
yolo task=detect mode=export model=yolo26n.pt format=onnx opset=13Questo comando salverà il modello yolo26n.onnx sul tuo disco.
Passaggio 3: Distribuzione ed esecuzione delle inferenze#
Con il tuo modello YOLO26 in formato ONNX, puoi distribuire ed eseguire inferenze utilizzando DeepSparse. Questo può essere fatto facilmente con la loro intuitiva API Python:
from deepsparse import Pipeline
# Specify the path to your YOLO26 ONNX model
model_path = "path/to/yolo26n.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)Passaggio 4: Benchmarking delle prestazioni#
È importante verificare che il tuo modello YOLO26 funzioni in modo ottimale su DeepSparse. Puoi eseguire il benchmark delle prestazioni del tuo modello per analizzare il throughput e la latenza:
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"Passaggio 5: Funzionalità aggiuntive#
DeepSparse fornisce funzionalità aggiuntive per l'integrazione pratica di YOLO26 nelle applicazioni, come l'annotazione di immagini e la valutazione di dataset.
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo26n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo26n.onnx"L'esecuzione del comando annotate elabora l'immagine specificata, rilevando oggetti e salvando l'immagine annotata con riquadri di delimitazione (bounding box) 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 di valutazione, riceverai metriche di output dettagliate come precision, recall e mAP (mean Average Precision). Ciò fornisce una visione completa delle prestazioni del tuo modello sul dataset ed è particolarmente utile per la messa a punto e l'ottimizzazione dei tuoi modelli YOLO26 per casi d'uso specifici, garantendo elevata accuratezza ed efficienza.
Riepilogo#
Questa guida ha esplorato l'integrazione di YOLO26 di Ultralytics con il motore DeepSparse di Neural Magic. Ha evidenziato come questa integrazione migliori le prestazioni di YOLO26 su piattaforme CPU, offrendo efficienza a livello di GPU e tecniche avanzate di sparsità delle reti neurali.
Per informazioni più dettagliate e un uso avanzato, visita la documentazione di DeepSparse di Neural Magic. Puoi anche esplorare la guida all'integrazione di YOLO26 e guardare una sessione dimostrativa su YouTube.
Inoltre, per una comprensione più ampia delle varie integrazioni di YOLO26, visita la pagina della guida all'integrazione di Ultralytics, dove puoi scoprire una gamma di altre entusiasmanti possibilità di integrazione.
FAQ#
DeepSparse Engine di Neural Magic è un runtime di inferenza progettato per ottimizzare l'esecuzione delle reti neurali sulle CPU tramite tecniche avanzate come la sparsità, il pruning e la quantizzazione. Integrando DeepSparse con YOLO26, puoi 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 mantenendo al contempo l'accuratezza. Per maggiori dettagli, dai un'occhiata alla sezione DeepSparse di Neural Magic.
L'installazione dei pacchetti richiesti per distribuire YOLO26 con DeepSparse di Neural Magic è semplice. Puoi installarli facilmente utilizzando la CLI. Ecco il comando che devi eseguire:
pip install deepsparse[yolov8]Una volta installato, segui i passaggi forniti nella sezione di installazione per configurare il tuo ambiente e iniziare a usare DeepSparse con YOLO26.
Per convertire i modelli YOLO26 nel formato ONNX, richiesto per la compatibilità con DeepSparse, puoi utilizzare il seguente comando CLI:
yolo task=detect mode=export model=yolo26n.pt format=onnx opset=13Questo comando esporterà il tuo modello YOLO26 (
yolo26n.pt) in un formato (yolo26n.onnx) che può essere utilizzato da DeepSparse Engine. Maggiori informazioni sull'esportazione dei modelli sono reperibili nella sezione di esportazione del modello.Il benchmarking delle prestazioni di YOLO26 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/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"Questo comando ti fornirà metriche di performance fondamentali. Per maggiori dettagli, vedi la sezione di analisi delle prestazioni.
L'integrazione di DeepSparse di Neural Magic con YOLO26 offre diversi vantaggi:
- Velocità di inferenza migliorata: Raggiunge fino a 525 FPS (su YOLO11n), dimostrando le capacità di ottimizzazione di DeepSparse.
- Efficienza del modello ottimizzata: Utilizza tecniche di sparsità, pruning e quantizzazione per ridurre le dimensioni del modello e le esigenze computazionali mantenendo l'accuratezza.
- Alte prestazioni su CPU standard: Offre prestazioni simili a quelle di una GPU su hardware CPU economico.
- Integrazione semplificata: Strumenti facili da usare per una semplice distribuzione e integrazione.
- Flessibilità: Supporta sia modelli YOLO26 standard che ottimizzati per la sparsità.
- Economico: Riduce le spese operative attraverso un utilizzo efficiente delle risorse.
Per un approfondimento su questi vantaggi, visita la sezione sui vantaggi dell'integrazione di DeepSparse di Neural Magic con YOLO26.