Qgelm

Machine Learning: Data Version Control 2 verschlankt das Experimentieren

Originalartikel

Backup

<html> <header class=„article-header“><h1 class=„articleheading“>Machine Learning: Data Version Control 2 verschlankt das Experimentieren</h1><div class=„publish-info“> Rainald Menge-Sonnentag</div></header><figure class=„aufmacherbild“><img src=„https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/shutterstock_1514696930-0a3d600028cebfee.jpeg“ srcset=„https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/shutterstock_1514696930-0a3d600028cebfee.jpeg 700w, https://heise.cloudimg.io/width/1050/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/shutterstock_1514696930-0a3d600028cebfee.jpeg 1050w, https://heise.cloudimg.io/width/1500/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/shutterstock_1514696930-0a3d600028cebfee.jpeg 1500w, https://heise.cloudimg.io/width/1903/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/shutterstock_1514696930-0a3d600028cebfee.jpeg 1903w“ alt=„“ class=„img-responsive“ referrerpolicy=„no-referrer“ /><figcaption class=„akwa-caption“>(Bild:&#160;vs148/Shutterstock.com)</figcaption></figure><p><strong>Das Open-Source-Tool DVC f&#252;hrt in der zweiten Hauptversion ein neues Verfahren zum Verwalten von Experimenten ein, das den Git-Overhead umschifft.</strong></p><p>Das Tool zum Verwalten von Machine-Learning-Projekten Data Version Control (DVC) ist in Version 2.0 erschienen. Zu den Neuerungen geh&#246;ren sogenannte Lightweight ML Experiments, um das Versionieren von Experimenten ressourcenschonender umzusetzen. Au&#223;erdem verwaltet DVC Checkpoints im Training und bietet flexible Parameter f&#252;r ML-Pipelines. Schlie&#223;lich bringt DVC eine direkte Einbindung f&#252;r das vom selben Team entwickelten Tool Continuous Machine Learning (CML).</p><p>DVC k&#252;mmert sich um die Versionierung von Machine-Learning-Anwendungen w&#228;hrend der Entwicklung. Es verwaltet nicht den Sourcecode, sondern die in ML-Projekten verwendeten umfangreichen Daten und ML-Modelle. Das Werkzeug erstellt Metadaten in Textform, die sich in Git verwalten lassen, w&#228;hrend die eigentlichen Daten im Rechenzentrum oder in der Cloud liegen.</p><h3 class=„subheading“ id=„nav_platz_f&#252;r0“>Platz f&#252;r Experimente</h3><p>Auf der Suche nach dem passenden Modell sind h&#228;ufig zahlreiche Experimente n&#246;tig. Bisher hat DVC jedes Experiment in Git versioniert, was f&#252;r relativ reife Modelle ausreicht, die nur wenige Experimente zum Optimieren erfordern. F&#252;r frische und st&#228;rker experimentgetriebene ML-Projekte ist damit jedoch ein Overhead verbunden, da jeder Versuch zus&#228;tzliche Aufrufe von

git add

beziehungsweise

git commit

ausl&#246;st. Zudem ist der Vergleich der Experimente im Git-Repository schwierig.</p><header class=„a-boxheader“ data-collapse-trigger=„“>Lesen Sie auch</header><div class=„a-boxtarget a-boxcontent“ data-collapse-target=„“><article class=„a-article-teaser a-article-teaser–horizontal-layout article-teaser–articlebox a-u-no-margin-bottom a-theme“ data-cid=„0“><a class=„a-article-teaserlink“ href=„https://www.heise.de/hintergrund/Verwaltung-und-Inbetriebnahme-von-ML-Modellen-4911723.html“ name=„meldung.newsticker.inline.article-teaser.1“ title=„Verwaltung und Inbetriebnahme von ML-Modellen“><figure class=„a-article-teaserimage-container“><div><strong><img alt=„Verwaltung und Inbetriebnahme von ML-Modellen“ height=„2248“ src=„https://static.wallabag.it/7862d1b7aff4c3b00f37212fefade4e0e2c4cf00/64656e6965643a646174613a696d6167652f7376672b786d6c2c253343737667253230786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f7376672725323077696474683d273639367078272532306865696768743d2733393170782725323076696577426f783d2730253230302532303639362532303339312725334525334372656374253230783d273027253230793d27302725323077696474683d27363936272532306865696768743d273339312725323066696c6c3d27253233663266326632272533452533432f726563742533452533432f737667253345/“ class=„c1“ width=„4000“ referrerpolicy=„no-referrer“ /></strong></div></figure><div class=„a-article-teasercontent-container“><header><h1 class=„a-article-teasertitle a-u-mb-1“><strong>Verwaltung und Inbetriebnahme von ML-Modellen</strong></h1></header></div>[1]</a></article></div><p>Daher f&#252;hrt DVC in Version 2 einen speziellen Modus f&#252;r Experimente ein. <code>dvc exp run</code> f&#252;hrt sie mit Einstellungen f&#252;r Hyperparameter aus der Datei params.yaml aus. &#220;ber den Kommandozeilenparameter <code>–set-param</code> lassen sich einzelne Parameter anpassen. Ein Vergleich der Experimente erfolgt &#252;ber den Befehl <code>dvc exp diff</code>. Schlie&#223;lich gibt <code>dvc exp show</code> einen &#220;berblick &#252;ber Experimente, wie folgendes Beispiel aus dem DVC-Blog zeigt:</p><pre class=„rtetx–listing listing“>

