adesso Blog

Im digitalen Zeitalter der Softwareentwicklung ist die Künstliche Intelligenz (KI) zu einem unverzichtbaren Werkzeug geworden, das Entwicklerinnen und Entwickler dabei unterstützt, schneller und effizienter zu arbeiten. KI-gestützte Programmierassistenten sind inzwischen so weit fortgeschritten, dass sie nicht nur einfache Programmieraufgaben übernehmen, sondern auch zur Lösung komplexer Programmierprobleme beitragen können. Drei prominente Beispiele für solche Assistenten sind GitHub Copilot, Amazon CodeWhisperer und verschiedene Open-Source-Alternativen. In diesem Blog-Beitrag werden wir uns diese drei Optionen genauer ansehen und ihre Stärken und Schwächen vergleichen.

GitHub Copilot

GitHub Copilot ist ein KI-gestütztes Tool, das von GitHub und OpenAI entwickelt wurde, um Entwicklerinnen und Entwickler bei der Erstellung von Code zu unterstützen. Es handelt sich um einen Cloud-basierten Dienst, der in integrierten Entwicklungsumgebungen (IDEs) wie Visual Studio Code, Visual Studio, Neovim und JetBrains implementiert ist. Das Tool verfügt über eine Funktion zur automatischen Vervollständigung von Code und ist derzeit auf Abonnementbasis für Einzelpersonen und Unternehmen erhältlich.

Die erste Ankündigung von GitHub Copilot erfolgte am 29. Juni 2021. Eine Technologievorschau wurde in der Entwicklungsumgebung Visual Studio Code eingeführt und später als Plugin auf dem JetBrains-Marktplatz sowie als öffentliches Repository für das Neovim-Plugin bereitgestellt. Als Erweiterung des Bing Code Search Plugins für Visual Studio 2013 bietet GitHub Copilot eine Reihe von Funktionen. Dazu gehören die Generierung von Lösungscode aus natürlichsprachlichen Problembeschreibungen, die Übersetzung von Code zwischen verschiedenen Programmiersprachen und die Konvertierung von Codekommentaren in ausführbaren Code. Darüber hinaus bietet es Autovervollständigungsfunktionen für Codesegmente und vollständige Methoden oder Funktionen.

GitHub Copilot wird von OpenAI Codex angetrieben, einer angepassten und einsatzbereiten Version von GPT-3, einem auf Deep Learning basierenden Sprachmodell, das menschenähnlichen Text erzeugen kann. Das Codex-Modell wird außerdem mit mehreren Terabyte Quellcode in verschiedenen Programmiersprachen trainiert. Der Nachfolger GitHub Copilot X wird von GPT-4, dem neuesten und besten Modell von OpenAI, angetrieben. Trotz der offensichtlichen Stärken von GitHub Copilot gibt es auch Sicherheitsbedenken und Kontroversen über die Lizenzierung des generierten Codes. Insbesondere rechtliche Herausforderungen und Datenschutzbedenken stehen im Vordergrund, da der Dienst cloud-basiert ist und eine ständige Kommunikation mit den Servern von GitHub Copilot erfordert.


Beispiel für die Verwendung in Visual Studio Code


GitHub Copilot Chat

Amazon Code Whisperer

Code Whisperer, ein Produkt des Technologiegiganten Amazon, ist ein KI-gestütztes Programmierwerkzeug, das sowohl einzeilige als auch vollständige Codevorschläge in Echtzeit innerhalb seiner integrierten Entwicklungsumgebung (IDE) generieren kann. Code Whisperer zielt darauf ab, die Effizienz und Geschwindigkeit des Softwareentwicklungsprozesses signifikant zu erhöhen. Wie Copilot ermöglicht Code Whisperer die Verwendung von natürlichsprachlichen Kommentaren, die spezifische Aufgaben in englischer Sprache artikulieren. Basierend auf diesen Kommentaren generiert Code Whisperer passende Codefragment-Vorschläge direkt in der IDE. Natürlich ist er auf AWS-Bibliotheken und -Komponenten spezialisiert.


Amazon Code Whisperer, Quelle: AWS

Open Source Coding Assistants

Ein herausragendes Beispiel für einen Open Source Programmierassistenten ist TabbyML. Dieses Tool überzeugt durch seine Professionalität und übertrifft in Sachen Integration sogar Amazon Code Whisperer. Ein bemerkenswerter Aspekt ist die Unterstützung von Neovim und Vim, textbasierten Editoren, die in hochrangigen Entwicklerkreisen sehr geschätzt werden.

Die Integration von TabbyML ist sehr benutzerfreundlich. Der Prozess erfordert lediglich die Installation des entsprechenden Plugins in Visual Studio Code, einer Jetbrains DIE oder Neovim. Anschließend wird das Modell entweder in einem Docker Container gestartet oder direkt auf dem PC installiert. Dabei ist zu beachten, dass eine Installation auf einem PC mit GPU oder einem M-Chip von Apple oder auf einem dedizierten GPU-Server/Maschine mit GPU optimal ist. Obwohl die Installationszeit mit etwa fünf Minuten etwas länger ist als bei Copilot und Whisperer, stellt dies keine übermäßige Komplexität dar. Ein großer Vorteil von TabbyML ist, dass Ihre Daten und Ihr Code niemals Ihr Gerät verlassen und somit nicht auf Server amerikanischer Firmen übertragen werden. Dies ist insbesondere im Zusammenhang mit dem Cloud Act, einem amerikanischen Gesetz, von Bedeutung. Dieses Gesetz erlaubt US-Behörden den Zugriff auf Daten, die in der Cloud gespeichert sind, auch wenn diese Daten außerhalb der USA gespeichert werden. Diese Regelung kann vor allem im Umgang mit vertraulichen oder sensiblen Daten problematisch sein. Mit TabbyML behält man jedoch immer die Kontrolle über seine Daten und seinen Code. Das ist ein entscheidender Vorteil, der die zusätzliche Einrichtungszeit aufwiegt. Ein weiterer Vorteil ist die Möglichkeit, das Modell hinter TabbyML, wie zum Beispiel StarCoder oder CodeLlama, selbst zu trainieren oder bei der Veröffentlichung einer neuen Version zu integrieren.


Die aktuell verfügbaren Modelle bei TabbyML

Vergleich der Anbieter

In der folgenden Analyse vergleiche ich vier prominente Anbieter von KI-basierten Copiloten: GitHub Copilot, Amazon Codewhisperer, TabbyML und Codeium. Ich bewerte sie anhand mehrerer Kriterien, darunter die Kontrolle über die eigenen Daten, die unterstützten Programmiersprachen, die Art der Lizenzierung, den Preis und die Integrationsmöglichkeiten.

Feature GitHub Copilot Amazon Codewhisperer TabbyML Codeium
Komplette Kontrolle über private Daten Nein Nein Ja Nein
Unterstützte Programmiersprachen Laut GitHub, theoretisch alle Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-Scripting, SQL und Scala Rust, Python, JavaScript, Typescript, Goland, Ruby, Java 70+
Lizenz proprietär proprietär MIT proprietär
Preis/Monat (private Nutzung) 10 USD Kostenlos Kostenlos; Hardware ist kostenpflichtig Kostenlos
Preis/Monat (Unternehmen) 19 USD 19 USD Kostenlos; Hardware ist kostenpflichtig 15 USD
Integrationen Azure, Jetbrains IDEs, Vim/Neovim. Visual Studio, Visual Studio Code Visual Studio (Code), Jetbrains IDEs, AWS, JupyterLab, Sagemaker Visual Studio (Code), Jetbrains IDEs, Neovim Visual Studio (Code), Jetbrains IDEs, Eclipse, Google Colab, Databricks, Emacs, Vim/Neovim, Xcode
Self Hosting Nein Nein Ja Ja
Finetuning Geplant Geplant Ja Ja

Kontrolle über die eigenen Daten

Ein entscheidendes Kriterium für viele Nutzerinnen und Nutzer ist die Kontrolle über die eigenen Daten. Damit ist gemeint, dass man jederzeit genau weiß, wo sich die Daten befinden und dass nur man selbst Zugriff auf diese Daten hat. In diesem Vergleich ermöglicht nur TabbyML die Kontrolle über die eigenen Daten. GitHub Copilot, Amazon Codewhisperer und Codeium bieten diese Funktion nicht an.

Anzahl der unterstützten Programmiersprachen

Was die Anzahl der unterstützten Programmiersprachen betrifft, so deckt GitHub Copilot theoretisch alle ab. Amazon Code Whisperer unterstützt eine Vielzahl von Sprachen (Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell-Scripting, SQL, Scala) und ist darüber hinaus für die Verwendung von AWS-Komponenten und -Bibliotheken optimiert. TabbyML unterstützt Rust, Python, JavaScript, Typescript, Goland, Ruby und Java. Codeium bietet Unterstützung für mehr als 70 Sprachen.

Lizenz

GitHub Copilot, Amazon Code Whisperer und Codeium sind proprietäre Lizenzen, während TabbyML eine MIT-Lizenz verwendet. Darüber hinaus kann TabbyML in nahezu jedes Modell integriert werden, da es auf GGUF-kompatiblen Modellen basiert.

Integrationen

Alle vier Anbieter bieten Integrationen in verschiedene Entwicklungsumgebungen an. Alle unterstützen Visual Studio (Code) und die IDEs von Jetbrain. TabbyML und Codeium erlauben auch Self-Hosting, während GitHub Copilot und Amazon Code Whisperer dies nicht anbieten.

Finetuning

