Glossar

Containerisierung

Entdecken Sie die Vorteile der Containerisierung für KI/ML-Projekte. Optimieren Sie Arbeitsabläufe, gewährleisten Sie Konsistenz und skalieren Sie effizient mit modernsten Tools.

Die Containerisierung ist eine leichtgewichtige Form der Betriebssystemvirtualisierung, die es Ihnen ermöglicht, eine Anwendung und ihre Abhängigkeiten - z. B. Bibliotheken, Frameworks und Konfigurationsdateien - in eine einzige, isolierte Einheit, einen Container, zu packen. Dadurch wird das häufige Problem gelöst, dass Software nicht korrekt ausgeführt wird, wenn sie von einer Computerumgebung in eine andere verschoben wird. Im Kontext des maschinellen Lernens (ML) stellt die Containerisierung sicher, dass komplexe KI-Modelle und ihre komplizierten Software-Stacks portabel, reproduzierbar und skalierbar sind, was eine entscheidende Komponente moderner MLOps-Praktiken darstellt.

Die am weitesten verbreitete Containerisierungstechnologie ist Docker, die eine standardisierte Methode zur Erstellung, Bereitstellung und Ausführung von Containern bietet. Jeder Container nutzt den Betriebssystem-Kernel des Host-Systems, läuft aber als isolierter Prozess im Benutzerbereich. Durch diesen Ansatz, der von Organisationen wie der Open Container Initiative (OCI) standardisiert wurde, sind Container wesentlich ressourceneffizienter und schneller zu starten als herkömmliche virtuelle Maschinen. Weitere Informationen zu den Grundlagen der Containerisierung finden Sie in Ressourcen wie der Container-Erklärung von Red Hat.

Containerisierung im Vergleich zu verwandten Konzepten

Das Verständnis der Unterschiede zwischen Containerisierung und ähnlichen Technologien ist der Schlüssel zum Verständnis ihrer Rolle in KI/ML-Workflows.

  • Virtuelle Maschinen (VMs): Obwohl sowohl Container als auch VMs isolierte Umgebungen bieten, arbeiten sie auf unterschiedlichen Ebenen. Eine VM emuliert einen kompletten Hardwarestack, einschließlich eines vollständigen Gastbetriebssystems, wodurch sie schwer und langsam zu starten ist. Im Gegensatz dazu virtualisiert ein Container das Betriebssystem und nutzt den Host-Kernel. Dadurch sind Container viel leichter und schneller, obwohl VMs einen höheren Grad an Isolierung auf Hardwareebene bieten können.
  • Docker: Die Containerisierung ist das zugrunde liegende Konzept. Docker ist die beliebteste Plattform, die dieses Konzept umsetzt und die Werkzeuge zur Erstellung und Verwaltung einzelner Container bereitstellt. Für einen praktischen Start bietet Ultralytics eine Docker-Schnellstartanleitung für die Ausführung von YOLO-Modellen. Sie können auch die offiziellen Ressourcen von Docker für weitere Informationen durchsuchen.
  • Kubernetes: Während Docker einzelne Container auf einem Host verwaltet, ist Kubernetes eine Plattform zur Container-Orchestrierung. Sie automatisiert die Bereitstellung, Skalierung und Verwaltung von Tausenden von Containern in Clustern von Maschinen. Ein gängiger Arbeitsablauf besteht darin, einen Container mit Docker zu erstellen und ihn dann mithilfe von Kubernetes in großem Maßstab zu verwalten. Einen tieferen Einblick erhalten Sie in der offiziellen Kubernetes-Dokumentation.
  • Serverloses Rechnen: Serverless ist ein Ausführungsmodell, bei dem Cloud-Anbieter automatisch die für die Ausführung von Code erforderliche Infrastruktur verwalten. Dadurch werden Server und Container vollständig abstrahiert. Während die Containerisierung die Kontrolle über die Anwendungsumgebung bietet, legen serverlose Plattformen wie AWS Lambda den Schwerpunkt auf die Benutzerfreundlichkeit, indem sie die gesamte Infrastrukturverwaltung ausblenden.

Real-World-Anwendungen in AI/ML

Die Containerisierung ist im gesamten KI/ML-Lebenszyklus weit verbreitet, vom Experimentieren bis zur Bereitstellung von Produktionsmodellen.

  1. Bereitstellung von Objekterkennungsmodellen: Ein für die Objekterkennung trainiertes Ultralytics YOLO-Modell kann in einen Docker-Container gepackt werden. Dieser Container enthält die Modellgewichte, das Inferenzskript und alle erforderlichen Abhängigkeiten wie PyTorch und NVIDIA CUDA-Bibliotheken. Diese in sich geschlossene Einheit kann dann konsistent auf verschiedenen Plattformen eingesetzt werden, von leistungsstarken Cloud-GPUs bis hin zu ressourcenbeschränkten Edge-KI-Geräten, um sicherzustellen, dass das Modell unabhängig von der Umgebung die erwartete Leistung erbringt.
  2. NLP-Modelle als Microservices bereitstellen: Ein Team, das eine NLP-Anwendung (Natural Language Processing) mit Modellen von Plattformen wie Hugging Face entwickelt, kann verschiedene Komponenten (z. B. Textvorverarbeitung, Modellinferenz, API-Endpunkt) als separate Microservices containerisieren. Diese Container können mit Kubernetes verwaltet werden, was eine unabhängige Skalierung und Aktualisierung der einzelnen Komponenten ermöglicht. Dies entspricht den Grundsätzen einer Microservices-Architektur und führt zu einem widerstandsfähigeren System. Plattformen wie Ultralytics HUB nutzen die Prinzipien der Containerisierung für eine optimierte Modellverwaltung und -bereitstellung.

Durch die Bereitstellung einer konsistenten und isolierten Umgebung ist die Containerisierung zu einem Eckpfeiler der modernen Softwareentwicklung geworden, insbesondere in den sich schnell entwickelnden Bereichen der KI und der Computer Vision (CV). Sie ermöglicht es Entwicklern und MLOps-Ingenieuren, zuverlässige KI-Anwendungen mit größerer Geschwindigkeit und Effizienz auf Plattformen wie Google Cloud und Amazon Elastic Container Service zu erstellen, zu testen und bereitzustellen.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert