Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Pruning

Optimieren Sie KI-Modelle durch Pruning – reduzieren Sie die Komplexität, steigern Sie die Effizienz und stellen Sie sie schneller auf Edge-Geräten bereit, ohne die Leistung zu beeinträchtigen.

Pruning ist eine wichtige Technik beim maschinellen Lernens, das darauf abzielt, die Größe und Rechenkomplexität eines neuronalen Netzes (NN) durch Entfernen unnötiger Parameter. Ähnlich wie beim Beschneiden toter Äste eines Baumes, um ein gesundes Wachstum zu fördern, werden beim Pruning von Modellen Gewichte oder Verbindungen identifiziert und und eliminiert Modellgewichte oder Verbindungen die nur minimal zum Ergebnis des Systems beitragen. Das Hauptziel besteht darin, ein spärliches Modell zu erstellen, das eine hohe Genauigkeit beibehält Genauigkeit beibehält und gleichzeitig die Speichernutzung und Latenzzeit der Schlussfolgerungen zu verbessern. Dieser Prozess ist wesentlich für den Einsatz anspruchsvoller Architekturen, wie z. B. Ultralytics YOLO11auf ressourcenbeschränkten Geräten mit begrenzter Speicher- und Verarbeitungsleistung begrenzt sind.

Wie Pruning funktioniert

Der Prozess beginnt in der Regel mit einem vortrainierten Modell. Algorithmen analysieren das Netz, um Parameter zu finden - oft die Werte nahe Null haben oder nur einen begrenzten Einfluss auf die endgültige Vorhersage haben. Diese Parameter werden dann entfernt oder "auf Null gesetzt". Da das Entfernen von Verbindungen die Leistung vorübergehend beeinträchtigen kann, wird das Modell in der Regel einem Prozess unterzogen, der Feinabstimmung genannt wird, bei dem in dem es einige Epochen lang neu trainiert wird, damit die verbleibenden Gewichte anzupassen und die verlorene Genauigkeit wiederherzustellen.

Es gibt zwei Hauptkategorien von Beschneidungen:

  • Unstrukturiertes Pruning: Bei dieser Methode werden einzelne Gewichte an beliebiger Stelle des Netzes auf der Grundlage der Größenordnung. Obwohl es die Anzahl der Parameter effektiv reduziert, führt es zu unregelmäßigen Speicherzugriffsmustern, die Geschwindigkeitsverbesserungen auf Standard-CPUs ohne spezielle Software- oder Hardware-Unterstützung, wie z. B. NVIDIA Sparsamkeitsfunktionen.
  • Strukturiertes Pruning: Bei diesem Ansatz werden ganze strukturelle Komponenten, wie Neuronen, Kanäle, oder Schichten innerhalb eines Convolutional Neural Network (CNN). Da die Matrixstruktur beibehalten wird, ist diese Methode freundlicher für Standard-Hardware und führt in der Regel zu unmittelbare Geschwindigkeitssteigerungen bei Echtzeit-Inferenz.

Pruning vs. Quantisierung vs. Destillation

Es ist wichtig, das Pruning von anderen Modelloptimierungsstrategien zu unterscheiden, obwohl sie oft zusammen verwendet werden:

  • Modell-Quantisierung: Statt Parameter zu entfernen, wird durch die Quantisierung die Genauigkeit der Gewichte verringert (z. B. durch die Umwandlung von 32-Bit Gleitkommazahlen in 8-Bit-Ganzzahlen).
  • Wissensdestillation: Dabei wird ein kleineres "Schüler"-Modell darauf trainiert, das Verhalten eines größeren "Lehrer"-Modells zu imitieren Modells nachzuahmen, anstatt das größere Modell direkt zu verändern.
  • Pruning: Konzentriert sich speziell auf die Entfernung von Verbindungen oder Strukturen, um Sparsamkeit zu erreichen.

Anwendungsfälle in der Praxis

Pruning spielt eine wichtige Rolle bei der Ermöglichung von Edge AI in verschiedenen Branchen:

  1. Autonome Robotik: Roboter, die zur Navigation Computer Vision für die Navigation verwenden, müssen visuelle Daten lokal verarbeiten, um Latenzzeiten zu vermeiden. Pruning ermöglicht komplexe Objekterkennungsmodelle auf der eingebetteten Hardware Hardware von Drohnen oder Lieferrobotern ausgeführt werden, um Sicherheit und Effizienz zu gewährleisten. Lesen Sie mehr über die Integration von Computer Vision in die Robotik.
  2. Mobile Gesundheitsdiagnostik: Medizinische Anwendungen erfordern oft die Analyse von hochauflösenden Scans direkt auf Tablets oder Smartphones zu analysieren, um den Daten zu schützen. Mit Pruned-Modellen können diese Geräte Aufgaben wie die Tumorerkennung durchführen, ohne sensible Daten in die Cloud hochzuladen. Sehen Sie, wie KI im Gesundheitswesen die Diagnostik verändert.

Praktisches Beispiel

Während Ultralytics YOLO Modelle von Haus aus stark optimiert sind, können Entwickler mit Hilfe von PyTorch mit dem Pruning experimentieren. Das folgende Beispiel zeigt, wie man unstrukturiertes Pruning auf eine standardmäßige Faltungsschicht anwendet, wie sie in Computer-Vision-Modellen zu finden ist.

import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv

# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)

# Apply L1 unstructured pruning to remove 30% of the lowest magnitude weights
prune.l1_unstructured(layer.conv, name="weight", amount=0.3)

# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")

Künftige Weiterentwicklungen der effizienten Architektur, wie das kommende YOLO26, zielen darauf ab, diese Optimierungsprinzipien zu integrieren, um Modelle zu schaffen, die von vornherein kleiner, schneller und genauer sind.

Wichtige Konzepte und Ressourcen

  • Sparsamkeit: Der Zustand, in dem eine Matrix größtenteils Nullwerte enthält, ein direktes Ergebnis einer aggressiven Beschneidung.
  • Lotterieschein-Hypothese: Ein bahnbrechendes Konzept von Forschern am MIT, das besagt, dass dichte Netze kleinere Teilnetze (Gewinnscheine) enthalten, die die ursprüngliche Genauigkeit erreichen können, wenn sie isoliert trainiert werden.
  • Feinabstimmung: Der Prozess des erneuten Trainings des beschnittenen Modells, um seine verbleibenden Gewichte an die neue, vereinfachte Struktur anzupassen.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten