• 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. HUK-COBURG Versicherungsgruppe, Coburg
  2. Hays AG, Berlin

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.

Golem Akademie
  1. Advanced Python - Fortgeschrittene Programmierthemen
    3./4. Mai 2021, online
  2. C++ 20: Concepts - Ranges - Coroutinen - Module
    19.-23. April 2021, online
Weitere IT-Trainings

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
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)
  2. (u. a. Ryzen 5 5600X 358,03€)

derdiedas 24. Aug 2020

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

subjord 23. Aug 2020

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

subjord 23. Aug 2020

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

Dakkaron 23. Aug 2020

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

Cerdo 21. Aug 2020

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


Folgen Sie uns
       


Outriders angespielt

Im Video stellt Golem.de das von People Can Fly entwickelte Actionspiel Outriders vor.

Outriders angespielt Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /