KISS Seminare

Optimierung und Bereitstellung von tiefen neuronalen Netzen für heterogene Computersysteme

(in englischer Sprache)  

Die zunehmende Verbreitung neuronaler Netze erfordert immer häufiger, diese auf lokalen eingebetteten Endgeräten auszuführen. Letztere sind typischerweise als heterogene Hardware-Plattformen realisiert und umfassen z.B. Multi-Core CPUs mit GPUs wie auch spezielle KI Beschleuniger. Die Systeme sind dabei in ihren Ressourcen wie Speicher oder Stromaufnahme beschränkt. Dies führt dazu, dass gängige Netzwerkarchitekturen wie z.B. ResNet, VGG oder U-Net nur sehr langsam ausgeführt werden können bzw. die vorhandenen Möglichkeiten nicht optimal genutzt werden.

Um vortrainierte, neuronale Netze zur Inferenzzeit dennoch effizient ausführen zu können, müssen diese auf den spezifischen Anwendungsfall optimiert und an die Zielhardware angepasst werden, wobei die Genauigkeit des Models erhalten bleiben soll. Zur anwendungsspezifischen Optimierung werden beispielsweise Kompressionsmethoden wie Quantisierung oder Pruning genutzt, wodurch die Anzahl der notwendigen Rechenoperationen deutlich reduziert werden kann. Anschließend kann das vereinfachte Netzwerk mit speziellen Programmen, sog. Deep Learning (DL) Compilern, wie TVM oder TensorRT, an die Gegebenheiten der Zielplattform angepasst werden, sodass die Hardware optimal genutzt wird. Dadurch können substantielle Performanceverbesserungen erreicht werden. In der Praxis wird dies aber durch eine hohe Komplexität und fehlende Interoperabilität erschwert.

Unser Seminar vermittelt deshalb einerseits die Grundlagen dieser Werkezuge als auch deren praktische Anwendung um neuronale Netze schnell an die Anforderungen und Gegebenheiten anzupassen.

 

Im Detail werden die folgenden Themen adressiert:

  • Grundlagen zu den DL Compilern TensorRT und TVM
  • Grundlagen zu Austauschformaten, wie z.B. ONNX
  • Anwendung von TensorRT und TVM im Detail:
    • Praktische Beispiele
    • Durchsatz-Maximierung auf GPU´s
    • Inferenz mit reduzierter Rechengenauigkeit
    • Best-Practice Empfehlungen
  • Performance Profiling zur Identifikation von Flaschenhälsen
  • Überblick über Kompressionswerkzeuge, wie z.B. Kompression in Pytorch / TFLite, Intellabs Distiller, Microsoft Neural Network Interface (NNI)
  • Zielplattformen, u.a. CPU (x86/ARM), Nvidia Desktop GPUs, Nvidia Jetson Boards, Google Coral Edge TPU und NPU
  • Zusammenspiel zwischen Kompressionswerkzeugen und DL Compilern
  • Integration und Deployment von neuronalen Netzen in C/C++

Zielgruppe:

Unser Seminar richtet sich an Softwareentwickler*innen, die bereits konkrete Erfahrungen im Umgang mit neuronalen Netzen gesammelt haben bzw. an Unternehmen, die im Bereich KI und eingebettete Systeme tätig sind oder tätig werden möchten.

 

Die Seminarunterlagen als auch praktische Beispiele können über unser GitLab Portal eingesehen und heruntergeladen werden.

Fortgeschrittene Trainingsverfahren für tiefe neuronale Netze

(In englischer Sprache)  


Die Entwicklung genauerer KI-Modelle insbesondere im Bereich der Audio-, Bild- und Videosignalverarbeitung erfordert neben umfangreichen Datensätzen auch mehr und mehr Rechenleistung.

Einerseits steigt die Zahl der lernbaren Parameter eines neuronalen Netzwerkes, andererseits steigt auch die Auflösung der Daten. Dies kann schnell dazu führen, dass die Anforderungen die Möglichkeiten eines einzelnen Rechners übersteigen da beispielsweise zu wenig GPU-Speicher zur Verfügung steht oder aber das Training sehr lang dauert.

