Das neu eingerichtete Konsortium für Python-Daten-API-Standards zielt darauf ab, einheitliche Schnittstellen für Frameworks für maschinelles Lernen und Python-Bibliotheken zu erstellen. Der Fokus liegt einerseits auf Arrays oder Tensoren und andererseits auf Datenrahmen.
Der Initiator des Konsortiums ist Quansight Labs und seine Gründungssponsoren sind Intel, Microsoft, die DE Shaw Group, Google Research und Quansight. Langfristig sollte sich das Konsortium zu einer projekt- und ökosystemübergreifenden Organisation entwickeln, die APIs und Datenaustauschmechanismen vergleicht und standardisiert.
Fragmentierte Bibliotheken
Viele Funktionen sind auf die gleiche Weise in viele Bibliotheken integriert, jedoch mit genügend Unterschieden im Detail. In dem Blogbeitrag zu Beginn des Konsortiums sind beispielsweise die Funktionen zur Berechnung des arithmetischen Mittelwerts anhand eines Arrays aufgeführt, das in den einzelnen Bibliotheken wie folgt implementiert ist:
numpy:
mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
dask.array:
mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
cupy:
mean(a, axis=None, dtype=None, out=None, keepdims=False)
jax.numpy:
mean(a, axis=None, dtype=None, out=None, keepdims=False)
mxnet.np:
mean(a, axis=None, dtype=None, out=None, keepdims=False)
sparse:
s.mean(axis=None, keepdims=False, dtype=None, out=None)
torch:
mean(input, dim, keepdim=False, out=None)
tensorflow:
reduce_mean(input_tensor, axis=None, keepdims=None,
name=None, reduction_indices=None, keep_dims=None)
Die Funktionen der oben genannten Bibliotheken haben die Standardeinstellung für keepdims
weitgehend identische Unterschriften. Aber selbst mit denselben Signaturen haben sie manchmal unterschiedliche Semantiken, die schwieriger zu bestimmen sind. MXNet dokumentiert sogar explizit die Abweichungen von NumPy: Der Array-Parameter ist nur einer ndarray
erlaubt, und der Datentyp für Zahlen ist float32
.
Konservative Entscheidungen
Das Konsortium möchte zunächst die Anforderungen für die Standardisierung testen und beginnt mit einer Anforderungsentwicklung. Ziel ist es zu erkennen, in welchen Bereichen Standardisierung erforderlich ist und wie die Standards umgesetzt werden sollten.
Um ein Überwachsen aufgrund zu vieler spezieller Anwendungsfälle zu vermeiden, sollte sich der Standardisierungsprozess auf die Funktionen konzentrieren, die in den meisten Bibliotheken bereits in irgendeiner Form vorhanden sind. Das Konsortium möchte auch bewerten, welche Funktionen Datenwissenschaftler in der Praxis nutzen. Es gibt eine für letztere Tool im GitHub-Repository für die Daten-API-Standards, die bestimmen, welche Python-Module ein anderes Modul verwendet.
API-Vergleich und Zusammenarbeit
EIN eine weitere Ressource im Repository liest und verarbeitet die öffentlich verfügbare HTML-Dokumentation für Array-Bibliotheken, vergleicht die vorhandenen Funktionen und ihre Signaturen und zeigt das Ergebnis schließlich in einer HTML-Tabelle an.
Darüber hinaus hoffen die Initiatoren des Standardisierungsprozesses auf die Zusammenarbeit der Entwickler der wichtigen Python-Bibliotheken und -Frameworks sowie der Community. Das Konsortium plant, den RFC (Request for Comments) für die Array-APIs bis zum 15. September zu veröffentlichen und mit dem Community-Überprüfungsprozess zu beginnen. Der RFC für die Dataframe-APIs wird am 15. November folgen. Weitere Details finden Sie hier der Blogbeitrag über den Start des Konsortiums entfernen.
(Arm)
Freiberuflicher Alkoholiker. Begeisterter Webfanatiker. Subtil charmanter Zombie-Junkie. Ergebener Leser.
You may also like
-
Österreichische Gletscher ziehen sich „mehr denn je“ zurück: Messung
-
Von der NASA ins All geschickte Samen, Forstdienst kehrt zur Erde zurück und erschafft eine neue Generation von „Mondbäumen“
-
Wie die Vereinigten Arabischen Emirate ein Raumschiff zum Mars schickten – beim ersten Versuch
-
Die seltensten Wolken der Welt erscheinen über der Bucht von San Francisco
-
2023: Massive Menschenmassen in Abuja, als APC-Frauen und -Jugendliche eine Kundgebung für die Präsidentschaft von Tinubu/Shettima abhalten