Wenn man sich die drei vorgestellten praxisrelevanten Technologien für Systeme mit KI nun aus Sicht eines Testers genauer ansieht, dann umfasst jedes der Systeme die Elemente, die in Bild 5 dargestellt sind.
Aufbau und Struktur aktueller Systeme im industriellen Einsatz
Bevor man sich tiefergehend mit dem Testen der neuen KI-Systeme beschäftigt, lohnt ein Blick in aktuelle elektronische Steuergeräte im Auto und in der Luftfahrt. Hier lassen sich die in Bild 6 dargestellten Elemente erkennen.
Wesentliche Eigenschaften der Steuergeräte werden heutzutage mittels komplexer und umfangreicher Konfigurationsdaten gesteuert. Damit lassen sich schnell und problemlos Änderungen am funktionalen Verhalten der Steuergeräte implementieren. Dies ist besonders für die Abstimmung der einzelnen Komponenten auf Fahrzeugebene enorm hilfreich. Genau Gleiches gilt für einige Systeme, die in der zivilen Luftfahrt eingesetzt werden.
Neben diesen wichtigen Vorteilen hoch konfigurierbarer Systeme gibt es aber auch wesentliche Nachteile. Die Funktionalität solcher Systeme steigt gegenüber nicht konfigurierbaren Systemen exponentiell an. Ein vollständiger Test ist daher offensichtlich nicht mehr durchführbar. In der Luftfahrt gibt es bei den sicherheitsrelevantesten Systemen für den Nachweis einer vollständigen Verifikation durchaus Lösungsansätze. Der Aufwand dafür ist aber in den meisten anderen Branchen normalerweise wirtschaftlich nicht vertretbar.
Der Quellcode selbst lässt sich in die Bereiche mathematische Algorithmik und Datenverarbeitung einteilen.
Das Testen und Spezifizieren mathematischer Algorithmik ist in heutigen klassischen Steuergeräten komplex und fehleranfällig. Ein vollständiger Test ist praktisch unmöglich.
In vielen Steuergeräten ist allerdings der Anteil der Software, welcher die mathematischen Algorithmen implementiert, klein(er) im Vergleich zur Software, die »nur« die Datenverarbeitung übernimmt – z. B. Formatieren, Kopieren von Daten, Fehlerbehandlungen, Steuerung von Hardware-Ausgangssignalen.
Die Funktionalität von Datenverarbeitungssoftware lässt sich wiederum recht gut in Requirements abbilden und beschreiben. Die Vollständigkeit von Tests ist durch den Rückgriff auf diese Requirements deshalb recht gut nachweisbar.
Beim Vergleich zwischen KI-Systemen (überwachte/unüberwachte Systeme des maschinellen Lernens) und herkömmlichen Systemen läst sich erkennen, dass Daten und mathematische Algorithmen ein wesentlicher Bestandteil beider Systeme sind. Beide stellen schon das Testen herkömmlicher Systeme vor die genannten großen, teils ungelösten Herausforderungen. Weil die Daten und die mathematische Algorithmik in KI-Systemen eine deutlich zentralere Rolle spielen, verstärken KI-Systeme die schon heutig vorhandenen Herausforderungen des Testens:
➔ Validierung der Korrektheit des zu entwickelnden Systems
➔ Genauigkeit, Komplexität und Vollständigkeit mathematischer Algorithmen
➔ Exponentielle, funktionale Varianz datengetriebener Systeme
➔ Entwurf und Herstellung automatisierter Testsysteme auf Integrations- und Systemebene
KI-Systeme steigern die Möglichkeiten, komplexe Probleme zu lösen. Dies ist einerseits eine positive Entwicklung. Andererseits wird damit auch der Nachweis der Korrektheit einer Lösung, also deren Validierung, immer anspruchsvoller. Besonders für überwachtes und unüberwachtes maschinelles Lernen bedeutet dies aber keinesfalls, dass die Systeme nicht validierbar und verifizierbar wären.
Vorschlag zur Sicherstellung der Datenqualität
Damit das System die Problemstellung korrekt umsetzt, spielen die Trainingsdaten die entscheidende Rolle. Der Luftfahrt-Standard DO 200B »Standards for Processing Aeronautical Data« hat zwar keinerlei Bezug zu KI-Systemen, bietet aber durchaus übertragbare Ansätze, wie die Qualität von Daten auch für KI-Systeme erreicht werden kann.
Strategien zum vollständigen Nachweis der Funktionalität
Wie schon festgestellt wurde, ist ein vollständiger Test der gesamten Software aufgrund der Komplexität und des funktionalen Umfangs nicht mehr möglich. Was aber in der Luftfahrt auf eine sehr effiziente Art und Weise eine enorme Hilfe bietet, sind zusätzliche, gezielte Analysen der Kombination von Algorithmik, Daten und geplanten Tests. Auch wenn diese Methodik bei KI-Systemen keine Vollständigkeit mehr erwarten lässt, so lassen sich doch mit dieser Methodik größere Lücken erkennen. Mit diesen Informationen lässt sich dann ein systematischer, risikobasierter Testansatz umsetzen.
Das endgültige Ende des manuellen Testens
Neben der Methodik spielen auch die Testprüfstände eine wichtige Rolle. Komplexe herkömmliche Systeme werden oft immer noch manuell getestet. Für KI-Systeme wird offensichtlich, dass dies nicht mehr funktioniert. Ohne eine hohe Testautomatisierung von System- und Integrationstests wird man kein KI-System sinnvoll testen können. Die gute Nachricht ist, dass hier noch viel Potenzial steckt, das noch nicht ausgeschöpft ist. Die Automatisierung von Tests, besonders auf den höheren Ebenen, ist bisher sehr teuer. Dafür gibt es zwei wesentliche Gründe: Die Nachfrage nach solchen Systemen ist bisher relativ gering. Und eine wirkliche Standardisierung von Komponenten von Testsystemen hat noch nicht stattgefunden.
Methodische Verbesserungen sind möglich
Der Test von KI-Systemen führt hoffentlich auch dazu, dass endlich manche der eingefahrenen Methoden und Prozesse kritisch hinterfragt und Verbesserungen entworfen werden. Die Spezifikation und damit auch der Test mathematischer Algorithmen stellen seit jeher ein fast ungelöstes Problem dar. Das Requirement-Engineering wurde aber auch seit Jahren nicht mehr wirklich weiterentwickelt. Ganz sicher schlummern hier auch noch methodische Potenziale, die, wenn sie gehoben werden, auch einen guten Beitrag leisten werden, um KI-Systeme zu testen.
Systeme des bestärkenden maschinellen Lernens
KI-Systeme, die auf bestärkendem maschinellem Lernen beruhen, können sicherlich auch von den oben genannten Ansätzen der Validierung und Verifikation profitieren. Allerdings unterscheiden sich diese Systeme in einem Punkt grundsätzlich von den anderen beiden Methoden des maschinellen Lernens: Es gibt kein sinnvolles, nachvollziehbares oder vorhersagbares Richtig oder Falsch mehr. Die Systeme sind dafür ausgelegt, eigenständige Entscheidungen zu treffen. Diese Entscheidungen beruhen schon nach kurzer Laufzeit der Systeme auf praktisch unendlich vielen Erfahrungen.
Die Systeme werden entworfen, um nicht vorhersagbare Entscheidungen zu treffen. Daraus ergibt sich zwangsläufig, dass sie praktisch nicht mehr verifizierbar sind. Zumindest gilt das für heutige, in der Praxis übliche Validations- und Verifikationsmethoden.
Es müssen für den Umgang mit solchen Systemen ganz neue Kriterien entworfen werden. Dazu bietet sich der aktive Austausch mit der Spieleindustrie an, denn dort gibt es die größte Erfahrung mit derartigen Systemen.
Drei Arten des maschinellen Lernens dominieren die industriellen KI-Anwendungen:
➔ Überwachtes maschinelles Lernen (Supervised Machine-Learning)
➔ Unüberwachtes maschinelles Lernen (Unsupervised Machine-Learning)
➔ Bestärkendes maschinelles Lernen (Reinforcement-Machine-Learning)
Alle drei Arten gehören zu den schwachen KIs. Eine starke KI, die in der Lage wäre, unter anderem strategische und emotionale Intelligenz nachzubilden, gibt es nicht.
Der Test der genannten schwachen KIs ist durchaus möglich. Allerdings werden schon die beim Test herkömmlicher Systeme bekannten Herausforderungen sehr viel größer, wenn man KI-Systeme testen will.
Unmöglich erscheint aus heutiger Sicht nur der Test von Systemen, die das bestärkende maschinelle Lernen implementieren, weil hier nicht mehr eindeutig ein Richtig oder Falsch für das Systemverhalten definiert werden kann.
Weil vermutlich die Akzeptanz von KI-Systemen insgesamt stark von deren Wirksamkeit abhängen wird, ist es zwingend geboten, diese Wirksamkeit vor Inverkehrbringen der Systeme zu validieren und zu verifizieren. Um die dabei diskutierten Herausforderungen meistern zu können, erfordert künftig das Requirement- und Test-Engineering deutlich mehr Aufmerksamkeit als bisher.
Der Autor
Martin Heininger
verfügt über 25 Jahre Erfahrung im Bereich der Entwicklungsmethoden für sichere, softwareintensive Embedded-Systeme. 2005 gründete er das Unternehmen Heicon Global Engineering, das er seitdem als Geschäftsführer leitet.