Schema einer HDF5-Datei: eine äußere Datei enthält eine Baumstruktur aus Gruppen (Ordnern), darin liegen Datasets als mehrdimensionale Zahlengitter, die wiederum in kleinere Blöcke (Chunks) zerlegt sind; an Gruppen und Datasets hängen Attribute mit Metadaten.

HDF5

HDF5 ist ein Dateiformat, in dem sich sehr große Mengen von Messwerten und Zahlen ordentlich sortiert in einer einzigen Datei ablegen lassen. Es wird in Forschung, Industrie und KI genutzt, wenn Tabellen und einfache Textdateien zu langsam oder zu unübersichtlich werden.

HDF5 ist ein Dateiformat, also eine festgelegte Art, Daten auf einer Festplatte abzulegen. Es ist dafür gemacht, riesige Mengen von Zahlen zu speichern: Messwerte, Bilder, Sensordaten, Ergebnisse von Simulationen. Der Name steht für « Hierarchical Data Format » in der fünften Version. « Hierarchisch » bedeutet, dass man in einer einzigen Datei Ordner und Unterordner anlegen kann, ähnlich wie auf einem Computer. In diesen inneren Ordnern liegen die eigentlichen Datenblöcke. Eine HDF5-Datei ist also weniger ein Dokument als ein kleines, transportables Archiv.

Warum Forschung und KI nicht bei Textdateien bleiben

Kleine Datenmengen speichert man einfach als Text, zum Beispiel als CSV-Datei mit Zahlen und Kommas. Das funktioniert bis zu ein paar Megabyte gut. Bei mehreren Gigabyte wird es zäh: Der Computer muss jede Zahl aus Text erst wieder in eine echte Zahl umrechnen. Außerdem muss er oft die ganze Datei lesen, selbst wenn man nur einen kleinen Teil braucht. HDF5 speichert die Zahlen direkt in der Form, in der der Prozessor sie ohnehin verarbeitet. Das Lesen ist dadurch deutlich schneller.

Der zweite Vorteil ist die Ordnung. In einer HDF5-Datei stehen neben den Zahlen auch Beschreibungen: Einheiten, Messzeitpunkte, Namen der Messgeräte. Solche Zusatzinformationen nennt man Metadaten. Sie hängen fest an den Daten und können nicht verloren gehen, wenn eine Datei weitergegeben wird. Bei einem Ordner voller Textdateien und einer separaten Notiz passiert genau das ständig.

Für KI ist das Format wichtig, weil Trainingsdaten oft gewaltig sind. Ein Bilddatensatz kann Millionen Einzelbilder umfassen. Als Millionen kleine Dateien wäre das für die Festplatte eine Qual, weil jeder einzelne Zugriff Zeit kostet. In einer HDF5-Datei liegt alles zusammen und lässt sich in großen Portionen einlesen.

Ordner, Datensätze und der Trick mit den Chunks

Eine HDF5-Datei kennt zwei Grundbausteine. Der erste heißt Gruppe und entspricht einem Ordner. Der zweite heißt Dataset und enthält die eigentlichen Zahlen, meist als mehrdimensionales Zahlengitter. Ein Bild ist zum Beispiel ein Gitter aus Höhe, Breite und drei Farbwerten. An jede Gruppe und jedes Dataset kann man kurze Zusatzangaben anhängen, die Attribute heißen.

Der wichtigste technische Trick ist die Aufteilung in Blöcke, im Englischen Chunks. Ein großes Zahlengitter wird nicht als eine lange Kette gespeichert, sondern in gleich große Kästchen zerlegt. Will ein Programm nur einen kleinen Ausschnitt lesen, holt es genau die betroffenen Kästchen und lässt den Rest liegen. Bei einer 50 Gigabyte großen Datei kann so ein einzelner Zugriff im Millisekundenbereich bleiben.

Jeder Block kann zusätzlich komprimiert werden, also platzsparend zusammengepackt. Das Programm packt beim Lesen automatisch wieder aus. Man muss sich darum nicht kümmern. Praktisch nutzt man HDF5 fast nie direkt, sondern über Bibliotheken wie h5py in der Programmiersprache Python. Ein Dataset verhält sich dort fast wie eine normale Liste von Zahlen im Arbeitsspeicher, obwohl es in Wahrheit auf der Festplatte liegt.

Von Klimamodellen bis zu Modellgewichten

Am häufigsten trifft man HDF5 in der Wissenschaft. Klimaforschung, Teilchenphysik, Astronomie und Genforschung speichern ihre Rohdaten in diesem Format oder in NetCDF, das intern auf HDF5 aufbaut. Auch Satellitenbilder der NASA werden so verteilt. Wer solche Daten herunterlädt, erkennt sie an der Endung .h5 oder .hdf5.

In der KI-Welt war HDF5 lange das Standardformat für gespeicherte Modelle. Die Bibliothek Keras legte die gelernten Zahlenwerte eines neuronalen Netzes, die Gewichte genannt werden, in .h5-Dateien ab. Heute nutzen viele Projekte stattdessen neuere Formate wie safetensors, unter anderem aus Sicherheitsgründen. Als Speicher für Trainingsdaten bleibt HDF5 aber verbreitet.

Ein häufiger Irrtum ist, HDF5 mit einer Datenbank zu verwechseln. Eine Datenbank verwaltet viele gleichzeitige Schreibzugriffe und beantwortet Suchanfragen. HDF5 tut beides nicht. Es ist ein Format zum schnellen Lesen großer Zahlenmengen, meist von einem Programm zur Zeit. Genau darin ist es stark, und deshalb hält es sich seit über zwanzig Jahren.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.