Hugging Face beschleunigt das Streaming riesiger KI-Datensätze
Hugging Face hat das Streaming in seinen Bibliotheken datasets und huggingface_hub für große Trainingsläufe überarbeitet. Mehrere Terabyte umfassende Datensätze sollen sich weiterhin mit streaming=True verwenden lassen, nun aber mit erheblich weniger Startanfragen und höherem Durchsatz. Bestehender Code bleibt kompatibel, sodass viele Nutzer nach einem Bibliotheksupdate ohne zusätzliche Konfiguration profitieren können.
Weniger Anfragen beim Start
Auslöser war ein Test mit nanoVLM, bei dem unabhängige DataLoader-Worker in weniger als einer Minute über 100.000 weitgehend redundante Anfragen erzeugten. Jeder Worker löste die Dateiliste erneut auf, was zu einer Sperre durch den Hub führte. Nun speichert ein persistenter Dateilisten-Cache das Ergebnis des ersten Workers lokal; weitere Prozesse greifen darauf zu. Zusätzlich bündelt eine optimierte Auflösungslogik die notwendigen API-Aufrufe effizienter.
Nach Angaben von Hugging Face reduziert das die Startanfragen um bis zu den Faktor 100 und beschleunigt die Ermittlung der Dateien um den Faktor zehn. In Tests mit 256 Workern auf 64 H100-GPUs traten keine Worker-Abstürze mehr auf. Die Werte stammen aus den beschriebenen Workloads und sollten daher nicht ungeprüft auf jede Netzwerk- und Speicherarchitektur übertragen werden.
Prefetching hält GPUs mit Daten versorgt
Während des eigentlichen Streamings lädt Parquet-Prefetching bereits den nächsten Datenblock, während das Modell den aktuellen verarbeitet. Konfigurierbare Blockgrößen und Puffervolumen erlauben fortgeschrittenen Nutzern, den Datenfluss an Netzwerk, Speicher und Hardware anzupassen. Im Beitrag steigt die Streaming-Rate dadurch auf bis zu das Doppelte. Bei internen Trainings erreichte der Hub-Datenstrom laut Hugging Face ein Tempo auf dem Niveau lokaler SSDs und war schneller als die hierarchische Festplattenlösung des Clusters.
Ein weiterer Faktor ist Xet. Das Backend dedupliziert Inhalte blockweise; für Parquet-Daten nutzt Hugging Face Content Defined Chunking. Doppelte Daten müssen dadurch nicht erneut übertragen werden. Für nicht direkt unterstützte Formate lässt sich HfFileSystem als Grundlage eigener Pipelines verwenden. Zwischengespeicherte Ergebnisse von Verzeichnis- und Musterabfragen vermeiden auch dort wiederholte Requests.
Praktische Bedeutung für ML-Teams
Große Datensätze müssen damit nicht zwingend vor jedem Experiment vollständig auf lokale SSDs oder in einen separaten S3-Speicher kopiert werden. Das verkürzt die Zeit bis zum Trainingsstart, reduziert temporären Speicherbedarf und erleichtert erste Stichproben aus Multi-Terabyte-Sammlungen. Entscheidend bleiben jedoch ausreichende Netzwerkbandbreite, reproduzierbare Datenversionen und ein Plan für Ausfälle externer Dienste. Wer produktiv trainiert, sollte Durchsatz und Kosten mit dem eigenen DataLoader messen. Die Verbesserungen machen Hub-Streaming zu einer ernsthafteren Option, ersetzen aber nicht jede lokale Cache- oder Spiegelstrategie.
Originalquelle: Hugging Face Blog – Streaming datasets: 100x More Efficient



