Unsere Prüfplattform 

Reproduzierbare KI-Testing-Pipelines leicht gemacht

Die Komplexität von KI-Modellen macht es notwendig, eine Prüfung in verschiedene Dimensionen aufzuteilen, um beispielsweise die Fairness oder die Robustheit eines Modells zu bewerten. Hinzu kommt, dass KI als Querschnittsthema in sehr vielen Bereichen eingesetzt wird, die individuelle Lösungen je Anwendungsfall benötigen. Dies führt dazu, dass viele verschiedene KI-Prüfwerkzeuge existieren, die einzelne Aspekte eines KI-Modells aus einer bestimmten Domäne heraus überprüfen. Die Schwierigkeit, vor diesem Hintergrund standardisierbare, wiederholbare und vergleichbare Tests durchzuführen, wird bei einem Gedankenexperiment deutlich:​

Stellen Sie sich vor, Ihre Aufgabe ist es, mittels verschiedener Testing-Tools und unterschiedlicher Datensätze eine Reihe an KI-Modellen hinsichtlich verschiedener Aspekte der Vertrauenswürdigkeit zu prüfen. 

Sie werden gedanklich bestimmt direkt auf die typischen Hürden und Herausforderungen stoßen: ​

    • Wie stelle ich meine Prüfworkflows und deren Teilkomponenten, wie Datensätze, KI-Modelle und Testing-Tools anderen Nutzern (wie beispielsweise Prüfern oder Entwicklern) bereit?
    • Wie stelle ich die Interoperabilität der verschiedenen Komponenten, wie Testing-Tools und KI-Modelle her?​
    • Wie kann ich Prüfworkflows modular und erweiterbar gestalten? Wie kann ich Änderungen an Prüfworkflows nachvollziehen?
    • Wie kann ich Prüfworkflows automatisiert ausführbar machen, sodass beispielsweise ein Entwickler Prüfworkflows über mehrere Versionen einer Anwendung hinweg kontinuierlich einsetzen kann?​
    • Wie stelle ich die Reproduzierbarkeit und Nachvollziehbarkeit meiner Test-Resultate sicher?​

Es wird klar, dass das Durchführen einer solchen Prüfung mit einem großen Entwicklungsaufwand verbunden ist.
Unsere Plattform nimmt Ihnen diese Hürden folgendermaßen ab:​ 

    • Unsere Plattform versioniert und verwaltet ihre Datensätze, Modelle, Testing-Tools und Prüfworkflows. Diese lassen sich mittels eines einfachen Befehls in die Plattform einbinden und sind dann durch andere Nutzer (gemäß ihren Vorgaben) abrufbar.
    • Die Plattform verwaltet nicht nur den Code und die Daten der Einzelkomponenten, sondern auch Schnittstellen- und Datentyp-Spezifikationen. Durch das zur Verfügung stellen von Standard-Datentypen und -Schnittstellen für verschiedene Use Cases schafft unsere Plattform Einheitlichkeit und Interoperabilität zwischen KI-Modellen und Testing-Tools.
    • Prüfworkflows können durch unsere Plattform reproduzierbar und nachvollziehbar ausgeführt werden. Dies wird unter anderem durch das automatisierte Bauen von Ausführungsumgebungen, das Berechnen von kryptographischen Prüfsummen und das Persistieren von Logging- und Monitoring-Nachrichten ermöglicht.

​Die Prüf-Plattform kann auch auf Ihrem lokalen Rechnerverbund gehostet werden. Somit ist sie auch in Privacy-sensitiven Anwendungsfeldern einsetzbar und zum Testen von Firmen-internen Modellen geeignet.

 

Unser Konzept der Prüfplattform

Die Prüfplattform ist ein Software-System, welches Prüfworkflows wie Tests oder Benchmarking-Prozeduren verwaltet.

Das Ziel der Plattform ist es, automatisierbare, reproduzierbare und nachvollziehbare Prüfungen von KI-Systemen zu ermöglichen, die kollaborativ von mehreren Nutzern und über den gesamten Lifecycle einer Anwendung eingesetzt werden kann. Dazu werden dem Nutzer zwei Hauptfunktionen zur Verfügung gestellt: das Einbinden von Prüfworkflows, sowie deren Teilkomponenten, wie Datensätze, Modelle oder Prüftools, auf der Plattform und zweitens das reproduzierbare und nachvollziehbare Ausführen von registrierten Prüfworkflows.

Die Plattform speichert Prüfworkflows bzw. deren Komponenten als sogenannte Module ab. Ein Modul beinhaltet alle Informationen, um einen Prüfworkflow reproduzierbar auszuführen. Dies beinhaltet Referenzen zu den beteiligten Daten (von Datensätzen oder Parametern) und dem ausführbaren Code (von Modellen oder Tools), eine Schnittstellen- & Datentyp-Spezifikation, die beschreibt wie die einzelnen Komponenten Informationen austauschen und welche Informationen das genau sind, eine Spezifikation der Ausführungsumgebung, sowie eine Prüfsumme zur Integrationsprüfung des Moduls. Nutzer der Plattform, wie beispielsweise Entwickler oder Prüfer, können Module auf der Plattform abspeichern. Module werden durch die Plattform versioniert verwaltet und weiteren Nutzern zugänglich gemacht werden. So können beispielsweise dritte Prüfer aus bestehenden Modulen auch neue Prüfworkflows wie in einem Baukasten zusammenstellen, beispielsweise über eine einfach zu bedienbare No-Code Nutzeroberfläche.

