• IT-Karriere:
  • Services:

Probleme selbstprogrammierender KI

In trivialen Fällen ist Kollege KI sicher schneller und mindestens genauso gut. Aber einfach nur eine Tabelle aus einer Datenbank irgendwo eins zu eins anzuzeigen, ist beim Programmieren auch lediglich als kleine Strafarbeit bekannt. Und das, obwohl es bereits eine Vielzahl an Bibliotheken und Generatoren gibt, die ganz ohne KI viel Tipparbeit abnehmen.

Stellenmarkt
  1. Ingeus GmbH, Nürnberg
  2. Endress+Hauser Conducta GmbH+Co. KG, Gerlingen (bei Stuttgart)

Wenn also bestehende Bibliotheken in dem jeweiligen Projekt genutzt werden dürfen, die richtige Zusammenstellung von Bibliotheken ausgewählt wurde, so dass sie sich nicht gegenseitig in die Quere kommen, und vielleicht noch ein paar Codegeneratoren im Spiel sind, ist der Vorsprung einer KI nicht mehr groß: Auch der KI muss gesagt werden, welche Datenfelder es gibt, wie sie heißen oder was sie semantisch bedeuten und welche Genauigkeit sie mitbringen sollen.

Verwendet man die KI bei komplexer Software, muss immer noch jemand der KI verständlich sagen, was eigentlich von dem Programm erwartet wird. Und obwohl auch menschliche Programmierer sich über eine komplette und genaue Spezifizierung gleich beim ersten Ansehen eines Arbeitspaketes freuen, so lehrt doch die Erfahrung, dass dies oft nicht der Fall ist.

In vielen Fällen wissen die Fachleute - weil sie sich inzwischen auch fachlich mit der Materie auseinandergesetzt, zwecks Nachfrage zum Telefon gegriffen oder in einem Meeting zu dem Thema aufgepasst haben - was gemeint ist. Die KI war nicht in dem Meeting und telefoniert auch nicht, das Arbeitspaket geht im besten Fall als unzureichend spezifiziert zurück, im schlechteren Fall wird irgendwas in das Programm geschrieben, das zwar falsch ist, aber bei einfachen Tests nicht unbedingt auffällt.

Wenn eine KI programmiert, dann kommt es auf die Eingabe an. Letztlich übersetzt sie die Anforderungen aus irgendeiner Form in Quellcode. Sie muss entweder wirklich wissen, was erwartet wird - die Spezifikation ist also quasi Quellcode in Deutsch statt C++ unter Vermeidung sämtlicher unscharfer Begriffe und Konstruktionen oder besteht aus BPMN-Modellen oder gar einem Nassi-Shneiderman-Diagramm.

Andernfalls muss jemand die KI bei dem Prozess unterstützen und aus den möglichen Varianten auswählen, wie das bei diversen codefreien Programmierlösungen wie zum Beispiel Microsofts Power Apps oder bei Diensten zum Zusammenklicken von Webseiten schon der Fall ist. Wählt aber ein Mensch aus, ist das daraufhin von der KI Geleistete schon sehr viel näher an einer umfassenden automatischen Code Completion als an einem eigenständig von der KI entwickelten Programm.

Selbst wenn die Auswahl, was denn jetzt eigentlich gemeint ist, natürlichsprachlich in einem Wizard abgefragt würde und daher die Auswählenden nicht unbedingt über Programmiersprachenkenntnisse verfügen müssen, ist doch irgendwann der Punkt erreicht, an dem die Option "Keine der angebotenen Möglichkeiten trifft zu" angeklickt werden muss.

Und dann ist da noch das Lernen

