Ultralytics YOLO27:
Get Started

Bewährte Vorgehensweisen für die Modellbereitstellung#

Einführung#

Die Modellbereitstellung ist der Schritt in einem Computer-Vision-Projekt, bei dem ein Modell aus der Entwicklungsphase in eine reale Anwendung überführt wird. Es gibt verschiedene Optionen für die Modellbereitstellung: Die Bereitstellung in der Cloud bietet Skalierbarkeit und einfachen Zugriff, die Edge-Bereitstellung verringert die Latenz, indem sie das Modell näher an die Datenquelle bringt, und die lokale Bereitstellung gewährleistet Datenschutz und Kontrolle. Welche Strategie am besten geeignet ist, hängt von den Anforderungen deiner Anwendung ab. Dabei gilt es, Geschwindigkeit, Sicherheit und Skalierbarkeit abzuwägen.



Ansehen: So optimierst und veröffentlichst du KI-Modelle: Best Practices, Fehlerbehebung und Sicherheitsaspekte

Es ist außerdem wichtig, bei der Bereitstellung eines Modells bewährte Vorgehensweisen einzuhalten, da die Bereitstellung die Wirksamkeit und Zuverlässigkeit der Modellleistung erheblich beeinflussen kann. In diesem Leitfaden zeigen wir dir, wie du eine reibungslose, effiziente und sichere Modellbereitstellung sicherstellst.

Optionen für die Modellbereitstellung#

Oft muss ein Modell, nachdem es trainiert, ausgewertet und getestet wurde, in bestimmte Formate umgewandelt werden, damit es in verschiedenen Umgebungen wie der Cloud, am Netzwerkrand oder auf lokalen Geräten effektiv bereitgestellt werden kann.

Mit YOLO26 kannst du dein Modell je nach Bereitstellungsanforderungen in verschiedene Formate exportieren. Zum Beispiel ist der Export von YOLO26 nach ONNX unkompliziert und eignet sich ideal, um Modelle zwischen Frameworks zu übertragen. Weitere Integrationsoptionen und Hinweise für eine reibungslose Bereitstellung in verschiedenen Umgebungen findest du in unserem Katalog zur Modellintegration.

Eine Bereitstellungsumgebung auswählen#

Die Wahl des Bereitstellungsorts für dein Computer-Vision-Modell hängt von mehreren Faktoren ab. Verschiedene Umgebungen bieten jeweils eigene Vorteile und stellen unterschiedliche Herausforderungen dar. Daher solltest du die Umgebung wählen, die am besten zu deinen Anforderungen passt.

Bereitstellung in der Cloud#

Die Bereitstellung in der Cloud eignet sich hervorragend für Anwendungen, die schnell skaliert werden und große Datenmengen verarbeiten müssen. Plattformen wie AWS, Google Cloud und Azure erleichtern die Verwaltung deiner Modelle – vom Training bis zur Bereitstellung. Sie bieten Dienste wie AWS SageMaker, Google AI Platform und Azure Machine Learning, die dich während des gesamten Prozesses unterstützen.

Die Nutzung der Cloud kann jedoch teuer sein, insbesondere bei hohem Datenaufkommen. Außerdem kann es zu Latenzproblemen kommen, wenn sich deine Nutzer weit entfernt von den Rechenzentren befinden. Um Kosten und Leistung im Griff zu behalten, solltest du die Ressourcennutzung optimieren und die Vorschriften zum Datenschutz einhalten.

Edge-Bereitstellung#

Die Edge-Bereitstellung eignet sich gut für Anwendungen, die schnelle Antworten und geringe Latenz erfordern, insbesondere an Orten mit eingeschränktem oder fehlendem Internetzugang. Durch die Bereitstellung von Modellen auf Edge-Geräten wie Smartphones oder IoT-Geräten wird eine schnelle Verarbeitung ermöglicht und die Daten bleiben lokal, was den Datenschutz verbessert. Außerdem spart die Edge-Bereitstellung Bandbreite, da weniger Daten an die Cloud gesendet werden.

