Journal > KI-Workflows > Daten

Data Version Control mit DVC: Daten und Modelle versionieren

Erfahren Sie, wie Data Version Control (DVC) Ihr Machine Learning revolutioniert. Ein strategischer Guide für die Versionierung von Daten, Code und Modellen.

Autor: Hagen Müllershausen 6 Min. Lesedauer 11. März 2026

TL;DR

  • Hybride Versionierung: DVC erweitert Git. Der Quellcode bleibt in Git, während große Datenmengen und Modelle in separaten Remote-Speichern (Cloud oder On-Premises) verwaltet werden.
  • Reproduzierbarkeit: Durch die Verknüpfung von Code-Versionen mit exakten Daten-Hashes lässt sich jedes ML-Modell jederzeit bitgenau reproduzieren.
  • Speichereffizienz: Intelligentes Caching und die Vermeidung von Dateiduplikaten halten den Workspace schlank, selbst bei Terabytes an Trainingsdaten.
  • Kollaboration: Teams können große Datensätze sicher teilen und Änderungen auditieren, ohne die Limits von Git-Hostern wie GitHub zu sprengen.

Jeder, der schon einmal in einem Data-Science-Projekt gearbeitet hat, kennt das Problem: Der Code ist sauber in Git versioniert, aber die dazugehörigen Daten liegen verstreut auf lokalen Festplatten oder unstrukturierten Netzlaufwerken. Dateinamen wie dataset_final_v3_really_final.csv sind in vielen technischen Teams leider immer noch an der Tagesordnung. Wenn ich in meiner Arbeit als Berater für B2B-Unternehmen und Growth-Teams technische Audits durchführe, ist die fehlende Reproduzierbarkeit von Machine-Learning-Modellen einer der häufigsten und teuersten Fehler. Genau hier kommt Data Version Control (DVC) ins Spiel.

In diesem Artikel zeige ich Ihnen, wie Sie mit DVC eine Brücke zwischen Ihrem Code und Ihren Daten schlagen. Es geht nicht um theoretische Konzepte, sondern um einen fundierten Blick auf die Architektur, die strategische Einordnung und die Frage, wie Sie reproduzierbare Machine Learning Experiments in Ihrem Unternehmen etablieren. Wenn Sie verstehen, wie DVC and Git zusammenarbeiten, um your code and your data synchron zu halten, werden Sie die Effizienz Ihrer Daten-Pipelines drastisch steigern.

Warum Git for the Versioning von Daten nicht ausreicht

Git ist der unangefochtene Standard für die Versionierung von Quellcode. Es ist schnell, dezentral und perfekt für Textdateien geeignet. Doch sobald Sie versuchen, ein 50 Gigabyte großes Dataset oder ein fertig trainiertes Deep-Learning-Modell in ein Git-Repository zu pushen, stoßen Sie an harte Grenzen. Git ist schlichtweg nicht für große Binärdateien gemacht. Das Repository bläht sich auf, Klon-Vorgänge dauern Stunden und Plattformen wie GitHub oder GitLab blockieren den Upload ab einer bestimmten Dateigröße.

Die klassische Notlösung vieler Teams besteht darin, Daten auf Amazon S3 oder einem lokalen Server abzulegen und im Code hartcodierte Pfade zu verwenden. Das bricht jedoch die Versionierungskette. Wenn sich die Datenquelle ändert, wissen Sie einen Monat später nicht mehr, mit welchem exakten Datensatz ein bestimmtes Modell trainiert wurde. You get what you track – und wenn Sie Ihre Daten nicht tracken, verlieren Sie die Kontrolle über Ihre Machine-Learning-Projekte.

Understanding DVC: Die Architektur hinter Data Version Control

DVC ist ein quelloffenes, in Python geschriebenes Kommandozeilen-Tool, das speziell für Machine Learning und Data Science entwickelt wurde. Das Design-Prinzip von DVC ist genial einfach: Es ahmt die Befehlssyntax von Git nach (wie dvc add oder dvc checkout), um die Lernkurve für Entwickler flach zu halten, lagert aber die schweren Daten aus.

