Ich versuche Software zu schreiben, die ein bestimmtes Problem lösen soll. Ich versuche dabei das große Problem auf möglichst mehrere kleinere einfach zu lösende Teilprobleme zu reduzieren. Ich versuche die einzelnen Teilprobleme möglichst einfach zu lösen. Mit meinem Code versuche ich möglichst explitzit die Lösung der jeweiligen Teilprobleme zu beschreiben. Je komplizierter und je mehr Code, desto mehr Wartungs-, Test- und Pflegeaufwand.
Ich habe jetzt einfach ein Problem mit den "KI Blackboxen" (LLMs, KNNs, etc.). Es ist eine Lösung, die man für verschiedene Aufgaben trainieren kann, aber am Code würdest du nachher nur erkennen dass viel Mathe gemacht wird. Du köntest vom Code nicht auf den Zweck schließen. Selbst wenn du es nachher als z.B. KNN identifizierst, kannst du ohne die Konfiguration des KNN und ohne die Datennormalisierung/ Datendenormalisierung nicht erkennen wofür das KNN dienen soll. Da ist es meiner Meinung nach doch einfacher ein Computerspiel aus der Homecomputer Ära zu reverse engineeren, welches in Assembler geschrieben wurde... Ok, das ist die eine Dimension des Problems.
Die andere Dimension betrifft die Regeln, nach denen diese Black Boxen arbeiten. Die Datennormalisierung/ Datendenormalisierung und die Konfiguration des KNNs enthalten die Kernlogik. Man kann jetzt nur Daten rein schicken und Output entgegen nehmen. Der Output ist auch immer nur zu einem bestimmten Grad korrekt. Ansonsten hat man keine andere Möglichkeit die Kernlogik zu nutzen/ anzuzapfen. Den Output zu verwerten ist je nach Kontext auch nicht ganz trivial. Am einfachsten sind die KNNs noch wenn man einfache Einsatzszenarien hat (z.B. Funktion annähern, Mustererkennung, etc.). Da lässt sich der Output relativ einfach nutzen. Wenn es komplexer wird (z.B. Textgeneration, Bildgeneration, etc.) dann kannst du den Output nur noch einbetten. Den Output auswerten/ aufspalten ist dann ein komplexes Problem. Du kannst dir auch nicht sicher sein dass dass ein Input immer den selben Output generiert. Also hat man hier auch noch ein "bewegtes Ziel".
Es wird komplexer. Es wird immer schwerer zu testen. Es wird schwerer nachzuvollziehen was genau passiert. Der Pflege-, Test- und Verifikationsaufwand wird nachher unweigerlich so manche KI Lösung killen, denn die IT Budgets sind begrenzt.
Dort wo der Einsatz/ Einsatzbereich einigermaßen definiert und überschaubar im Wirken ist, sehe ich weniger Probleme.
Ich sehe auch nicht dass noch mehr "KI" hier helfen kann. Noch mehr "KI" auf das Problem zu werfen potenziert nur das ursprüngliche Problem und schafft viele neue Probleme.
Letztlich verantwortlich für die Systeme sind juristische und natürliche Personen. Welcher Verantwortliche übernimmt am Ende die Verantwortung wenn er/ sie nicht versteht wie die Systeme funktionieren? Als Manager, IT Verantwortlicher, etc. ist man dann schnell ausserordentlich gekündigt wenn etwas schief laufen sollte. Je nach schwere des Vorfalls war es dann mit Karriere und man muss schauen wie man die Zeit bis zur Rente überbrückt...
Das Thema ist einerseits faszinierend. Andererseits auch ein Alptraum. Im Elfenbeinturm kann man sich mit dem Thema beschäftigen und viele andere Folgeprobleme/ Alltagsprobleme ignorieren.