Entdecken Sie, wie Data Lakes als Grundlage für KI und ML dienen. Lernen Sie, wie Sie Rohdaten für das Training von Ultralytics und die Optimierung von Computer-Vision-Workflows nutzen können.
Ein Data Lake ist ein zentraler Speicherort, an dem große Mengen an Rohdaten in ihrem nativen Format gespeichert werden, bis sie benötigt werden. Im Gegensatz zu herkömmlichen Speichersystemen, bei denen Daten vor der Eingabe strukturiert werden müssen, akzeptiert ein Data Lake Daten „wie sie sind“, einschließlich strukturierter Daten (Zeilen und Spalten), semistrukturierter Daten (CSV, Logs, XML, JSON) und unstrukturierter Daten (E-Mails, Dokumente, PDFs) sowie binärer Daten (Bilder, Audio, Video). Diese architektonische Flexibilität macht Data Lakes zu einem Eckpfeiler moderner Big-Data-Strategien, insbesondere für Unternehmen, die künstliche Intelligenz (KI) und maschinelles Lernen (ML) nutzen. Durch die Entkopplung der Datenerfassung von der Datennutzung können Unternehmen relativ kostengünstig riesige Informationspools speichern und die spezifischen Analysefragen später klären.
Im Zusammenhang mit der KI-Entwicklung liegt der Hauptnutzen eines Data Lake in seiner Fähigkeit, Deep-Learning-Workflows (DL) zu unterstützen. Fortschrittliche neuronale Netzwerke benötigen vielfältige und umfangreiche Trainingsdaten, um eine hohe Genauigkeit zu erreichen. Ein Data Lake dient als Sammelstelle, in der Rohdaten – wie Millionen hochauflösender Bilder für Computer Vision (CV) oder Tausende von Audio-Stunden für die Spracherkennung– vor ihrer Verarbeitung gespeichert werden.
Datenwissenschaftler verwenden innerhalb von Data Lakes „Schema-on-Read“-Methoden. Das bedeutet, dass die Struktur nur dann auf die Daten angewendet wird, wenn sie zur Verarbeitung gelesen werden, und nicht, wenn sie in den Speicher geschrieben werden. Dies ermöglicht eine enorme Agilität: Der gleiche Rohdatensatz kann auf verschiedene Weise für unterschiedliche Vorhersagemodellierungsaufgaben verarbeitet werden, ohne die ursprüngliche Quelle zu verändern. Darüber hinaus lassen sich robuste Data Lakes oft in Cloud-Computing-Dienste wie Amazon S3 oder Azure Blob Storage integrieren, was eine skalierbare, parallele Verarbeitung ermöglicht, die für das Training schwerer Modelle wie YOLO26 erforderlich ist.
Obwohl oft verwechselt, unterscheidet sich ein Data Lake von einem Data Warehouse. Ein Data Warehouse speichert Daten in strukturierten Tabellen und ist für schnelle SQL-Abfragen und Business-Intelligence-Berichte optimiert. Es verwendet „Schema-on-Write“, was bedeutet, dass Daten vor der Eingabe in das System über einen ETL-Prozess (Extract, Transform, Load) bereinigt und transformiert werden müssen.
Umgekehrt ist ein Data Lake für Speichervolumen und -vielfalt optimiert. Er unterstützt unüberwachtes Lernen und explorative Analysen, bei denen das Ziel möglicherweise noch nicht definiert ist. Ein Data Warehouse kann Ihnen beispielsweise Auskunft darüber geben, wie viele Produkte im letzten Monat verkauft wurden, während ein Data Lake die rohen Kundenstimmungsprotokolle und Bilddaten enthält, die einem KI-Modell helfen zu verstehen, warum sie verkauft wurden.
Data Lakes spielen in verschiedenen Branchen eine wichtige Rolle und erweitern die Grenzen der Automatisierung:
Bei der Arbeit mit der Ultralytics ziehen Benutzer häufig Teilmengen von Rohdaten aus dem Data Lake ihres Unternehmens, um kommentierte Datensätze für das Training zu erstellen. Sobald die Rohbilder abgerufen und beschriftet sind, können sie zum Trainieren modernster Modelle verwendet werden.
Das folgende Beispiel zeigt, wie ein Entwickler einen lokalen Datensatz laden kann (ähnlich wie beim Abrufen aus einem Data Lake), um das YOLO26- Modell für eine Erkennungsaufgabe zu trainieren.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model using a dataset configuration file
# In a production pipeline, this data might be streamed or downloaded
# from a cloud-based data lake prior to this step.
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)
# Run inference on a new image to verify performance
predictions = model("https://ultralytics.com/images/bus.jpg")