Wenn ich eine große Datei mit DVC zu meinem Projekt hinzufüge, passieren im Hintergrund mehrere Dinge. DVC berechnet zunächst einen eindeutigen MD5-Hash für diese Datei. Die Originaldatei wird in einen lokalen DVC-Cache verschoben, und in meinem Arbeitsverzeichnis wird ein intelligenter Dateilink (Symlink oder Hardlink) erstellt. Gleichzeitig generiert DVC eine winzige, menschenlesbare Metadaten-Datei (z. B. data.csv.dvc).

Diese .dvc-Datei enthält den Hash-Wert und Verweise auf die Originaldaten. Der entscheidende Trick: Ich füge die riesige Originaldatei automatisch zur .gitignore hinzu, während ich nur die winzige .dvc-Datei in Git einchecke. So bleibt das Git-Repository winzig, aber Git “weiß” über den Hash-Wert exakt, in welchem Zustand sich die Daten zu jedem beliebigen Commit befanden.

Versioning Data and Models: Der hybride Ansatz

Dieser hybride Ansatz ist das Herzstück von Data Version Control. Er trennt die Verwaltungsebene von der Speicherebene. Für B2B-Unternehmen, bei denen Data Governance und Compliance (wie die DSGVO) eine große Rolle spielen, ist dies ein massiver Vorteil.

Sie können Ihren Code und die DVC-Metadaten auf einer öffentlichen oder gehosteten Plattform wie GitHub verwalten, während die sensiblen Kundendaten, die für das Training der Models verwendet werden, das firmeneigene Rechenzentrum nie verlassen. DVC agiert hierbei als Vermittler. Wenn Sie einen alten Git-Commit auschecken, liest DVC die damaligen .dvc-Dateien und stellt exakt die Datenversion im Workspace wieder her, die zu diesem Code-Stand gehörte. Das ist ein practical guide zur echten Reproduzierbarkeit.

Connecting Storage: Remote-Systeme für DVC

Lokales Caching ist gut, aber der wahre Wert von DVC entfaltet sich in der Teamarbeit. Ähnlich wie Sie bei Git einen Remote-Server (Origin) haben, können Sie bei DVC Remote-Speicher konfigurieren. DVC unterstützt eine Vielzahl von Storage-Backends, darunter Amazon S3, Google Cloud Storage, Azure Blob Storage, HDFS oder einfache SSH/SFTP-Server.

Wenn ein Data Scientist in meinem Team neue Trainingsdaten bereinigt und hinzufügt, pusht er den Code via Git zu GitHub und die eigentlichen Daten via DVC in unseren S3-Bucket. Ein anderer Kollege zieht sich den neuesten Code, führt einen DVC-Pull-Befehl aus und hat sofort die exakt passenden Daten auf seinem Rechner, ohne manuell Dateien herunterladen oder entpacken zu müssen. Dieses Setup eliminiert den berüchtigten “Auf meinem Rechner funktioniert es”-Fehler fast vollständig.

ML Experiments und Metriken tracken

Wenn Sie auf dieser Basis später zustandsbehaftete Agenten-Workflows aufbauen, knüpft daran auch das LangGraph Tutorial für produktive KI-Workflows an.

DVC ist mehr als nur ein glorifiziertes Speichertool für große Dateien. Es ist ein vollwertiges Werkzeug für das Management von Machine Learning Experiments. In der Praxis entwickeln sich Modelle iterativ. Sie ändern Hyperparameter, fügen neue Features hinzu oder filtern Rauschen aus den Daten.

