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.
Ausgabe der mit dem API-Vergleichstool über API-Schnittmenge ermittelten APIs.
(Bild: data-apis.org)
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)
You may also like
-
Biden sagt, dass die USA “Wochen vor dem Zeitplan” sind und als erstes Land 100 Millionen Impfungen erhalten werden
-
Rettung von Meeresschildkröten, die von der Kälte der NASA-Astronautin Nicole Stott betäubt wurden
-
Durch den Klimawandel in den Alpen verursachte Schneeschmelze löst abrupte saisonale Veränderungen aus
-
SpaceX startet zum zweiten Mal den Prototyp eines SN10-Raumfahrzeugs
-
Die Staats- und Regierungschefs der EU versuchen, Energie zu injizieren, um die Einführung von Impfstoffen zu verlangsamen – (A)