$ dvc exp show --no-pager --no-timestamp \        --include-params featurize.max_features,featurize.ngrams&#9487;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9523;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9523;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9523;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9491;&#9475; Experiment    &#9475;     auc &#9475; featurize.max_features &#9475; featurize.ngrams &#9475;&#9505;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9543;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9543;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9543;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9513;&#9474; workspace     &#9474; 0.56359 &#9474; 5000                   &#9474; 3                &#9474;&#9474; master        &#9474;  0.5674 &#9474; 1500                   &#9474; 2                &#9474;&#9474; &#9500;&#9472;&#9472; exp-80655 &#9474; 0.56359 &#9474; 5000                   &#9474; 3                &#9474;&#9474; &#9500;&#9472;&#9472; exp-63ee0 &#9474;  0.5515 &#9474; 5000                   &#9474; 2                &#9474;&#9474; &#9500;&#9472;&#9472; exp-9bf22 &#9474; 0.56448 &#9474; 4000                   &#9474; 2                &#9474;&#9474; &#9492;&#9472;&#9472; exp-bb55c &#9474; 0.57462 &#9474; 3000                   &#9474; 2     

</pre><p>Derzeit ist die Umsetzung von Experimenten als experimentell [sic] gekennzeichnet. Die API k&#246;nnte sich daher in den kommenden Releases noch &#228;ndern.</p><h3 class=„subheading“ id=„nav_referenzen1“>Referenzen statt Zweige</h3><p>Unter der Haube speichert DVC die Metainformationen weiterhin in Git ab, erzeugt aber keine zus&#228;tzlichen Branches, sondern f&#252;hrt eine eigene Git-Referenz namens <code>exps</code> ein. Vorbild daf&#252;r ist GitHubs Vorgehen zum Tracken von Pull Requests &#252;ber <code>pulls</code>.</p><p>Wer ein Experiment als eigenen Branch speichern m&#246;chte, kann den Kommandozeilenparameter <code>branch</code> verwenden:</p><pre class=„rtetx–listing listing“>

$ dvc exp branch exp-80655 big_fr_sizeGit branch 'big_fr_size' has been created from experiment 'exp-c695f'.To switch to the new branch run:        git checkout big_fr_size

</pre><p>Eine weitere Neuerung in DVC 2.0 ist das Versionieren von ML-Modell-Checkpoints. Letztere dienen dazu, in regelm&#228;&#223;igen Abst&#228;nden den Zustand und die Gewichtung in Modellen abzuspeichern und bei schlechten Trainingsresultaten im weiteren Verlauf dort wieder mit ge&#228;nderten Parametern weiterzuarbeiten.</p><p>Zum Festsetzen von Checkpoints dient der Befehl

dvc stage add

. Anschlie&#223;end lassen sich Trainings &#252;ber die verschiedenen Checkpoint-Stufen durchf&#252;hren. Um ein Modell komplett neu zu trainieren, l&#246;scht der Befehl

dvc exp run --reset

alle Checkpoints.</p><h3 class=„subheading“ id=„nav_metriken_im2“>Metriken im Blick</h3><p>DVC 2.0 hat eine neue Library DVC-Live an Bord, die zum Nachverfolgen von Modell-Metriken dient. Die Metriken lassen sich in Textdateien speichern, und DVC kann sie &#252;ber die Git-Historie in einer HTML-Datei visualisieren.</p><figure class=„a-inline-image a-u-inline“><div><figcaption class=„a-caption“>&#220;ber DVC-Live lassen sich Metriken nachverfolgen, um sie anschlie&#223;end zu visualisieren.</figcaption></div><p class=„a-captionsource“>(Bild:&#160;dvc.org)</p></figure><p>&#220;ber den Parameter

