Eine KI-integrierte CFD-Architektur

An AI-Integrated CFD Architecture

Moderne Anforderungen in der Verteidigungs- und Luftfahrttechnik beschränken sich nicht mehr allein auf robuste technische Lösungen; sie erfordern nun eine KI-gestützte Infrastruktur. Aus diesem Grund wurde die CMPS-Software (Computational Fluid Dynamics) von Anfang an so entwickelt, dass sie vollständig mit künstlicher Intelligenz und Deep-Learning-Technologien kompatibel ist.

Was bedeutet das also? Für diejenigen, die mit dem Thema nicht vertraut sind, folgt hier eine kurze Erklärung in Form von Fragen und Antworten.

Welche Methoden des maschinellen Lernens gibt es aktuell?

Fast alle modernen Methoden basieren auf Gradienten und nutzen die Rückpropagation. Hierfür werden spezielle Datentypen verwendet, die Graphstrukturen oder Tensoren direkt abbilden. Diese Datentypen generieren entweder die Jacobi-Tensoren der abhängigen Variablen (Rückwärtstypen) oder propagieren sie vorwärts (Vorwärtstypen). Im Wesentlichen werden die Ableitungsbeziehungen der Verlustfunktion bezüglich jedes Parameters in einem Deep-Learning-Modell mithilfe dieser Datentypen konstruiert und anschließend für maschinelles Lernen verwendet. Diese Struktur hat maßgeblich zur Weiterentwicklung moderner Techniken des maschinellen Lernens beigetragen.

Wie unterstützt CMPS dies?

CMPS wurde von Anfang an mit eigenen Datentypen konzipiert und spiegelt damit die Dateninfrastruktur von Machine-Learning-Software wider. Innerhalb von CMPS kann man sich die Verarbeitung von Tensordaten über einen optimierten Datenfluss während der Berechnungen vorstellen. (Google TensorFlow ist übrigens als Metapher für den Fluss von Tensoren durch einen gerichteten Graphen während der Berechnungen benannt. CMPS verfügt zwar auch über eine Infrastruktur zur Optimierung tensorbasierter Datenübertragungen, sollte aber nicht direkt mit demselben konzeptionellen Rahmen gleichgesetzt werden.)

Führt diese Struktur zu einem komplexen Code?

Im Gegenteil. Diese Architektur bildet die Grundlage des impliziten Lösers und macht somit analytische oder numerische Jacobi-Matrix-Berechnungen überflüssig. Entwickler müssen lediglich speziell benannte Datentypen anstelle des Standard-Double-Datentyps verwenden, was den Code erheblich vereinfacht.

Wird die Leistung durch diese Architektur beeinträchtigt?

Nein. CMPS ist hochgradig templatebasierter Code, der mit auf jeden Datentyp und jede Größe zugeschnittenen Optimierungen kompiliert wird. Dieser Prozess ist automatisiert, und jede automatisch kompilierte Codeversion wird zur Laufzeit ausgewählt. In leistungskritischen Abschnitten werden Tensor-Datentypen vom Typ Forward verwendet, und falls erforderlich – beispielsweise beim maschinellen Lernen – werden diese Daten mithilfe einer einfachen Kettenregel propagiert (siehe Ableitungen zusammengesetzter Funktionen aus der Schulmathematik). Innerhalb von CMPS werden dynamische Datentypen fast gar nicht verwendet; für jede Tensorgröße werden zur Kompilierzeit Datentypen fester Größe generiert. Diese Datentypen lassen sich leicht vektorisieren und eignen sich bei Bedarf für GPU-Computing.

Gibt es Stellen, an denen der Tensorfluss unterbrochen wird?

Ja, beispielsweise beim Löser für steife Differentialgleichungen, der für chemische Reaktionen benötigt wird. Wie in den meisten kommerziellen und vergleichbaren Softwareprogrammen wird CVODE als Industriestandard für die Lösung solcher steifer Differentialgleichungen verwendet. CVODE von Grund auf als templatebasierter Löser zu entwickeln, ist nicht praktikabel. Stattdessen wird ein einfacherer Ansatz verfolgt, indem CVODES verwendet wird, das Sensitivitätswerte als Teil der Lösung liefern kann. Diese Werte können die während der Lösung von Reaktionsmechanismen verlorenen Ableitungsinformationen teilweise kompensieren. Die übrigen Aspekte müssen vom Entwickler entsprechend den angestrebten Zielen gestaltet werden. Eine weitere bedeutende Herausforderung bei der Wahrung der Tensor-Integrität ergibt sich bei Lösungen höherer Ordnung; eine endgültige Lösung für dieses Problem steht noch aus.

Warum wurde für CMPS eine solche Infrastruktur gewählt?

Leider beginnt die Türkei in vielen Bereichen oft deutlich später als westliche Länder mit neuen Projekten. Setzt sie nicht von Anfang an auf innovative Technologien, riskiert sie, weiter ins Hintertreffen zu geraten. Bestes Beispiel hierfür ist die Entscheidung von TOGG, ein Elektrofahrzeug zu entwickeln. Bei Verbrennungsmotoren war es nahezu unmöglich, mit der jahrhundertelangen Erfahrung des Westens mitzuhalten; Elektrofahrzeuge hingegen stellen eine völlig neue Technologie dar. Auch die künstliche Intelligenz (KI) hat in den letzten Jahren in allen Bereichen einen rasanten Aufschwung erlebt und zählt heute zu den strategisch wichtigsten Technologien für Nationen. Derzeit ist ein vollständig entwickelter KI-basierter CMPS-Solver noch nicht flächendeckend kommerziell verfügbar. Bestehende Lösungen basieren in der Regel auf einfachen, ad hoc entwickelten, naiven neuronalen Netzen (Surrogaten), die auf die jeweiligen Ergebnisse zugeschnitten sind.

Wie sieht es mit der Kompatibilität mit vorgefertigten Machine-Learning-Bibliotheken aus?

CMPS wurde von Anfang an so entwickelt, dass es mit den in diesen Methoden verwendeten Datentypen kompatibel ist und die Template-Funktionen von C++ nutzt. Beispielsweise lassen sich PyTorchs AutoGrad und die nativen Datentypen von TensorFlow vollständig in CMPS verwenden. Alternativ können die in den CMPS-Datentypen eingebetteten Tensoren in die Graphstrukturen dieser externen Bibliotheken übertragen werden.

Ist darin aktuell eine integrierte Infrastruktur für maschinelles Lernen vorhanden?

Ja. Fortgeschrittene Nutzer (oder Entwickler) können die gesamte Bandbreite der PyTorch-Architekturen nutzen und alle vom Solver bereitgestellten Informationen zu diesem Zweck auswerten. Obwohl es derzeit keine Infrastruktur speziell für Endnutzer gibt, bietet CMPS ein Framework für Fachleute im Bereich maschinelles Lernen mit den erforderlichen Kenntnissen.