Um eine Aufgabe erfüllen zu können, muss eine KI außerdem trainiert werden. Bei Sprache ist das recht simpel, man nimmt einfach Textbeispiele der gewünschten Art, lässt die KI durch ML lernen und verlangt dann, etwas Ähnliches zu erstellen. Eine KI, die mit Shakespeare trainiert wurde, kann Shakespeare, aber nicht Groschenromane verfassen und umgekehrt. Eine auf beides trainierte KI kann zwar beides - aber ohne eine Kategorisierung (vorgegeben oder automatisch) käme lediglich wilder Mischmasch heraus.

Auch bei Computerprogrammen stellt sich dieses Problem. Beliebt ist es, eine KI mit dem Github-Repository als ML-Grundlage zu versehen. Damit ist zwar sichergestellt, dass es eine Menge Code zum Lernen gibt, aber das schafft auch Probleme, weil nicht alle Github-Projekte den eigenen oder vom Projektinitiator vorgegebenen Ansprüchen an die Qualität des Codes entsprechen.

Immerhin kann die KI durch die Versionierung aus der Evolution der jeweiligen Projekte lernen: Wenn Fehler beseitigt werden, kann sie zum Beispiel lernen, dass die Folgeversion besser war als die Vorgängerfassung. Ob die neue Lösung einfach nur eleganter ist oder ob sie weniger Fehler, mehr Performance oder mehr Funktionalität hat, ist dabei nicht ganz so wichtig. Eine Verbesserung in allen diesen Bereichen ist wahrscheinlich immer gut.

Eine KI übernimmt auch schlechte Angewohnheiten

Trotzdem können sich durch die Vorgehensweise, ein so großes Repository quasi wahllos einzulesen, Probleme ergeben. Die KI lernt so nämlich auch weit verbreitete schlechte Angewohnheiten und übernimmt sie. Das gilt selbst dann, wenn die KI nur mit dem eigenen Projekt oder den eigenen Projekten trainiert wird, die in der Vergangenheit entwickelt wurden, denn in jedem Projekt gibt es technische Schulden und Stellen, die nicht ganz so sauber sind, wie sei sein sollten. Auch eigener Code ist nicht immer guter Code.

Ein oft verwendeter Lösungsweg ist auch nicht immer auch ein guter Lösungsweg. Und API-Neuerungen können erst erlernt werden, wenn diese Änderungen häufig genug eingeführt wurden. Gleiches gilt für neue Bibliotheken. Gerade als Lambda-Ausdrücke in Java eingeführt wurden, haben wohl die wenigsten Projekte gleich alles darauf umgestellt. Entsprechend lange hätte die KI gebraucht, um die neuen Ausdrücke zu erlernen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Softwareentwicklung: Beim Programmieren ist KI (noch) keine große HilfeWelche Tools gibt es überhaupt? 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


Anzeige
Top-Angebote
  1. (u. a. Asus TUF-RTX3080-10G-GAMING 10GB für 739€, MSI GeForce RTX™ 3080 GAMING X TRIO 10GB...
  2. (u. a. Zotac Gaming GeForce RTX 3090 Trinity 24.576 MB GDDR6X für 1.714.22€, Gigabyte Geforce...
  3. (u. a. Returnal für 79,99€, Lego Star Wars: Die Skywalker Saga für 59,99€, Overcooked: All...

derdiedas 24. Aug 2020 / Themenstart

Für immer und ewig wird das so bleiben. Immer wenn ich Berichte von AI/KI höre fasse ich...

subjord 23. Aug 2020 / Themenstart

Die Entwicklung geht ja eh dahin, immer hochsprachigeren Code zu schreiben. Dann kommt da...

subjord 23. Aug 2020 / Themenstart

Beispiel: Geht es drum auf Bildern Hasen, Treppen, Ampeln oder Zweiräder zu...

Dakkaron 23. Aug 2020 / Themenstart

Also muss man nicht nur was und wie sondern auch warum ausprogrammieren... Ui, das hilft...

Cerdo 21. Aug 2020 / Themenstart

Mein Prof. in der theoretischen Informatik hatte mal bewiesen, dass es kein Programm...

Kommentieren


Folgen Sie uns
       


    •  /