Veröffentlicht am: 24 April 2020
Teilen

In meiner letzten Kolumne habe ich unsere Forschungsagenda für KI-Engineering vorgestellt. Dieses Mal werden wir uns auf eines der Themen auf dieser Agenda konzentrieren, nämlich Datenversionierung und Abhängigkeitsmanagement. Obwohl die Big Data-Ära nun schon seit über einem Jahrzehnt andauert, haben viele der Unternehmen, mit denen wir zusammenarbeiten, immer noch mit ihren Datenpipelines, Data Lakes und Data Warehouses zu kämpfen.

Da wir hauptsächlich mit der Branche der eingebetteten Systeme im B2B-Bereich arbeiten, ist eine der ersten Herausforderungen, mit der viele Unternehmen zu kämpfen haben, der Zugang zu Daten und Eigentumsfragen. Wie ich bereits in einer [früheren Kolumne] (https://bits-chips.nl/artikel/get-your-data-out-of-the-gray-zone/) erörtert habe, ist es wichtig, dass Sie Ihre Daten nicht in einer Art Grauzone belassen, in der unklar ist, wem was gehört, sondern dass Sie Fragen des Zugangs, der Nutzung und des Eigentums an Daten zwischen Ihren Kunden und Ihrem Unternehmen klären. Und natürlich müssen wir klar und transparent sein, was die Verwendung der Daten angeht, sowie die Art und Weise, wie die Daten anonymisiert und aggregiert werden, bevor sie mit anderen geteilt werden.

Die zweite Herausforderung in diesem Bereich hängt mit dem zunehmenden Einsatz von DevOps zusammen. Da die Datengenerierung als Technologie weit weniger ausgereift ist als beispielsweise die API-Verwaltung in Software, neigen Teams dazu, die Art und Weise, wie Protokolldaten generiert werden, eher ad hoc zu ändern, da sie glauben, dass sie die einzigen Verbraucher der Daten sind und diese nur von ihnen verwendet werden, um das Verhalten der Funktionalität, an der das Team arbeitet, zu bewerten. Folglich kommt es bei anderen Nutzern der Daten häufig zu Unterbrechungen des Datenstroms und seines Inhalts.

Die häufigen Änderungen von Datenformaten und Generierungsmethoden sind eine besondere Herausforderung für Anwendungen des maschinellen Lernens (ML), da die Leistung der ML-Modelle stark von der Qualität der Daten abhängt. Daher können Änderungen an den Daten zu unerwarteten Leistungseinbußen führen. Da ML-Modelle in der Regel sehr datenhungrig sind, möchten wir in der Regel große Datensätze für das Training verwenden und daher die Daten aus mehreren Sprints und DevOps-Implementierungen in einem einzigen Trainings- und Validierungsdatensatz zusammenfassen. Wenn sich die von den einzelnen Einsätzen generierten Daten jedoch nur geringfügig (oder auch gar nicht) unterscheiden, kann dies zu einer Herausforderung werden.

Die dritte Herausforderung besteht darin, dass Datenpipelines in der Regel implizite Abhängigkeiten aufweisen, die bei der Implementierung von Änderungen oder Verbesserungen unerwartet auftauchen können. Verbraucher von Datenströmen können plötzlich abgeschaltet werden. Da die von den Verbrauchern implementierten Funktionen in der Regel sehr geschäftskritisch sind, führt dies leicht zu Feuerwehraktionen, um die Verbraucher der Daten wieder online zu bringen. Auch wenn dies ein netter Endorphin-Kick für die Cowboys im Unternehmen sein mag, ist es doch so, dass wir diese Art von Problemen gar nicht erst hätten haben dürfen. Stattdessen müssen die Parteien, die Daten generieren, verarbeiten und verbrauchen, ordnungsgemäß verwaltet werden und die Entwicklung der Pipeline und ihrer Inhalte sollte zwischen den betroffenen Akteuren koordiniert werden.

'We’re working on a domain-specific language to model data pipelines'

Dies sind nur einige der Herausforderungen, die mit der Datenverwaltung verbunden sind. In früheren Forschungsarbeiten haben wir einen umfassenden Überblick über die Herausforderungen der Datenverwaltung gegeben. In unserer aktuellen Forschung arbeiten wir an einer domänenspezifischen Sprache zur Modellierung von Datenpipelines, einschließlich der Verarbeitungs- und Speicherknoten sowie ihrer gegenseitigen Verbindungen. Langfristiges Ziel ist es, operative Pipelines zu generieren, die Überwachungslösungen enthalten, die das Fehlen von Datenströmen, selbst bei Batch-Lieferung von Daten, sowie eine Vielzahl anderer Abweichungen erkennen können.

Darüber hinaus haben wir an einer „Data Linter“-Lösung gearbeitet, die eine Warnung ausgeben kann, wenn sich der Inhalt der Daten ändert. Das reicht von einfachen Änderungen wie fehlenden oder außerhalb des Bereichs liegenden Daten bis hin zu komplizierteren wie der Verschiebung statistischer Verteilungen im Laufe der Zeit. Die Lösung kann Warnungen ausgeben, Daten zurückweisen und Abhilfestrategien auslösen, die die Probleme mit den Daten beheben, ohne den Betrieb zu unterbrechen. Bitte kontaktieren Sie mich, wenn Sie mehr erfahren möchten.

Abschließend lässt sich sagen, dass das Datenmanagement, einschließlich Versionierung und Abhängigkeiten, ein überraschend kompliziertes Thema ist, das viele Unternehmen noch nicht bis zum Boden durchdrungen haben. Der Reifeunterschied zwischen der Art und Weise, wie wir mit Software und mit Daten umgehen, ist einfach atemberaubend, insbesondere in Unternehmen für eingebettete Systeme, wo Daten traditionell nur für das Fehlermanagement und die Qualitätssicherung verwendet wurden. In unserer Forschung arbeiten wir mit Unternehmen zusammen, um die Art und Weise, wie Daten gesammelt, verarbeitet, gespeichert, verwaltet und genutzt werden, schrittweise zu verändern. Da Daten das neue Öl sind, wie einige meinen, ist es entscheidend, sie genauso ernst zu nehmen wie jedes andere Gut, das Sie in Ihrem Unternehmen zur Verfügung haben.