Blog

Was passiert bei Kantai? Neuigkeiten und unterschiedliche Themen aus unserem täglichen Leben.

Behalten Sie Ordnung in Ihren Daten durch Boxs

Donnerstag, 3. Februar 2022

Boxs 0.1 vervollständigt die Kantai Open-Source Bibliotheken

Zeit für gute Nachrichten!

Mit der ersten Veröffentlichung unserer neuen Datenmanagementbibliothek “Boxs” freuen wir uns, die Sammlung unserer grundlegenden Bibliotheken für die Erstellung von Maschinenlernprozessen zu komplettieren.

Boxs hilft Ihnen Ihre Daten und Artefakte, die in Ihrem Workflow erstellt werden, zu organisieren. Endlich müssen nicht ständig Dateipfade oder S3 Keys im Laufe des Entwicklungsprozesses geändert werden oder der Code mit Funktionen zum Schreiben von Werten in Dateien übersäht sein.

Boxs übernimmt diese Aufgabe mit seiner einfachen API. Definieren Sie einfach nur Ihre “Boxen” und speichern die verwandte Werte zusammen in der gleichen Box. Alle Artefakte werden automatisch mitsamt ihrer Herkunft und über mehrere Ausführungen hinweg getrackt. Ein Kommandozeilenprogramm erlaubt Ihnen die Daten einfach einzusehen und sogar die gleichen Daten zwischen verschiedenen Ausführungen zu vergleichen.

Organisation der Daten über mehrere Bozen und Ausführungen hinweg

Die neue Bibliothek lässt sich einfach in Bandsaw, unser Werkzeug für das Aufbrechen eines Prozess individuelle Teile, integrieren.

Eine ausführlichere Beschreibung findet sich in unserem Documentation hub.

Was kommt als nächstes?

Boxs ist zur Zeit noch limitiert darauf, Daten im Dateisystem zu speichern, so dass es ein verteiltes Dateisystem benötigt, wenn es in einen verteilten Prozess integriert werden soll. Um diese Limitierung zu entfernen, wird die nächste Version von Box Storage-Implementierungen beinhalten, die es erlauben, Daten auch in verschiedenen CloudStorage Diensten wie S3 oder Google Cloud Storage zu speichern. Dies wird dann auch Workflows unterstützen, die über mehrere Regionen hinaus oder auch in verschiedenen Cloud-Plattformen stattfinden.

Zusätzlich haben die Arbeiten an unserem ersten kommerziellen Produkt begonnen, einem Dienst, der es erlaubt, Ihre Prozesse zu beaufsichtigen und dabei Optimierungspotenzial zu entdecken, bleiben Sie gespannt!

Cheers,

Christoph

References

Boxs

Frohes neues Jahr 2022 mit zwei neuen Veröffentlichungen

Samstag, 1. Januar 2022

Bandsaw 0.3 und Multimeter 0.1

Frohes neues Jahr! Wir feiern den Beginn des Jahrs 2022 mit zwei neuen Veröffentlichungen. Im letzten Monat haben wir an neuen Funktionen gearbeitet, die das Verständnis von Workflows verbessern, indem Metriken, Task-spezifische Logdaten sowie eine Historie vergangener Ausführungen erfasst werden. Diese Arbeit findet in zwei neuen Veröffentlichungen ihren Abschluß:

Messen von Laufzeitmetriken mittels “Multimeter”

Im Dezember haben wir mit “Multimeter” eine neue Bibliothek veröffentlicht, die es einfach macht, Laufzeitmetriken wie CPU-Auslastung, Speicherverbrauch oder Datentransfer für beliebigen Pythoncode zu erfassen. Die gesammelten Daten können auch automatisch in Zeitreihedatenbanken wie InfluxDB gespeichert und mit Grafana visualisiert werden.

Visualisierung von Metriken

Eine ausführliche Beschreibung von Multimeter findet sich auf unserem documentation hub.

Erfassen von Workflows und ihrem Laufzeitverhalten

Aufbauend auf “Multimeter” bringt die Version 0.3 unserer Bibliothek “Bandsaw” neue Features, die es erlauben, alle Ausführungen eines Workflows zu erfassen und die dabei benötigten Resourcen auf individueller Taskebene zu ermitteln. Dies ermöglicht, unterschiedliche Ausführungen zu vergleichen und dabei Tasks zu identifizieren, die Flaschenhälse im Workflow sind. Die gesammelten Metriken werden zusammen mit taskspezifischen Logdateien gesammelt und können so später analysiert werden. Hier eine kurze Liste der neuen Funktionen:

  • Neue TrackerExtension, die Workflowausführungen, Tasks, ihre Ergebnisse und angehängte Dateien erfasst.
  • Neue “MetricsAdvice”, die Metriken bei der Berechnung von Tasks erfasst.
  • “LoggingAdvice” speichert nun taskspezifische Logdateien.
  • “JsonFormatter” erstellt Logdateien mit strukturiertem Format.

Wie sonst auch findet sich die neue Version bereits auf PyPI und kann mittels pip install bandsaw installiert werden. Die Dokumentation wurde auch bereits auf die neueste Version aktualisiert.

Unsere nächsten Pläne

Im Januer werden wir uns auf das nächste noch fehlende Basisfunktionalität konzentrieren, das automatische Verwalten von Daten.

  • 0.4: Unterstützung für das automatische Speichern und Laden von Daten.
  • 0.5: Asynchrone Ausführung von Tasks.

Für Fragen oder anderen Austausch über unsere Bibliotheken, erreicht ihr uns auf discord.

Adieda, Christoph

References

Bandsaw

Multimeter

