Künstliche Intelligenz

KI-(R)Evolution im Coding: Warum Unternehmen unbedingt nach Open-​Source-Alternativen zu GitHub Copilot suchen sollten

Generative KI in der Softwareentwicklung

Für Automotive Unternehmen, die sich mit den heutigen Herausforderungen wie vernetzten Fahrzeugen, autonomem Fahren, Shared Mobility und Elektrifizierung auseinandersetzen, bieten KI-​Coding-Assistenten eine unverzichtbare Unterstützung. Sie ermöglichen es Entwicklerinnen und Entwicklern, schneller auf sich ändernde Anforderungen zu reagieren und innovative Softwarelösungen effizienter zu implementieren, was in diesen schnelllebigen Bereichen von entscheidender Bedeutung ist.

In der rasanten Welt der Softwareentwicklung ist die Automatisierung von Coding-​Aufgaben längst keine Zukunftsmusik mehr, sondern Realität. Einer der spannendsten Fortschritte auf diesem Gebiet ist der Einsatz generativer Künstlicher Intelligenz zum automatischen Generieren von Codes. GitHub Copilot hat in diesem Kontext als kommerzielle Lösung viel Aufsehen erregt, indem es verspricht, Entwicklerinnen und Entwicklern als 'Co-​Pilot' beim Programmieren zur Seite zu stehen. Doch was ist mit Open-​Source-Alternativen? Sind sie genauso leistungsfähig, kosteneffizient oder sogar besser? In diesem Artikel nehmen wir Sie mit auf eine Reise durch unsere eigenen Evaluierungsprozesse bei msg, um diese Fragen zu beantworten. Wir vergleichen kommerzielle Angebote mit Open-​Source-Alternativen und ziehen Schlüsse, die für sowohl kleine als auch große Software-​Organisationen von entscheidender Bedeutung sein könnten.

Haben Sie Fragen?

Dragan Sunjka

Lead IT Consultant

Code Generierung: Vor- und Nachteile existierender kommerzieller Lösungen

Der Markt für KI-​gestützte Programmierwerkzeuge wächst rasant. Microsofts GitHub Copilot ist dabei mit kontextsensitiven Code-​Vorschlägen führend. Laut einer aktuellen Umfrage auf StackOverflow erfreut sich Microsofts Lösung höchster Beliebtheit unter den Entwicklern[1] . Aber es gibt Alternativen: Codeium fokussiert sich auf hohe Code-​Qualität, CodeGeex AI auf Fehlererkennung, Amazon CodeWhisperer auf AWS-​Integration und TabNine auf breite Sprachunterstützung. 

Trotz der bemerkenswerten Vorteile, die kommerzielle KI-​gestützte Programmierwerkzeuge bieten, gibt es auch eine Reihe von Einschränkungen und Kostenaspekten, die nicht übersehen werden sollten:

  • Lizenzkosten: Bei großen Unternehmen mit vielen Entwicklerinnen und Entwicklern können die Lizenzkosten beträchtlich sein, da pro Benutzer ein fester Betrag anfällt, wodurch die Gesamtkosten schnell ansteigen können[2].
  • Fragen zur Datenhoheit und zum geistigen Eigentum: Bei kommerziellen Angeboten ist oft unklar, welche Trainingsdaten mit welchen Lizenzbedingungen in das Modell eingeflossen sind. Daher ist fraglich, wie die generierten Code-​Schnipsel rechtlich zu behandeln sind und ob die Ergebnisse dem jeweiligen Anbieter oder dem Unternehmen selbst (oder gar Dritten) zustehen.
  • Mangelnde Anpassbarkeit: Die mit öffentlichen Code-​Basen trainierten Werkzeuge können nicht unternehmens-​ und projektspezifische Code-​Muster erzeugen (Coding Guidelines, intern entwickelte Bibliotheken, etablierte Unit-​Test-Patterns, etc). Dies führt dazu, dass ein generierter Code oftmals noch nachbearbeitet werden muss.

In diesem Kontext können Open-​Source-Alternativen eine attraktive Lösung darstellen. Abgesehen von den offensichtlichen Kostenvorteilen sowie einer rechtlich solideren Trainingsdaten-​Basis bieten sie ein Höchstmaß an Flexibilität und Anpassbarkeit. Open-​Source-Tools können nach den spezifischen Bedürfnissen eines Unternehmens modifiziert werden, was eine nahtlose Integration in bestehende Prozesse und Systemlandschaften ermöglicht. Zudem kann durch die Verwendung von Open Source die Abhängigkeit von einzelnen Anbietern vermieden und das Risiko einer 'Vendor-​Lock-in'-​Situation minimiert werden. Dies ist insbesondere für große Softwareunternehmen von Vorteil, die eine breite Palette von Projekten und Technologien managen und daher ein hohes Maß an Flexibilität und Unabhängigkeit benötigen.

