Software 2.0: Experiment Tracking - Fortsetzung

experimant-tracking-title

Im ersten Teil wurden die konzeptionellen Unterschiede von herkömmlicher Softwareentwicklung zu „Software 2.0" näher beleuchtet. In diesem Artikel werden die Lösungen verschiedener Anbieter evaluiert und es wird ein konkreter Vergleich anhand der gebotenen Features aufgestellt. Zudem erfolgt eine Erläuterung der Schwerpunktrichtungen und eine Auswahl an Anwendungsszenarien und ihrer respektive geeigneten Frameworks.

FRAMEWORKTYPEN

Die angebotenen Lösungen verfolgen jeweils andere Schwerpunkte, wobei sich hier drei Richtungen herauskristallisieren. Zum einen der Fokus auf das bloße Experiment-Management, wobei diese Systeme immer mehr dazu übergehen, weitere Teile des ML-Zyklus zu integrieren, um relevant zu bleiben. Des Weiteren gibt es namentlich mit DVC ein Framework, welches sich spezifisch auf die Git-ähnliche Versionierung von Daten und zusätzlichen Artefakten konzentriert und dabei weniger auf Automatisierung abzielt. Zu guter Letzt unternehmen viele Frameworks den Versuch der Abdeckung des kompletten Zyklus, wobei hier manche Anbieter mehr auf einfache und modulare Integration setzen und andere komplexere Strukturen vorgeben, um eine bessere Skalierbarkeit zu gewährleisten.

Kriterium
MLFlow Sacred DVC Comet Neptune wandb Pachyderm Kubeflow Valohai SageMaker Verta.ai Guild Ai Tensorboard PolyAxon TRAINS
Übersicht
Betrachtete Version 1.11.0 0.8.0 1.9.0 3.1.0 0.4.124 0.10.8 1.11.4 1.1 26.10.2020 2.15.4 2.0 0.7.0 2.3.0 1.2.1 0.16.2
Schwerpunkt Kompletter Zyklus Experimentmanagement Versionierung Experimentmanagement Experimentmanagement Kompletter Zyklus Kompletter Zyklus Kompletter Zyklus Kompletter Zyklus Kompletter Zyklus Kompletter Zyklus Experimentmanagement Experimentmanagement Experimentmanagement Experimentmanagement
Preis Kostenlos Kostenlos Kostenlos
  • Kostenlos
  • Startup: 39$ pro Nutzer
  • Teams: 179$ pro Nutzer
  • Enterprise: Auf Anfrage
  • Kostenlos
  • Startup: 39$ pro Nutzer
  • Teams: 79$ pro Nutzer
  • Enterprise: Beginnt ab 1799$
  • Kostenlos
  • Startup: 35$ pro Nutzer
  • Teams: 100$ pro Nutzer
  • Enterpreise: Auf Anfrage
  • Kostenlos
  • Enterprise: Auf Anfrage
Kostenlos
  • Kostenlos
  • Pro: 649$
  • Enterprise: Auf Anfrage
Lediglich Berechnung der verwendeten AWS Services
  • Kostenlos
  • Enterprise: Auf Anfrage
Kostenlos Kostenlos
  • Kostenlos
  • Starter: 270$
  • Team: 596$
  • Enterprise: Auf Anfrage
  • Kostenlos
  • Enterprise: Auf Anfrage
Limitation der kostenfreien Version
  • 1 Nutzer
  • Kein Teilen möglich
  • Kein Self-hosting
  • 1 Nutzer
  • 100GB Speicher
  • Kein Self-hosting
  • 1 Nutzer
  • Limitierter Support
  • Keine Nutzerverwaltung
  • UI Einschränkungen
  • Limitierter Support
  • Limitiertes Model Deployment
  • UI Einschränkungen
  • Limitierter Support
  • 1 Nutzer
  • Nur grundlegende Tracking Features
  • Keine Model Registry
  • Limitierter Support
  • Kein CI/CD
  • Limiterte Datenanalysetools