Edge-Geräte haben jedoch oft eine begrenzte Rechenleistung, daher musst du deine Modelle optimieren. Werkzeuge wie LiteRT und NVIDIA Jetson können dabei helfen. Trotz der Vorteile kann es schwierig sein, zahlreiche Geräte zu warten und zu aktualisieren.

Lokale Bereitstellung#

Die lokale Bereitstellung eignet sich am besten, wenn Datenschutz entscheidend ist oder der Internetzugang unzuverlässig ist oder ganz fehlt. Wenn du Modelle auf lokalen Servern oder Desktop-Computern ausführst, hast du die volle Kontrolle und deine Daten bleiben geschützt. Auch die Latenz kann sinken, wenn sich der Server in der Nähe der Nutzer befindet.

Eine lokale Skalierung kann jedoch schwierig sein und die Wartung viel Zeit in Anspruch nehmen. Werkzeuge wie Docker für die Containerisierung und Kubernetes für die Verwaltung können lokale Bereitstellungen effizienter machen. Regelmäßige Aktualisierungen und Wartungsarbeiten sind erforderlich, damit alles reibungslos läuft.

Containerisierung für eine vereinfachte Bereitstellung#

Containerisierung ist ein leistungsstarker Ansatz, bei dem dein Modell und alle zugehörigen Abhängigkeiten in einer standardisierten Einheit, einem sogenannten Container, gebündelt werden. Dieses Verfahren sorgt für eine gleichbleibende Leistung in verschiedenen Umgebungen und vereinfacht die Bereitstellung.

Vorteile von Docker für die Modellbereitstellung#

Docker hat sich aus mehreren Gründen als Branchenstandard für die Containerisierung bei der Bereitstellung von Modellen für maschinelles Lernen etabliert:

  • Einheitliche Umgebungen: Docker-Container kapseln dein Modell und alle zugehörigen Abhängigkeiten. So vermeiden sie das Problem „Auf meinem Rechner funktioniert es“ und gewährleisten einheitliches Verhalten in Entwicklungs-, Test- und Produktionsumgebungen.
  • Isolierung: Container isolieren Anwendungen voneinander und verhindern Konflikte zwischen unterschiedlichen Softwareversionen oder Bibliotheken.
  • Portabilität: Docker-Container können auf jedem System ausgeführt werden, das Docker unterstützt. So lassen sich deine Modelle ganz einfach ohne Änderungen auf verschiedenen Plattformen bereitstellen.
  • Skalierbarkeit: Container lassen sich je nach Bedarf problemlos hoch- oder herunterskalieren. Orchestrierungswerkzeuge wie Kubernetes können diesen Prozess automatisieren.
  • Versionsverwaltung: Docker-Images lassen sich versionieren, sodass du Änderungen nachverfolgen und bei Bedarf zu früheren Versionen zurückkehren kannst.

Docker für die Bereitstellung von YOLO26 einsetzen#

Um dein YOLO26-Modell zu containerisieren, kannst du eine Dockerfile erstellen, in der alle erforderlichen Abhängigkeiten und Konfigurationen festgelegt sind. Hier ist ein einfaches Beispiel:

FROM ultralytics/ultralytics:latest

WORKDIR /app

# Copy your model and any additional files
COPY ./models/yolo26n.pt /app/models/
COPY ./scripts /app/scripts/

# Set up any environment variables
ENV MODEL_PATH=/app/models/yolo26n.pt

# Command to run when the container starts
CMD ["python", "/app/scripts/predict.py"]

Mit diesem Ansatz lässt sich deine Modellbereitstellung in Entwicklungs-, Test- und Produktionsumgebungen reproduzierbar und einheitlich gestalten.

Verfahren zur Modelloptimierung#

Durch die Optimierung deines Computer-Vision-Modells läuft es effizienter, insbesondere bei der Bereitstellung in Umgebungen mit begrenzten Ressourcen wie Edge-Geräten. Im Folgenden findest du einige wichtige Verfahren zur Modelloptimierung.

