.. SPDX-FileCopyrightText: 2020 cusy GmbH .. .. SPDX-License-Identifier: BSD-3-Clause Daten verwalten mit DVC ======================= Für Datenanalysen und vor allem bei Machine Learning ist es äußerst wertvoll, verschiedene Versionen von Analysen, die mit verschiedenen Datensätzen und Parametern durchgeführt wurden, reproduzieren zu können. Um jedoch reproduzierbare Analysen zu erhalten, müssen sowohl die Daten als auch das Modell (einschließlich der Algorithmen, Parameter. :abbr:`etc. (et cetera)`) versioniert werden. Die Versionierung von Daten für reproduzierbare Analysen ist aufgrund der Datengröße ein größeres Problem als die Versionierung von Modellen. Werkzeuge wie `DVC `_ helfen bei der Verwaltung von Daten, indem Nutzer diese mit einem :doc:`Git <../git/index>`-artigen Workflow an einen entfernten Datenspeicher übertragen können. Hierdurch vereinfacht sich der Abruf bestimmter Versionen von Daten um eine Analyse zu reproduzieren. DVC wurde entwickelt, um :abbr:`ML (Machine Learning)`-Modelle und Datensätze gemeinsam nutzen zu können und nachvollziehbar zu verwalten. Es nutzt ein eigenes System zum Speichern der Dateien mit Unterstützung :abbr:`u.a. (unter anderem)` für :abbr:`SSH (Secure Shell)` und :abbr:`HDFS (Hadoop Distributed File System)`. .. tip:: `cusy Seminar: Code und Daten versioniert und reproduzierbar speichern `_ .. seealso:: * `Get Started with DVC `_ * `Documentation `_ * `Git Repository `_ Vergleich mit verwandten Technologien ------------------------------------- git-annex ~~~~~~~~~ `git-annex `_ konzentriert sich mehr auf die Entdeckung und Verwendung von Datensätzen, die dann einfach mit Git verwaltet werden. DVC hingegen speichert die Daten, die bei jeden Schritt der Pipeline erzeugt werden, in :file:`.dvc`-Dateien, die dann durch Git verwaltet werden kann. DVC stellt zudem praktische Tools zur Manipulation und Visualisierung von Daten-Pipelines bereit, siehe :abbr:`z.B. (zum Beispiel)` :doc:`dvc status `. Schließlich lassen sich mit :ref:`dvc remote ` auch externe Abhängigkeiten angeben. Workflow-Management-Systeme wie Airflow und Luigi ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DVC konzentriert sich auf Data-Science-Workflows und Modellierung; daher sind DVC-Pipelines sehr viel leichtgewichtiger, einfacher zu erstellen und zu ändern als bei `Airflow `_ und `Luigi `_. Allerdings fehlen DVC erweiterte Funktionen wie die Überwachung der Ausführung, Optimierung und Fehlertoleranz. Auch ist DVC ein reines Befehlszeilen-Tool ohne grafische Benutzeroberfläche und es führt auch keine Daemons oder Server aus. `CML `_ versucht hier, einige der Lücken leichtgewichtig mit GitHub, GitLab oder Bitbucket zu schließen. DVC und CML eignen sich jedoch gut für iterative Machine-Learning-Prozesse; und wenn mit den beiden ein gutes Modell gefunden wurde, steht euch immer noch frei, die Pipeline in Luigi oder Airflow zu integrieren. Installation ------------ DVC lässt sich mit :term:`uv` installieren. Beachtet dabei jedoch, dass ihr hierbei die Extras explizit angeben müsst. Dies können ``[ssh]``, ``[s3]``, ``[gs]``, ``[azure]``, und ``[oss]`` oder ``[all]`` sein. Für ``ssh`` sieht das Kommando dann so aus: .. code-block:: console $ uv add dvc[ssh] Alternativ kann DVC auch über andere Paketmanager installiert werden: .. tab:: Debian/Ubuntu .. code-block:: console $ sudo wget https://dvc.org/deb/dvc.list -O /etc/apt/sources.list.d/dvc.list $ sudo apt update $ sudo apt install dvc .. tab:: macOS .. code-block:: console $ brew install iterative/homebrew-dvc/dvc .. toctree:: :hidden: init data pipeline params metrics experiments dag reproduce integration fds