Multi-GPU Systeme oder auch größere Rechencluster versprechen hier Abhilfe. Allerdings muss das entsprechende neuronale Netz manuell an die Möglichkeiten der Hardware angepasst werden indem es beispielsweise entsprechend partitioniert wird.

Ziel des Seminars ist es, ein neuronales Netzwerk so effizient wie möglich zu trainieren indem die Möglichkeiten der Deep-Learning Framworks sowie der Hardware bestmöglich genutzt werden.


Im Detail werden die folgenden Themen adressiert:

  • Grundlagen zum Ressourcenverbrauch beim Training
  • Nutzung von "Activation Checkpointing"
  • Daten-, Model- sowie Pipeline-paralleles Training
  • Training mit gemischter Genauigkeit sowie die Nuzung von Tensoreinheiten
  • Optimiertes Einlesen und Aufbereiten von Trainingsdaten
  • Verteiltes Training mittels aktueller Frameworks
  • Performance Profiling

Zielgruppe:

Unser Seminar richtet sich an Softwareentwickler*innen, die bereits konkrete Erfahrungen in der Entwicklung von neuronalen Netzen gesammelt haben bzw. an Unternehmen, die im Bereich KI tätig sind oder tätig werden möchten.

 

Die Seminarunterlagen als auch praktische Beispiele können über unser GitLab Portal eingesehen und heruntergeladen werden.

Vereinfachung und Komprimierung von neuronalen Netzwerken

(In englischer Sprache)  

Das zweite KISS-Seminar befasste sich mit den Herausforderungen bei der Verwendung großer neuronaler Modelle. Es wurden verschiedene Techniken zur Reduzierung der Komplexität und Größe eines trainierten Modells vorgestellt.

Im Seminar wurde eine End-to-End-Pipeline für die Modellkompression behandelt. Es werden verschiedene hochmoderne Kompressionsalgorithmen erläutert, wobei der Schwerpunkt auf Quantisierungs- und Pruning-Algorithmen liegt. Praktische Anwendungsfälle werden typische Anwendungsszenarien unter Anwendung gängiger Kompressions-Frameworks veranschaulichen.
Auf diese Weise stellte das Seminar verschiedene Kompressionstools vor und demonstrierte deren Anwendbarkeit anhand mehrerer praktischer Beispiele und Übungen.


Im Einzelnen wurden die folgenden Themen behandelt:

  • Optimierung und Komprimierung tiefer neuronaler Netze (Deep compression)
  • Vergleich verschiedener Optimierungs- und Kompressionsmethoden
  • Analyse der Ausführungszeiten von neuronalen Netzen  (Profiling)
  • Notwendige Modellanpassungen für die Kompression von neuronalen Netzen
  • Komprimierung von neuronalen Netzen mit Pytorch
  • Einführung in den Intellabs Distiller
  • Einführung in die Neural Network Intelligence Werkzeuge von Microsoft
  • Empfohlene Vorgehensweisen für praktische Anwendungen
  • Vergleich zwischen den vorgestellten Optimierungsmethoden und verfügbaren Compiler-Techniken
  • Praktische Beispiele und Übungen

Die Seminarunterlagen als auch Beispiele werden in Kürze Online zur Verfügung stehen.

Wenn Sie ein Unternehmen sind und einen speziellen Bedarf bezüglich der Schulungsinhalte haben, kann das Seminar auch auf Ihre speziellen Bedürfnisse für eine individuelle Schulung zugeschnitten werden. Um mehr über diese Möglichkeit zu erfahren, kontaktieren Sie uns bitte.

Auch wenn Sie Anregungen, Wünsche oder Fragen zu unseren Seminaren haben, können Sie uns hier kontaktieren!

 

Mitwirkende

Die Friedrich-Alexander-Universität Erlangen-Nürnberg ist Mitglied des Projekts.

Zurück zur KISS-Seite

Credits Header: Fraunhofer IIS/fotomek – fotolia.de