Open-​Source-Alternativen

Aber was ist mit der Qualität der Code-​Generierung von Open-​Source-Alternativen, bevor wir an ihre Adaptierbarkeit denken? Wie schneiden die Basis-​Modelle im Vergleich zu prominenten Akteuren wie GitHub Copilot ab? Diese Fragen führten uns bei msg dazu, eine tiefgehende Evaluierung vorzunehmen. Einerseits konnten wir uns auf diverse veröffentlichte Benchmarks stützen, die einen ersten Überblick über die Leistungsfähigkeit verschiedener Open-​Source-Modelle geben. Andererseits wollten wir auch erste Hands-​On-Erfahrungen mit dem Hosting und der Nutzung solcher Modelle sammeln.

Dafür haben wir eines der derzeit (Juli 2023) besten Open-​Source-Modelle – SalesForce Codegen – auf AWS gehostet und in einem msg-​internen Entwicklungsprojekt eingesetzt. Die Integration erfolgte über speziell entwickelte Plug-​ins für gängige Entwicklungsumgebungen wie IntelliJ IDEA und Visual Studio Code. Nach einer Testphase haben wir eine qualitative Umfrage unter den Entwickelnden durchgeführt, um den wahrgenommenen Nutzen dieser Tools besser zu verstehen. Zum Vergleich haben wir dieselbe Umfrage in einem Kundenprojekt durchgeführt, bei dem der GitHub Copilot eingesetzt wird. Aufgrund der geringen Teilnehmerzahl erheben wir keinen wissenschaftlichen Anspruch an die Aussagekraft dieser Studie.

Evaluierung und Ergebnisse

Die untere Abbildung zeigt einen Ausschnitt von Fragen, die wir den Entwickelnden gestellt haben, sowie den jeweiligen Durchschnitt der Antworten aus den beiden Projekten (Einsatz von Codegen vs. GitHub Copilot). Die Skala der Antworten geht von 1 bis 5, wobei 1 der Einschätzung „stimme überhaupt nicht zu“ und 5 „stimme absolut zu“ entspricht.

In Summe sowie auf Basis einer differenzierten Auswertung der Antworten, konnten wir u. a. folgende Tendenzen beobachten:

  • Insgesamt erreichen beide Tools solide, mittlere Weiterempfehlungs-​Scores (d.h. dem Statement „Would you recommend it to a colleague“ stimmten die Teilnehmer im Durchschnitt „mittelmäßig“ zu, ohne übermäßig stark für oder gegen eine Weiterempfehlung zu sein). Eine eher verhaltene, aber doch vorhandene Zustimmung zu den Aussagen bedeutet, dass die Tools definitiv noch nicht perfekt sind, aber durchaus sinnvoll eingesetzt werden können.
  • Der GitHub Copilot liegt vorne – aber der Vorsprung gegenüber Open Source ist (subjektiv) geringer, als wir erwartet hatten. Es lohnt sich also, nicht nur dem medialen Hype um Copilot zu folgen, sondern auch Alternativen zu berücksichtigen.

Unabhängig vom Typ (Open Source oder GitHub Copilot) stellten wir des Weiteren Folgendes fest:

  • Sehr erfahrene Entwicklerinnen und Entwickler sowie Architektinnen und Architekten sind KI-​basierten Assistenten gegenüber weniger euphorisch eingestellt als die weniger erfahrenen Entwickelnden. Dies weist darauf hin, dass bei der Einführung von KI-​basierten Assistenten sorgfältig abgewogen werden sollte, in welchen Situationen und für welche Aufgabentypen sie am besten eingesetzt werden können, insbesondere unter Berücksichtigung potenzieller Herausforderungen und Grenzen dieser Technologien.
  • Der ideale Einsatzbereich von solchen Tools scheint – zumindest aktuell – in den repetitiven, routineartigen Coding-​Tasks zu liegen. Dies dürfte sich in den kommenden Jahren ändern, wenn die Modelle noch mächtiger werden und der Eingabe-​Kontext (z.B. in Form von weiteren Datenquellen wie Anforderungsdokumentation) noch umfassender wird.

