Um resiliente Systeme zu entwickeln, muss holistisch gedacht werden. Es geht darum, Künstliche Intelligenz, technische Methoden und geeignete Architekturen ganzheitlich zu betrachten. Das Fraunhofer IKS nennt dies Safe Intelligence.
Dabei kommt auch Softwaretechnik eine große Bedeutung zu. Diese bietet bereits Instrumente für selbst anpassende Systeme. Seit mehr als zwei Jahrzehnten werden Methoden und Architekturen für diese entwickelt, die eine Grundlage für die Entwicklung resilienter Systeme bilden. Mit ihnen lässt sich auch die Komplexität belastbarer Systeme beherrschen. Unter anderem werden dabei Ansätze wie DevOps eine zunehmend wichtigere Rolle spielen.
Angesichts der aktuellen Krisen erfährt der Begriff Resilienz derzeit hohe Aufmerksamkeit. Doch auch im Zusammenhang mit technischen Systemen und Software-Zuverlässigkeit spielt der Begriff eine schon seit einigen Jahren eine vieldiskutierte Rolle. Durch den verstärkten Einsatz von Künstlicher Intelligenz ist diese Rolle noch einmal bedeutender geworden.
Lesen sie die vierteilige Blogserie auf unserem Safe Intelligence Blog von Prof. Dr. Mario Trapp:
Die Wurzeln des Begriffs Resilienz reichen weit zurück. Der Philosoph und Jurist Francis Bacon (1561 bis 1626) definierte Resilienz als physikalische Eigenschaft eines Körpers, nach Einwirkung einer Kraft in seinen ursprünglichen Zustand wieder zurückkehren zu können.
Bezogen auf technische Systeme bedeutet Resilienzfähigkeit, bei Störungen beziehungsweise Teil-Ausfällen nicht vollständig zu versagen, sondern wesentliche Systemdienstleistungen aufrechtzuerhalten.
Computerwissenschaftler Jean-Claude Laprie definierte Resilienz im Zusammenhang mit Software-Zuverlässigkeit. Ein sehr wichtiger Aspekt dabei: Resilienz bezieht sich auch auf Änderungen, die nicht vorhergesehen wurden oder sogar unvorhersehbar sind. Das Resilienzkonzept akzeptiert somit die Tatsache, dass man nicht in der Lage ist, den Kontext von Systemen vorherzusagen. Resiliente Systeme müssen sich daher immer wieder anpassen, um ihre übergeordneten Ziele in sich verändernden, unsicheren Kontexten zu erreichen.
Resiliente Softwaresysteme zeichnen sich dadurch aus, dass sie in der Lage sind, auf eine Veränderung in einem bestimmten Kontext zu reagieren, indem sie sich diesem anpassen, sodass wesentliche Eigenschaften des Systems erhalten bleiben oder optimiert werden.
Resilienzfaktoren werden dann entscheidend, wenn ein System sich in einer nicht klar definierten Umgebung bewegt, dem so genannten Open-World-Kontext. Stattdessen befindet sich das System in einem Kontext, der sich nicht vollständig vorhersagen und spezifizieren lässt. Es ist auch nicht möglich, eine einzige statische Lösung zu entwickeln, die für alle möglichen Betriebssituationen geeignet ist. Beispiele sind cyber-physische Systeme wie autonome Fahrzeuge oder mobile Roboter.
Autonome Fahrzeuge auf Level 5 befinden sich in einem vollkommen offenen und hoch komplexen Kontext. Sie bewegen sich auf einer vierspurigen Autobahn ebenso wie in einer dichten Großstadt. Sie treffen dabei auf eine Vielzahl verschiedener Verkehrsteilnehmer, deren Verhalten nicht vorhersehbar ist. Damit die Vision von fahrerlosen Autos Wirklichkeit werden kann, ist es daher unerlässlich, die Systeme in die Lage zu versetzen, sich an ihren Kontext anzupassen. Damit soll deren Nutzen maximiert und gleichzeitig die Sicherheit gewährleistet werden.
Mobile Roboter, die zum Beispiel in der Lagerlogistik Bauteile oder Waren von A nach B bringen, bewegen sich ebenfalls in einem offenen Kontext. Sie müssen dabei etwa Menschen aus dem Weg gehen, andere Hindernisse umfahren und sich selbstständig orientieren.
Immer wenn Systeme mit Menschen interagieren müssen, können nicht planbare Veränderungen des Kontextes entstehen. Beispiel hierfür sind kollaborierende Roboter – so genannte Cobots. Diese arbeiten etwa im Fertigungsumfeld mit menschlichen Werkern zusammen – im Idealfall Hand in Hand. Dabei muss sich das Robotersystem stets an den Menschen anpassen. Denn während der Roboter immer gleich arbeitet, ist dies beim Werker nicht der Fall. Dieser ist zum Beispiel unterschiedlich aufnahmefähig – abhängig von Tageszeit, individuellen Eigenschaften oder persönlicher Motivation.
Systeme in die Lage zu versetzen, sich an Veränderungen des Kontextes anzupassen und die Resilienz zu stärken, führt zu mehr Komplexität. Beispiel: Besteht ein Software-System aus 100 verschiedenen Komponenten und sind für jede einzelne von diesen jeweils fünf Konfigurationen verfügbar, dann bietet dieses System 5100 verschiedene Kombinationsmöglichkeiten, um auf ein bestimmtes Ereignis zu reagieren.
Diese Komplexität lässt sich kaum in den Griff bekommen. Dies wiederum führt zu Qualitätsproblemen, weil nicht mehr gewährleistet werden kann, dass das System seine Funktionen noch erfüllen kann. Eine erhöhte Flexibilität kann also dazu führen, dass sich der Nutzen eines Systems nicht mehr garantieren lässt.
Die Herausforderung der Resilienzfähigkeit zeigt sich besonders beim Einsatz von Künstlicher Intelligenz (KI). Die Stärke von KI-Technologien wie etwa neuronalen Netzen ist es, flexibel auf unvorhergesehene Ereignisse zu reagieren. Daher spielen sie etwa beim autonomen Fahren eine entscheidende Rolle, weil das Auto sich nur durch ihre Hilfe im Open-World-Kontext bewegen kann.
Da es sich bei KI wie einem neuronalen Netz aber um sehr komplexe Systeme handelt, lässt sich nicht nachvollziehen, wie ihre Entscheidungen zustande kommen. Die KI ist eine Black Box. Das bedeutet aber auch, dass man kann keine Garantie für das Funktionieren der KI geben kann. Wenn es jedoch um sicherheitskritische Anwendungen wie etwa dem autonomen Fahren geht, dann benötigt man Garantien.
Eine Safety-Schranke in Form von »Wenn-dann-sonst-Anpassungen« einzubauen, löst jedoch das Problem nicht. Denn würde man die KI ihrer größten Stärke – nämlich der Flexibilität – berauben.