Ultralytics YOLO27:

Bewährte Verfahren für die Modellbereitstellung#

Einleitung#

Die Modellbereitstellung ist der Schritt in einem Computer-Vision-Projekt, der ein Modell aus der Entwicklungsphase in eine reale Anwendung überführt. Es gibt verschiedene Möglichkeiten zur Modellbereitstellung: Die Bereitstellung in der Cloud bietet Skalierbarkeit und einfachen Zugriff, die Bereitstellung am Netzwerkrand reduziert die Latenz, indem das Modell näher an die Datenquelle gebracht wird, und die lokale Bereitstellung gewährleistet Datenschutz und Kontrolle. Die Wahl der richtigen Strategie hängt von den Anforderungen deiner Anwendung ab und erfordert eine Abwägung zwischen Geschwindigkeit, Sicherheit und Skalierbarkeit.



Watch: How to Optimize and Deploy AI Models: Best Practices, Troubleshooting, and Security Considerations

Beim Bereitstellen eines Modells ist es außerdem wichtig, bewährte Verfahren zu befolgen, da die Bereitstellung die Effektivität und Zuverlässigkeit der Modellleistung erheblich beeinflussen kann. In diesem Leitfaden konzentrieren wir uns darauf, wie du sicherstellst, dass die Bereitstellung deines Modells reibungslos, effizient und sicher verläuft.

Möglichkeiten zur Modellbereitstellung#

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

Mit YOLO26 kannst du dein Modell in verschiedene Formate exportieren, abhängig von deinen Anforderungen an die Bereitstellung. Zum Beispiel ist der Export von YOLO26 nach ONNX unkompliziert und ideal, um Modelle zwischen Frameworks zu übertragen. Weitere Integrationsmöglichkeiten und eine reibungslose Bereitstellung in verschiedenen Umgebungen findest du in unserem Katalog zur Modellintegration.

Auswahl der Bereitstellungsumgebung#

Wo du dein Computer-Vision-Modell bereitstellst, hängt von mehreren Faktoren ab. Die verschiedenen Umgebungen bieten jeweils eigene Vorteile und stellen dich vor unterschiedliche Herausforderungen. Daher ist es wichtig, die Umgebung auszuwä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 von den Rechenzentren entfernt befinden. Um Kosten und Leistung zu kontrollieren, ist es wichtig, die Ressourcennutzung zu optimieren und die Einhaltung der Datenschutz-Vorschriften sicherzustellen.

Bereitstellung am Netzwerkrand#

Die Bereitstellung am Netzwerkrand eignet sich gut für Anwendungen, die Echtzeitreaktionen und eine geringe Latenz benötigen, insbesondere an Orten mit eingeschränktem oder ohne Internetzugang. Die Bereitstellung von Modellen auf Geräten am Netzwerkrand, etwa Smartphones oder IoT-Geräten, gewährleistet eine schnelle Verarbeitung und hält die Daten lokal, was den Datenschutz verbessert. Außerdem spart die Bereitstellung am Netzwerkrand Bandbreite, da weniger Daten an die Cloud gesendet werden.

Geräte am Netzwerkrand verfügen jedoch häufig nur über begrenzte Rechenleistung, weshalb du deine Modelle optimieren musst. Tools wie LiteRT und NVIDIA Jetson können dabei helfen. Trotz der Vorteile kann die Wartung und Aktualisierung vieler Geräte eine Herausforderung darstellen.

Lokale Bereitstellung#

Die lokale Bereitstellung ist am besten geeignet, wenn der Datenschutz kritisch ist oder kein zuverlässiger Internetzugang besteht. Wenn du Modelle auf lokalen Servern oder Desktop-Computern ausführst, hast du vollständige Kontrolle und hältst deine Daten sicher. Außerdem kann sich die Latenz verringern, wenn sich der Server in der Nähe des Nutzers befindet.

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

Containerisierung für eine optimierte Bereitstellung#