Modell-Pruning#

Beim Pruning wird die Modellgröße verringert, indem Gewichte entfernt werden, die nur wenig zum Endergebnis beitragen. Dadurch wird das Modell kleiner und schneller, ohne die Genauigkeit wesentlich zu beeinträchtigen. Beim Pruning werden unnötige Parameter ermittelt und entfernt. So entsteht ein schlankeres Modell, das weniger Rechenleistung benötigt. Dieses Verfahren ist besonders nützlich, wenn Modelle auf Geräten mit begrenzten Ressourcen bereitgestellt werden.

Neural network pruning workflow

Modellquantisierung#

Bei der Quantisierung werden die Gewichte und Aktivierungen des Modells von hoher Genauigkeit (zum Beispiel 32-Bit-Gleitkommazahlen) auf eine niedrigere Genauigkeit (zum Beispiel 8-Bit-Ganzzahlen) umgestellt. Eine kleinere Modellgröße beschleunigt die Inferenz. Beim quantisierungsbewussten Training (QAT) wird das Modell unter Berücksichtigung der Quantisierung trainiert, wodurch die Genauigkeit besser erhalten bleibt als bei einer Quantisierung nach dem Training. Wenn die Quantisierung bereits während des Trainings berücksichtigt wird, lernt das Modell, sich an die geringere Genauigkeit anzupassen. So bleibt die Leistung erhalten und der Rechenaufwand sinkt.

Optimized model efficiency for deployment

Wissensdestillation#

Bei der Wissensdestillation wird ein kleineres, einfacheres Modell (der Schüler) darauf trainiert, die Ausgaben eines größeren, komplexeren Modells (des Lehrers) nachzuahmen. Das Schülermodell lernt, die Vorhersagen des Lehrermodells nachzubilden. So entsteht ein kompaktes Modell, das einen Großteil der Genauigkeit des Lehrermodells beibehält. Dieses Verfahren eignet sich zur Erstellung effizienter Modelle, die auf Edge-Geräten mit begrenzten Ressourcen bereitgestellt werden können.

Knowledge distillation training process

Probleme bei der Bereitstellung beheben#

Bei der Bereitstellung deiner Computer-Vision-Modelle können Herausforderungen auftreten. Wenn du häufige Probleme und ihre Lösungen kennst, läuft der Prozess reibungsloser. Hier findest du allgemeine Tipps zur Fehlerbehebung und bewährte Vorgehensweisen, die dir bei Problemen mit der Bereitstellung helfen.

Dein Modell ist nach der Bereitstellung weniger genau#

Ein Rückgang der Modellgenauigkeit nach der Bereitstellung kann frustrierend sein. Dieses Problem kann verschiedene Ursachen haben. Mit den folgenden Schritten kannst du das Problem erkennen und beheben:

  • Datenkonsistenz prüfen: Prüfe, ob die Daten, die dein Modell nach der Bereitstellung verarbeitet, mit den Trainingsdaten übereinstimmen. Unterschiede in der Datenverteilung, -qualität oder im Format können die Leistung erheblich beeinträchtigen.
  • Vorverarbeitungsschritte überprüfen: Stelle sicher, dass bei der Bereitstellung dieselben Vorverarbeitungsschritte wie beim Training konsistent angewendet werden. Dazu gehören das Ändern der Bildgröße, das Normalisieren der Pixelwerte und andere Datentransformationen.
  • Modellumgebung überprüfen: Stelle sicher, dass die während der Bereitstellung verwendeten Hardware- und Softwarekonfigurationen mit denen beim Training übereinstimmen. Unterschiede bei Bibliotheken, Versionen und Hardwarefunktionen können zu Abweichungen führen.
  • Modellinferenz überwachen: Protokolliere Eingaben und Ausgaben in verschiedenen Phasen der Inferenzpipeline, um Anomalien zu erkennen. So lassen sich Probleme wie beschädigte Daten oder eine unsachgemäße Verarbeitung der Modellausgaben erkennen.
  • Modellexport und -konvertierung überprüfen: Exportiere das Modell erneut und stelle sicher, dass der Konvertierungsprozess die Integrität der Modellgewichte und der Architektur bewahrt.
  • Mit einem kontrollierten Datensatz testen: Stelle das Modell in einer Testumgebung mit einem von dir kontrollierten Datensatz bereit und vergleiche die Ergebnisse mit denen aus der Trainingsphase. So kannst du feststellen, ob das Problem an der Bereitstellungsumgebung oder den Daten liegt.

