Serverloses Computing ist ein Cloud-Computing-Ausführungsmodell, bei dem der Cloud-Anbieter die Zuweisung und Bereitstellung von Servern dynamisch verwaltet. Entwickler können Code als einzelne Funktionen schreiben und bereitstellen, ohne sich um die zugrunde liegende Infrastruktur wie Betriebssysteme oder Serverhardware kümmern zu müssen. Es werden zwar immer noch Server verwendet, aber ihre Verwaltung ist komplett abstrahiert, so dass sich die Teams auf die Entwicklung der Anwendungslogik konzentrieren können. Dies ist besonders vorteilhaft für die schnelle Iteration von Projekten der Künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) und ermöglicht schnellere Entwicklungszyklen und eine effiziente Ressourcennutzung.
Die serverlose Architektur verstehen
In einem serverlosen Setup sind Anwendungen oft als eine Sammlung unabhängiger Funktionen strukturiert, die durch bestimmte Ereignisse ausgelöst werden. Dieses Modell wird gemeinhin als Function as a Service (FaaS) bezeichnet. Ereignisse können HTTP-Anfragen (z. B. API-Aufrufe), Datenbankänderungen, Datei-Uploads in einen Cloud-Speicher oder Nachrichten aus einem Warteschlangensystem sein. Wenn ein Ereignis eintritt, weist der Cloud-Anbieter automatisch die notwendigen Rechenressourcen zu, um die entsprechende Funktion auszuführen. Sobald die Ausführung abgeschlossen ist, werden diese Ressourcen heruntergefahren, oft auf Null, wenn keine Anfragen mehr anstehen. Dieser ereignisgesteuerte, automatisch skalierende Ansatz unterscheidet sich deutlich von traditionellen Architekturen, bei denen die Server kontinuierlich laufen, was zu ungenutzten Ressourcen und höheren Betriebskosten führen kann. Er passt gut zu den variablen Anforderungen vieler KI-Anwendungsfälle.
Vorteile für KI und ML
Serverloses Computing bietet überzeugende Vorteile für KI- und ML-Workloads, die häufig variable Rechenanforderungen haben:
- Automatische Skalierbarkeit: Geht nahtlos mit unvorhersehbaren Belastungen um. Zum Beispiel kann eine Inferenzmaschine, die Vorhersagen liefert, plötzliche Spitzen bei den Anfragen erleben. Serverlose Plattformen skalieren die Funktionsinstanzen automatisch nach oben oder unten, um die Nachfrage zu befriedigen, ohne dass manuelle Eingriffe erforderlich sind, und gewährleisten so eine konstante Leistung. Dies ist besonders wichtig für Anwendungen, die Echtzeit-Inferenzen benötigen.
- Kosteneffizienz: Der Betrieb erfolgt auf einer Pay-per-Use-Basis. In der Regel wird dir nur die tatsächlich verbrauchte Rechenzeit für deine Funktionen in Rechnung gestellt, und zwar auf die Millisekunde genau. Dadurch entfallen die Kosten für ungenutzte Serverkapazitäten, was es für Aufgaben wie regelmäßiges Modelltraining oder seltene Datenverarbeitungsaufgaben wirtschaftlich macht. Entdecke die Vorteile von Skaleneffekten.
- Schnellere Entwicklungszyklen: Die Verwaltung der Infrastruktur entfällt. Die Entwickler können sich ausschließlich auf das Schreiben von Code für bestimmte Aufgaben wie die Vorverarbeitung von Daten, die Extraktion von Merkmalen oder die Ausführung von Vorhersagelogik konzentrieren. Dies beschleunigt die Entwicklung und den Einsatz und ermöglicht ein schnelleres Experimentieren mit verschiedenen Modellen oder Strategien zur Einstellung von HyperparameternUltralytics Leitfaden).
- Vereinfachte Abläufe: Reduziert den betrieblichen Aufwand. Aufgaben wie das Patchen von Betriebssystemen, die Verwaltung von Serverkapazitäten und die Sicherstellung der Hochverfügbarkeit werden vom Cloud-Anbieter übernommen, wodurch Ressourcen für die Kernaufgaben des maschinellen Lernens frei werden. Erfahre mehr über Machine Learning Operations (MLOps).
Reale Anwendungen in KI/ML
Serverlose Architekturen sind für verschiedene KI/ML-Aufgaben gut geeignet:
- Bild- und Videoanalyse: Stellen Sie sich eine Anwendung vor, die eine Objekterkennung auf vom Benutzer hochgeladenen Bildern mit Hilfe eines Ultralytics YOLO Modell. Ein Upload-Ereignis auf einen Cloud-Speicher (wie Amazon S3 oder Google Cloud Storage) löst eine serverlose Funktion aus. Diese Funktion lädt das Bild, führt das YOLO zur Erkennung aus, führt möglicherweise eine Bildsegmentierung durch und speichert die Ergebnisse (z. B. Bounding Boxes, Klassenbezeichnungen) in einer Datenbank oder gibt sie über eine API zurück. Das System skaliert automatisch mit der Anzahl der Uploads, ohne dass dafür vorab bereitgestellte Server benötigt werden. Dieses Muster eignet sich für Anwendungen, die von der Inhaltsmoderation bis zur medizinischen Bildanalyse reichen. Weitere Beispiele findest du unter Ultralytics .
- Chatbot-Backends: Viele Chatbots, die auf Large Language Models (LLMs) basieren, verwenden serverlose Funktionen, um eingehende Nutzernachrichten zu verarbeiten. Jede Nachricht löst eine Funktion aus, die den Text verarbeitet, mit der LLM-API (z. B. GPT-4) interagiert, notwendige Aktionen durchführt (z. B. Datenbankabfragen per Vektorsuche) und eine Antwort zurückschickt. Das Pay-per-Request-Modell ist ideal für Chatbots mit schwankendem Nutzungsverhalten. Erforsche Konzepte der natürlichen Sprachverarbeitung (NLP).
Serverlose Konzepte im Vergleich zu verwandten Konzepten
Es ist wichtig, Serverless Computing von verwandten Technologien zu unterscheiden:
- Cloud Computing vs. Serverless: Cloud Computing ist die umfassende Bereitstellung von Rechendiensten über das Internet. Serverless ist ein spezielles Ausführungsmodell innerhalb des Cloud Computing, das die automatische Ressourcenverwaltung und ereignisgesteuerte Funktionen (FaaS) in den Vordergrund stellt und die Serververwaltung vollständig abstrahiert. Bei anderen Cloud-Modellen wie Infrastructure as a Service (IaaS) müssen die Nutzer/innen weiterhin virtuelle Maschinen verwalten.
- Containerisierung vs. Serverless: Containerisierungstools wie Docker verpacken Anwendungen und ihre Abhängigkeiten. Orchestrierungsplattformen wie Kubernetes automatisieren die Bereitstellung, Skalierung und Verwaltung dieser Container. Kubernetes reduziert zwar den operativen Aufwand im Vergleich zur Verwaltung von Bare Metal oder VMs, aber du musst immer noch die zugrunde liegende Cluster-Infrastruktur verwalten. Serverlose Plattformen abstrahieren diese Schicht vollständig; du verwaltest nur den Funktionscode. Hier erfährst du, wie du Docker mit Ultralytics nutzen kannst.
- Edge Computing vs. Serverless: Beim Edge Computing werden Daten lokal auf Geräten in der Nähe der Datenquelle (dem "Edge") verarbeitet, um Latenzzeiten und Bandbreitenverbrauch zu reduzieren. Beim Serverless Computing werden Funktionen in der Regel in zentralen Cloud-Rechenzentren ausgeführt. Ein Edge-KI-Gerät (z. B. ein NVIDIA Jetson) kann eine erste Verarbeitung oder Filterung durchführen und dann eine serverlose Funktion in der Cloud für komplexere Analysen oder Zusammenfassungen auslösen. Lies mehr über KI-gestützte Sicherheitskameras, die oft Edge- und Cloud-Verarbeitung kombinieren.
Zu den führenden serverlosen Plattformen gehören AWS Lambda, Google Cloud Functions und Azure Functions. Diese Dienste stellen die Infrastruktur bereit, die für die Erstellung und den effektiven Betrieb von serverlosen KI/ML-Anwendungen erforderlich ist, und sind oft mit anderen Cloud-Diensten für Speicher, Datenbanken und Messaging integriert. Plattformen wie Ultralytics HUB können den Einsatz und die Verwaltung von Modellen in verschiedenen Architekturen, einschließlich Serverless-Setups, weiter vereinfachen(siehe HUB-Dokumente).