Die Containerisierung ist ein leistungsfähiger Ansatz, bei dem dein Modell und alle seine Abhängigkeiten in einer standardisierten Einheit, einem sogenannten Container, gebündelt werden. Diese Technik gewährleistet eine konsistente Leistung in verschiedenen Umgebungen und vereinfacht den Bereitstellungsprozess.

Vorteile der Verwendung von Docker für die Modellbereitstellung#

Docker hat sich aus mehreren Gründen als Industriestandard für die Containerisierung bei der Bereitstellung von Machine-Learning-Modellen etabliert:

  • Konsistenz der Umgebung: Docker-Container kapseln dein Modell und alle seine Abhängigkeiten. Dadurch wird das Problem „Auf meinem Rechner funktioniert es“ beseitigt, da ein konsistentes Verhalten in Entwicklungs-, Test- und Produktionsumgebungen gewährleistet wird.
  • Isolation: Container isolieren Anwendungen voneinander und verhindern Konflikte zwischen verschiedenen Softwareversionen oder Bibliotheken.
  • Portabilität: Docker-Container können auf jedem System ausgeführt werden, das Docker unterstützt. Dadurch kannst du deine Modelle problemlos ohne Anpassungen auf verschiedenen Plattformen bereitstellen.
  • Skalierbarkeit: Container lassen sich je nach Bedarf einfach hoch- oder herunterskalieren. Orchestrierungswerkzeuge wie Kubernetes können diesen Prozess automatisieren.
  • Versionsverwaltung: Docker-Images können versioniert werden. So kannst du Änderungen nachverfolgen und bei Bedarf auf frühere Versionen zurücksetzen.

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"]

Dieser Ansatz stellt sicher, dass die Bereitstellung deines Modells in Entwicklungs-, Test- und Produktionsumgebungen reproduzierbar und konsistent ist.

Verfahren zur Modelloptimierung#

Die Optimierung deines Computer-Vision-Modells trägt dazu bei, dass es effizient ausgeführt wird, insbesondere bei der Bereitstellung in Umgebungen mit begrenzten Ressourcen wie Geräten am Netzwerkrand. Im Folgenden findest du einige wichtige Verfahren zur Optimierung deines Modells.

Modellbeschneidung#

Bei der Modellbeschneidung wird die Modellgröße reduziert, indem Gewichte entfernt werden, die nur wenig zum endgültigen Ergebnis beitragen. Das Modell wird dadurch kleiner und schneller, ohne dass die Genauigkeit wesentlich beeinträchtigt wird. Dazu werden unnötige Parameter identifiziert und entfernt. Das Ergebnis ist ein kompakteres Modell, das weniger Rechenleistung benötigt. Die Methode eignet sich besonders für die Bereitstellung von Modellen auf Geräten mit begrenzten Ressourcen.

Neural network pruning workflow

Modellquantisierung#

Bei der Quantisierung werden die Gewichte und Aktivierungen des Modells von einer hohen Genauigkeit (z. B. 32-Bit-Gleitkommazahlen) in eine niedrigere Genauigkeit (z. B. 8-Bit-Ganzzahlen) umgewandelt. Durch die Reduzierung der Modellgröße wird die Inferenz beschleunigt. Quantisierungsbewusstes Training (QAT) ist ein Verfahren, bei dem das Modell unter Berücksichtigung der Quantisierung trainiert wird und die Genauigkeit besser erhält als bei einer Quantisierung nach dem Training. Indem die Quantisierung bereits während der Trainingsphase berücksichtigt wird, lernt das Modell, sich an die niedrigere Genauigkeit anzupassen. So bleibt die Leistung erhalten, während der Rechenaufwand sinkt.

Optimized model efficiency for deployment

Wissensdestillation#

