Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Modellbeschneidung

Optimieren Sie Modelle für maschinelles Lernen mit Modellbeschneidung. Erzielen Sie schnellere Inferenz, reduzierten Speicherbedarf und Energieeffizienz für ressourcenbeschränkte Bereitstellungen.

Modellbereinigung ist eine Technik der Modelloptimierung um die Größe und Rechenkomplexität neuronaler Netze zu reduzieren neuronaler Netze durch das Entfernen unnötiger Parameter. Da Modelle der künstlichen Intelligenz immer größer werden, um eine höhere Leistung zu erzielen, werden sie oft überparametrisiert und enthalten viele Verbindungen oder Neuronen, die wenig zur endgültigen Ausgabe beitragen. Durch die Identifizierung Durch die Identifizierung und Eliminierung dieser überflüssigen Komponenten können Entwickler schlankere Modelle erstellen, die weniger Speicher und Energie benötigen und gleichzeitig eine schnellere Echtzeit-Inferenz liefern. Dieser Prozess ist besonders wichtig für den Einsatz von anspruchsvollen Architekturen wie YOLO11 auf Hardware mit knappen Ressourcen, wie z. B. auf Handys oder eingebettete Sensoren.

Kernkonzepte und Mechanismen

Der Beschneidungsprozess umfasst in der Regel drei Hauptphasen: Training, Beschneidung und Feinabstimmung. Zunächst wird ein großes Modell trainiert, um Konvergenz trainiert, um komplexe Merkmale zu erfassen. Während der Pruning-Phase bewertet ein Algorithmus die Bedeutung bestimmter Parameter - in der Regel weights and biases-auf der Grundlage von Kriterien wie Größe oder Empfindlichkeit. Parameter, die als unbedeutend eingestuft werden, werden auf Null gesetzt oder ganz entfernt.

Das einfache Ausschneiden von Teilen eines Netzes kann jedoch die Genauigkeit beeinträchtigen. Um dem entgegenzuwirken, durchläuft das Modell eine Um dem entgegenzuwirken, durchläuft das Modell eine anschließende Umschulungsrunde, die als Feinabstimmung bezeichnet wird. Dieser Schritt ermöglicht es den verbleibenden Parametern, sich anzupassen und die fehlenden Verbindungen zu kompensieren, wodurch die Leistung des Modells oft fast wieder auf das ursprüngliche Niveau gebracht wird. Die Wirksamkeit dieses Ansatzes wird durch die Lotterieschein-Hypothese, die besagt, dass dichte Netze kleinere Teilnetze enthalten kleinere Teilnetze enthalten, die eine vergleichbare Genauigkeit erreichen, wenn sie isoliert trainiert werden.

Arten von Model Pruning

Pruning-Strategien werden im Allgemeinen nach der Struktur der zu entfernenden Komponenten kategorisiert:

  • Unstrukturiertes Pruning: Diese Methode zielt auf einzelne Gewichte ab, unabhängig von deren Lage, und setzt diejenigen mit niedrigen Werten auf Null. Das Ergebnis ist eine "spärliche" Matrix, in der wertvolle Verbindungen verstreut sind. verstreut sind. Unstrukturiertes Pruning ist zwar wirksam bei der Verringerung der Modellgröße, erfordert aber oft spezielle Hardware oder Softwarebibliotheken, um tatsächliche Geschwindigkeitsgewinne zu erzielen, da Standard CPUs und GPUs sind für dichte Matrixoperationen Operationen optimiert sind.
  • Strukturiertes Pruning: Anstelle einzelner Gewichte werden bei diesem Ansatz ganze geometrische Strukturen Strukturen, wie Kanäle, Filter oder Schichten innerhalb Convolutional Neural Networks (CNNs). Durch die Beibehaltung der dichten Struktur der Matrizen ermöglicht das strukturierte Pruning der Standardhardware eine effizientere Verarbeitung des Modells. Modell effizienter verarbeiten, was sich direkt in einer geringeren Inferenzlatenz, ohne dass spezielle Tools zur spärliche Beschleunigungstools.

Beschneidung vs. Quantisierung

Obwohl beides beliebte Optimierungsverfahren sind, ist es wichtig, zwischen Pruning und Modellquantisierung zu unterscheiden. Pruning konzentriert sich auf die Reduzierung die Anzahl der Parameter (Verbindungen oder Neuronen), wodurch die Architektur des Modells effektiv verändert wird. Unter Im Gegensatz dazu wird bei der Quantisierung die Genauigkeit dieser Parameter reduziert, z. B. durch die Umwandlung von 32-Bit Gleitkommazahlen in 8-Bit-Ganzzahlen. Diese Methoden ergänzen sich häufig; ein Entwickler könnte zunächst ein Modell beschneiden um Redundanzen zu entfernen und es dann zu quantisieren, um den Speicherbedarf für den Einsatz weiter zu minimieren. Einsatz.

Anwendungsfälle in der Praxis

Pruning spielt eine entscheidende Rolle, um fortgeschrittene Computer Vision in der Praxis zugänglich Szenarien:

  1. Mobile Objekterkennung: Anwendungen, die auf Smartphones laufen, wie Augmented-Reality-Apps oder Foto-Organisatoren, verwenden beschnittene Modelle zur Objekterkennung lokal durchzuführen. Dies schont die Batterie Batterielebensdauer und gewährleistet den Schutz der Nutzerdaten durch Verarbeitung.
  2. Fahrzeugsicherheitssysteme: Autonome Fahrzeuge sind auf die schnelle Verarbeitung von visuellen Daten, um Fußgänger und Hindernisse detect . Beschnittene Modelle ermöglichen es der Onboard Inferenz-Engine, Entscheidungen in Sekundenbruchteilen zu treffen Entscheidungen zu treffen, ohne den massiven Stromverbrauch eines GPU in Kauf nehmen zu müssen.

Beispiel für die Umsetzung

Frameworks wie PyTorch bieten eingebaute Hilfsprogramme, um das Beschneidung programmatisch anzuwenden. Das folgende Beispiel zeigt, wie man unstrukturiertes Pruning auf eine Faltungsschicht anwendet Schicht anwendet, eine übliche Operation vor dem Exportieren eines Modells in ein optimiertes Format wie ONNX.

import torch
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3)

# Apply L1 unstructured pruning to remove 30% of the connections
# This sets the smallest 30% of weights (by absolute value) to zero
prune.l1_unstructured(layer, name="weight", amount=0.3)

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

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