Big Data
Big Data umfasst Daten, die für die Werkzeuge eines einzelnen Rechners zu groß, zu schnell oder zu vielfältig sind. Behandelt die drei Vs, MapReduce und Spark sowie die Datensätze hinter moderner KI.
Big Data bezeichnet Daten, deren Umfang, Zuflussrate oder Formatvielfalt die Speicherkapazität und Verarbeitung herkömmlicher Datenbankwerkzeuge auf einem einzelnen Rechner übersteigt. Deshalb werden die Daten auf Rechnercluster verteilt und parallel verarbeitet. Der Analyst Doug Laney von der META Group beschrieb die Herausforderung 2001 anhand der drei Vs: Volume, die Datenmenge; Velocity, die Geschwindigkeit, mit der Daten eintreffen und verarbeitet werden müssen; und Variety, die Vielfalt aus strukturierten Tabellen, Protokollen, Texten, Bildern, Audio und Video. Spätere Definitionen ergänzen Veracity, also die Vertrauenswürdigkeit der Daten, und Value, ihren Wert. Für das maschinelle Lernen ist Big Data sowohl Rohmaterial als auch eine technische Herausforderung: Modelle verbessern sich mit mehr Trainingsdaten, und die Datenpipelines zu ihrer Erfassung, Bereinigung und Bereitstellung machen einen großen Teil des Aufwands bei der Modellentwicklung aus.
Big Data in KI und Computer Vision#
Deep Learning entwickelte sich gemeinsam mit Datensätzen, die zu groß für eine einzelne Festplatte waren. ImageNet, 2009 vorgestellt, wuchs auf mehr als 14 Millionen annotierte Bilder an. Mit den 1,28 Millionen Trainingsbildern der Herausforderung mit 1.000 Klassen wurde das Convolutional Neural Network AlexNet trainiert, das 2012 den Wettbewerb gewann. Metas SA-1B-Datensatz, 2023 zusammen mit dem Segment Anything Model veröffentlicht, umfasst 11 Millionen Bilder und 1,1 Milliarden Segmentierungsmasken. Meta trainierte Llama 3 mit mehr als 15 Billionen Text-Tokens vor. Skalierungsgesetze erklären, warum solche Sammlungen nützlich sind: Der Verlust sinkt vorhersagbar, wenn Datenmenge, Parameterzahl und Rechenleistung gemeinsam wachsen.
In der Computer Vision entsteht das Datenvolumen durch ganze Flotten von Kameras und Sensoren. Ein einzelnes autonomes Fahrzeug zeichnet während jeder Fahrstunde Datenströme von Kameras, Radar und Lidar auf, und Fabriken und Geschäfte fügen Tausende kontinuierliche Videostreams hinzu. Die Zuflussgeschwindigkeit ist wichtig, wenn Ergebnisse während des Dateneingangs benötigt werden, etwa bei der Echtzeit-Inferenz für Verkehrs- oder Produktionslinienvideos. Zur Vielfalt gehören Bilder und Videos ebenso wie Annotationen, Sensormetadaten und Protokolle. Mehr Daten helfen nur, wenn ihre Labels korrekt sind. Daher sind umfangreiche Bilddatensätze auf Datenbereinigung, Deduplizierung und aktives Lernen angewiesen, um auszuwählen, welche neuen Bilder eine Annotation wert sind.
Wie Big Data gespeichert und verarbeitet wird#
Big-Data-Systeme skalieren horizontal: Sie verteilen Daten und Berechnungen auf viele Standardrechner, statt einen einzelnen größeren Server einzusetzen. Googles MapReduce-Arbeit von 2004 beschrieb das Modell, das durch das quelloffene Apache Hadoop weit verbreitet wurde: Die Eingabe wird in Teilmengen aufgeteilt, eine Map-Funktion wird parallel auf jeder Teilmenge auf dem Rechner ausgeführt, auf dem sie gespeichert ist, und Reduce fasst die Teilergebnisse zu einer Antwort zusammen. Apache Spark, 2009 an der UC Berkeley gestartet, hält Zwischenergebnisse im Arbeitsspeicher. Dadurch laufen iterative Aufgaben wie das Modelltraining viel schneller als mit dem festplattenbasierten MapReduce. Rohdateien liegen meist in Cloud-Objektspeichern, die als Data Lake organisiert sind; spaltenorientierte Formate wie Apache Parquet ermöglichen es einer Abfrage, nur die benötigten Spalten einzulesen, und Streaming-Plattformen wie Apache Kafka transportieren Ereignisse mit hoher Zuflussrate.
Dieses Beispiel führt die Map- und Reduce-Schritte mit der Python-Standardbibliothek auf drei Teilmengen von Bildlabels aus:
from collections import Counter
from multiprocessing import Pool
# # Drei Teilmengen von Bildlabels; ein Cluster speichert jede Teilmenge auf einem anderen Rechner
shards = [
["car", "person", "car", "bus"],
["person", "person", "bicycle"],
["car", "person", "dog", "car"],
]
def count_labels(shard):
"""Map step: count the labels in one shard."""
return Counter(shard)
if __name__ == "__main__":
with Pool(processes=3) as pool:
partial_counts = pool.map(count_labels, shards) # # ein Worker-Prozess pro Teilmenge
# # Reduce-Schritt: Teilergebnisse zu einer Gesamtsumme zusammenfassen
totals = sum(partial_counts, Counter())
print(totals.most_common())Jede Teilmenge wird in einem eigenen Prozess gezählt, und der Reduce-Schritt fügt die Teilergebnisse zu [('car', 4), ('person', 4), ('bus', 1), ('bicycle', 1), ('dog', 1)] zusammen. Spark und Hadoop führen dieselben beiden Schritte auf Tausenden von Rechnern aus und senden den Map-Code an die Rechner, auf denen die einzelnen Teilmengen gespeichert sind.
Modelle mit Big Data trainieren#
Ein Trainingslauf liest Big Data in Batches ein. Datenlader decodieren jeweils einige Dutzend bis einige Hundert Bilder von einer lokalen Festplatte oder einem Objektspeicher über mehrere Worker-Prozesse. So muss der gesamte Datensatz nie in den Arbeitsspeicher passen, und beim verteilten Training wird jeder Batch auf viele GPUs aufgeteilt. Der Open-Images-V7-Datensatz zur Objekterkennung von Google ist 561 GB groß und umfasst 1,74 Millionen Trainingsbilder aus 601 Klassen – weit mehr, als die meisten Rechner im Arbeitsspeicher halten können. Wenn ein Datensatz mit cache="ram" im Arbeitsspeicher zwischengespeichert werden soll, schätzt das Ultralytics-YOLO-Training die decodierte Größe anhand von 30 zufälligen Bildern und legt den Cache nur an, wenn das Doppelte dieser Schätzung in den verfügbaren Arbeitsspeicher passt. Größere Datensätze werden in jeder Epoche von der Festplatte eingelesen und decodiert.
Big Data im Vergleich zu verwandten Begriffen#
- Data Mining: Die Suche nach Mustern, Anomalien und Zusammenhängen in Daten beliebiger Größe, häufig auf Big-Data-Plattformen.
- Datenanalyse: Daten abfragen, zusammenfassen und visualisieren, um Entscheidungen zu unterstützen; Big-Data-Analyse ist der Teil, der verteilte Systeme benötigt.
- Datenzentrierte KI: Modelle verbessern, indem die Qualität und Abdeckung ihrer Daten verbessert wird. Das ist besonders wichtig, wenn ein Datensatz zu groß ist, um ihn von Hand zu überprüfen.