Bei der Wissensdestillation wird ein kleineres, einfacheres Modell (der Schüler) so trainiert, dass es die Ausgaben eines größeren, komplexeren Modells (des Lehrers) nachahmt. Das Schülermodell lernt, die Vorhersagen des Lehrermodells anzunähern. So entsteht ein kompaktes Modell, das einen großen Teil der Genauigkeit des Lehrermodells beibehält. Diese Technik eignet sich für die Erstellung effizienter Modelle zur Bereitstellung auf Geräten am Netzwerkrand mit begrenzten Ressourcen.

Knowledge distillation training process

Fehlerbehebung bei Problemen mit der Bereitstellung#

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

Dein Modell ist nach der Bereitstellung weniger genau#

Ein Rückgang der Genauigkeit deines Modells nach der Bereitstellung kann frustrierend sein. Dieses Problem kann verschiedene Ursachen haben. Mit den folgenden Schritten kannst du die Ursache ermitteln und das Problem beheben:

  • Datenkonsistenz prüfen: Stelle sicher, dass die Daten, die dein Modell nach der Bereitstellung verarbeitet, mit den Trainingsdaten übereinstimmen. Unterschiede in Datenverteilung, Qualität oder Format können die Leistung erheblich beeinträchtigen.
  • Vorverarbeitungsschritte validieren: Überprüfe, dass alle während des Trainings angewendeten Vorverarbeitungsschritte auch bei der Bereitstellung konsistent angewendet werden. Dazu gehören die Größenänderung von Bildern, die Normalisierung von Pixelwerten und andere Datentransformationen.
  • Umgebung des Modells evaluieren: Stelle sicher, dass die bei der Bereitstellung verwendeten Hardware- und Softwarekonfigurationen mit denen des Trainings übereinstimmen. Unterschiede bei Bibliotheken, Versionen und Hardwarefunktionen können Abweichungen verursachen.
  • Modellinferenz überwachen: Protokolliere Eingaben und Ausgaben in verschiedenen Phasen der Inferenzpipeline, um Anomalien zu erkennen. So lassen sich Probleme wie Datenbeschädigung oder eine fehlerhafte Verarbeitung der Modellausgaben identifizieren.
  • 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 der Trainingsphase. So kannst du feststellen, ob das Problem in der Bereitstellungsumgebung oder in den Daten liegt.

Bei der Bereitstellung von YOLO26 können mehrere Faktoren die Modellgenauigkeit beeinflussen. Die Konvertierung von Modellen in Formate wie TensorRT umfasst Optimierungen wie die Quantisierung von Gewichten und die Fusion von Schichten, was zu geringfügigen Genauigkeitsverlusten führen kann. Die Verwendung von FP16 (halbe Genauigkeit) anstelle von FP32 (volle Genauigkeit) kann die Inferenz beschleunigen, aber numerische Genauigkeitsfehler verursachen. Auch Hardwarebeschränkungen, etwa beim Jetson Nano mit weniger CUDA-Kernen und einer geringeren Speicherbandbreite, können die Leistung beeinträchtigen.

Inferenzen dauern länger als erwartet#