Open Source Teilweise Teilweise Teilweise Teilweise
Einfach zu integrieren Teils kompliziert Teils kompliziert Teils kompliziert
Tracking-Features
Versionierung ausgereift:
  • Modelle
  • Umgebung
rudimentär:
  • Daten
  • Code
ausgereift:
  • Code
  • Umgebung
rudimentär:
  • Daten
  • Modelle
ausgereift:
  • Daten
  • Model
  • Code
  • Umgebung
ausgereift:
  • Code
  • Umgebung
rudimentär:
  • Daten
  • Modelle
ausgereift:
  • Code
  • Umgebung
rudimentär:
  • Daten
  • Modelle
ausgereift:
  • Code
  • Umgebung
  • Modelle
rudimentär:
  • Daten
ausgereift:
  • Code
  • Umgebung
  • Modelle
  • Daten
ausgereift:
  • Code
  • Umgebung
  • Modelle
  • Daten
ausgereift:
  • Code
  • Umgebung
  • Modelle
  • Daten
ausgereift:
  • Code
  • Umgebung
  • Modelle
  • Daten
ausgereift:
  • Code
  • Daten
rudimentär:
  • Umgebung
  • Modelle
ausgereift:
  • Code
  • Umgebung
rudimentär:
  • Daten
  • Modelle
- ausgereift:
  • Code
  • Umgebung
  • Modelle
  • Daten
ausgereift:
  • Code
  • Umgebung
rudimentär:
  • Daten
  • Modelle
Ressourcen-Monitoring
Logging ausgereift:
  • Bild/Plot
  • Audio
  • Video
  • Artefakte
ausgereift:
  • Artefakte
rudimentär:
  • Bild/Plot
  • Audio
  • Video
ausgereift:
  • Artefakte
ausgereift:
  • Artefakte
  • Bild/Plot
  • Audio
rudimentär:
  • Video
ausgereift:
  • Artefakte
  • Bild/Plot
  • Audio
  • Video
ausgereift:
  • Artefakte
  • Bild/Plot
  • Audio
  • Video
ausgereift:
  • Artefakte
rudimentär:
  • Bild/Plot
ausgereift:
  • Artefakte
  • Bild/Plot
rudimentär:
  • Audio
  • Video
ausgereift:
  • Artefakte
ausgereift:
  • Artefakte
ausgereift:
  • Artefakte
  • Bild/Plot
ausgereift:
  • Artefakte
rudimentär:
  • Bild/Plot
  • Audio
  • Video
ausgereift:
  • Artefakte
ausgereift:
  • Artefakte
rudimentär:
  • Bild/Plot
  • Audio
  • Video
ausgereift:
  • Artefakte
  • Bild/Plot
rudimentär:
  • Audio
  • Video
GUI-Features
Nutzerverwaltung
Individualisierbares Dashboard Beschränkt Beschränkt Beschränkt Beschränkt Beschränkt Beschränkt
Experimentorganisation Beschränkt Beschränkt Beschränkt Beschränkt Beschränkt Beschränkt Beschränkt Beschränkt
Gegenüberstellung
  • Experimente
  • Experimente
  • Code
  • Experimente
  • Code
  • Experimente
  • Code
  • Experimente
  • Experimente
  • Code
  • Experimente
  • Code
  • Experimente
  • Experimente
  • Code
  • Experimente
  • Experimente
  • Code
  • Code
  • Experimente
  • Experimente
  • Experimente
Kommentare
Reporterstellung Beschränkt Beschränkt
Teilen von Reports Beschränkt Beschränkt Beschränkt Beschränkt
Produkt-Features
Experiment API
Hosting On-Premises On-Premises On-Premises On-Premises, Hosted On-Premises, Hosted On-Premises, Hosted On-Premises, Hosted On-Premises, Hosted On-Premises, Hosted Hosted On-Premises On-Premises On-Premises, Hosted On-Premises, Hosted On-Premises
Skalierbarkeit Beschränkt
Dedizierter Support
Tracking API R-, Python-, Java-Client, HTTP Python-Client CLI, Python-Client HTTP Python-Client, Java-Client Python-Client Container-basiert Container-basiert Container-basiert Python-Client, Java-Client, Javascript-Client, Ruby-Client, Go-Client, HTTP Python-Client Python-Client, CLI Python-Client Container-basiert Python-Client

