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

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