Bei der Bereitstellung von Machine-Learning-Modellen ist es wichtig, dass sie effizient ausgeführt werden. Wenn Inferenzen länger als erwartet dauern, kann dies die Nutzererfahrung und die Wirksamkeit deiner Anwendung beeinträchtigen. Mit den folgenden Schritten kannst du die Ursache ermitteln und das Problem beheben:

  • Aufwärmläufe durchführen: Erste Ausführungen enthalten häufig zusätzlichen Einrichtungsaufwand, der die Latenzmessungen verfälschen kann. Führe vor der Latenzmessung einige Aufwärminferenzen durch. Wenn du diese ersten Läufe ausschließt, erhältst du eine genauere Messung der Modellleistung.
  • Inferenz-Engine optimieren: Überprüfe, dass die Inferenz-Engine vollständig für deine spezifische GPU-Architektur optimiert ist. Verwende die neuesten Treiber und auf deine Hardware abgestimmte Softwareversionen, um maximale Leistung und Kompatibilität sicherzustellen.
  • Asynchrone Verarbeitung verwenden: Asynchrone Verarbeitung kann dabei helfen, Arbeitslasten effizienter zu verwalten. Verwende asynchrone Verarbeitungstechniken, um mehrere Inferenzen gleichzeitig zu bearbeiten. Dadurch lässt sich die Last verteilen und die Wartezeit verringern.
  • Inferenzpipeline profilieren: Das Ermitteln von Engpässen in der Inferenzpipeline kann helfen, die Ursache von Verzögerungen zu lokalisieren. Verwende Profiling-Werkzeuge, um jeden Schritt des Inferenzprozesses zu analysieren und verzögernde Phasen wie ineffiziente Schichten oder Probleme bei der Datenübertragung zu identifizieren und zu beheben.
  • Geeignete Genauigkeit verwenden: Eine höhere als notwendige Genauigkeit kann die Inferenz verlangsamen. Experimentiere mit einer niedrigeren Genauigkeit, etwa FP16 (halbe Genauigkeit) anstelle von FP32 (volle Genauigkeit). FP16 kann zwar die Inferenzzeit verkürzen, aber auch die Modellgenauigkeit beeinträchtigen.

Wenn dieses Problem bei der Bereitstellung von YOLO26 auftritt, solltest du berücksichtigen, dass YOLO26 verschiedene Modellgrößen bietet, etwa YOLO26n (Nano) für Geräte mit geringerer Speicherkapazität und YOLO26x (extra groß) für leistungsfähigere GPUs. Die Auswahl der richtigen Modellvariante für deine Hardware kann dabei helfen, Speichernutzung und Verarbeitungszeit auszubalancieren.

Beachte außerdem, dass die Größe der Eingabebilder die Speichernutzung und Verarbeitungszeit direkt beeinflusst. Niedrigere Auflösungen verringern die Speichernutzung 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. Im Folgenden findest du bewährte Verfahren 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 Personen eingesehen werden können. Du kannst Verschlüsselungsprotokolle wie TLS (Sicherheit der Transportschicht) verwenden, um Daten während der Übertragung zu verschlüsseln. Selbst wenn jemand die Daten abfängt, kann er sie nicht lesen. Außerdem kannst du eine Ende-zu-Ende-Verschlüsselung verwenden, die die Daten vom Ausgangspunkt 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 Authentifizierungsmethoden, um die Identität von Nutzern oder Systemen zu überprüfen, die auf das Modell zugreifen möchten, und erwäge zusätzliche Sicherheit durch Mehrfaktor-Authentifizierung (MFA). Richte eine rollenbasierte Zugriffskontrolle (RBAC) ein, um Berechtigungen anhand von Benutzerrollen zuzuweisen, sodass Personen nur auf das zugreifen können, was sie benötigen. Führe detaillierte Audit-Protokolle, um sämtliche 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 oder 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 Schichten und Parameter umbenennst oder Dummy-Schichten hinzufügst. Dadurch wird Reverse Engineering erschwert. Außerdem kann die Bereitstellung des Modells in einer sicheren Umgebung, etwa einer sicheren Enklave oder einer vertrauenswürdigen Ausführungsumgebung (TEE), während der Inferenz eine zusätzliche Schutzschicht bieten.

Fazit und nächste Schritte#

Wir haben einige bewährte Verfahren für die Bereitstellung von Computer-Vision-Modellen behandelt. Durch die Absicherung von Daten, die Kontrolle des Zugriffs und die Verschleierung von Modelldetails kannst du sensible Informationen schützen und gleichzeitig sicherstellen, dass deine Modelle reibungslos ausgeführt werden. Außerdem haben wir besprochen, wie sich häufige Probleme wie verringerte Genauigkeit und langsame Inferenzen durch Aufwärmläufe, die Optimierung von Engines, asynchrone Verarbeitung, die Profilierung von Pipelines und die Auswahl der richtigen 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 kannst du 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, die Ziele deines Computer-Vision-Projekts zu erreichen.

