So trainierst du YOLO mit Amazon-S3-Daten und stellst das Modell mit Ultralytics Platform als gehostete API bereit
Trainiere Ultralytics YOLO26 Schritt für Schritt auf Bildern in deinem Amazon-S3-Bucket und stelle das Modell mit Ultralytics Platform als gehostete API bereit – im Vergleich zu SageMaker.
Miles Deans12 Min. Lesezeit
Wenn deine Bilder bereits in einem Amazon-S3-Bucket liegen, kannst du darauf ein Ultralytics-YOLO-Modell trainieren und es als gehostete API bereitstellen, ohne eine zweite Kopie des Datensatzes hochzuladen. Ultralytics Platform indexiert den Bucket direkt vor Ort, ermöglicht dir, YOLO26 auf einer Cloud-GPU zu annotieren und zu trainieren, und stellt das trainierte Modell an einem dedizierten Endpunkt bereit, den du über HTTPS aufrufst. Diese Anleitung führt dich durch alle Schritte – von der IAM-Richtlinie bis zu deiner ersten Vorhersage – und vergleicht den Ablauf mit Amazon SageMaker, Google Vertex AI und Azure Machine Learning.
Der gleiche Ablauf funktioniert mit Google Cloud Storage und Azure Blob Storage; anstelle des AWS-Zugriffsschlüssels verwendest du einen JSON-Schlüssel für ein Dienstkonto oder eine Verbindungszeichenfolge mit dem Kontozugriffsschlüssel.
So fügt sich der Arbeitsablauf zusammen#
Die Pipeline umfasst fünf Phasen. Deine Originalbilder bleiben in deinem Bucket, während das Cloud-Training für die Dauer eines Trainingslaufs mit temporären Kopien arbeitet:
- Verbinden: Verbinde einen S3-Bucket mit einem schreibgeschützten IAM-Benutzer.
- Indexieren: Verwandle einen Ordner in einen Platform-Datensatz. Platform liest die Bildabmessungen und alle YOLO-Labels, die es findet, und speichert keine zweite Bildkopie.
- Annotieren: Annotiere Bilder im Browser oder verwende die YOLO-Labels, die sich bereits im Bucket befinden.
- Trainieren: Trainiere ein YOLO26-Modell auf einer Cloud-GPU. Während des Trainingslaufs werden temporäre Bildkopien verwendet.
- Bereitstellen: Stelle das Modell an einem dedizierten Endpunkt in einer von 42 Regionen bereit und sende ihm Bilder mit einem API-Schlüssel.
Datensätze für Objekterkennung, Segmentierung, Pose und orientierte Begrenzungsboxen (OBB) werden anhand der Struktur ihrer Labels erkannt. Daher gelten dieselben Schritte für jede Computer-Vision-Aufgabe.
Vor dem Start: Tarife, Berechtigungen und Datengrenzen#
Du brauchst drei Dinge:
- Einen Pro- oder Enterprise-Arbeitsbereich. Datensätze aus Amazon S3, Google Cloud Storage und Azure Blob Storage erfordern einen Pro- oder Enterprise-Tarif. Pro kostet 29 $ pro Nutzerplatz und Monat und umfasst monatlich 30 $ Guthaben pro Nutzerplatz für nutzungsabhängige Rechenleistungen wie Cloud-Training.
- Die Rolle als Arbeitsbereichsadministrator oder -inhaber, die zum Verbinden von Cloud-Speicher erforderlich ist.
- Einen AWS-IAM-Benutzer, der den Bucket auflisten und auslesen darf.
Bevor du den Bucket verbindest, solltest du wissen, welche Daten ihn verlassen. Platform streamt Originale bei Bedarf zum Durchsuchen und Annotieren; indexierte Bilder werden nicht auf dein Platform-Speicherkontingent angerechnet. Für jede Verbindung gibt es einen Schalter für KI-Funktionen, der standardmäßig eingeschaltet ist. Solange er eingeschaltet ist, können Ultralytics-GPUs Bilder für die Annotation, die Suche nach ähnlichen Bildern und das Cloud-Training lesen. Externe KI-Anbieter können Bilder außerdem für kostenpflichtige Annotationsmodelle mit dem Anbieterschlüssel deines Arbeitsbereichs und für die Bildgenerierung verarbeiten, wenn Schreibzugriff aktiviert ist. Beim Cloud-Training werden für die Dauer eines Trainingslaufs temporäre Kopien verwendet; die Suche nach ähnlichen Bildern speichert Einbettungen, bis die Bilder aus Platform entfernt werden. Schalte die Funktion aus, um keine neuen KI-Aufgaben zu starten (bereits laufende Aufgaben werden abgeschlossen); die manuelle Annotation und das lokale Training funktionieren weiterhin. Platform verändert oder löscht deine Objekte niemals.
Schritt 1: Erstelle einen schreibgeschützten IAM-Benutzer#
Öffne in der AWS-Konsole IAM > Users, erstelle einen Benutzer ohne Konsolenzugriff und füge eine Richtlinie hinzu, die dem Benutzer Listen- und Lesezugriff auf den Bucket gewährt:
{
"Version": "2012-10-17",
"Statement": [
{ "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" },
{
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetObject"],
"Resource": ["arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*"]
}
]
}s3:ListAllMyBuckets ist optional. Damit kann Platform deine Buckets finden, sodass du ihre Namen nicht eingeben musst.
Öffne anschließend den Tab Security credentials des Benutzers und erstelle einen Zugriffsschlüssel. Platform benötigt einen langlebigen IAM-Benutzerschlüssel: Temporäre AWS-STS-Anmeldedaten werden abgelehnt, darunter Anmeldedaten für Rollensitzungen und Schlüssel aus IAM Identity Center, da sie ablaufen würden, solange der Datensatz noch verbunden ist. Verwende dafür einen eigens eingerichteten Benutzer, niemals Root-Anmeldedaten. Platform verschlüsselt den Schlüssel im Ruhezustand mit AES-256-GCM und gibt ihn niemals an Trainingsprozesse weiter. Du kannst den Zugriff jederzeit widerrufen, indem du den Schlüssel in IAM deaktivierst.
Schritt 2: Verbinde den Bucket mit Ultralytics Platform#
- Gehe in Platform zu Settings > Integrations und wähle Amazon S3 aus.
- Gib die Zugriffsschlüssel-ID, den geheimen Zugriffsschlüssel und die Bucket-Region ein, zum Beispiel
us-east-1. - Klicke auf Find available buckets und wähle die zu verbindenden Buckets aus. Alternativ kannst du einen Bucket-Namen eingeben, wenn die Richtlinie das Auffinden von Buckets nicht erlaubt.
- Klicke auf Connect. Platform prüft vor dem Speichern, ob die Buckets aufgelistet und ausgelesen werden können.
Eine Verbindung liest Buckets in einer Region aus. Wenn deine Daten über mehrere Regionen verteilt sind, musst du daher für jede Region eine Verbindung herstellen. Die Anleitung zur Amazon-S3-Integration beschreibt die optionale Schreibberechtigung für die Bildgenerierung.
Schritt 3: Erstelle einen Datensatz aus dem Bucket#
Klicke auf New Dataset, öffne den Tab Cloud, wähle den Bucket aus, navigiere zum Datenordner und erstelle den Datensatz. Platform listet den Ordner einmal auf und indexiert die gefundenen Inhalte:
- Bilder: Objekte vom Typ
.jpg,.jpeg,.png,.webpund.avif. - Labels: YOLO-Dateien vom Typ
.txt, zugeordnet nach dem üblichen Musterimages/bislabels/oder als Dateien neben den jeweiligen Bildern. - Klassen: Eine Datei vom Typ
data.yamlenthält die Klassennamen, wie bei einem normalen YOLO-Datensatz. - Aufteilungen: Ordnernamen wie
train,valundtestweisen die Aufteilungen automatisch zu.
Ein einzelner Import indexiert bis zu 500.000 Objekte. Teile größere Buckets daher auf mehrere Datensätze auf. Behandle indexierte Objekte als unveränderlich: Jedes Bild ist an die ETag seines S3-Objekts gebunden, und Platform stellt ein überschriebenes Bild nicht mehr bereit. Um später Daten hinzuzufügen, lade neue Objekte hoch und erstelle einen neuen Datensatz, da der Index nur einmal beim Erstellen des Datensatzes angelegt wird.
Schritt 4: Annotiere oder überprüfe die Bilder#
Öffne den Datensatz, um die importierten Labels im Annotationseditor zu überprüfen. Wenn der Bucket noch keine Labels enthält, kannst du Boxen und Masken manuell einzeichnen oder bei aktivierten KI-Funktionen die intelligente Annotation (SAM für Objekterkennung, Segmentierung und OBB; YOLO für Pose) sowie die automatische Annotation nutzen, um den Prozess zu beschleunigen. Die Labels werden in Platform gespeichert, während deine Bucket-Objekte unverändert bleiben.
Schritt 5: Trainiere YOLO26 auf einer Cloud-GPU#
Klicke beim Datensatz oder in einem Projekt auf New Model, wähle ein Basismodell aus und starte einen Cloud-Trainingslauf:
- Basismodell: Wähle ein offizielles Ultralytics-Modell (YOLO26 wird empfohlen) oder eines deiner eigenen Modelle zur Feinabstimmung aus. Es werden nur Modelle aufgeführt, die mit der Aufgabe des Datensatzes kompatibel sind.
- Parameter: Lege Epochen, Bildgröße und Batch-Größe fest oder behalte die Standardwerte bei.
- GPU: Wähle eine GPU von Ultralytics Cloud aus. Im Dialog werden der Stundensatz sowie Schätzungen für Laufzeit und Gesamtkosten angezeigt, bevor du den Trainingslauf startest. Unsere Anleitung zur Auswahl einer Cloud-GPU hilft dir bei der Abwägung.
Während des Trainingslaufs werden Metriken, Konsolenausgaben und Systemdiagramme im Browser angezeigt; Prüfpunkte werden automatisch gespeichert. Nach Abschluss des Trainings zeigt die Modellseite die Metriken und – sofern Validierungsergebnisse vorliegen – eine detaillierte Analyse, etwa eine Konfusionsmatrix.
Schritt 6: Stelle das Modell als gehostete API bereit#
Öffne den Tab Deploy des Modells. Eine Karte und eine Tabelle zeigen 42 Regionen, sortiert nach der gemessenen Latenz von deinem Standort aus. Klicke in der gewünschten Region auf Deploy, prüfe CPU, Arbeitsspeicher und Preis und klicke auf Create Deployment.
Die gewählte Größe bestimmt die Abrechnung:
- Standardgröße (1 vCPU, 2 GiB): kostenlos; bei Inaktivität wird auf null herunterskaliert.
- Benutzerdefinierte Größen (bis zu 8 vCPU und 32 GiB): halten eine Instanz warm und werden ab der Betriebsbereitschaft bis zum Stoppen des Endpunkts zum angezeigten regionalen Stundensatz abgerechnet – auch während Leerlaufzeiten.
Jeder dedizierte Endpunkt ist ein Dienst für einen einzelnen Mandanten mit eigener URL und Überwachung und ist an einen API-Schlüssel deines Arbeitsbereichs gebunden. In kostenlosen Arbeitsbereichen sind 3 Bereitstellungen möglich, in Pro 10 und in Enterprise unbegrenzt viele. In unserer Anleitung zu dedizierter und geteilter Inferenz erfährst du, wann ein dedizierter Endpunkt die bessere Wahl ist.
Schritt 7: Rufe den Endpunkt auf#
Installiere Requests mit python -m pip install requests und speichere ein Bild als image.jpg. Ersetze die Beispiel-URL durch die kopierte URL deiner Bereitstellung mit angehängtem /predict und ersetze YOUR_API_KEY durch den an diese Bereitstellung gebundenen Schlüssel:
import requests
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.5, "imgsz": 640}
with open("image.jpg", "rb") as f:
response = requests.post(url, headers=headers, data=data, files={"file": f})
print(response.json())Dieselbe Anfrage mit cURL:
curl -X POST "https://YOUR_DEPLOYMENT_URL.run.app/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.5" \
-F "imgsz=640"Jeder Endpunkt bietet außerdem eine interaktive API-Referenz unter /docs und eine /health-Prüfung. Direkte Anfragen umgehen die API-Ratenbegrenzung von Platform, aber jeder Endpunkt wird von einer einzelnen Instanz bedient: Anfragen, die nicht zeitnah bearbeitet werden können, erhalten ein 429 mit einem Retry-After-Header, und Anfragekörper sind auf 32 MB begrenzt. Sobald der Endpunkt aktiv ist, kannst du Anfragen, Fehler und Latenz überwachen – direkt auf der Bereitstellungsseite.
Kosten, Grenzen und Sicherheit auf einen Blick#
| Punkt | Das erwartet dich |
|---|---|
| Tarif | Pro (29 $ pro Nutzerplatz und Monat) oder Enterprise für Datensätze aus S3, Google Cloud Storage und Azure Blob |
| Speicher | Indexierte Bilder bleiben in deinem Bucket und werden nicht auf das Platform-Speicherkontingent angerechnet |
| Training | Abrechnung nach GPU-Zeit über Guthaben; der Dialog schätzt die Kosten vor dem Start |
| Endpunkt | Standardgröße kostenlos mit Herunterskalierung auf null; benutzerdefinierte Größen werden während des Betriebs stundenweise abgerechnet |
| Importgröße | Bis zu 500.000 Objekte pro Import |
| Anmeldedaten | Langlebiger IAM-Benutzerschlüssel, im Ruhezustand verschlüsselt und für Trainingsprozesse nicht zugänglich |
| Für S3-Datensätze nicht verfügbar | Datensatzklonen, Versions-Schnappschüsse, Gesichter unkenntlich machen, Bilder aus anderen Datensätzen einfügen |
Ultralytics Platform im Vergleich zu SageMaker, Vertex AI und Azure ML#
Allgemeine Cloud-Plattformen für maschinelles Lernen können ebenfalls Daten in ihrem eigenen Speicher zum Trainieren und Bereitstellen von Modellen verwenden. Die Angaben zu Speicher und Bereitstellung in der folgenden Tabelle stammen aus der Dokumentation der jeweiligen Plattform; die letzte Spalte enthält unsere Einschätzung.
| Plattform | Speicherort der Trainingsdaten | Bereitstellungsoptionen | Empfohlener Einsatzbereich (unsere Einschätzung) |
|---|---|---|---|
| Ultralytics Platform mit Ultralytics YOLO | Direkte Indexierung in S3, Google Cloud Storage oder Azure Blob | Dedizierte Endpunkte mit einer Instanz in 42 Regionen; Herunterskalierung auf null bei der Standardgröße | Teams, die YOLO-Objekterkennung, Segmentierung, Pose oder OBB vom Bucket bis zur API nutzen möchten, ohne Trainings- oder Bereitstellungscode zu schreiben |
| Amazon SageMaker AI | Trainingsaufträge lesen Daten aus Amazon S3, Amazon EFS oder Amazon FSx for Lustre | Echtzeitendpunkte mit automatischer Skalierung, serverloser und asynchroner Inferenz | Teams mit bestehenden ML-Pipelines in AWS, die eigene Container und Bereitstellungsoptionen wählen möchten |
| Google Vertex AI | Serverlose Trainingsaufträge binden zugängliche Cloud-Storage-Buckets unter /gcs/ ein | Verwaltete Endpunkte für Online-Inferenz | Teams, die auf Google-Cloud-Daten und -Werkzeuge setzen |
| Azure Machine Learning | Datenspeicher verweisen auf vorhandenen Azure-Speicher, zum Beispiel Blob Storage | Verwaltete Online-Endpunkte für Echtzeit-Inferenz | Teams, die auf Azure setzen |
Die Dokumentation zu Trainingsdaten von SageMaker führt S3, EFS und FSx for Lustre als Quellen mit Streaming- und Download-Eingabemodi auf. Die serverlose Inferenz übernimmt die Skalierung für dich und eignet sich für Datenverkehr mit Leerlaufzeiten, bei dem Kaltstarts tolerierbar sind. Du kannst einen von SageMaker bereitgestellten Container verwenden oder einen eigenen mitbringen. Vertex AI führt benutzerdefiniertes Training mit einer Python-Anwendung in einem vorgefertigten oder benutzerdefinierten Container aus. Azure Machine Learning bindet vorhandenen Azure-Speicher über Datenspeicher an und stellt Modelle über verwaltete Online-Endpunkte bereit. Diese Breite ist die Stärke einer allgemeinen Plattform. Nach unserer Einschätzung erfordert ein benutzerdefinierter YOLO-Arbeitsablauf mehr Konfiguration; die Containeranforderungen hängen von den gewählten Trainings- und Bereitstellungsoptionen ab. Wenn du bei AWS bleiben möchtest, zeigt dir unsere Anleitung zur Bereitstellung mit SageMaker, wie du dort ein YOLO-Modell bereitstellst.
Ultralytics Platform ist bewusst enger ausgerichtet. Die Plattform wurde für Ultralytics-YOLO-Modelle entwickelt, sodass die oben beschriebenen Schritte das Trainingsskript und den Bereitstellungscontainer ersetzen. Sie eignet sich weniger, wenn deine Organisation für jede Integration temporäre STS-Anmeldedaten verlangt oder ein einzelner Endpunkt bei hoher gleichzeitiger Auslastung über viele Instanzen skalieren muss. Falls du noch entscheidest, wo die Inferenz laufen soll, vergleicht unsere Anleitung zu Cloud und selbst gehostetem Betrieb Kosten, Latenz und Datenkontrolle.
Häufig gestellte Fragen
Ultralytics Platform verbindet einen S3-Bucket, indexiert die Bilder direkt vor Ort, trainiert YOLO26 auf einer Cloud-GPU und stellt das Modell an einem dedizierten HTTPS-Endpunkt bereit. Amazon SageMaker AI trainiert ebenfalls mit Daten aus S3 und bietet Echtzeit-, serverlose und asynchrone Inferenz. Je nach Bereitstellungsoption kommen dabei von SageMaker bereitgestellte oder benutzerdefinierte Container zum Einsatz. Google Vertex AI und Azure Machine Learning bieten ähnliche Arbeitsabläufe mit ihrem jeweiligen Speicher – Cloud Storage beziehungsweise Azure-Speicher – statt mit einem vorhandenen S3-Bucket.
Platform speichert keine zweite Kopie deines Datensatzes: Die Bilder werden indexiert und die Originale bei Bedarf gestreamt. Bei aktivierten KI-Funktionen verwendet das Cloud-Training für die Dauer eines Trainingslaufs temporäre Kopien außerhalb deines Buckets, und die Suche nach ähnlichen Bildern speichert eine Einbettung jedes Bildes. Platform verändert oder löscht deine Objekte niemals.
Derzeit nicht. Platform benötigt einen langlebigen Zugriffsschlüssel von einem eigens eingerichteten IAM-Benutzer und lehnt STS-Anmeldedaten ab, da diese während der Verbindung des Datensatzes ablaufen. Beschränke den Benutzer auf Listen- und Lesezugriff und deaktiviere den Schlüssel in IAM, um den Zugriff zu widerrufen.
Für S3-Datensätze ist ein Pro-Tarif (29 $ pro Nutzerplatz und Monat mit 30 $ monatlichem Guthaben pro Nutzerplatz) oder ein Enterprise-Tarif erforderlich. Das Training wird nach GPU-Zeit abgerechnet; der Trainingsdialog schätzt die Kosten, bevor du startest. Die Standardgröße des Endpunkts ist kostenlos und wird bei Inaktivität auf null herunterskaliert; benutzerdefinierte Größen werden während des Betriebs stundenweise abgerechnet.
Ja. Google Cloud Storage wird über einen Dienstkontoschlüssel im JSON-Format und die Rolle Storage Object Viewer angebunden, Azure Blob Storage über eine HTTPS-Verbindungszeichenfolge mit Kontozugriffsschlüssel (SAS-Token-Zeichenfolgen werden nicht akzeptiert). Die Schritte für Datensatz, Training und Bereitstellung sind dieselben.
Ein Datensatz wird bei seiner Erstellung einmalig indiziert, daher werden neue Objekte nicht automatisch erfasst. Füge neue Objekte hinzu, statt vorhandene zu überschreiben, erstelle anschließend einen neuen Datensatz, der sie enthält, und trainiere das Modell erneut oder passe es weiter an.
Ja. Lade die Gewichte herunter oder exportiere das Modell auf der Modellseite in Formate wie ONNX, TensorRT und CoreML. Führe es anschließend mit dem Ultralytics Python-Paket auf deinen eigenen Servern oder Edge-Geräten aus.
Verfasst von
Kommentare
Stelle eine Frage, teile deine Ergebnisse oder hilf anderen.