DVC ermöglicht es, Metriken (wie Accuracy, Loss oder F1-Score) direkt mit den Git-Commits zu verknüpfen. Durch spezielle Befehle können Sie Pipelines definieren, die genau festlegen, welche Skripte in welcher Reihenfolge ausgeführt werden müssen, um aus Rohdaten ein fertiges Modell zu generieren. Wenn sich eine Abhängigkeit (z. B. die Rohdaten) ändert, weiß DVC, welche Teile der Pipeline neu berechnet werden müssen und welche aus dem Cache übernommen werden können. Das spart enorme Mengen an Rechenzeit und Cloud-Kosten.

DVC im Vergleich: Abgrenzung zu MLflow und Co.

In technischen Diskussionen werde ich oft gefragt, ob DVC Tools wie MLflow oder Weights & Biases ersetzt. Die kurze Antwort lautet: Nein, sie ergänzen sich. Während DVC die Basis-Infrastruktur für Daten- und Pipeline-Versionierung stellt, fokussieren sich andere Tools oft auf das visuelle Tracking von Metriken während des Trainingsprozesses.

Hier ist eine Einordnung, wie sich DVC in das moderne MLOps-Ökosystem einfügt:

Feature / FokusDVC (Data Version Control)MLflow / W&BGit
KernfunktionDaten- und Modellversionierung, Pipeline-OrchestrierungExperiment-Tracking (UI), Model RegistryQuellcode-Versionierung
Speicherort für DatenBeliebiger Cloud- oder On-Prem-Speicher (S3, etc.)Integrierte Datenbanken / Artifact StoresGit-Repository (ungeeignet für große Daten)
ArbeitsweiseKommandozeile, stark an Git angelehntSDK im Python-Code, Web-DashboardKommandozeile / GUI
StärkeReproduzierbarkeit von Datenständen und CachingVisualisierung von Trainingsverläufen und MetrikenKollaboration an Textdateien

In professionellen Setups nutze ich oft DVC für das schwere Heben (Datenmanagement, Pipeline-Caching) und MLflow für das visuelle Dashboarding der Modelle.

Typische Fehler und Best Practices in der Praxis

Obwohl DVC ein hervorragendes Tool ist, sehe ich in der Praxis immer wieder Stolpersteine, die den Workflow behindern. Wenn Sie DVC in Ihrem Projekt einführen, sollten Sie folgende Aspekte beachten:

1. Merge-Konflikte in .dvc-Dateien

Da .dvc-Dateien in Git versioniert werden, kann es zu Merge-Konflikten kommen, wenn zwei Teammitglieder gleichzeitig denselben Datensatz ändern. Im Gegensatz zu Quellcode können Sie Daten-Hashes nicht einfach “mergen”. Die Best Practice hierbei ist, den Konflikt auf Git-Ebene zu lösen, indem man sich für eine Version (einen Hash) entscheidet, und anschließend die Pipeline lokal neu durchlaufen zu lassen, um einen neuen, konsistenten Zustand zu generieren.

2. Vergessen, Daten zu pushen

Ein klassischer Anfängerfehler: Der Code wird via Git gepusht, aber der DVC-Push für die Daten wird vergessen. Das führt dazu, dass Kollegen den Code zwar auschecken können, DVC aber die dazugehörigen Daten im Remote-Speicher nicht findet. Automatisieren Sie diese Schritte idealerweise durch Pre-Push-Git-Hooks oder CI/CD-Pipelines, um menschliche Fehler auszuschließen.

3. Zu granulare Versionierung

Versionieren Sie nicht jeden noch so kleinen Zwischenschritt einer massiven Datenverarbeitung, wenn diese Zwischenschritte deterministisch und schnell reproduzierbar sind. Nutzen Sie DVC primär für Rohdaten, teure Zwischenergebnisse (Features) und finale Modelle. Ein überfüllter Cache kostet unnötig Speicherplatz auf Ihrem Remote-System.

Fazit