"Finetuning" bezeichnet den Prozess der Anpassung eines bestehenden linguistischen Modells an spezifische Datensätze. Dieser Prozess beinhaltet das zusätzliche Training des Modells mit unternehmensspezifischen Daten, um es mit den einzigartigen Eigenschaften und Anforderungen des Kontexts vertraut zu machen. Der Hauptvorteil dieses Ansatzes besteht darin, dass das Modell besser in der Lage ist, die unternehmensspezifischen Daten, Ideen und Codes zu verstehen und zu interpretieren. Dies kann beispielsweise das Verständnis von firmeneigenen Bibliotheken, Code-Konventionen oder spezifischer Geschäftsterminologie umfassen. Durch dieses maßgeschneiderte Training kann das Modell spezielle Kenntnisse erwerben, die es ihm ermöglichen, spezifische unternehmensinterne Informationen und Strukturen effektiver zu verarbeiten. Im Ergebnis führt dieses fein abgestimmte Modell zu einer verbesserten Leistung und Genauigkeit bei Aufgaben, die auf den spezifischen Daten und Anforderungen des Unternehmens basieren.

Steigerung der Effizienz und Produktivität

Es ist wichtig zu verstehen, wie der Einsatz eines Assistenten zur Steigerung der Effizienz und Produktivität beitragen kann. Zu diesem Zweck hat GitHub selbst Experimente durchgeführt. Hauptsächlich mit dem Ziel, das eigene Produkt zu bewerben. Trotzdem sind die Ergebnisse sehr interessant.


Ergebnisse der Umfrage zur Nutzuung von GitHub Copilot, Quelle: https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

Hier ein Auszug aus einer Umfrage von GitHub zum Einfluss des Copiloten auf Entwicklerinnen und Entwickler. Faszinierenderweise wird der Hauptnutzen für die Entwicklerinnen und Entwickler ähnlich interpretiert wie die Digitalisierung und Vereinfachung des Berichts- und Abrechnungssystems für das medizinische Personal. Der Hauptvorteil liegt in der Eliminierung monotoner, sich wiederholender Aufgaben, die wahrscheinlich auch eine wiederholte Online-Recherche nach denselben Informationen erfordern. Diese Entlastung scheint die Arbeitsgeschwindigkeit zu erhöhen und das Eintauchen in einen produktiven Arbeitsfluss zu ermöglichen. Dadurch kann man sich direkt auf die Lösung spannender und wichtiger Probleme konzentrieren.


Auszug aus einer Umfrage von GitHub zum Einfluss des Copiloten, Quelle: https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

GitHub führte ein aufschlussreiches Experiment mit zwei Gruppen von Entwicklerinnen und Entwickler durch: eine Gruppe, die GitHub Copilot nutzte, und eine Kontrollgruppe, die dies nicht tat. Obwohl die Erfolgsquote der Entwicklerinnen und Entwickler, die Copilot nutzten, mit 78 Prozent nur geringfügig höher war als die derer, die Copilot nicht nutzten, zeigte sich, dass die Copilot-Nutzerinnen und -Nutzer ihre Aufgaben um 55 Prozent schneller lösen konnten. Dieser bemerkenswerte Unterschied unterstreicht die potenzielle Bedeutung und den Mehrwert, den solche Unterstützungswerkzeuge in der Softwareentwicklung bieten können.

Ausblick

Die Zukunft der Softwareentwicklung sieht mit der kontinuierlichen Verbesserung und Verfeinerung von KI-gestützten Code-Assistenten sehr vielversprechend aus. Diese Werkzeuge werden zweifellos weiterhin fortschrittlichere und nützlichere Funktionen entwickeln, die Entwicklerinnen und Entwicklern dabei helfen, effizienter zu arbeiten und besseren Code zu schreiben. Besondere Aufmerksamkeit sollte der Datensicherheit und dem Datenschutz gewidmet werden. Mit der zunehmenden Verbreitung von Cloud-basierten Diensten wird die Kontrolle über die eigenen Daten immer wichtiger. Tools wie TabbyML, die Self-Hosting ermöglichen, könnten in diesem Bereich an Bedeutung gewinnen. Darüber hinaus wird erwartet, dass in Zukunft mehr Open-Source-Alternativen entstehen, die mehr Flexibilität und Kontrolle bieten. Dies könnte zu einer gesunden Wettbewerbsdynamik führen, die Innovationen fördert und gleichzeitig die Kosten für die Nutzer senkt. Letztendlich hängt die Wahl des besten Coding-Assistenten von den spezifischen Bedürfnissen und Anforderungen des einzelnen Entwicklers oder der einzelnen Entwicklerin ab. Es bleibt spannend zu beobachten, wie sich diese Technologie weiterentwickelt und welchen Einfluss sie auf die Softwareentwicklung der Zukunft haben wird.

Ihr möchtet mehr über spannende Themen aus der adesso-Welt erfahren? Dann werft auch einen Blick in unsere bisher erschienenen Blog-Beiträge.

Bild Marc Mezger

Autor Marc Mezger

Marc Fabian Mezger ist AI Specialist Consultant, der sich auf die Bereiche Medical Deep Learning, Computer Vision und Drift spezialisiert hat. In seiner aktuellen Rolle im Competence Center AI & Data Science ist er für die Beratung von Kunden zu AI-Lösungen und deren Umsetzung verantwortlich. Er verfügt über umfangreiche Kenntnisse im Bereich Machine und Deep Learning.

Diese Seite speichern. Diese Seite entfernen.