Registrierte Prüfworkflows können schließlich mittels der Plattform ausgeführt werden.Die Plattform sorgt automatisch dafür alle beteiligten Teilkomponenten auszuführen und die Funktionen des Prüfworkflows über die definierten Schnittstellen abzurufen.Jegliche Daten, die bei einer solchen Ausführung (“Execution”) geladen werden, werden automatisiert auf ihre Integrität geprüft.Zudem werden bei jeder Ausführung Logging-Nachrichten persistiert und als sogenannte “Execution Reports” verfügbar gemacht.Alle Ergebnisse einer abgeschlossene Ausführung werden schließlich als sogenannte “Executed Modules” auf der Plattform registriert und abgespeichert.

 Um den Nutzern der Plattform das Zusammenstellen von Prüfworkflows weiter zu erleichtern, ist unser Ziel die Plattform mit einem initialen Katalog an Modulen auszustatten, die für das Prüfen von Modellen, aber auch für das Laden von Datensätzen und Modellen eingesetzt werden können. Zudem wird die Plattform einen initialen Katalog an Standard-Schnittstellen und Standard-Datentyp-Spezifikationen für verschiedene Use-Cases bereitstellen, über welche die einzelnen Komponenten ihre Informationen austauschen können. Auf diese Art und Weise kann auf der Plattform Einheitlichkeit und Interoperabilität zwischen verschiedenen Komponenten sichergestellt werden.

Demonstrator: Test-Pipeline für ein Object-Detection-Modell

In unserem Demonstrator zeigen wir, wie eine Benchmarking-Prozedur für ein Object Detection Modell von der Plattform verwaltet und ausgeführt wird.

  • Loggen Sie sich auf der AI4Europe-Plattform hier ein. Wie das geht, zeigt folgendes Video.
  • Rufen Sie den Object-Detection-Benchmark-Demo aus dem AI4EU-Marketplace hier auf.
  • Wählen Sie oben rechts „Deploy for Execution“ und „AI-Lab Playground“.
  •  Sie werden zum „AI-Lab Playground“ weitergeleitet, eine Ausführungsumgebung für Machine-Learning Anwendungen.
  •  Rufen sie das Module Dashboard auf: Klicken Sie in der Zeile „module-dashboard-demo1“ auf das Symbol der Spalte „WebUI/Folder“
  • Sie werden zum “Module Dashboard” in einem weiteren Tab weitergeleitet

Im “Module Dashboard” zeigen wir eine Modul-Spezifikation für ein Object-Detection-Benchmarking. Dies sind all jene Informationen, die unsere Prüfplattform verwaltet. Das Modul beinhaltet den Object-Detection-Datensatz “KITTI” als Eingabe, das zuprüfende Modell “SqueezeDet” und ein Metrik-Evaluations-Tool, welches gängige Performanz-Metriken zur Bewertung des Modells berechnet. Die Funktionsweise des Moduls wird über einen sogenannten “Execution-Graph” visualisiert, welcher folgendermaßen aussieht:

  •  Wechseln Sie nun zurück in den Tab zum “AI-Lab Playground
  • Klicken Sie auf “Run”, um die Benchmarking-Prozedur auszuführen
  • Rufen sie das “Object Detection Benchmark Results” dashboard auf:
    Klicken Sie in der Zeile „object-detection-metric-tool-demo1“ auf das Symbol der Spalte „WebUI/Folder“

Im “Object Detection Benchmark Results” dashboard können Sie die Resultate des Benchmarkings sehen. Für das Modell wurden gängige Performanz-Metriken berechnet und abgespeichert. Das Ergebnis können Prüfer einsetzen, um die Zuverlässigkeit des Modells zu bewerten. Desweiteren können die erzeugten Ergebnisse in weiteren Workflows der Plattform wiederverwendet werden.

  • Wechseln Sie nun zurück in den Tab zum “Module Dashboard”
  • Wählen Sie links den Reiter “Module Executions”

Unter “Module Executions” werden die bisherigen Ausführungen der Benchmarking-Prozedur angezeigt. Wählen Sie “Latest Report” um sich den “Execution Report” der Ausführung anzeigen zu lassen. In diesem finden Sie beispielsweise Logging-Nachrichten über die Ausführung.Desweiteren können sie sich das ausgeführte Modul (“Executed Module”) anzeigen lassen, welches unter anderem alle Resultate durch Identifikations-Hashes eindeutig verifizierbar bestimmt.