Machine Learning: CML 0.3 betätigt sich als Wolkenschieber
Das Continuous-Integration-Werkzeug kümmert sich um das Bereitstellen von Cloud-Ressourcen für Machine-Learning-Projekte.
Das Werkzeug Continuous Machine Learning (CML) ist in Version 0.3.0 erschienen. Das Open-Source-Tool zum Einbinden von ML-Anwendungen in die Prozesse von Continuous Integration und Continuous Delivery (CI/CD) kann im aktuellen Release automatisiert Cloud-Ressourcen bereitstellen. Es hat jedoch weiterhin Preview-Status.
CML stammt von den Entwicklern des ebenfalls quelloffenen Werkzeugs Data Version Control (DVC) zum Versionieren von ML-Anwendungen. Es bietet eine direkte Integration in die CI/CD-Prozesse von GitHub und GitLab und soll unter dem Stichwort MLOps die Zusammenarbeit von Data Scientists und operativen Mitarbeitern zusammenführen – analog zur Kooperation von Softwareentwicklern und Systemadministratoren im DevOps-Umfeld.
Das erstmals im Sommer 2020 vorgestellte Tool widmet sich den spezifischen Herausforderungen für ML-Projekte bei der CI/CD-Integration, darunter die Abhängigkeit zu umfangreichen Datenmengen im Gigabyte-Bereich und den hohen Anforderungen an die Rechenleistung beim Training von Modellen.
Passend provisioniert
Das aktuelle Release zielt vor allem auf das einfachere Provisionieren passender Cloud-Ressourcen. Der neue Befehl cml-runner
automatisiert derzeit das Bereitstellen von AWS- und Azure-Instanzen. In Kürze soll eine Anbindung an die Google Cloud Platform (GCP) folgen. Unter der Haube nutzt der Befehl das IaC-Tool (Infrastructure as Code) Terraform, das im vorgefertigten CML-Docker-Container integriert ist. Wer eigene Container baut, muss Hashicorps Werkzeug manuell einbinden.
Die Konferenz zu Machine Learning Minds Mastering Machines findet dieses Jahr als Online-Veranstaltung statt. Am 27. und 28. April bietet sie insgesamt 26 Vorträge und eine Keynote in zwei parallelen Videostreams.
Das Bereitstellen von Modellen beziehungsweise MLOps ist dieses Jahr ein Schwerpunktthema, dem sich insgesamt vier Vorträge widmen.
Neben dem Konfigurieren der Hardwareanforderungen ermöglicht cml-runner
das Setzen einer maximalen Laufzeit. Wenn die Frist abgelaufen ist, kümmert sich CML um die Deprovisionierung der angeforderten Instanz.
Befehle wie cml-publish
und cml-send-comment
lassen sich in den train-model
-Block einbinden, um die Trainingsergebnisse in einen Pull Request oder Merge Request einzubinden.
Außerdem ist Continuous Machine Learning neuerdings als GitHub Action verfügbar, die sich um die CML-Installation kümmert.
Continuous Machine Learning ist eine Library mit Funktionen für CI/CD-Runners, die sowohl mit GitHub Actions als auch mit GitLab CI zusammenarbeitet. Die Funktionen erstellen unter anderem Reports zu jedem Pull beziehungsweise Merge Request, die zahlreiche Metriken, Plots und Änderungen der Hyperparameter enthalten.
Um das Bereitstellen ausreichender Rechenleistung kümmert sich CML ebenfalls und provisioniert entsprechende GPU- beziehungsweise CPU-Ressourcen bei einer der Cloudplattformen AWS, GCP, Azure oder Alibaba. Die eigentlichen CI-Runners stellt es über Docker Machine bereit. Schließlich nutzt die Library DVC zum Einbinden der Datensätze für das Training und das anschließende Speichern der Modelle in der Cloud.
Data Scientists können die Arbeitsabläufe in den jeweiligen YAML-Dateien bei GitHub beziehungsweise GitLab anpassen. Sie können die CML-Funktionen mit eigenen Aufrufen für das Modelltraining und dem Ausführen von Testing-Skripten kombinieren.
Weitere Details zum aktuellen Release von CML lassen sich der Projektseite und dem DVC-Blog entnehmen. Der Sourcecode findet sich auf GitHub.
(rme)