Mittlerweile hat ja jeder schon von den vermeintlichen “KIs” gehört (selbst meine Oma).

Um das gleich klar zustellen, das sind keine KIs. Es sind (sehr) große Sprachmodelle, die ihren ouput nach der Wahrscheinlichkeit, die über die Benutzereingabe entsteht, was erwartet wird. Es gibt also nur den erwarteten Durchschnitt wieder. Damit ist es ganz klar nicht kreativ. Was aber viel entscheidender ist, und was es von der Definition als KI ausschließt ist, dass es nicht selbstbewusst ist. Es ist sich nicht einmal der Bedetung der Eingabe und der Ausgabe bewusst. Das können Computer im Moment noch nicht. Sie können die Abstraktheit von Wörtern nicht erfassen. Aber das ist auch (offensichtlich) gar nicht nötig, denn man muss es nicht verstehen um statistisch eine Antwort zu finden.

Aber da Sind wir schon beim Kernproblem solcher Modelle. Die Abstraktheit und Mehrdeutigkeit von Sprache. Computer sind Rechner und auch nichts anderes. Alles was sie machen ist mathematische Formeln lösen. Und man kann alles mögliche in eine solche Formel “übersetzen”. Aber Wörter sind eben nicht eindeutig. Sprache folgt keinen strikten Regeln, denn sie hat sich im Laufe der Jahrhunderte entwickelt. Es gab auch schon frühe Versuche die Sprache in Mathematik umzuschreiben. Das funktioniert, indem man dem Computer strikte Regeln gibt, wie er mit bestimmten Wörtern umzugehen hat. Das funktioniert auch halbwegs, aber es kommen die neue Gesprächsinhalte von dem Computer. Der erste größere Programm dieser Art war “ELIZA” (1964, MIT), es sollte das Verhalten eines Psychotherapeuten simulieren indem es immer neue Gegenfragen stellt. Das geht auch, denn dafür muss man nur den Inhalt der Eingabe nehmen und ihn (nach festen Regeln, die die Programmierer vorher festgelegt haben) umbauen. Das ist aber nicht das wo wir hin wollen (und jetzt sind).

Deep learning

Daher verwenden wir sogenanntes maschinelles Lernen. Das ist die Lösung für die Mehrdeutigkeit unserer Eingaben (und des erwarteten Outputs). Am besten kann man es veranschaulichen, indem man sich den Lernprozess bei der Bilderkennung anschaut. Man selle sich einen solchen lernfähigen “bot” vor. Es soll als erstes Jacken von Hosen unterscheiden lernen. Seine ersten Versuche werden immer falsch sein. Aber jedes mal werden ein paar Parameter seiner Entscheidung so angepasst, dass er seine Fehler minimiert. So kann er dann am Ende seines Trainings gut Jacken von Hosen unterscheiden, aber nichts mit dem Bild eines Autos anfangen. Ein weiteres Problem ist, dass der Algorithmus eine “Black Box” ist. Wir wissen also nicht wie und anhand welcher Merkmale der Bot seine Entscheidungen trifft. Es ist also möglich, dass zufällig die Mehrzahl der Bilder in der Trainingsdatenbank, die eine Jacke zeigen vor einem Holzhintergrund erstellt wurden. So kann es sein, dass das neuronale Netz in Zukunft auch Hosen vor einem Holzhintergrund als Jacken klassifiziert. Auch da kann man wieder sehen, dass alles was Computer machen blinde Datenanalyse ist. Sie verstehen nicht was sie tun und warum. Es sind Rechner, sie rechnen einfach den Input aus und geben dann einen Output. Sie lernen auch nicht, sie erweitern ihre Datenbank und passen die Parameter ihres Algorithmus’ so an, dass der Ouput auch mit diesen neuen Bedingungen richtig ist.

Bildergenerierung

So lässt sich ein Algorithmus erschaffen, der aus einer Eingabe (dem Prompt) ein Bild generiert. Das funktioniert wie die Bilderkennung, nur umgekehrt. Man startet mit einem Noise-Bild, welches von einem zufälligen Seed generiert wird und lässt den Algorithmus drüber laufen und Dinge erkennen. Das ist nämlich ein Problem dieser Systeme, das man sich hier unter anderem zu nutze macht. Denn häufig werden schon einzelne, zufällig angeordnete Pixel mit hoher berechneter Wahrscheinlichkeit als Dinge erkannt, mit denen sie keinerlei Ähnlichkeit haben. Wieder ein Nebeneffekt der oben angesprochenen Black Box. Man hat also diese Ansammlung zufälliger Pixel und fragt dann “Was muss ich ändern, damit es mehr dem Prompt ähnelt?”. Dann werden einige Dinge geändert und man wiederholt den Prozess einige Male (im Durchschnitt so um die 25 (bei Stable Diffusion)).