aNWENDUNGSFÄLLE

Kleine Teams / Sammeln erster Erfahrungen

Immer mehr Firmen setzen auf AI-Lösungen und schulen dabei häufig, aufgrund des Fachkräftemangels, vorhandenes Personal um und weiter, um die zusätzlichen Anforderungen abzudecken. Dabei werden kleinere interdisziplinäre Teams gebildet.
Für diesen Anwendungsfall eignet sich besonders MLflow, da es in der Lage ist, den kompletten ML-Zyklus abzudecken, durch seine Modularität jedoch auch schrittweise integriert werden kann und so mit den Anforderungen des Projekts wächst. Noch fehlende Features, wie eine ausgeprägte Nutzerverwaltung und Ressourcen-Tracking, fallen hierbei nicht so sehr ins Gewicht und die intuitive und sprachagnostische API sorgen für eine einfache Handhabung.

Zentralisierter Hub

Bei dedizierten Data-Science-Abteilungen, werden häufig einzelne Projektteams gebildet. Um hier den Wissensaustausch zu fördern und eine einheitliche Möglichkeit zum Reporting an alle Stakeholder bereitzustellen, bietet sich eine zentralisierte Anlaufstelle für gemeinsames Arbeiten an.
Diese Anforderungen deckt WandB sehr schön ab, da es über ausgereifte Reportfunktionen verfügt und die Erstellung von individualisierbaren Dashboards ermöglicht. Dabei kann mittels der vorhanden Nutzerverwaltung eine übersichtliche Projekteinteilung gewährleistet und einzelne Dashboards oder Experimente und Artefakte geteilt werden. Zudem verfügt WandB über die nötigen Features, um alle Belange innerhalb des ML-Zyklus abdecken zu können.

Clusterbetrieb / Verteilte Systeme

In großen Organisationen kann meist kein einheitlicher Technologie-Stack projektübergreifend festgelegt werden. Vielmehr soll ein einheitlicher Rahmen definiert werden, welcher dabei sprach- und systemagnostisch bleibt. Hierfür wird meist auf Container-Technologien gesetzt, welche im Clusterbetrieb orchestriert werden können.
Zur Umsetzung einer solchen Abstraktionsebene bieten sich die Frameworks Valohai und Pachyderm an. Diese basieren auf dem Gedanken der Container-Orchestration und stellen alle nötigen Funktionen zur Erstellung von Preprocessing-Pipelines, dem Experiment-Tracking und automatisiertem Deployment zur Verfügung. Pachyderm kann zudem auch in der kostenfreien Community-Version verwendet und bei Bedarf auf die Enterprise-Version geupgradet werden.

Fazit

Durch die große Vielfalt an vorhanden Framework-Anbietern ist für jeden Anwendungsfall eine geeignete Lösung verfügbar. Insgesamt stehen dabei die kostenfreien Varianten den proprietären Lösungen in nichts nach und übertreffen diese teilweise sogar. Aufgrund der kompetitiven Anbieterzahl wird zudem eine rege Weiterentwicklung gefördert, die das Entwickeln einer Inhouse-Lösung größtenteils überflüssig macht. Der aktuelle Reifegrad der Systeme ist bereits in der Lage, die zusätzlichen Herausforderungen des ML-Zyklus abzudecken. Ob sich eine endgültige Lösung herauskristallisiert, wie es beispielsweise mit Git in der klassischen Versionsverwaltung der Fall ist, bleibt abzuwarten.

Quellen/Inspiration:

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/