Wir konnten im Rahmen dieser Evaluierung wertvolle Erfahrungen bzgl. des technischen Setups und der Bereitstellung von Open Source AI Coding Assistants sammeln. Um unseren Anforderungen bzgl. Kosteneffizienz, Skalierbarkeit und Anpassbarkeit zu genügen, mussten wir auf AWS-​Basis-Dienste wie EC2, EFS und Application Load Balancer zurückgreifen – die angebotenen SaaS-​Dienste wie SageMaker boten beispielsweise nicht die benötigte Flexibilität bzgl. des Bereitstellung neuster Open Source Modelle oder sie gingen mit  Limitierungen hinsichtlich unterstützter Security-​Mechanismen einher. Nichtsdestotrotz können im konkreten Fall auch solche Managed Services der schnelle, erste Schritt in die Welt der Open Source Coding Assistants sein.

Fazit und Empfehlungen

Die KI-(R)Evolution im Bereich der Softwareentwicklung ist unbestreitbar. Tools wie GitHub Copilot bieten bereits heute schon wertvolle Unterstützung bei der Codegenerierung und haben in vielen Kontexten beeindruckende Ergebnisse gezeigt. Doch wie unsere Untersuchung nahelegt, sind Open-​Source-Alternativen keine Randerscheinung oder minderwertige Substitute, sondern eine ernsthafte Option für Unternehmen, die Flexibilität, Anpassbarkeit und Kosteneffizienz suchen.

Besonders im Hinblick auf die Kontrolle von Daten, geistigem Eigentum und der Möglichkeit, eigene spezifische Coding-​Standards und -Muster zu implementieren, können Open-​Source-Lösungen von großem Wert sein. Obwohl kommerzielle Lösungen in bestimmten Benchmarks und Umfragen besser abschneiden können, zeigt unsere Studie, dass der Abstand zwischen kommerziellen und Open-​Source-Alternativen im tatsächlichen Einsatz geringer sein kann als erwartet. Zum Zeitpunkt des Schreibens dieses Artikels sind mittlerweile weitere, mächtigere Open-​Source-Code-Generierungs-Modelle veröffentlicht worden (z.B. Code Llama und WizardCoder), die, zumindest in öffentlichen Benchmarks, das GitHub-​Copilot-Niveau erreichen. Noch ist nicht abzusehen, inwiefern sich die kommerziellen Ansätze langfristig durchsetzen und entscheidende Wettbewerbsvorteile (und damit Marktanteile) sichern können.

Für sehr erfahrene Entwicklerinnen und Entwickler mag die Abhängigkeit von solchen Tools zunächst als unnötige Krücke erscheinen. Dennoch könnten auch sie von der Automatisierung routinemäßiger Aufgaben profitieren und somit ihre Fähigkeiten auf komplexere und kreativere Problemlösungen konzentrieren. Diese Differenzierung – nach Erfahrung, Aufgabe und Skills – verlangt jedoch eine methodische und prozessuale Anpassung in Softwareentwicklungsprozessen. Nur so können Unternehmen die vollen Vorteile dieser Tools ausschöpfen, während sie gleichzeitig die potenziellen Risiken mindern. Das bedeutet, dass sowohl die Auswahl des richtigen Tools, die Schulung der Mitarbeitenden als auch die kontinuierliche Überwachung und Anpassung der Prozesse von entscheidender Bedeutung sind, um ein Gleichgewicht zwischen Automatisierung und menschlicher Expertise zu gewährleisten.

Für jede Organisation im Automotive-​Bereich ist es entscheidend, eine individuelle Bewertung vorzunehmen, die sowohl technische als auch wirtschaftliche Aspekte berücksichtigt. Dabei sollten wir nicht vergessen, dass die Technologielandschaft in der Automobilindustrie besonders dynamisch ist: Was heute als Limitierung in der Fahrzeugsoftwareentwicklung erscheint, kann morgen bereits durch neue Entwicklungen überholt sein. In einem Sektor, der sich mit vernetzten Fahrzeugen, dem Software-​Defined-Vehicle (SDV), autonomem Fahren und Elektrifizierung auseinandersetzt, ist es von größter Bedeutung, stets offen und anpassungsfähig gegenüber neuen Technologietrends zu bleiben und die aktuellen Optionen regelmäßig zu überprüfen. Bei msg kombinieren wir unsere jahrzehntelange Erfahrung im Software Engineering mit modernem Know-​how in Bereichen wie Künstlicher Intelligenz und Cloud-​Architekturen, speziell angepasst auf die Bedürfnisse und Herausforderungen der Automobilindustrie. Gerne begleiten und beraten wir Ihre Teams, wenn es darum geht, AI-​Coding-Assistenten effektiv zu evaluieren, einzuführen und an die spezifischen Anforderungen im Automotive-​Bereich anzupassen!

 

Quellen

[1] https://survey.stackoverflow.co/2023/#section-​most-popular-technologies-ai-developer-tools

[2] https://github.com/pricing