vektorielle Datenbanken

Da diese Sprachmodelle auch neue Informationen zu dem Gespräch beitragen sollen ist es etwas komplizierter als bei der Bildergenerierung, wo man (fast(!)) nur den Algorithmus und keine Trainingsdaten braucht. Hier muss man immer eine gigantische Datenbank mittragen. Das macht sie auch so ressourcenintensiv zu betreiben. Während man mit einer guten (ab 8GB VRAM) Verbrauchergrafikkarte ohne Probleme Bilder generieren kann braucht man für Sprachmodelle mehr als 28GB VRAM (Bei GPT-3 oder höher weiß ich es nicht, denn es ist nicht offen und kaum Daten bekannt. Aber ein ähnliches, quelloffenes Sprachmodell, welches auf GPT-2 beruht und erweitert wurde, sodass es (laut Entwicklerteam) 90% der Qualität von GPT-4 hat => Victuna, Koala mit LLaMA Daten (fastchat)).

Und die Daten so abstrakt sind und nicht in direkte Verbindung zueinander gestellt werden können, wie es in einer traditionellen (relative Datenbank) der Fall ist. Daher nutzt man vektorielle Datenbanken. Diese beruhen auf dem Text2Vec Programm. Das gab es aber auch schon 2016, die Technik ist also nicht neu. Was neu ist ist die Größe der Datenbank und damit die Menge an Daten, auf die das neuronale Netz zugreifen kann. Übertragen also seine Intelligenz. Das wiederum wurde ermöglicht durch neue leistungsstarke Hardware.

In einer solchen Datenbank werden alle Informationen als Vektor, beziehungsweise als Punkt in einem multidimensionalem Feld gespeichert. Sie sind nicht fest mit anderen verlinkt, sondern ihre Verbindung zueinander wird durch die Proximität der Elemente ausgedrückt. Da sich verschiedene Elemente aus verschiedenen Ebenen und verschiedenen Kontexten ähnlich (ähnlich heißt in diesem Zusammenhang, dass sie mit hoher Wahrscheinlichkeit in einem Satz zusammen vorkommen) sein. Daher ist es wichtig, dass es aus sehr vielen Dimensionen besteht. Ein Punkt wird also nicht durch (x, y, z) beschrieben, sondern durch (x, y, z, a, b, c, d, e, f ,g , …). Das ist einfach möglich, da man das nicht visualisieren muss und mathematisch ist das kein Problem. Den Computer interessiert es nicht ob es nicht für uns verständlich ist, wenn es mathematisch geht (noch dazu sehr einfach).

Die neue “schnelle” Entwicklung ist nicht so schnell. Maschinelles Lernen ist schon lange überall. Alleine in social media. Alle Algorithmen, die einem Inhalte empfehlen oder Werbung aussuchen. Die sind alle jetzt schon lange “KIs”. Das einzige was sich geändert hat ist, dass es einen kleinen Durchbruch gab, der medial so groß gemach wurde, dass auf ein mal ganz viel Geld und Interesse (Interesse = Daten = bessere neuronale Netze) da war. So wurde GPT-3 entwickelt.

GAN

generative adversial networks

Heißt, dass mehrere generative Netzwerke zusammengeführt werden. Das ist nichts besonderes und auch sehr logisch. Man hat beispielsweise zwei Vektordatenbanken, eine für den Inhalt, in dem Banane nah bei Obst und Apfel ist, wir können es als das Logiknetzwerk bezeichnen. Das andere könnte zum Beispiel das sein wo Apfel mit essen oder kaufen verknüpft wird, hier würde es dann eher um den Satzbau gehen. Nur mit beiden zusammen bekommt man einen sinnvollen Output. Aber die beiden Netze haben nicht das gleiche Ziel, sie arbeiten gegeneinander (adversial). Mit dieser Methode versucht man auch eben solche generierten Inhalte zu erkennen. Indem man ein Netz solche generieren läss und ein anderes es mit echten Aussagen vergleicht.

Fazit

  1. Es sind keine KIs
  2. Sie sind nicht neu
  3. Sie sind nicht intelligent (wir vermeschlichen Maschinen gerne)

Zusätzliche Quellen:

  • »Ada und die Algorythmen« von Stefan Buijman
  • Süddeutsche Zeitung

52posts

Dieser Beitrag ist Teil meines Plans, in 2023 jede Woche einen Post zu erstellen, mit Dingen, die ich gelernt habe. (Das sind dann 52 Posts).

#52posts