Bei der Bereitstellung von YOLO26 können verschiedene Faktoren die Modellgenauigkeit beeinflussen. Die Konvertierung von Modellen in Formate wie TensorRT umfasst Optimierungen wie die Quantisierung von Gewichten und das Zusammenführen von Layern, wodurch geringfügige Genauigkeitsverluste entstehen können. FP16 (halbe Genauigkeit) kann die Inferenz im Vergleich zu FP32 (einfacher Genauigkeit) beschleunigen, aber numerische Genauigkeitsfehler verursachen. Auch Hardwarebeschränkungen, etwa beim Jetson Nano, mit einer geringeren Anzahl an CUDA-Kernen und reduzierter Speicherbandbreite, können die Leistung beeinträchtigen.

Inferenz dauert länger als erwartet#

Bei der Bereitstellung von maschinellen Lernmodellen ist es wichtig, dass sie effizient ausgeführt werden. Dauert die Inferenz länger als erwartet, kann das die Nutzererfahrung und die Wirksamkeit deiner Anwendung beeinträchtigen. Mit den folgenden Schritten kannst du das Problem erkennen und beheben:

  • Aufwärmläufe durchführen: Bei den ersten Läufen fällt häufig zusätzlicher Aufwand für die Einrichtung an, was die Latenzmessungen verfälschen kann. Führe vor der Latenzmessung einige Inferenzläufe zum Aufwärmen durch. Wenn du diese ersten Läufe nicht berücksichtigst, erhältst du eine genauere Messung der Modellleistung.
  • Inferenz-Engine optimieren: Prüfe, ob die Inferenz-Engine vollständig für die Architektur deiner GPU optimiert ist. Verwende die neuesten Treiber und Softwareversionen, die auf deine Hardware abgestimmt sind, um maximale Leistung und Kompatibilität sicherzustellen.
  • Asynchrone Verarbeitung verwenden: Mit asynchroner Verarbeitung lassen sich Arbeitslasten effizienter verwalten. Verwende asynchrone Verfahren, um mehrere Inferenzen gleichzeitig auszuführen. So kannst du die Last verteilen und Wartezeiten verkürzen.
  • Inferenzpipeline profilieren: Wenn du Engpässe in der Inferenzpipeline erkennst, kannst du die Ursache für Verzögerungen eingrenzen. Analysiere mit Profiling-Tools jeden Schritt des Inferenzprozesses und erkenne und behebe Phasen, die erhebliche Verzögerungen verursachen, etwa ineffiziente Layer oder Probleme bei der Datenübertragung.
  • Geeignete Genauigkeit verwenden: Eine höhere als die erforderliche Genauigkeit kann die Inferenz verlangsamen. Experimentiere mit einer niedrigeren Genauigkeit, beispielsweise FP16 (halbe Genauigkeit) statt FP32 (einfacher Genauigkeit). FP16 kann die Inferenzzeit verkürzen, aber auch die Modellgenauigkeit beeinträchtigen.

Wenn dieses Problem bei der Bereitstellung von YOLO26 auftritt, beachte, dass YOLO26 Modelle in verschiedenen Größen bietet, etwa YOLO26n (Nano) für Geräte mit geringerem Speicher und YOLO26x (Extra Large) für leistungsstärkere GPUs. Mit der passenden Modellvariante für deine Hardware kannst du Speicherbedarf und Verarbeitungszeit in Einklang bringen.