diff

f&#252;r

dvc plots

lassen sich die Logs zu unterschiedliche Metriken miteinander vergleichen. Da das Tool die Ausgaben automatisch generiert, k&#246;nnen Data Scientists die Modell-Performance in Echtzeit verfolgen.</p><h3 class=„subheading“ id=„nav_parameter3“>Parameter peppen Pipelines</h3><p>F&#252;r die Verarbeitung von Projekten in Multi-Stage-Pipelines trennt DVC 2.0 das Festlegen von Variablen von den eigentlichen Stufen. Auf die Weise k&#246;nnen Data Scientists alle Varaiblen in einem <code>vars</code>-Block am Anfang der dvc.yaml-Datei definieren und im Verlauf dort anpassen. Alternativ k&#246;nnen sie die Parameter aus einer separaten Datei wie params.yaml beziehen, statt sie in der Pipeline-Definition festzulegen.</p><p>DVC 2.0 bietet zudem eine Integration mit dem Continuous-Integration-Tool f&#252;r Machine-Learning-Projekte CML, <a href=„https://www.heise.de/news/Machine-Learning-CML-0-3-betaetigt-sich-als-Wolkenschieber-5062807.html“><strong>das Ende Februar in Version 0.3 erschienen ist [2]</strong></a>. Mit dem j&#252;ngsten Release lassen sich Cloud-Ressourcen automatisiert bereitstellen.</p><header class=„a-boxheader“ data-collapse-trigger=„“>Minds Mastering Machines</header><div class=„a-boxtarget a-boxcontent a-inline-textboxcontent“ data-collapse-target=„“><figure class=„a-inline-textboximage-container“><img alt=„“ src=„https://heise.cloudimg.io/width/1794/q50.png-lossy-50.webp-lossy-50.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/m3-logo-45bd08f1bc3c8a7c.jpg“ srcset=„https://heise.cloudimg.io/width/3588/q30.png-lossy-30.webp-lossy-30.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/8/4/m3-logo-45bd08f1bc3c8a7c.jpg 2x“ class=„c2“ referrerpolicy=„no-referrer“ /></figure><div class=„a-inline-textboxcontent-container“><p>Die Konferenz zu Machine Learning <a href=„https://www.m3-konferenz.de/“ rel=„external noopener“ target=„_blank“><strong>Minds Mastering Machines [3]</strong></a> findet dieses Jahr als Online-Veranstaltung statt. Am 27. und 28. April bietet sie <a href=„https://www.m3-konferenz.de/index.php#programm“ rel=„external noopener“ target=„_blank“><strong>insgesamt 26 Vortr&#228;ge [4]</strong></a> und eine Keynote in zwei parallelen Videostreams.</p><p>Das Bereitstellen von Modellen beziehungsweise MLOps ist dieses Jahr ein Schwerpunktthema, dem sich insgesamt vier Vortr&#228;ge widmen.</p></div></div><p>Weitere Neuerungen sowie eine Hand voll Inkompatibilit&#228;ten zu Version 1.x finden <a href=„https://dvc.org/blog/dvc-2-0-release“ rel=„external noopener“ target=„_blank“><strong>sich im Blogbeitrag zu DVC 2.0 [5]</strong></a>. Die aktuelle Version ist f&#252;r WIndows, macOS und Linux auf der Download-Seite verf&#252;gbar. Alternativ l&#228;sst sich die Python-Library &#252;ber <code>pip install –upgrade dvc</code> installieren.</p><p>() </p><hr /><p><strong>URL dieses Artikels:</strong><br /><small><code>https://www.heise.de/-5071766</code></small></p><p><strong>Links in diesem Artikel:</strong><br /><small><code><strong>[1]</strong>&#160;https://www.heise.de/hintergrund/Verwaltung-und-Inbetriebnahme-von-ML-Modellen-4911723.html</code></small><br /><small><code><strong>[2]</strong>&#160;https://www.heise.de/news/Machine-Learning-CML-0-3-betaetigt-sich-als-Wolkenschieber-5062807.html</code></small><br /><small><code><strong>[3]</strong>&#160;https://www.m3-konferenz.de/</code></small><br /><small><code><strong>[4]</strong>&#160;https://www.m3-konferenz.de/index.php#programm</code></small><br /><small><code><strong>[5]</strong>&#160;https://dvc.org/blog/dvc-2-0-release</code></small><br /><small><code><strong>[6]</strong>&#160;mailto:rme@ix.de</code></small><br /></p><p class=„printversioncopyright“><em>Copyright &#169; 2021 Heise Medien</em></p> </html>

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information