Skalierbare Optimierung von Großanlagen
mittels einem Digitalen Zwillings und MLOps in der Azure Cloud
Beschreibung:
Die Optimierung von Großanlagen wie Luftzerlegungsanlagen ist von zentraler Bedeutung, um langfristig und lieferkettenübergreifend Kosten zu reduzieren und die Produkteffizienz zu erhöhen. Allerdings ist die Einführung von anlagenbezogenen Advanced Process Controls kostenintensiv, aufwändig und zeitraubend. Mittels eines vom Kunden entwickelten Machine-Learning-Verfahren, insbesondere dem Reinforcement Learning, kann diese Umsetzungszeit auf gerade einmal einen Monat verkürzt werden. Das Machine-Learning-Modell agiert als virtuelles Abbild (digital twin) der Anlage, welches für die Simulation und Optimierung diverser Einstellungen für die Anlage nützlich ist. Das Team von PRODATO hatte das Ziel, den Python-Code der Machbarkeitsstudie in Microsoft Azure Cloud zu implementieren. Der Proof-of-Concept demonstrierte die erfolgreiche Optimierung von Luftzerlegungsanlagen.
Einsatzbereich:
Chemiebranche
Technologie:
Microsoft Azure Cloud, Deep Learning, MLOps, DevOps, IaC, terraform
Implementierung:
Im Projekt haben wir als Team von PRODATO den Python-Code der Machbarkeitsstudie in die Microsoft Azure Cloud integriert. Nach umfassender Anforderungsanalyse zur Identifizierung der notwendigen Arbeitsschritte erfolgte die Auswahl der passenden Technologien und Dienste innerhalb der Cloud. Die Datenanbindung wurde sorgfältig entworfen und umgesetzt, um ein geeignetes System für strukturierte und unstrukturierte Daten bereitzustellen. Daraufhin wurde die Machine-Learning-Pipeline entwickelt, welche die Datenvorverarbeitung und das Training des digitalen Zwillings einschloss. Hierbei wurde die individuelle Konfiguration der Pipeline für jede Luftzerlegungsanlage berücksichtigt. Ein wesentlicher Faktor war die manuelle Evaluierung des trainierten Machine-Learning Modells, um dessen Leistungsfähigkeit zu gewährleisten. Des Weiteren wurde eine transparente Versionierung für die Data Pipeline, die Machine-Learning-Pipeline sowie die genutzten Python-Environments konzipiert und umgesetzt. Verwendet wurden zusätzlich Docker-Container, um eine plattformübergreifende Kompatibilität sicherzustellen. Um das Projekt ganzheitlich automatisieren zu können, hat das Team zudem DevOps Pipelines (Continuous Integration und Continuous Deployment) eingeführt. Die Umsetzung des Proof-of-Concepts erfolgte aus Gründen von verfügbarer Hardware, Firewall-Richtlinien, Verfügbarkeit und Wartung der Systeme in der Microsoft Azure Cloud. Dank der cloud-nativen Umsetzung des Machine-Learning-Prozesses in der Azure Cloud, ist der Kunde in der Lage, für ihre mehr als 300 Großanlagen weltweit, ein vollumfänglich konfigurierbares Machine-Learning-Modell zu trainieren, diese manuell durch Process Engineers zu verifizieren und das produktive Deployment einzuleiten.
Herausforderungen & Bewältigung dieser:
Im Verlauf des Projekts wurden verschiedene Herausforderungen identifiziert, die Anlass dazu gaben, neue Lösungsansätze auszuarbeiten. Eine dieser Anregungen bestand darin, die effektive Verwaltung von sowohl strukturierten als auch unstrukturierten Datensätzen zu optimieren. Dabei handelte es sich zum einen um die Eingangsdaten, bei denen vor allem Zeitreihen eine bedeutende Rollen spielen. Zum anderen wurden die Artefakte der Machine-Learning-Pipeline berücksichtigt, welche in strukturierter und unstrukturierter Form vorlagen. Besonderes Augenmerk lag darauf, diese Artefakte für Trainingsläufe leicht zugänglich und transparent bereitzustellen. Wir von PRODATO haben uns bewusst für die Implementierung eines Azure Data Lakes entschieden. Diese Wahl ermöglicht es, eine präzise und vordefinierte Struktur sowie Hierarchie für die Datenspeicherung zu etablieren. Die Umsetzung dieser Vorgabe erfolgt stringent und automatisiert durch den Code. Eine zusätzliche Herausforderung bestand in dem Training mehrerer Machine-Learning-Modelle innerhalb eines Trainingslaufes, wobei dieselben vorverarbeiteten Daten Verwendung finden sollen. Um dieses Ziel zu erreichen haben wir die Anzahl der Modelle, die gleichzeitig trainiert werden können, mithilfe einer Konfigurationsdatei parametrisiert. Diese Herangehensweise garantiert nicht nur eine optimale Nutzung der Ressourcen, sondern ermöglicht auch eine reibungslose Durchführung der Trainingsprozesse.