Bandsaw mit SSH Unterstützung

Freitag, 12. November 2021

Kurz nach unserem ersten Release sind wir stolz, den nächsten Meilenstein unserer Workflow-Bibliothek “Bandsaw” ankündigen zu können. Mit der heutigen Veröffentlichung von Version 0.2 ist nun die erste Möglichkeit zum Transferieren von Tasks auf entfernte Maschinen und ihre Ausführung dort verfügbar. Dies ermöglicht unseren Benutzer Bandsaw in echten Maschinenlernprozessen einzusetzen, die von anderen Rechenplattformen als den Rechnern der Entwickler abhängen.

Bandsaw unterstützt mehrere unterschiedliche Interpreter auf entfernten Maschinen in seiner Konfiguration und bietet eine einfache Möglichkeit Tasks auf diese Maschinen zu verteilen. Die Tasks sowie ihre Daten mitsamt dem auszuführenden Code werden automatisch mittels der SSH Kommandozeilentools verteilt, so dass keine zusätzlichen Pythonabhängigkeiten benötigt werden. Dies ermöglicht Teile des Prozesses zu automatisieren, die vorher manuell ausgeführt werden mussten:

  • Paketierung und Übertragen vom Quellcode auf die entfernten Maschinen
  • Manuelles einloggen auf einem entfernten System und ausführen des Tasks
  • Kopieren von Eingabe- und Ausgabedaten zwischen Entwicklermaschine und Rechenplattform

Die neue Version ist bereits bei PyPI veröffentlicht, so dass das Ausführen von pip install bandsaw bereits die aktuelle Version installiert. Des Weiteren haben wir die Dokumentation aktualisiert und eine Beschreibung hinzugefügt, wie das neue SSH Feature verwendet wird.

Mit der neuen Version verfügbar werden wir mit den nächsten zwei Meilensteinen weiter machen:

  • 0.3: Erfassen von Metriken zum Verbrauch von Rechenkapazität.
  • 0.5: Tasks asynchron Ausführen durch die Nutzung eines Schedulers.

Nebenher arbeiten wir zur Zeit an einem zusätzlichen Produkt, das nach Plan am Ende des Jahres veröffentlicht wird, bleiben sie dran! Wie immer, sind wir dankbar füer Feedback in Form von Feature requests in Gitlab, E-Mails oder wenn wir in Discord mit Rat und Tat helfen können.

Viele Grüße,

Christoph

Referenzen

Erster Release unserer neuen Bibliothek "Bandsaw"

Freitag, 29. Oktober 2021

Endlich ist die erste Version eines unserer Produkte aus der Tür. Gestern haben wir erfolgreich die Version 0.1 unserer neuen Bibliothek “Bandsaw” gebaut und anschließend veröffentlicht.

Bandsaw wird die Grundlage unserer Produkte bilden. Dabei handelt es sich um eine Python-Bibliothek, die es ermöglicht, einen Workflow in Form eines Python-Skripts in einzelne “Tasks” aufzusplitten, die dann separat und auf unterschiedlichen Plattformen ausgeführt werden. Die Idee dahinter ist, dass durch das Aufsplitten es möglich wird, die einzelnen Schritte individuell und unabhängig voneinander optimieren zu können.

Natürlich ist unsere erste Version noch nicht mit allen Featuren ausgestattet, die wir bieten möchten, aber es sollte ausreichen, um eine Vorstellung davon zu geben, in welche Richtung wir uns aufmachen. Mit der Version 0.1 unterstützt die Bibliothek derzeit nur Workflows, die auf einer einzelnen Maschine ablaufen. Hier eine kleine Übersicht über die derzeitigen Features:

  • Aufsplitten von Workflows in einzelne “Tasks”
  • Zusätzliches Logging beim Ausführen eines Task
  • Cachen von Ergebnissen von Tasks im Dateisystem zum Beschleunigen wiederholter Ausführungen
  • Ausführen von Tasks in Unterprozessen
  • Verwenden von unterschiedlichen Python-Interpretern pro Task um unterschiedliche Frameworks mit sich widersprechenden Abhängigkeiten zu kombinieren

Das Python-Package mit der Bibliothekt wurde bei PyPI veröffentlicht und kann daher durch einfaches aufrufen von pip install bandsaw installiert werden. Zusätzlich stellen wir englischsprachige Dokumentation bereit, inklusive einem detaillierten Benutzerleitfaden, der die Funktionsweise von Bandsaw und den inneren Aufbau beschreibt. Für alle Interessenten an der tatsächlichen Implementierung kann der Programmcode aus unserem GitLab repository abgerufen werden, viel Spaß. Der Quellcode ist lizenziert unter der Open Source MIT-Lizenz.

So, was kommt danach für Bandsaw? Wir haben noch einiges an Arbeit vor uns bis wir eine Version 1.0 mit allen gewünschten Funktionalitäten veröffentlichen können, aber wir denken, dass es nicht zu lange dauern wird, jetzt, da alle grundlegenden Funktionen existieren. Unsere Planungen für die nächsten Versionen sind folgende:

  • 0.2: Unterstützung für das Ausführen von Tasks auf verteilten Systemen über SSH.
  • 0.3: Erfassen von Metriken zum Verbrauch von Rechenkapazität.
  • 0.5: Tasks asynchron Ausführen durch die Nutzung eines Schedulers.

So viel dazu und zu unseren Plänen. Viel Spaß beim Reinschauen und keine Scheu bei Fragen, Ideen oder anderem Feedback sich bei uns zu melden. Wir freuen uns auf eure Rückmeldung.

Bis denne,

Christoph

Referenzen