Serverless Computing
Entdecke, wie serverloses Computing die Bereitstellung von AI vereinfacht. Erfahre, wie du mit Ultralytics YOLO26 skalierbare und kosteneffiziente Workflows für effiziente ML-Inferenz entwickelst.
Serverless Computing ist ein Cloud-Ausführungsmodell, mit dem Entwickler Anwendungen erstellen und ausführen können, ohne die Komplexität der Infrastrukturverwaltung bewältigen zu müssen. Bei diesem Modell verwaltet der Cloud-Anbieter die Zuweisung und Bereitstellung von Servern dynamisch und abstrahiert die zugrunde liegende Hardware und die Betriebssysteme vom Benutzer. Der Code wird in zustandslosen Containern ausgeführt, die durch bestimmte Ereignisse ausgelöst werden, etwa eine HTTP-Anfrage, eine Datenbankänderung oder das Hochladen einer Datei. Dieser Ansatz ist für moderne Strategien im Bereich Cloud Computing besonders relevant, da Unternehmen nur für die tatsächlich genutzte Rechenzeit bezahlen und die Anforderungen an die Skalierbarkeit automatisch erfüllt werden, indem die Anzahl der Instanzen je nach Datenverkehrsaufkommen von null auf Tausende erweitert wird.
Die Funktionsweise von Serverless Computing für KI#
Im Mittelpunkt von Serverless Computing steht das Konzept der Funktion als Dienst (FaaS), bei dem Anwendungen in einzelne Funktionen aufgeteilt werden, die klar abgegrenzte Aufgaben ausführen. Für Praktiker im Bereich des maschinellen Lernens (ML) bietet dies einen optimierten Weg zur Bereitstellung von Modellen. Statt einen dedizierten Server zu betreiben, der in Zeiten geringen Datenverkehrs ungenutzt bleibt, kann eine Serverless-Funktion bei Bedarf gestartet werden, um Daten zu verarbeiten, und sich unmittelbar danach wieder beenden.
Eine wichtige Überlegung bei dieser Architektur ist jedoch der „Kaltstart“ – die Latenz, die entsteht, wenn eine Funktion zum ersten Mal oder nach einer Phase der Inaktivität aufgerufen wird. Um dies abzumildern, verwenden Entwickler häufig leichtgewichtige Architekturen wie YOLO26 oder Techniken wie die Modellquantisierung, um kurze Ladezeiten sicherzustellen, was für eine geringe Inferenzlatenz entscheidend ist.
Praxisanwendungen im Machine Learning#
Serverless-Architekturen eignen sich besonders gut für ereignisgesteuerte Workflows und Datenpipelines im Bereich der Computervision (CV).
- Automatisierte Datenvorverarbeitung: Wenn ein Benutzer einen Rohdatensatz in einen Speicherdienst wie Amazon S3 hochlädt, kann dadurch eine Serverless-Funktion ausgelöst werden, die eine sofortige Datenvorverarbeitung durchführt. Die Funktion kann Bilder in der Größe anpassen, Pixelwerte normalisieren oder Dateiformate überprüfen, bevor die Daten in eine Trainingsdaten-Pipeline gelangen. So wird ohne manuellen Eingriff eine einheitliche Datenbasis sichergestellt.
- Intelligente Überwachung bei Bedarf: Im Bereich KI für die Sicherheit kann ein Bewegungssensor eine Kamera auslösen, die ein Einzelbild aufnimmt. Dieses Ereignis ruft eine Cloud-Funktion auf, die ein Modell zur Objekterkennung hostet. Das Modell analysiert das Bild, um zwischen einem harmlosen Tier und einem potenziellen Eindringling zu unterscheiden, und sendet nur bei Bedarf eine Warnung. Im Vergleich zu kontinuierlichem Streaming werden dadurch die Bandbreiten- und Speicherkosten drastisch reduziert.
Python-Beispiel: Serverless-Inferenz-Handler#
Der folgende Code veranschaulicht einen konzeptionellen Serverless-Handler. Er initialisiert eine globale Modellinstanz, um sogenannte „Warmstarts“ zu nutzen, bei denen der Container zwischen Anfragen aktiv bleibt, und verarbeitet den Pfad zu einem eingehenden Bild.
from ultralytics import YOLO
# Initialize the model outside the handler to cache it for subsequent requests
# YOLO26n is ideal for serverless due to its compact size and speed
model = YOLO("yolo26n.pt")
def lambda_handler(event, context):
"""Simulates a serverless function handler triggered by an event. 'event' represents the input payload containing
the image source.
"""
image_source = event.get("url", "https://ultralytics.com/images/bus.jpg")
# Perform inference
results = model(image_source)
# Return prediction summary
return {
"statusCode": 200,
"body": {
"objects_detected": len(results[0].boxes),
"top_class": results[0].names[int(results[0].boxes.cls[0])] if len(results[0].boxes) > 0 else "None",
},
}Abgrenzung verwandter Technologien#
Um Serverless Computing zu verstehen, muss es von anderen Infrastrukturmodellen unterschieden werden, die häufig in MLOps eingesetzt werden.
- Serverless Computing im Vergleich zu Edge Computing: Beide Ansätze zielen zwar auf eine höhere Effizienz ab, arbeiten jedoch an unterschiedlichen Orten. Edge Computing verarbeitet Daten lokal auf dem Gerät, beispielsweise auf einer intelligenten Kamera oder einem IoT-Gerät, um die Übertragungszeit über das Netzwerk zu minimieren. Serverless Computing findet in einer zentralisierten öffentlichen Cloud statt. Hybride Lösungen verarbeiten erste Daten häufig am Edge und senden komplexe Anomalien zur weitergehenden Analyse medizinischer Bilder oder forensischen Prüfung an Serverless-Cloud-Funktionen.
- Serverless Computing im Vergleich zu Kubernetes: Kubernetes ist eine Orchestrierungsplattform für die Containerisierung, die Entwicklern eine detaillierte Kontrolle über die Clusterumgebung, das Netzwerk und die Pods ermöglicht. Obwohl Kubernetes leistungsfähig ist, erfordert es einen erheblichen Verwaltungsaufwand. Serverless-Plattformen wie Google Cloud Functions oder Azure Functions abstrahieren diese Orchestrierung vollständig, sodass sich Teams ausschließlich auf die Codelogik statt auf den Zustand der Knoten konzentrieren können.
- Serverless Computing im Vergleich zu IaaS: Infrastruktur als Dienst (IaaS) stellt virtualisierte Rechenressourcen über das Internet bereit, etwa Amazon EC2. Bei IaaS ist der Benutzer für das Einspielen von Betriebssystem-Patches und die Verwaltung der Middleware verantwortlich. Im Gegensatz dazu entfallen beim Serverless Computing diese betrieblichen Aufgaben, sodass sich Entwickler auf übergeordnete Tätigkeiten wie die Verbesserung der Genauigkeit bei der Bildklassifizierung konzentrieren können.
Durch den Einsatz von Serverless-Architekturen können Entwickler robuste KI-Lösungen bereitstellen, die kosteneffizient sind und unvorhersehbare Arbeitslasten bewältigen. Dabei können sie Tools wie die Ultralytics Platform nutzen, um den Prozess des Modelltrainings und der Modellverwaltung vor der Bereitstellung zu optimieren.









