Der Projektantrag - der erste Schritt zu einem erfolgreichen ML-Projekt
Emilius Richter
Viele Machine-Learning-Projekte (ML) sind zum Scheitern verurteilt. Dies kann verschiedene Gründe haben, die oft in Kombination auftreten. Um ein Scheitern zu vermeiden, müssen alle beteiligten Akteure die technischen und organisatorischen Anforderungen des Projekts verstehen.
Neben allen Vorgesprächen, die das Projekt definieren, ist es wichtig, die projektrelevanten Informationen in einem umfassenden Projektantrag zusammenzufassen. Dieser sollte die technischen und organisatorischen Anforderungen, mögliche Problembereiche und technische Beschränkungen umfassen. In diesem Artikel beschreibe ich die wichtigsten Module eines Machine-Learning-Projektantrags. Für einen Softwareanbieter wie dida ist der Projektantrag der erste Schritt, um den Anforderungen des Kunden gerecht zu werden.
Die Problemstellung
Es ist nicht schwer, Prozesse und Aufgaben zu finden, für die eine Automatisierung wünschenswert ist. Aber das allein ist noch keine gute Grundlage für ein ML-Projekt. Die Definition des genauen Umfangs eines ML-Projekts ist entscheidend für das Verständnis der Anforderungen und des zusätzlichen Nutzens für das Unternehmen.
Zuallererst muss der Reifegrad der zu entwickelnden Software geklärt werden: Ist das Projekt
forschungsorientiert,
ein Proof-of-Concept
oder produktorientiert?
Letzteres bedeutet, dass das Ziel darin besteht, die Lösung in den aktuellen Arbeitsablauf zu integrieren. Die Klärung dieser Frage hilft insbesondere dabei festzustellen, ob es zwingend erforderlich ist, alle gewünschten technischen Funktionen zu entwickeln. Bei der Entwicklung von produktionsreifer Software wäre dies in der Regel der Fall, während forschungsorientierte Projekte oft mehr Flexibilität zulassen.
Die Festlegung des erwarteten Reifegrads der Software sollte mit einer ersten Iteration der angestrebten Performance und der Evaluierungsmetriken Hand in Hand gehen. Auf diese Weise erhalten die Projektleiter und Entwickler eine gute Vorstellung von der technischen Machbarkeit.
Als nächstes ist eine Beschreibung des zu verarbeitenden Inputs und des zu erzeugenden Outputs erforderlich. Dazu gehört auch die Angabe, ob die Lösung als Unterstützung oder als eigenständiges Entscheidungssystem fungieren soll und ob die menschliche Kontrolle Teil des Prozesses sein wird. Anhand dieser Informationen können die Projektleiter die kritischen technischen Schritte abschätzen, und auch die Entwickler können bereits über geeignete Methoden und Algorithmen nachdenken.
Es empfiehlt sich, dass die Projektdefinition auch eine Schätzung der Investitionsrentabilität enthält. Dadurch wird sichergestellt, dass alle Beteiligten, auch die nichttechnischen, die Vorteile und Grenzen des Projekts verstehen.
Der Auftragnehmer und der Auftraggeber sollten diese Punkte natürlich besprechen, bevor sie den Antrag schreiben. In jedem Fall ist der Antrag wichtig, um die technischen und geschäftlichen Ziele zusammenzufassen.
Die Daten
Daten sind ein Schlüsselfaktor beim Machine Learning. Daher ist es für ein erfolgreiches ML-Projekt entscheidend, einen detaillierten Überblick über die zugrunde liegenden (gelabelten) Daten zu haben. Ein Überblick über die Datenverfügbarkeit und die Datenqualität ist für die Beurteilung der technischen Machbarkeit unerlässlich und wirkt sich auch auf die Finanzplanung aus.
Das Hauptmerkmal der Daten ist die Datenquelle. Es kann sich z. B. um Open-Source-, firmeninterne oder kommerzielle Daten handeln, die unterschiedliche Vor- und Nachteile haben:
Open-Source-Daten sind kostenlos und leicht zugänglich, können aber von geringer Qualität sein.
Interne Daten sind oft von hoher Qualität und kostenlos, aber möglicherweise unorganisiert.
Kommerzielle Daten sind von hoher Qualität, können aber den finanziellen Rahmen sprengen.
Die Bewertung der Datenqualität hängt von verschiedenen Faktoren ab. Diese sind z. B. räumliche Auflösung, zeitliche Auflösung, Vielfalt der Datenpunkte usw. Ihr Einfluss auf die Erreichung der technischen Ziele hängt von der Problemstellung selbst ab: Für manche Projekte können Daten von geringer Qualität ausreichend sein, für andere führt kein Weg an qualitativ hochwertigen Daten vorbei. Anhand der Bewertung lässt sich feststellen, wo die Grenzen der Genauigkeit der Lösung liegen und ob das Projekt forschungsintensiver ist.
Ein weiteres wichtiges Merkmal ist die Menge der Daten und ob sie bereits gelabelt sind. Da die meisten Standard-ML-Algorithmen viele gelabelte Daten für den Trainingsprozess benötigen, ist die Größe der Datensätze ein weiterer Faktor, der die technische Machbarkeit und die Zielleistung bestimmt. Daraus lassen sich auch technische Nachteile ableiten. Wenn das Labeling von Daten Teil des Projekts ist, kann dies erhebliche Auswirkungen auf die Finanz- und Zeitplanung haben: Der Labelingprozess ist zeitaufwändig und erfordert viel Personal, was bei der Projektplanung berücksichtigt werden muss. Darüber hinaus können die Entwickler Techniken erforschen, die die Einschränkungen durch zu wenig gelabelte Daten ausgleichen.
Wie oben erläutert, bestimmen die Datenbank und ihre Merkmale die technische Durchführbarkeit des Projekts. Daher müssen Auftraggeber und Auftragnehmer die Daten vor dem Projekt analysieren. Auf diese Weise lassen sich die geeigneten Methoden, die angestrebte Leistung und die technischen Grenzen beurteilen.
Die Software-Verteilung
Um Machine-Learning-Modelle und ihre Verarbeitungsschritte in der Produktion einsetzen zu können, müssen sie verteilt werden. Dazu kann die Integration in eine bestehende IT-Infrastruktur gehören. Außerdem muss das Modell mit einer Datenpipeline verknüpft werden. Wenn noch keine Datenpipeline existiert, wäre deren Erstellung ein zusätzlicher Implementierungsschritt. Diese Schritte betreffen insbesondere die Skalierbarkeit der Lösung und die Zeitplanung.
Zunächst muss der Kunde definieren, wie der Workflow auf die Modell-Outputs zugreifen soll: Wie beeinflusst der Output die nachfolgenden Prozesse? Entweder dienen sie als Input für andere automatische Prozesse oder Menschen (die Mitarbeiter, Kunden, ...) nutzen sie weiter. Davon hängt ab, ob man das Modell und seine Verarbeitungsmethoden in eine bestehende IT-Infrastruktur integrieren oder eine Schnittstelle entwickeln muss, die den Zugriff auf die Modellergebnisse ermöglicht. Dies schlägt sich unmittelbar in der Planung der zeitlichen, finanziellen und technischen Ressourcen nieder. Außerdem müssen sich die Parteien darauf einigen, wie die IT-Teams des Auftragnehmers und des Auftraggebers zusammenarbeiten, um die Einführung so reibungslos wie möglich durchzuführen.
Die Komplexität des Modells hat Auswirkungen auf die technischen Anforderungen für die Einführung und die Skalierbarkeit des Modells selbst. Je nach den Erwartungen an die Skalierbarkeit und die Reaktionszeit des Modells können die Entwickler technische Grenzen sowie geeignete Design- und Optimierungsmethoden ermitteln. Dazu gehört auch die Bewertung der Hardwareanforderungen und geeigneter Tools für die Verteilung.
Die Verteilung eines ML-Modells ist ebenso wichtig wie die Implementierung und das Training des Modells selbst. Sie hat besonderen Einfluss auf die Nutzbarkeit der Lösung, die Skalierbarkeit und die Finanzplanung. Daher sollten die Parteien vor dem Projekt die technischen Spezifikationen und Erwartungen für die Einführung festlegen.
Die Planung
Der Projektplan ist ein wichtiger Faktor eines ML-Projekts und fasst alle relevanten Informationen zusammen. Er enthält alle technischen Schritte, Zeithorizonte, geplantes Personal und das finanzielle Budget.
Projektpläne können und sollten sich im Laufe des Projekts ändern, denn Änderungen sind in Softwareentwicklungsprojekten immer notwendig. Dennoch sind Projektpläne nützlich, um einen Überblick über die kritischen Phasen zu erhalten und die technischen Ziele im Auge zu behalten.
Der Projektplan sollte in Arbeitspakete gegliedert sein. Auf diese Weise wird das Projekt in klare Schritte unterteilt, die sinnvoll voneinander getrennt sind und ansonsten logisch aufeinander aufbauen. Die Beschreibung der Arbeitspakete wird mit einer Schätzung der Dauer versehen. Die Dauer eines Arbeitspakets ist zwar nur eine Schätzung, da oft unerwartete technische Probleme auftreten können. Dennoch hilft sie, das Gesamtprojekt und seine Ziele nicht aus den Augen zu verlieren.
Bei größeren technischen Zielen und zusammengehörenden Implementierungen ist es außerdem sinnvoll, Meilensteine zu definieren. Diese Meilensteine legen klare Zeithorizonte fest, in denen das Team die technischen Schritte abschließen will. Sie haben den Zweck, den Fortschritt in Richtung auf das endgültige Projektziel zu messen.
Für jedes Arbeitspaket ist es sinnvoll, eine Schätzung der geplanten Mitarbeiter und ihrer Arbeitsstunden (oder Tage oder Monate) abzugeben. So lässt sich abschätzen, wie viel Aufwand jedes Arbeitspaket erfordert.
Wie bereits erwähnt, ist der Projektplan nicht etwas, das man strikt befolgen muss. Änderungen sind bei Software- und ML-Entwicklungsprojekten immer notwendig und erwünscht, insbesondere bei der agilen Softwareentwicklung. Er garantiert, dass sich das Projektteam an auftretende Probleme anpassen kann. Nichtsdestotrotz hilft ein Projektplan, ein Projekt zu strukturieren und gibt einen Überblick über die nächsten technischen Schritte und die beteiligten Personen.
Das Budget
Die Entwicklung und Einführung von Software ist natürlich nicht umsonst. Neben den Personalkosten ist auch ein Budget für zusätzliche Ressourcen erforderlich: Hardware, Rechenleistung, Software von Drittanbietern für die Verteilung, Prüfung und Wartung und vieles mehr. Es muss also ermittelt werden, welche zusätzlichen Ressourcen erforderlich sind. Dazu gehört auch zu ermitteln, welche Ressourcen bereits vorhanden sind und welche gekauft werden müssen.
Für einige Ressourcen, z. B. die Rechenleistung oder den Zeitaufwand für die Fertigstellung des Projekts, kann man zu Beginn nur eine Schätzung abgeben. Auftraggeber und Auftragnehmer müssen sich also darauf einigen, wie mit dem Fall umgegangen werden soll, dass das Budget ausgeschöpft ist. Auf diese Weise werden Konflikte und das Scheitern von technischen Zielen an der Finanzierung vermieden.
Fazit
Die oben genannten Punkte sind die wichtigsten Faktoren, wenn es um die Planung eines ML-Projekts geht. Jeder einzelne hat einen großen Einfluss auf den erfolgreichen Abschluss des Projekts. Sie sollten nicht nur bei den Vorverhandlungen, sondern auch bei der konkreten Ausarbeitung des Antrags berücksichtigt werden. Es enthält alle getroffenen Vereinbarungen und stellt sicher, dass alle Beteiligten jederzeit darauf zurückgreifen können.
Je nach Art des Projekts und der Beziehung zwischen Auftraggeber und Auftragnehmer können bestimmte Punkte weniger relevant sein. Nach der langjährigen Erfahrung von dida in ML-Projekten lohnt es sich aber immer, diese Punkte in einem Projektantrag zu behandeln. Ich empfehle auch unseren Artikel über die wichtigsten Fragen, die wir unseren Kunden vor einem gemeinsamen ML-Projekt stellen.
Ich hoffe, dieser Artikel ist ein hilfreicher Leitfaden für das Schreiben eines ML-Projektantrag, der zu einer wertschöpfenden Geschäftsprozessautomatisierung führt.