Der Einsatz von Data Version Control ist für moderne, datengetriebene Unternehmen kein Luxus mehr, sondern eine technische Notwendigkeit. Wenn Sie Machine-Learning-Modelle in Produktion bringen wollen, müssen Sie nachweisen können, auf welcher Datengrundlage diese Modelle basieren. DVC bietet hierfür eine elegante, leichtgewichtige und speicherunabhängige Lösung.

Indem Sie Git für den Code und DVC für die Daten nutzen, schaffen Sie eine Single Source of Truth für Ihre Data-Science-Projekte. Sie reduzieren Fehler, beschleunigen das Onboarding neuer Teammitglieder und senken die Infrastrukturkosten durch intelligentes Caching. Mein Rat an technische Entscheider lautet daher: Etablieren Sie sauberes Data Versioning, bevor Ihre Datenmengen so groß werden, dass sie Ihre Agilität blockieren. Start with DVC today, and take control of your machine learning lifecycle.

FAQ

Häufige Fragen

Was ist der genaue Unterschied zwischen Git und DVC?

Git ist ein Versionskontrollsystem, das für Quellcode (Textdateien) optimiert ist. Es speichert die gesamte Historie lokal und wird bei großen Binärdateien extrem langsam. DVC (Data Version Control) ist ein Tool, das Git ergänzt. Es speichert große Datenmengen in externen Speichern (wie S3) und legt nur kleine Metadaten-Dateien (mit Hash-Werten) in Git ab. So bleiben Code und Daten synchron, ohne Git zu überlasten.

Benötigt DVC eine eigene Datenbank oder Server-Infrastruktur?

Nein. DVC ist ein leichtgewichtiges Kommandozeilen-Tool. Es benötigt keine eigene Datenbank und keinen dedizierten DVC-Server. Es nutzt Ihre bestehende Infrastruktur: Git für die Metadaten und handelsübliche Cloud-Speicher (AWS S3, Google Cloud, Azure) oder On-Premises-Laufwerke für die eigentlichen Daten.

Wie löst man Merge-Konflikte bei Daten in DVC?

Wenn zwei Personen denselben Datensatz ändern, entsteht ein Git-Merge-Konflikt in der .dvc-Metadatendatei (da diese zwei unterschiedliche MD5-Hashes enthält). Sie lösen diesen Konflikt nicht, indem Sie die Rohdaten mergen, sondern indem Sie in Git entscheiden, wessen Änderungen übernommen werden sollen. Alternativ verwerfen Sie beide Hashes, führen das Daten-Generierungs-Skript erneut aus und committen den neu resultierenden Hash-Wert.

Kann ich DVC mit Plattformen wie GitHub oder GitLab nutzen?

Ja, absolut. DVC ist plattformunabhängig. Da die DVC-Metadaten ganz normale Textdateien sind, können sie problemlos in GitHub, GitLab, Bitbucket oder jedem anderen Git-Hoster verwaltet werden. DVC kümmert sich parallel darum, dass die schweren Daten auf Ihren konfigurierten Remote-Speicher geladen werden.

Ist DVC nur für Python-Projekte geeignet?

Nein. Obwohl DVC selbst in Python geschrieben ist und oft im Machine-Learning-Umfeld eingesetzt wird, ist es völlig sprachagnostisch. Sie können DVC verwenden, um Daten für R-, Java-, C++- oder Go-Projekte zu versionieren. DVC interessiert sich nur für Dateien und Ordner, nicht für die Programmiersprache, mit der diese verarbeitet werden.

Autor

HM

Hagen Müllershausen

SEO, SEA und Growth Engineering

Ich entwickle datengetriebene SEO-, SEA- und KI-Workflows für Unternehmen mit komplexen Anforderungen.

LinkedIn Profil

Teilen

LinkedIn X E-Mail

Newsletter

Updates direkt per Mail.

Erhalte neue Artikel, Checklisten und praxisnahe SEO/GEO-, SEA- und KI-Impulse direkt in dein Postfach.

Du willst das Thema direkt in deinem Unternehmen umsetzen?

Projekt anfragen