Introducing MutateNN: Ein neues Tool für DNN-Tests
MutateNN verbessert die DNN-Modellbewertung über verschiedene Hardware-Setups hinweg.
― 6 min Lesedauer
Inhaltsverzeichnis
Je mehr Leute Künstliche Intelligenz (KI) nutzen, desto mehr Risiken begegnen wir. Dazu gehören Fehler wie falsche Klassifizierungen und langsame Leistung aufgrund von Problemen bei der Einrichtung oder Softwarefehlern. KI-Methoden wie Deep Neural Networks (DNNS) übernehmen anspruchsvolle Aufgaben, die viel Rechenleistung erfordern und sogar kritisch für die Sicherheit sein können. Um die Leistung von DNNs zu verbessern, wurden verschiedene Machine Learning (ML) Compiler entwickelt. Diese Compiler helfen DNNs, mit unterschiedlichen Hardwaretypen wie GPUs und TPUs zu arbeiten. Es ist jedoch wichtig sicherzustellen, dass der Prozess zur Kompilierung dieser Modelle richtig funktioniert.
Um Entwicklern und Forschern zu helfen, die Leistungsfähigkeit von DNN-Modellen auf verschiedenen Hardware-Setups zu bewerten, stellen wir ein Tool namens MutateNN vor. Dieses Tool konzentriert sich auf Mutationstests und die Analyse von Modellen, die auf verschiedenen Hardware-Beschleunigern eingesetzt werden. Wir betrachten speziell die Bilderkennung und wenden Mutationstests auf etablierte Modelle an, die zur Klassifizierung von Bildern verwendet werden.
Was ist MutateNN?
MutateNN bietet Funktionen zum Testen der Robustheit und Zuverlässigkeit von DNN-Modellen auf verschiedenen Hardwaregeräten. Es nimmt Änderungen an den Modellen auf verschiedene Arten vor, einschliesslich der Ersetzung von Knoten in der Architektur des Modells, der Änderung arithmetischer Operationen und der Modifikation von Eingaben und Ausgaben. Wir führen dann diese veränderten Versionen, bekannt als Mutanten, auf verschiedenen Hardwaregeräten aus, um zu sehen, wie sie abschneiden.
Bei unseren Tests haben wir festgestellt, dass Änderungen an Schichten und arithmetischen Operationen im Allgemeinen wenig Einfluss auf die Leistung des Modells hatten. Allerdings führten Anpassungen im Zusammenhang mit Bedingungsanweisungen zu merkbaren Unterschieden. Wir haben sogar erhebliche Genauigkeitsverluste festgestellt, als wir die Arten von arithmetischen Variablen gewechselt haben, wodurch das Modell unabhängig von den Eingaben die gleichen Ergebnisse lieferte.
Die Bedeutung von Hardware-Beschleunigung
Um die bestmögliche Leistung für DNNs zu erreichen, ist die Nutzung von Hardware-Beschleunigung entscheidend. Doch dieser Prozess kann aufgrund der komplexen Architektur von DNNs herausfordernd sein. Forschungen haben gezeigt, dass Probleme mit GPUs zu den häufigsten Problemen für DNNs gehören. Das macht deutlich, wie wichtig es ist, die Integration von Hardware-Beschleunigung in DNNs richtig zu testen.
Verschiedene ML-Compiler, wie OpenAIs Triton und Apache TVM, wurden entwickelt, um die Modellkompilierung und -optimierung zu automatisieren. Aber angesichts der Komplexität von DNNs ist es wichtig, sicherzustellen, dass diese Tools korrekt funktionieren.
Übersicht über MutateNN
Um zu bewerten, wie gut DNNs gegen mögliche Fehler von ML-Compilern abschneiden, ist unser Tool MutateNN für Mutationstests ausgelegt. Inspiriert von Standardmethoden der Softwaremutation kann MutateNN modifizierte Versionen von DNN-Modellen erstellen, Tests damit durchführen und deren Leistung mit den Originalversionen über verschiedene Hardware-Setups vergleichen. MutateNN verwendet den weit verbreiteten Apache TVM Compiler.
Testen der Fähigkeiten des Tools
Für unsere Tests haben wir beliebte Bilderkennungsmodelle ausgewählt, die auf dem ImageNet-Datensatz trainiert wurden. Wir haben Mutanten in Bezug auf die Modellstruktur und verschiedene Operationen erstellt und die Tests auf Hardware mit unterschiedlichen Fähigkeiten durchgeführt. Eine der Entdeckungen war, dass Mutanten, die Bedingungsanweisungen änderten, Unterschiede in den Ausgaben produzierten, insbesondere beim Anpassen der verwendeten Operatoren in diesen Anweisungen.
Struktur von MutateNN
MutateNN besteht aus drei Hauptteilen:
- Modellvarianten-Generator: Dieser Teil generiert Mutationen und kompiliert sie zur Ausführung auf Geräten.
- Ausführungsmodul: Dieser Abschnitt führt die Mutanten auf Bildern aus einem Datensatz aus.
- Analysemodul: Nach der Ausführung vergleicht dieses Modul die Ausgaben und erstellt Berichte über die Ergebnisse.
Das System basiert auf dem TVM-Compiler-Stapel, der Flexibilität bei der Bereitstellung von Modellen auf verschiedenen Hardwaregeräten ermöglicht.
Modellvarianten-Generator-Modul
Um die DNN-Leistung auf verschiedenen Hardware zu testen, erstellt der Modellvarianten-Generator mehrere Mutationen, die sich auf zwei Hauptkategorien konzentrieren:
- Graphenbezogene Mutationen: Änderungen auf der Ebene der Modellstruktur.
- Codebezogene Mutationen: Anpassungen auf Codeebene.
MutateNN verwendet eine Konfigurationsdatei, um festzulegen, wie diese Mutationen erfolgen, und speichert sie zur späteren Verwendung.
Ausführungsmodul
Sobald die Mutationen erstellt sind, lädt das Ausführungsmodul jeden Mutanten auf ein Hardwaregerät zur Inferenz. Es bereitet den Datensatz vor, indem es Bilder normalisiert, und führt dann Vorhersagen mit jedem Mutanten durch. Die Ausgaben und Ausführungszeiten werden für eine weitere Analyse aufgezeichnet.
Analysemodul
Sobald alle Tests abgeschlossen sind, überprüft das Analysemodul die Ausgaben, um Unstimmigkeiten zwischen den Mutanten und dem Originalmodell zu identifizieren. Es verwendet verschiedene Vergleichsmethoden, um Zusammenfassungsberichte in einem leicht verständlichen Format zu erstellen.
Von MutateNN unterstützte Mutationen
MutateNN kann zwei Haupttypen von Mutationen ausführen:
- Graphenbezogene Mutationen: Änderungen an den Modellverbindungen und -strukturen.
- Codebezogene Mutationen: Modifikationen auf Codeebene, einschliesslich arithmetischer Typen und Operationen.
Bei graphenbezogenen Mutationen betrachten wir Unterkategorien wie Layer-Knoten-Ersetzung, arithmetische Knoten-Ersetzung und Eingabe-/Ausgabemodifikationen. Bei codebezogenen Mutationen untersuchen wir arithmetische Typmutationen, Kernelvariablen-Speicher-Mutationen und Mutationen bei Bedingungsanweisungen.
Ergebnisse aus den Tests von Mutationen
Während unserer Experimente beobachteten wir mehrere bemerkenswerte Muster:
- Layer-Knoten-Ersetzung: Änderungen an Aktivierungsfunktionen führten oft zu Systemab stürzen.
- Arithmetische Knoten-Ersetzung: Dies führte zu erheblichen Leistungsabfällen bei den Modellen.
- Knoten-Eingabe-/Ausgabemodifikationen: Anpassungen der Eingabedaten verursachten ebenfalls Leistungsprobleme.
- Arithmetische Typmutationen: Diese Mutation führte dazu, dass die Modelle in einen Zustand gerieten, in dem sie nur einen sehr begrenzten Satz von Vorhersagen produzierten.
- Kernelvariablen-Speicher-Mutationen: Diese Änderungen hatten typischerweise einen minimalen Einfluss auf die Modellergebnisse.
- Mutationen bei Bedingungsanweisungen: Anpassungen hier führten zu unterschiedlichen Ergebnissen, insbesondere bei der Änderung von Operatoren.
Benutzerfreundlichkeit von MutateNN
Ein wesentliches Merkmal von MutateNN ist seine benutzerfreundliche Konfiguration. Benutzer können Modellkompilierungen einfach einrichten, Mutationen generieren, Tests durchführen und Ergebnisse vergleichen, ohne umfangreiche Kenntnisse über DNN-Bereitstellungen zu benötigen.
MutateNN kann auch automatisch viele vortrainierte Modelle aus etablierten Bibliotheken herunterladen und unterstützt benutzerdefinierte Modellformate. Da das Tool auf Apache TVM basiert, hat es das Potenzial, DNN-Modelle auch in anderen Bereichen zu testen, nicht nur in der Bilderkennung.
Fazit
Wir haben MutateNN vorgestellt, ein Tool, das sich auf Mutationstests von DNN-Bilderkennungsmodellen für Hardwarebeschleunigung konzentriert. Dieses Tool ermöglicht verschiedene Transformationen und Analysen, was es zu einer mächtigen Ressource für Entwickler und Forscher macht.
Durch erste Experimente haben wir erhebliche Unterschiede in den Ausgaben festgestellt, insbesondere in Bezug auf Schwellenwertanpassungen und Bedingungsoperationen. Darüber hinaus haben wir unerwartete Leistungsabfälle bei bestimmten arithmetischen Änderungen bemerkt, was die Wichtigkeit gründlicher Tests unterstreicht.
MutateNN dient als umfassende Lösung zum Kompilieren, Ausführen und Analysieren vortrainierter DNNs in verschiedenen Rechenumgebungen. Es unterstützt das Herunterladen von Modellen, das Generieren von Mutanten, das Durchführen von Inferenz und das Durchführen detaillierter Analysen der Ergebnisse. Diese Flexibilität macht es zu einem wertvollen Werkzeug in der Untersuchung und Anwendung von KI-Technologien.
Titel: MutateNN: Mutation Testing of Image Recognition Models Deployed on Hardware Accelerators
Zusammenfassung: The increased utilization of Artificial Intelligence (AI) solutions brings with it inherent risks, such as misclassification and sub-optimal execution time performance, due to errors introduced in their deployment infrastructure because of problematic configuration and software faults. On top of that, AI methods such as Deep Neural Networks (DNNs) are utilized to perform demanding, resource-intensive and even safety-critical tasks, and in order to effectively increase the performance of the DNN models deployed, a variety of Machine Learning (ML) compilers have been developed, allowing compatibility of DNNs with a variety of hardware acceleration devices, such as GPUs and TPUs. Furthermore the correctness of the compilation process should be verified. In order to allow developers and researchers to explore the robustness of DNN models deployed on different hardware accelerators via ML compilers, in this paper we propose MutateNN, a tool that provides mutation testing and model analysis features in the context of deployment on different hardware accelerators. To demonstrate the capabilities of MutateNN, we focus on the image recognition domain by applying mutation testing to 7 well-established models utilized for image classification. We instruct 21 mutations of 6 different categories, and deploy our mutants on 4 different hardware acceleration devices of varying capabilities. Our results indicate that models are proven robust to changes related to layer modifications and arithmetic operators, while presenting discrepancies of up to 90.3% in mutants related to conditional operators. We also observed unexpectedly severe performance degradation on mutations related to arithmetic types of variables, leading the mutants to produce the same classifications for all dataset inputs.
Autoren: Nikolaos Louloudakis, Perry Gibson, José Cano, Ajitha Rajan
Letzte Aktualisierung: 2024-01-31 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2306.01697
Quell-PDF: https://arxiv.org/pdf/2306.01697
Lizenz: https://creativecommons.org/licenses/by-nc-sa/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.
Referenz Links
- https://www.github.com/luludak/MutateNN
- https://tvm.apache.org/docs/install/from_source.html#developers-get-source-from-github
- https://github.com/tensorflow/models/tree/master/research/slim
- https://tvm.apache.org/docs/tutorial/cross_compilation_and_rpc.html
- https://unsplash.com/images/stock/public-domain
- https://www.youtube.com/watch?v=j7Ffd5y_i3g