Veröffentlicht am: 23 November 2020
Experte:
Teilen

Diese Woche habe ich an der International Conference on Software Business(ICSOB 2020) teilgenommen und einen Vortrag über die autonome Verbesserung von Systemen gehalten. Die Kernidee ist, dass softwareintensive Systeme ihre Leistung messen können, wissen, wofür sie optimiert werden müssen und autonom mit ihrem eigenen Verhalten experimentieren können.

Die Geschichte der softwareintensiven Systeme lässt sich in drei Hauptphasen unterteilen. In der ersten Phase haben wir Systeme nach einer Spezifikation gebaut. Diese Spezifikation konnte entweder vom Kunden oder von Produktmanagern kommen, aber das Ziel des F&E-Teams war es, ein System zu bauen, das die Anforderungen in der Spezifikation umsetzt.

Entwicklung von softwareintensiven Systemen

Viele Online-Unternehmen, aber auch die ersten Unternehmen für eingebettete Systeme, befinden sich in der nächsten Phase. Hier erhalten die Teams keine Spezifikation, sondern eher eine Reihe von einem oder mehreren priorisierten KPIs, die sie verbessern sollen. Im E-Commerce ist der vorherrschende KPI oft die Konversion; bei eingebetteten Systemen wird oft eine gewichtete Mischung aus Leistung, Zuverlässigkeit und anderen Qualitätsattributen verwendet. Die Teams erhalten als Zielvorgabe, einen oder mehrere dieser KPIs zu verbessern, ohne die anderen (deutlich) zu verschlechtern. Sie müssen dazu Hypothesen entwickeln und diese in der Praxis testen, z.B. mit A/B-Experimenten.

Obwohl die zweite Stufe für viele Unternehmen ein großer Schritt nach vorn ist, besteht das Problem darin, dass das Team immer noch die ganze schwere Arbeit leisten muss. Insbesondere die Durchführung vieler A/B-Experimente kann sehr mühsam sein. Der nächste Schritt, den einige Unternehmen erforschen, besteht darin, dem System die Möglichkeit zu geben, seine eigenen Experimente zu erstellen, um zu erfahren, wie es seine eigene Leistung verbessern kann. Theoretisch fällt dies in die Kategorie des verstärkenden Lernens, aber es erweist sich als ziemlich schwierig, dies in einem empirischen, industriellen Kontext umzusetzen.

Die Entwicklung, die Unternehmen durchlaufen, um diese dritte Stufe zu erreichen, kann in einem Modell dargestellt werden, das die Aktivitäten und Technologien zeigt, die auf jeder Stufe eingesetzt werden können. Ab Stufe 2 sehen wir, wie sich das Systemverhalten autonom verbessert, z. B. durch die Hinzufügung einer intelligenten Online-Auswahl von Experimenten und durch die automatische Generierung von Experimenten. Daraus ergeben sich alle möglichen Herausforderungen, einschließlich der Vorhersage der Worst-Case-Leistung der generierten Alternativen. Wenn ein System autonom Experimente generiert und einsetzt, können einige dieser Experimente eine sehr schlechte Leistung aufweisen. Das bedeutet, dass das System Modelle benötigt, um das Worst-Case-Ergebnis für jedes Experiment vorherzusagen, sowie Lösungen, um laufende Experimente abzubrechen, wenn die Leistung negativ beeinflusst wird.

Evolution Modell

'We need to start looking into online reinforcement learning'

Mit der zunehmenden Verbreitung von KI müssen wir anfangen, uns mit dem Online-Verstärkungslernen in softwareintensiven Systemen zu beschäftigen, da dies die autonome Verbesserung von Systemen erleichtern würde. Diese Ambition ist mit großen Herausforderungen verbunden, die wir gerade erforschen. Ich möchte Sie jedoch dazu ermutigen, zu erforschen, wo die Systeme, die Sie entwickeln, ihr eigenes Verhalten autonom verbessern könnten. Selbst wenn Sie in einer kleinen, risikofreien Ecke des Systems beginnen, kann es sehr hilfreich sein, dieses Paradigma kennenzulernen. Das übergeordnete Ziel ist, dass ich jeden Tag, an dem ich Ihr Produkt benutze, möchte, dass es besser wird!