Beachte außerdem, dass die Größe der Eingabebilder den Speicherbedarf und die Verarbeitungszeit unmittelbar beeinflusst. Niedrigere Auflösungen reduzieren den Speicherbedarf und beschleunigen die Inferenz, während höhere Auflösungen die Genauigkeit verbessern, aber mehr Speicher und Rechenleistung erfordern.

Sicherheitsaspekte bei der Modellbereitstellung#

Ein weiterer wichtiger Aspekt der Bereitstellung ist die Sicherheit. Die Sicherheit deiner bereitgestellten Modelle ist entscheidend, um sensible Daten und geistiges Eigentum zu schützen. Hier sind einige bewährte Vorgehensweisen für eine sichere Modellbereitstellung.

Sichere Datenübertragung#

Es ist sehr wichtig, die zwischen Clients und Servern übertragenen Daten zu schützen, damit sie nicht abgefangen oder von Unbefugten eingesehen werden können. Du kannst Verschlüsselungsprotokolle wie TLS (Transportsicherheit) verwenden, um Daten während der Übertragung zu verschlüsseln. Selbst wenn jemand die Daten abfängt, kann er sie nicht lesen. Du kannst auch eine Ende-zu-Ende-Verschlüsselung verwenden, die die Daten vom Ursprung bis zum Ziel schützt, sodass niemand dazwischen darauf zugreifen kann.

Zugriffskontrollen#

Es ist wichtig zu kontrollieren, wer auf dein Modell und seine Daten zugreifen kann, um eine unbefugte Nutzung zu verhindern. Verwende starke Authentifizierungsverfahren, um die Identität von Personen oder Systemen zu überprüfen, die auf das Modell zugreifen möchten, und erwäge zusätzliche Sicherheit durch Mehr-Faktor-Authentifizierung (MFA). Richte eine rollenbasierte Zugriffskontrolle (RBAC) ein, um Berechtigungen anhand der Benutzerrollen zu vergeben und sicherzustellen, dass alle nur auf das zugreifen können, was sie benötigen. Führe detaillierte Audit-Protokolle, um alle Zugriffe und Änderungen am Modell und seinen Daten nachzuverfolgen, und überprüfe diese Protokolle regelmäßig auf verdächtige Aktivitäten.

Modellverschleierung#

Du kannst dein Modell durch Modellverschleierung vor Reverse Engineering und Missbrauch schützen. Dabei werden Modellparameter wie Gewichte und Bias-Werte in neuronalen Netzen verschlüsselt, damit Unbefugte das Modell nur schwer verstehen oder verändern können. Du kannst auch die Modellarchitektur verschleiern, indem du Layer und Parameter umbenennst oder Dummy-Layer hinzufügst. Das erschwert Angreifern das Reverse Engineering. Wenn du das Modell in einer sicheren Umgebung bereitstellst, etwa in einem Secure Enclave oder einer vertrauenswürdigen Ausführungsumgebung (TEE), bietet das während der Inferenz zusätzlichen Schutz.

Fazit und nächste Schritte#

Wir haben einige bewährte Vorgehensweisen für die Bereitstellung von Computer-Vision-Modellen vorgestellt. Wenn du Daten schützt, Zugriffe kontrollierst und Modelldetails verschleierst, kannst du sensible Informationen schützen und zugleich dafür sorgen, dass deine Modelle reibungslos laufen. Außerdem haben wir besprochen, wie sich häufige Probleme wie geringere Genauigkeit und langsame Inferenz mit Strategien wie Aufwärmläufen, optimierten Engines, asynchroner Verarbeitung, Profiling der Pipelines und der Wahl der passenden Genauigkeit beheben lassen.

Nach der Bereitstellung deines Modells besteht der nächste Schritt darin, deine Anwendung zu überwachen, zu warten und zu dokumentieren. Durch regelmäßige Überwachung lassen sich Probleme schnell erkennen und beheben, durch Wartung bleiben deine Modelle aktuell und funktionsfähig, und eine gute Dokumentation hält alle Änderungen und Aktualisierungen fest. Diese Schritte helfen dir dabei, die Ziele deines Computer-Vision-Projekts zu erreichen.

