Im Gespräch mit Philipp Göbels, Projektleiter.
Vor kurzer Zeit hat die Smart Campus Initiative ein Park-Dashboard gelauncht. Das Dashboard zeigt die aktuelle Belegung und die Auslastungsprognose der Parkflächen auf dem Bildungscampus. Im Gespräch mit dem Projektleiter Philipp Göbels wollten wir mehr über die Entwicklung des Prognosemodells erfahren. Über Vor- und Nachteile von Open-Source-Technologien, Herausforderungen im Projekt sowie Empfehlungen für die erfolgreiche Umsetzung ähnlicher Vorhaben lesen Sie im folgenden Interview.
Ganz so einfach, wie es in der Theorie klingt, ist es dann doch nicht. Gerade dann, wenn man Anwendungen der Künstlichen Intelligenz ganz ohne Frameworks von Hyperscalern wie AWS, Microsoft Azure o.ä. in die die Tat umsetzen möchte, steckt viel Aufwand dahinter, den man oberflächlich nicht sieht. Wir haben für unser Projekt komplett auf Open-Source-Technologie gesetzt, um eine Lösung zu erarbeiten, die man (unter entsprechenden Anpassungen) auf jeden anderen KI-Deployment-Use-Case übertragen kann. Nicht jedes Unternehmen kann oder will auf Hyperscaler zurückgreifen, also müssen wir uns auch mit unabhängigem Deployment auskennen.
Das ist technisch natürlich aufwendiger, es steckt also mehr Entwicklungsaufwand dahinter, weil man mehrere Softwaredienste von verschiedenen Anbietern miteinander verknüpfen muss und es dafür keine umfassende Anleitung gibt.
Um einen Service erfolgreich bereit zu stellen, benötigt man eine geeignete Infrastruktur. Nach dem anfänglichen Aufwand, Cloud-kompatible Server aufzusetzen, ist das Deployment der Anwendung allerdings in ein paar Tagen erledigt und auch nötige Rechenkapazität für eine KI-Anwendung sprengen nicht den Rahmen. Um es ins Verhältnis zu setzen: Unsere Prognosen ließen sich auch mit handelsüblichen High-End-PCs in annehmbarer Zeit berechnen.
In meinen Augen sind die personellen Ressourcen viel entscheidender: Ich selbst konnte zwar das Modell entwickeln, aber um es live zu schalten, brauchte es die Expertise in Cloud-Infrastrukturen und Know-How über das Zusammenspiel der diversen Softwarekomponenten. Die Aufgaben dabei sinnvoll zu koordinieren ist eine echte organisatorische Herausforderung. Wir waren überwiegend nur zwei Entwickler mit sehr verschiedenen Schwerpunkten, waren aber dennoch so von den Fortschritten des anderen abhängig, dass wir uns mehrmals täglich abgestimmt haben.
Daher ist eine geregelte Kommunikation in derartigen Projekten auch so wichtig. Gerade in größeren Teams kann nicht alles im bilateralen Austausch abgestimmt werden. Als Entwickler*in muss ich aber wissen, wo meine Kolleg*innen stehen, damit mein Feature auch ins fertige Produkt passt.
Das bringt uns direkt zur nächsten Herausforderung: Ein verbindlicher Zeitplan. Für die Entwicklung, aber auch die Kommunikation nach außen sind gewisse Deadlines festzulegen und einzuhalten. Entwickelt man jedoch alles selbst für seine Cloud-Infrastruktur, gibt es aufgrund der vielen Bausteine viel Entwicklungsbedarf mit entsprechenden Unsicherheiten. Wir mussten feststellen, dass die Technologie, die wir eigentlich benötigten, noch gar nicht verfügbar war, und haben uns letztendlich dazu entschlossen, Features aus einer Vorabversion nachzubauen – bei derart experimentellen Entwicklungen ist eine realistische Zeiteinschätzung kaum möglich.
Da ich bisher noch keinen deep dive in Infrastruktur-Themen hatte: Wie viel man selbst mit Open-Source-Software erreichen kann. Wir haben den gesamten Workflow für das Abrufen und Verarbeiten von Daten, Erstellen einer Prognose mittels KI und Freigeben der Ergebnisse über eine Schnittstelle entwickelt. Für diese Arbeiten müsste man bei Dienstleistern mit mindestens 15.000 Euro rechnen.
Zum einen: Ohne detaillierte Anleitung oder Dokumentation ist viel der Programmierung »Trial-and-Error«. Das ist viel Aufwand, um den man aber nicht herumkommt. Während man bei kleineren Projekten vielleicht auch mit schnell implementierten Workarounds arbeiten kann, sind diese nicht stabil genug für das Zusammenspiel mehrerer Softwarekomponenten von Cloud-Systemen. Wir haben viel des Codes selbst geschrieben, damit er genau für unseren Use-Case passt.
Zum zweiten habe ich den Stellenwert einer transparenten Kommunikation von Projektfortschritten und Herausforderungen gelernt. Je detaillierter man die Arbeitspakete aufschlüsselt, umso besser kann man Schwierigkeiten identifizieren und gezielt Hilfe erhalten.
Zunächst benötigt man einen Data Scientist, der oder die das nötige Verständnis für die Daten hat und aufbauend die KI entwickeln kann.
Für das Deployment benötigt man entsprechende Hardware, die beschafft, in ein Netzwerk eingebunden und gewartet werden muss. In der Regel übernimmt das eine IT-Abteilung.
Für die Entwicklung der Cloud-Infrastruktur benötigt man eine Fachkraft mit Informatik-Kenntnissen. Cloud-Informatik wird mittlerweile als eigener Studiengang angeboten, ausreichende Basiskenntnisse gehören aber zum Repertoire der meisten Informatiker*innen und System-Administratoren.
Ein professionelles Projektmanagement. Ohne die kontinuierliche Koordination der verschiedenen Arbeitsgänge läuft man Gefahr, dass die KI und die für ihre Anwendung benötigte Infrastruktur nicht aufeinander abgestimmt entwickelt werden.
Darüber hinaus habe ich die Relevanz eines realistischen Zeitplans schon mehrfach hervorgehoben. Dieser ist auch hier wieder der Schlüssel zum Erfolg.
Ich würde für einen stärkeren Aufbau von eigenen Kompetenzen plädieren. Nicht jedes Unternehmen hat die Möglichkeiten, alles von Grund auf selbst zu entwickeln, aber man kann z.B. anfangen, die KI mit eigenen Ressourcen zu entwickeln und nur das Deployment von Externen übernehmen zu lassen. In diesen Fällen sind die Cloud-Lösungen von Hyperscalern eine legitime Abhilfe. Kann mein Unternehmen mehr stemmen und Teile der Cloud-Infrastruktur selbst entwickeln, kann ich in der Zukunft mehr einsparen. Vielleicht benötigt man für die ersten Projekte externe Unterstützung, wenn man es aber schafft, dieses Know-How im eigenen Unternehmen aufzubauen, lässt es sich sehr gut auf die nächsten Projekte übertragen. Geld für Fachkräfte im eigenen Unternehmen ist eine Investition in die Zukunft. Verglichen mit der Alternative, alles über externe Dienstleister entwickeln und bereitstellen zu lassen, ist der anfängliche Aufwand für eine eigene Entwicklung nicht zu teuer. Dinge, die man dabei beachten sollte, wären für mich:
1. Zunächst sollte man klare Ziele festlegen, was die KI-Anwendung konkret leisten soll. Denn davon leiten sich die Anforderungen an die Cloud-Infrastruktur und an den Softwarekatalog ab.
2. Es lohnt sich, anschließend ausreichend Zeit in einen detaillierten Projektplan zu investieren, der sehr vorausschauend auch kleine – aber potenziell aufwendige – Schritte berücksichtigt. Davon lässt sich dann ein realistischer Zeitplan ableiten. Achtung aber dennoch: Wann immer man etwas zum ersten Mal macht, sind unvorhergesehene Herausforderungen zu erwarten.
3. Bei der Entwicklung sollte man nicht alle Module einer Cloud-Infrastruktur in einem Schritt implementieren. Nach dem Motto »start small and simple« lässt sich die Infrastruktur modular aufbauen.