KI ist die Technologie 2023
Das Buzzword der Stunde ist KI (mal wieder). Doch was bleibt diesmal übrig, wenn der erste Hype vorbei ist? Wer schon einmal mit ChatGPT oder mit Bard gechattet hat, der ahnt, dass es diesmal mehr sein wird als der große Hype Blockchain.
Um auch bei diesem Thema unseren Kunden handfeste Informationen bieten zu können habe ich mich aus der Sicht eines Softwareentwicklers mit dem Thema beschäftigt: Wie wird diese Technologie meine Arbeit verändern? Was kann KI? Was kann sie nicht? Was ist zu beachten, wenn man professionell damit arbeitet?
Was ist eigentlich eine KI?
KIs wie ChatGPT oder Bard gehören zur Klasse der Text-zu-Text KIs. In der Literatur findet man auch die Bezeichnung textgenerierende KIs und large language models (häufig LLM abgekürzt). Das Training dieser KIs erfolgt anhand von Textpaaren. Jedes Paar besteht aus einer Anfrage in Form eines Textes und einer entsprechenden Antwort. In diesen Textpaaren versucht das künstliche neuronale Netzwerk der KI Muster zu erkennen. Während der Nutzungsphase, die als Inferenz bezeichnet wird, erhält die KI lediglich den Anfragetext und generiert auf Basis der gelernten Muster die wahrscheinlichste Antwort.
Sowohl durch Fortschritte in den Algorithmen, als auch durch immer leistungsfähigere Computer, werden die Muster, die erkannt werden können, immer komplexer. Einfache Muster wie Grammatikregeln oder semantische Zusammenhänge zwischen bestimmten Begriffen, etwa zwischen "C++" und "Sprache", werden bereits von vergleichsweise kleinen neuronalen Netzwerken erkannt. Solche Modelle könnten sogar auf mobilen Geräten, wie Smartphones, betrieben werden.
Die beeindruckende Leistungsfähigkeit der KI zeigt sich jedoch besonders dann, wenn sie ausreichend groß dimensioniert ist, um komplexere Muster zu erfassen, die der menschlichen Wahrnehmung entsprechen oder sogar darüber hinausgehen.
Plant die KI die Vernichtung der Menschheit?
![KI destroys](/images/MATHEMA%20Website%20Bilddaten/05%20Blog/KI%20ist%20die%20Technologie%20-%20zerstoeren.jpg)
Zum jetzigen Zeitpunkt kann sie das nicht. Das Gedächtnis der KI besteht nur aus den gelernten Mustern des Trainings. Nach dem Training ist die KI stateless, das bedeutet, sie kann keine neuen Gedanken oder Muster eigenständig generieren. Das scheinbare Kurzzeitgedächtnis von Chat-KIs wird dadurch erreicht, dass vorherige Anfragen bei jeder neuen Anfrage erneut übermittelt werden.
Es ist theoretisch möglich, eine KI nachzutrainieren. Dabei müssen jedoch, wie auch beim ursprünglichen Training, die Trainingsdaten sorgfältig ausgewählt werden, um das Risiko unerwünschter Muster zu minimieren. Wenn eine KI mit dem vorhandenen Code eines laufenden Projekts nachtrainiert wird, wird sie die bestehenden Muster des Codes übernehmen. Dies schließt Aspekte wie Kommentarqualität und -häufigkeit sowie den Code-Stil ein, selbst wenn die Projektrichtlinien einen anderen Code-Stil vorgeben sollten.
Ein interessantes Beispiel für die Art und Weise, wie Trainingsdaten überraschende Muster enthalten können, zeigt sich, wenn man ChatGPT fragt, ob Frauen ein Kopftuch tragen sollten. Stellt man die Frage auf Deutsch werden die Themen Emanzipation und Laizismus angesprochen. Stellt man dieselbe Frage auf Arabisch wird dies nicht erwähnt, stattdessen wird auf die Bedeutung im Kontext des Islam eingegangen. Dies deutet darauf hin, dass die Trainingsdaten in den verschiedenen Sprachen unterschiedliche Schwerpunkte haben.
Was macht ein Programmierer mit einer KI?
![KI programming](/images/MATHEMA%20Website%20Bilddaten/05%20Blog/KI%20ist%20die%20Technologie%20-%20programmieren.jpg)
Für mich als Softwareentwickler sind die offensichtlichsten Einsatzmöglichkeiten die Generierung und die Analyse von Code. Bei der Generierung von Code wird entweder eine Beschreibung der Aufgabe an die KI übergeben, oder es wird der bereits existierende Anfang des Codes zur weiteren Vervollständigung übergeben. Dabei sollte die KI aber auch die Aufgabe des Codes mitgeteilt werden. Bei der Analyse von Code geht es darum, Code, der aus einer Drittquelle stammt, auf Funktionsweise, Aufgabe und auf Fehler zu untersuchen.
All diese Tätigkeiten gleichen dem, was Partner in einer Pair-Programming-Situation tun würden. Jedoch, damit die KI Mehrwert gegenüber der individiuelllen Entwicklung bietet, ist es essenziell, dass die KI-Antworten sowohl in hoher Geschwindigkeit als auch in hervorragender Qualität bereitgestellt werden. Eine Leistung, die der menschlichen Denkweise nahekommt, ist bei der Mustererkennung durch die KI notwendig.
Kann ich ChatGPT oder Bard meine größten Geheimnisse anvertrauen?
![KI secret](/images/MATHEMA%20Website%20Bilddaten/05%20Blog/KI%20ist%20die%20Technologie%20-%20geheimnis.jpg)
Theoretisch könnte man den KIs Geheimnisse im Rahmen der Inferenzphase anvertrauen. Dadurch, dass sie stateless sind, vergessen sie die Information direkt nach der Antwort wieder. Bedauerlicherweise werden sämtliche leistungsstarken Text-zu-Text KIs als Software-as-a-Service (SaaS) angeboten. Das bedeutet, dass die Anfrage an den Anbieter gesendet wird und dieser daraufhin die Antwort zurückliefert. Ökonomisch ergibt das Sinn, da die KIs sehr hohe Anforderungen an die Hardware haben und pro Nutzeranfrage diese aber nur kurz benutzt wird. Bedenkt man jedoch, dass die meisten dieser Anbieter aus den USA stammen, gewinnt das Thema Informationssicherheit an enormer Bedeutung. Somit ist die Weitergabe von Code, den Kunden uns im Rahmen einer Geheimhaltungsvereinbarung anvertraut haben, praktisch ausgeschlossen.
Also doch alles nur Spielzeug?
![KI as Toy](/images/MATHEMA%20Website%20Bilddaten/05%20Blog/KI%20ist%20die%20Technologie%20-%20toy.jpg)
Neben den führenden KI-Dienstleistern im SaaS-Modell gibt es auch diverse Forschungseinrichtungen und -projekte, wie z.B. Meta AI oder BigCode, die an KI-Entwicklungen arbeiten. Diese Organisationen veröffentlichen nicht nur ihre Forschungsergebnisse, sondern stellen auch sämtliche benötigte Daten bereit, um solche KIs auf eigener Hardware zu betreiben. Diese KI-Modelle, wie z.B. StarCoder, Llama-2 oder Falcon, sind allerdings, verglichen mit ChatGPT oder Bard, kleiner im Umfang. Weiterhin hängt die kommerzielle Nutzbarkeit von den Lizenzbedingungen der veröffentlichten KI-Modellen ab. Unter Berücksichtigung dieser Aspekte besteht jedoch die Möglichkeit, eine KI auf unternehmenseigener Hardware zu betreiben und damit die Informationssicherheit zu gewährleisten.
Die notwendigen Softwarepakete, um einen internen Server zu betreiben, sind zwar noch sehr jung, befinden sich aber bereits in einem benutzbaren Zustand und lassen sich meist sehr einfach installieren. Beispielhaft sei hier FauxPilot, Tabby und Hugging Face VSCode Endpoint Server genannt.
Die Entwickler können die entsprechenden Plugins in ihren integrierten Entwicklungsumgebungen aktivieren und den unternehmenseigenen Server als KI-Server angeben. Insbesondere für VSCode existieren bereits mehrere Plugins mit denen Code-Vervollständigung und Analyse gemacht werden kann.
Reicht der alte PC in der Ecke?
![Old computer](/images/MATHEMA%20Website%20Bilddaten/05%20Blog/KI%20ist%20die%20Technologie%20-%20old.jpg)
Beim Aufbau eines eigenen KI-Servers stößt man schnell auf das Thema Hardwareanforderungen. Um einen reibungslosen Betrieb zu gewährleisten, müssen zwei zentrale Voraussetzungen erfüllt sein. Zum einen ist es notwendig, dass das neuronale Netzwerk auf einer GPU ausgeführt wird. Es wird hier zu aktuellen Highend-Grafikkarten geraten bzw. zu mehreren Grafikkarten. Obwohl ein Betrieb auf einer CPU denkbar ist, geht damit eine spürbar langsamere Textgenerierung einher, was die KI letztlich unpraktikabel macht. Zum Anderen muss ausreichender GPU-Speicher vorhanden sein, um das gesamte Sprachmodell aufnehmen zu können. Die Größe eines Modells wird anhand der Anzahl der Gewichtungen im neuronalen Netzwerk angegeben. Dabei stehen "M" für Millionen und "B" für Billionen im englischen Maßsystem (Deutsch Milliarde). Der minimale Speicherbedarf beträgt 1/2 Byte pro Gewicht plus eine Reserve für temporäre Daten.
Zum Zeitpunkt dieses Artikels liegen die gängigsten Modellgrößen, die zum Download verfügbar sind, bei 7B, 14B, 34B und 70B Gewichtung. Hieraus ergibt sich ein minimaler Video-Speicherbedarf von ungefähr 4 GB, 8 GB, 20 GB und 40 GB. Auch wenn Grafikkarten mit bis zu 8 GB relativ erschwinglich sind, weisen Modelle mit 7B und 14B Gewichtung deutlich geringere Leistungen auf im Vergleich zu solchen mit 34B oder 70B Gewichtung. Hier ist es notwendig zu evaluieren welche Modellgröße benötigt wird.
Wie geht es bei der MATHEMA weiter?
Innerhalb der MATHEMA GmbH wird in naher Zukunft ein firmeninterner Server in Betrieb genommen. Dadurch können alle Kollegen im Einklang mit höchsten Sicherheits-Standards praktische Erfahrungen zu sammeln.
Zum Autor
Thomas Haller arbeitet bei der MATHEMA GmbH im Bereich Embedded als Softwareentwickler mit dem Schwerpunkt auf VHDL und C++. Momentan interessiert er sich für die Möglichkeiten, die der Einsatz von KI Technologie im Unternehmensumfeld bietet.
Anmerkung zu den Bildern
Alle gezeigten Bilder wurden mithilfe von Easy Diffusion 3 erzeugt.