NZZ, 27.11.2019
Murks
happens
Technologie, unseren Köpfen entsprungen, wächst uns über den
Kopf – buchstäblich. Wir überschauen und durchschauen sie immer weniger, uns
fehlt der Kompass für den Kurs ihrer Entwicklung. Die Ingenieure tüfteln oft
über Generationen hinweg an technischen Systemen für bestimmte Funktionen. Sie
sind wohlüberlegt entworfen, und am Ende verhalten sie sich nicht mehr so wie
geplant. Das ist nicht bloss Zufall. In der Entwicklung der Technik wirkt eine
verborgene Teleologie, welche uns immer tiefer in die unauflösbare Verschränktheit
der Systeme treibt. Das erinnert natürlich an das Entropiegesetz der Physik,
wonach Makrosysteme zu grösserer Unordnung neigen. Aber es geht hier nicht um
physikalische Gesetze, sondern um konvergierende Tendenzen der neuen
Technologien: raffiniertere Algorithmen, grössere Datenmengen, rechenstärkere
Computer.
***
Man spricht von Akkretion, dem Anlagern von immer mehr
Systemkomponenten; und von verschränkter Interaktion, dem Hinzufügen von immer
mehr Verknüpfungen zwischen den Komponenten. Das Anlagern springt ins Auge. Ein
Hammer besteht aus einem Stück Holz und einem Stück Metall, ein Rammbär schon
aus ziemlich viel mehr Stücken. Das Flugzeug, das die Gebrüder Wright 1903
bauten, war ein Ausbund der Einfachheit, konstruiert aus einer geringen Zahl
von Komponenten. Eine Boeing 747 weist etwa sechs Millionen
Hardware-Komponenten auf. Dieses wuchernde Anlagern stellt man auch bei
Software fest. Ein übliches Mass für die Komplexität eines Programms ist die minimale
Anzahl Codezeilen, die man braucht, um es zu schreiben. Gemäss Schätzungen
wuchs der Quellcode für das Betriebssystem von Windows im Laufe einer Dekade um
das Zehnfache. Die Bildbearbeitungssoftware von Photoshop soll vierzigmal so
lang wie vor zwanzig Jahren sein.
Akkretion birgt ein ernsthaftes Problem. Wir kennen es aus
unserem heimischen Do-it-yourself. Wir „bessern“ den morschen Dachboden mit
Latten, Platten, Streben und Planen „aus“, vernetzen die elektrischen Geräte
mehr schlecht als recht mit einem Kabelsalat, dichten die sanitäre Anlage im
Keller mit Draht, Klebeband und Zusatzrohren ab. Im englischen Ingenieurjargon
existiert der Ausdruck Kludge oder Kluge (ausgesprochen „kladsch“ oder „kluudsch“):
eine zusammengeflickte, behelfsmässige, temporäre, mitunter unnötig
komplizierte Lösung eines technischen Defekts oder Problems, kurz, ein Murks. Formulieren
wir daraus hypothetisch das Murks-Prinzip: Von einem kritischen
Komplexitätsgrad an arbeiten technische Systeme zwangsläufig im Murks-Modus
(ich spreche hier nicht vom geplanten Murks – einem heute florierenden
Wirtschaftszweig).
***
Das gilt natürlich vor allem für Software. Je komplexer,
desto „murksiger“ wird sie. Man spricht etwa von „Spaghetti-Code“, von
Software, die sich immer unentwirrbarer verknäuelt, und dies ironischerweise
über einfache Programmschritte wie GOTO. Jahrelang pfropft man zum Beispiel
neue Features auf bereits bestehende Programme. Das erhöht das Risiko, dass
sich ein Stück Code „daneben benimmt“ und den Rest infiziert. Schliesslich ist
der Code nicht mehr entschlüsselbar, geschweige denn auf Fehler zu testen. Noch
fataler: Ein einziger Bit-Flip – eine Eins wird zu einer Null oder umgekehrt -
kann über Folgekaskaden zur unvorhergesehenen Kalamität führen.
Wiegen wir uns dabei nicht in der falschen Zuversicht, Murks
liesse sich quasi von Null auf „sauber“ beheben. Man missachtete so das „Gall’sches
Gesetz“, eine in Designerkreisen bekannte Maxime von John Gall, der eines der
besten und amüsantesten Bücher über Systemtheorie geschrieben hat. Salopp ausgedrückt
lautet die Maxime: Versuche nicht, ein Murks-System auseinanderzunehmen und von
Null auf zu revidieren. Baue auf funktionierenden Murks und versuche, ihn schrittweise
zu verbessern. Mit John Gall ausgedrückt: Murks-Systeme sind wie Babys; wenn
man eins kriegt, hat man es. Nicht nur kann man es nicht entsorgen, es wächst
auch.
***
Gewiss, nun beginnen die Maschinen zu lernen. Mit Deep
Learning hat man ein viel versprechendes Instrument zur Hand, das
Verknäuelungsproblem zu umgehen, indem das System über einen statistischen
Lernalgorithmus selber seine „Schlüsse“ zieht. Das Problem der Unübersichtlichkeit
schleicht sich indes auch hier ein. Die lernenden Maschinen zeigen ihre Macken.
Sie lernen Unterschiedliches aus Trainingsdaten und ihre Programme entwickeln
sich dadurch auch quasi selbständiger. Zum Beispiel klassifiziert der
Algorithmus eine Datenmenge als „Katze“. Es erweist sich jedoch als schwierig, zurückzuverfolgen,
wie er das bewerkstelligt hat. Im geschichteten Inneren des Systems spielen
sich Vorgänge ab, zu denen der Programmierer oft nicht durchdringt. So hebt man
in diesem Zusammenhang bereits die Unterart der „erklärbaren“ Künstlichen
Intelligenz (KI) hervor, Systeme also, deren „Entscheide“ sich ins menschliche
Idiom übersetzen lassen. Ironischerweise verglichen KI-Forscher vor kurzem die
neuen lernenden Systeme mit mittelalterlicher Alchemie. Man wisse eigentlich
nicht, was man tue, sondern drehe hier und da an ein paar Schrauben, bis ein
Algorithmus das gewünschte Ergebnis erziele. Das führt zum Paradox: Effizienz
des Systems nimmt zu – Verständnis nimmt ab. Es mutet fast an, als „verstünden“
die KI-Systeme sich selber am besten. Paul Watzlawick formulierte das schon
1967 so: Das System ist seine eigene beste Erklärung.
***
Komplexität und Murks-Prinzip stellen die zentrale
Herausforderung der Technologien dieses Jahrhunderts dar. Und das heisst auch:
Wir bekommen es immer mehr mit Zufall, Nicht-Voraussagbarkeit und „Renitenz“ der
Systeme zu tun. Wir sollten freilich nicht einem Fatalismus verfallen, der die technischen
Systeme als unbewältigbar hinnimmt. Vielmehr verlangen unsere
Bewältigungsversuche nach einer fundamentalen Haltungsänderung. Ich zögere
nicht, sie als demutvoll zu bezeichnen.
Derzeit beherrschen zwei Extremszenarien die Diskussion: Die
Menschen werden von den kommenden Generationen der Maschinen noch gerade als
Haustiere gehalten; oder der Mensch verschmilzt mit der Technologie zu einer
neuen Superspezies des „Homo Deus“. Beide mythengeschwängerte Szenarien
versperren die Sicht auf einen dritten Weg. Ich nenne ihn die Einstellung der demutvollen Vigilanz, in Anlehnung an den renommierten holländischen Algorithmendesigner
Edsger Dijkstra, der den Begriff des „demutvollen Programmierers“ prägte. Demut
meint das Eingeständnis, künstliche Systeme nicht vollständig durchschauen zu
können; Vigilanz meint das nicht erlahmende Bemühen, sie nach bestem Stand des
Wissens zu verstehen und zu kontrollieren.
***
So gesehen ist es gar nicht so abwegig, den künstlichen
Systemen eine Haltung entgegenzubringen, wie wir sie aus der Biologie, den
Organismen gegenüber schon lange kennen und anerkennen. Das heisst, Technik
müsste biologischer denken lernen (in der Tat tut sie dies schon). Biologische
Systeme sind Paradigmen des cleveren evolutionären Murkses. Auch sie
manifestieren eine überwältigende Komplexität, die wir nur näherungsweise
erklären können. Kant hatte uns in seiner Kritik der Urteilskraft eine
demutvolle Haltung angemahnt: Es gibt keinen Newton des Grashalmes. Das war
gemünzt auf den damaligen Erkenntnisanspruch, mit der Newtonschen Physik
eigentlich die „ultimative“ Welterklärung gefunden zu haben. Dieser Anspruch hat
sich gewaltig verrannt.
Wir Menschen sind eine erstaunliche Murks-Spezies. Und wir
leben in einem Murks-Universum. Es expandiert stetig. An seinen Rändern lauern
das Unbekannte und die Pannen. Das heisst, der Umfang der notorischen
„unbekannten Unbekannten“ wächst. Und dann haben wir ein Problem: Die künftigen
Systeme werden wahrscheinlich nicht nur komplexer sein, als wir Menschen uns
das jetzt denken, sondern komplexer, als wir uns das je denken können. Technik tendiert zur Transzendenz.
Deshalb wissen wir auch nicht, ob all der Murks, den wir schaffen, je in einem „Big Crunch“ enden wird. Umso gebotener erschiene es, an
technischen Hochschulen endlich das Fach Murksologie einzuführen.
Keine Kommentare:
Kommentar veröffentlichen