FAQ#

  • Die Bereitstellung eines Machine-Learning-Modells, insbesondere mit Ultralytics YOLO26, umfasst mehrere bewährte Verfahren, um Effizienz und Zuverlässigkeit sicherzustellen. Wähle zunächst die Bereitstellungsumgebung aus, die deinen Anforderungen entspricht – Cloud, Netzwerkrand oder lokal. Optimiere dein Modell durch Verfahren wie Modellbeschneidung, Quantisierung und Wissensdestillation, damit es effizient in Umgebungen mit begrenzten Ressourcen bereitgestellt werden kann. Erwäge die Containerisierung mit Docker, um Konsistenz in verschiedenen Umgebungen sicherzustellen. Stelle abschließend sicher, dass Datenkonsistenz und Vorverarbeitungsschritte mit der Trainingsphase übereinstimmen, damit die Leistung erhalten bleibt. Weitere ausführliche Richtlinien findest du unter Möglichkeiten zur Modellbereitstellung.

  • Die Fehlerbehebung bei Problemen mit der Bereitstellung lässt sich in einige wichtige Schritte unterteilen. Wenn die Genauigkeit deines Modells nach der Bereitstellung abnimmt, prüfe die Datenkonsistenz, validiere die Vorverarbeitungsschritte und stelle sicher, dass die Hardware- und Softwareumgebung mit der Trainingsumgebung übereinstimmt. Bei langsamen Inferenzen führst du Aufwärmläufe durch, optimierst deine Inferenz-Engine, verwendest asynchrone Verarbeitung und profilierst deine Inferenzpipeline. Eine ausführliche Anleitung zu diesen bewährten Verfahren findest du unter Fehlerbehebung bei Problemen mit der Bereitstellung.

  • Bei der Optimierung von Ultralytics-YOLO26-Modellen für Geräte am Netzwerkrand kommen Verfahren wie die Modellbeschneidung zur Reduzierung der Modellgröße, die Quantisierung zur Umwandlung der Gewichte in eine niedrigere Genauigkeit und die Wissensdestillation zum Trainieren kleinerer Modelle zum Einsatz, die größere Modelle nachahmen. Diese Verfahren stellen sicher, dass das Modell auf Geräten mit begrenzter Rechenleistung effizient ausgeführt wird. Tools wie LiteRT und NVIDIA Jetson sind für diese Optimierungen besonders nützlich. Weitere Informationen zu diesen Verfahren findest du in unserem Abschnitt zur Modelloptimierung.

  • Sicherheit hat bei der Bereitstellung von Machine-Learning-Modellen höchste Priorität. Stelle eine sichere Datenübertragung durch Verschlüsselungsprotokolle wie TLS sicher. Implementiere robuste Zugriffskontrollen, einschließlich starker Authentifizierung und rollenbasierter Zugriffskontrolle (RBAC). Verfahren zur Modellverschleierung, etwa die Verschlüsselung von Modellparametern und die Bereitstellung von Modellen in einer sicheren Umgebung wie einer vertrauenswürdigen Ausführungsumgebung (TEE), bieten zusätzlichen Schutz. Ausführliche Verfahren findest du unter Sicherheitsaspekte.

  • Die Auswahl der optimalen Bereitstellungsumgebung für dein Ultralytics-YOLO26-Modell hängt von den spezifischen 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 und Echtzeitreaktionen, wobei Tools wie LiteRT zum Einsatz kommen. Die lokale Bereitstellung ist für Szenarien geeignet, die strengen Datenschutz und umfassende Kontrolle erfordern. Einen vollständigen Überblick über die einzelnen Umgebungen findest du in unserem Abschnitt zur Auswahl der Bereitstellungsumgebung.

Kommentare