Machine Learning: Keras Core bringt das Multi-Backend zurück

Die Beta für Keras Core bietet eine Multi-Backend-Implementierung und kann mit TensorFlow, JAX und PyTorch umgehen. Im Herbst soll sie zu Keras 3.0 werden.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: vs148/Shutterstock.com)

Lesezeit: 4 Min.
Inhaltsverzeichnis

Das Entwicklungsteam hinter der Deep-Learning-API Keras hat Keras Core veröffentlicht. Dabei handelt es sich um eine Vorschauversion auf das neu geschriebene Keras 3.0, das im Herbst erscheinen soll. In das Machine-Learning-Framework TensorFlow integriert, verwendet Keras dieses seit 2018 als alleiniges Backend. Mit Keras Core ändert sich das, denn es bringt eine Multi-Backend-Implementierung für TensorFlow, JAX und PyTorch mit.

Keras ist eine in Python geschriebene High-Level-API für Deep Learning, die derzeit ausschließlich auf dem Open-Source-Framework TensorFlow läuft und darin integriert ist. Das war nicht immer so, denn wie das Keras-Team ausführt, konnte Keras einst auch auf Theano und CNTK laufen. Im Jahr 2018 entschied das Team, sich einzig auf TensorFlow als Backend zu konzentrieren, da es nach dem Entwicklungsende von Theano und CNTK die einzig brauchbare Option gewesen sei.

Aufgrund geänderter Umstände wird Keras 3.0 zum Multi-Backend zurückkehren und neben TensorFlow auch die ML-Frameworks PyTorch und JAX unterstützen: Auf Basis verschiedener Studien schlussfolgert das Keras-Team, dass das von Google Brain ins Leben gerufene TensorFlow einen Marktanteil zwischen 55 und 60 Prozent besitzt und die erste Wahl für ML in der Produktion ist, während das einst von Facebook (inzwischen Meta) entwickelte PyTorch einen Marktanteil von 40 bis 45 Prozent hat und zur ersten Wahl für ML-Forschung geworden ist. Im vergangenen Jahr hat Meta PyTorch als Open-Source-Projekt an die Linux Foundation übertragen.

Das dritte unterstützte Backend JAX stammt aus dem Hause Google und ist ebenfalls quelloffen verfügbar. Es besteht aus Autograd und XLA und dient hochperformanten numerischen Berechnungen. Laut dem Keras-Team hat es zwar einen geringeren Marktanteil als PyTorch und TensorFlow, wird jedoch von Top-Playern in der generativen Künstlichen Intelligenz wie Google, DeepMind, Midjourney und Cohere eingesetzt.

Als Ersatz für tf.keras soll Keras Core fast vollständige Kompatibilität mit tf.keras-Code unter Verwendung des TensorFlow-Backends bieten. In den meisten Fällen soll der Import mittels import keras_core as keras statt from tensorflow import keras möglich sein, ohne Schwierigkeiten im Code auszulösen und zudem aufgrund der verwendeten XLA-Kompilierung die Performance leicht erhöhen. Sofern ein tf.keras-Modell ausschließlich integrierte Layer nutzt, soll es unmittelbar mit allen unterstützten Backends funktionieren.

Zu den Vorteilen von Keras Core soll eine bessere Performance zählen, da beispielsweise JAX meist die beste Training- und Inferenz-Performance auf GPU, TPU und CPU bietet, so das Keras-Team. Der Multi-Backend-Support erlaubt das dynamische Wählen des Backends, ohne den Code zu verändern. Er bedeutet auch eine Vergrößerung des verfügbaren Ökosystems. So lassen sich beispielsweise Keras-Core-Modelle mit PyTorch-Ökosystem-Packages nutzen.

Wer seine Open-Source-Modelle mit anderen teilen möchte, profitiert ebenfalls davon, denn ein in Keras Core implementiertes Modell lässt sich auch von PyTorch-Anwenderinnen und -Anwendern nutzen, selbst wenn diese Keras nicht verwenden.

Derzeit liegt Keras Core noch als Beta vor und trägt auf GitHub die Versionsnummer 0.1.0. Im Herbst 2023 soll daraus Keras 3.0 entstehen und als pip-Package keras erscheinen. Das Preview-Release gilt bereits als "feature complete". Es soll demnach bis zum finalen Erscheinungstermin keine neuen Features erhalten, sondern das Entwicklungsteam plant während der Testphase bestehende Schwierigkeiten in Keras Core zu beheben und es in größeren Projekten in der Produktion einzusetzen. Die Community ist ebenfalls dazu aufgerufen, Keras Core ausgiebig zu testen und Feedback abzugeben. Der Support für weitere Backends ist derzeit nicht konkret vorgesehen, aber langfristig nicht ausgeschlossen.

Weitere Informationen zu Keras Core inklusive einem tiefergehenden FAQ-Abschnitt bietet ein Keras-Blogeintrag.

(mai)