Häufig gestellte Fragen#

  • Bei der Bereitstellung eines Modells für maschinelles Lernen, insbesondere mit Ultralytics YOLO26, solltest du einige bewährte Vorgehensweisen beachten, um Effizienz und Zuverlässigkeit sicherzustellen. Wähle zunächst die Bereitstellungsumgebung, die zu deinen Anforderungen passt: Cloud, Edge oder lokal. Optimiere dein Modell mit Verfahren wie Pruning, Quantisierung und Wissensdestillation, damit es effizient in Umgebungen mit begrenzten Ressourcen eingesetzt werden kann. Erwäge die Containerisierung mit Docker, um die Konsistenz zwischen verschiedenen Umgebungen sicherzustellen. Achte schließlich darauf, dass Datenkonsistenz und Vorverarbeitungsschritte denen der Trainingsphase entsprechen, damit die Leistung erhalten bleibt. Weitere ausführliche Richtlinien findest du unter Optionen für die Modellbereitstellung.

  • Die Fehlerbehebung bei Problemen mit der Bereitstellung lässt sich in einige wichtige Schritte unterteilen. Wenn die Genauigkeit deines Modells nach der Bereitstellung sinkt, prüfe die Datenkonsistenz, kontrolliere die Vorverarbeitungsschritte und stelle sicher, dass die Hardware- und Softwareumgebung der beim Training verwendeten Umgebung entspricht. Bei langsamer Inferenz solltest du Aufwärmläufe durchführen, deine Inferenz-Engine optimieren, asynchrone Verarbeitung einsetzen und deine Inferenzpipeline profilieren. Eine ausführliche Anleitung zu diesen bewährten Vorgehensweisen findest du unter Fehlerbehebung bei Problemen mit der Bereitstellung.

  • Bei der Optimierung von Ultralytics YOLO26-Modellen für Edge-Geräte kommen Verfahren wie Pruning zur Verkleinerung des Modells, Quantisierung zur Umwandlung der Gewichte in niedrigere Genauigkeit und Wissensdestillation zum Trainieren kleinerer Modelle zum Einsatz, die größere Modelle nachbilden. So läuft das Modell auch auf Geräten mit begrenzter Rechenleistung effizient. Tools wie LiteRT und NVIDIA Jetson eignen sich besonders für diese Optimierungen. Mehr über diese Verfahren erfährst du im Abschnitt zur Modelloptimierung.

  • Sicherheit hat bei der Bereitstellung von Modellen für maschinelles Lernen höchste Priorität. Sorge mit Verschlüsselungsprotokollen wie TLS für eine sichere Datenübertragung. Richte robuste Zugriffskontrollen ein, darunter starke Authentifizierung und rollenbasierte Zugriffskontrolle (RBAC). Verfahren zur Modellverschleierung, beispielsweise das Verschlüsseln von Modellparametern und die Bereitstellung von Modellen in einer sicheren Umgebung wie einer vertrauenswürdigen Ausführungsumgebung (TEE), bieten zusätzlichen Schutz. Ausführliche Hinweise findest du unter Sicherheitsaspekte.

  • Welche Bereitstellungsumgebung für dein Ultralytics YOLO26-Modell am besten geeignet ist, hängt von den konkreten Anforderungen deiner Anwendung ab. Die Bereitstellung in der Cloud bietet Skalierbarkeit und einfachen Zugriff und eignet sich daher ideal für Anwendungen mit großen Datenmengen. Die Bereitstellung am Netzwerkrand eignet sich am besten für Anwendungen mit geringer Latenz, die Echtzeitreaktionen erfordern, und nutzt Tools wie LiteRT. Die lokale Bereitstellung ist für Szenarien geeignet, die strenge Anforderungen an Datenschutz und Kontrolle stellen. Eine umfassende Übersicht zu den einzelnen Umgebungen findest du im Abschnitt Auswahl einer Bereitstellungsumgebung.

Kommentare