KI Coding Assistenz Blog Beitrag

KI-Coding-Assistenten: Überblick und Vergleich

KI Coding Assistenz Blog Beitrag

KI-Coding-Assistenten: Überblick und Vergleich

Die Integration von Large-Language-Modellen, wie zum Beispiel die bekannten GPT-modelle von OpenAI in Alltagsprozessen, macht auch vor der IT-Branche keinen Halt. Die Nutzung von KI-Assistenten in IDEs (integrierte Entwicklungsumgebung) wird mehr und mehr zum Standard. Sie helfen Entwickler*innen, Data Scientists und Co. bei der Code-Erstellung, Fehlerbehebung, Dokumentation und vielem mehr.

In diesem Blogartikel geben wir einen Überblick über die Funktionalitäten gängiger KI-Assistenten und präsentieren Testergebnisse (Stand Mitte 2024) unseres internen Vergleichs von den drei KI-Assistenten: GitHub Copilot, Tabnine und AI Assistant von JetBrains. Wir bewerten die KI-Assistenten hinsichtlich der Performance des Sprachmodells in Python sowie der Integration in die IDE PyCharm. Darauf basierend geben wir Ihnen Empfehlungen, damit auch Sie mit einem für Ihre Anforderungen geeignetem KI-Assistenten durchstarten können.

1.1 Was können KI-Assistenten?

Im ersten Schritt geben wir einen Überblick über die Funktionalitäten von KI-Assistenten. Die Screenshots stammen vom AI Assistant von JetBrains in der IDE PyCharm (ebenfalls von JetBrains).

Die wichtigste Funktionalität ist wenig überraschend ein Chat-Fenster. Wie auch in den Browservarianten, z.B. in Microsoft Copilot, in Bing oder ChatGPT, generiert das Sprachmodell Antworten auf die gestellten Anfragen. Ein Vorteil der IDE-Integration ist, dass der generierte Code per Knopfdruck in das jeweilige Skript eingefügt werden kann.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

Die integrierte Chatfunktion, die für sich allein schon sehr nützlich ist (da man beispielsweise nicht mehr zwischen Browser und IDE wechseln muss), wird von weiteren Funktionen ergänzt:

1. Inline Code-Vorschläge

Der KI-Assistent generiert während des Codens Vorschläge für die nächsten Codezeilen. Wie man im Bild sieht, gehen diese Vorschläge über „simple“ Variablennamen hinaus, was bereits von den meisten IDEs selbst abgedeckt wird.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

2. Vorgefertigte Anfragen

Für markierten Code können vorgefertigte Anfragen gestellt werden. Diese umfassen typischerweise die “Erstellung von Dokumentation”, “Erklärung für Code”, “Vorschläge für Refactoring”, “Unit Testing” und weiteren Funktionen.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

3. Commit-Nachrichten erstellen

Aussagekräftige Commit-Nachrichten sind bewährte Praxis und der KI-Assistent kann auch hierbei unterstützen.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

4. Fehlermeldungen erklären

Manchmal sind Fehlermeldungen nicht direkt verständlich. Der KI-Assistent kann hier ebenfalls helfen.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

1.2 Worin unterscheiden Sie sich?

Aktuell gibt es Dutzende verschiedene KI-Assistenten. Der bekannteste für IDEs ist GitHub Copilot. In unserem Vergleich (siehe Abschnitt 2) testen wir neben GitHub noch zwei andere KI-Assistenten. Sie unterscheiden sich in folgenden Aspekten:

  • Sprachmodell
    KI-Assistenten basieren auf Sprachmodellen, die sich insbesondere in zwei Aspekten unterscheiden:
    • Aktualität des Modells:
      Abhängig von den Trainingsdaten kann es sein, dass die Sprachmodelle nur Wissen bis zu einem bestimmten Zeitpunkt haben, z.B. bis 2022). Das kann dazu führen, dass das Sprachmodell z.B. bei Python-Paketen veraltete Syntax benutzt.
    • Performance des Sprachmodells:
      Je nach Qualität, Quantität und Art der Trainingsdaten sowie der Architektur und Größe (Anzahl Parameter) des Sprachmodells, unterscheidet sich auch die Qualität der Antworten. Dies beeinflusst insbesondere auch die Qualität der Beantwortung von komplexen Anfragen. Obwohl eine objektive Bewertung schwierig ist, gibt es Benchmark-Tests, die die Leistungsunterschiede in Sprachmodellen zu quantifizieren versuchen. Beispielsweise ist humanEval mit 1000 Fragen im Bereich des Programmierens eine der bekannteren Benchmarks.
  • Einbettung in die IDE
    Neben dem Sprachmodell ist auch die Implementierung in die IDE ein Aspekt, in dem sich die KI-Assistenten unterscheiden. Nicht alle unterstützen beispielsweise das Feature, sich Fehlermeldungen direkt erklären zu lassen, ohne sie in den Chat kopieren zu müssen. Solche vermeintlichen Kleinigkeiten können den Workflow beeinflussen.
  • Hosting
    Ein weiterer Aspekt ist der Ort, an dem das Sprachmodell für den KI-Assistenten gehostet wird. Das Sprachmodell auf internen Servern laufen zu lassen, hat den Vorteil, dass die eingespeisten Daten nicht auf Servern Dritter liegen. Dies kann insbesondere für die Wahrung der Datensicherheit ein relevanter Aspekt sein.

1.3 Was gilt es zu beachten?

  • Datensicherheit/-schutz
    Es ist nicht garantiert, dass die Chathistorie mit dem Sprachmodell sicher und geschützt ist. Dies gilt insbesondere, wenn man das Sprachmodell nicht selbst hostet und die Daten auf einem Server Dritter liegen. Aus diesem Grund empfehlen wir möglichst keine sensiblen Daten direkt in das Sprachmodell zu geben.
  • Fehler
    Sehr wichtig ist ebenfalls, den Outputs des Modells nicht blind zu vertrauen. Es gibt keine Garantie dafür, dass der generierte Code keine Fehler enthält oder wirklich das macht, was von ihm erwartet wird. Es ist daher notwendig zu prüfen, ob der Code funktioniert und Sinn ergibt.

2. Test

Für den Test haben wir drei der gängigen KI-Assistenten in der IDE PyCharm getestet: GitHub Copilot, Tabnine und den AI Assistant (von JetBrains). Zum Vergleich mit einem reinen Chatbot im Browser haben wir Microsoft Copilot in Bing in die Auswertung inkludiert.

GitHub Copilot

GitHub Copilot ist mit Abstand der bekannteste KI-Assistent. Er wurde von GitHub und OpenAI entwickelt und basiert in der Pro-Version aktuell auf dem GPT-4 Sprachmodell von OpenAI.

Tabnine

Tabnine bietet bereits seit 2018 KI-Assistenten für IDEs an. Man kann als Nutzer der Pro-version entscheiden, welches Sprachmodell benutzt werden soll. Neben eigenen Sprachmodellen wird hier unter anderem auch GPT-4o unterstützt. AI Assistant (JetBrains) Der AI Assistant von JetBrains ist erst seit Dezember 2023 auf dem Markt und in PyCharm (ebenso von JetBrains) nutzbar. Er basiert auf verschiedenen Sprachmodellen u.a. GPT-4.

Microsoft Copilot

Wir haben auch den Microsoft Copilot im Bing Browser getestet. Dieser ist zwar kein in die IDE integrierter KI-Assistent, ist jedoch als Baseline integriert. Er basiert auf GPT-4.

2.2 Testdesign vorstellen

Der Test beinhaltet zwei Bewertungskriterien:

Performance des Sprachmodells

Das erste Bewertungskriterium ist die Performance des Sprachmodells. Um diese vergleichbar zu machen, haben wir allen KI-Assistenten im Chat die gleichen Anfragen gestellt und die Antworten evaluiert. Insgesamt haben wir 14 Anfragen mit verschiedenen Aufgaben in Python getestet (z.B. Code schreiben, Code erklären, Tests schreiben, Programmiersprache übersetzen). Eine Anfrage war beispielsweise „explain the LangChain RecursiveCharacterTextSplitter“.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

Einbettung in die IDE

Nicht nur die Performance des dem KI-Assistenten zugrundeliegenden Sprachmodells ist relevant. Mindestens genauso wichtig ist die Implementierung in die IDE, die es erlaubt, mühsame Prozesse zu beschleunigen und das Sprachmodell effizienter zu nutzen. Hierfür wurden alle KI-Assistenten in der IDE PyCharm getestet. Bewertet werden die Features über das Chatfenster hinaus. Wie viele gibt es hier und wie gut ist der Workflow mit Ihnen? Beispielsweise kann man beim AI Assistant von JetBrains mit Rechtsklick auf den markierten Code auf vorgefertigte Anfragen zugreifen:

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

Bei Tabnine werden die Optionen direkt über Funktionen angezeigt, wobei insgesamt weniger Optionen zur Verfügung stehen.

Vergleich von Code Assistenz Systemen, Blogbeitrag von eoda

2.3 Testergebnis

Die folgende Tabelle gibt einen Überblick über das Testergebnis der relevanten Eckdaten.

Bei der Integration in die PyCharm IDE hat uns der hauseigene AI Assistent von JetBrains am besten gefallen. Er bietet die meisten Optionen bei den vorgefertigten Anfragen und ermöglicht es, sich Fehlermeldungen per Button erklären zu lassen. Alle KI-Assistenten sind jedoch gut integriert und bieten die grundlegenden Features.

Bei der Chat-Performance konnte Tabnine mit GPT-4o als ausgewähltem Sprachmodell am besten abschneiden. Tabnine mit GPT-4o konnte sich insbesondere bei komplexen Fragestellungen, wie z.B. der Erstellung von Unit Tests, von den anderen abheben. GitHub Copilot und AI Assistant haben jedoch auch solide Ergebnisse erzielen können, besser als Microsoft Copilot.

3. Fazit und Empfehlungen

Unser Test hat ergeben, dass alle getesteten KI-Assistenten solide Sprachmodelle bereitstellen und eine gute Integration in PyCharm bieten. Tabnine mit dem GPT-4o Sprachmodell hat in unserem Test die besten Antworten geliefert, AI Assistant von JetBrains hingegen die beste Integration. Das Testergebnis muss man als kleine Stichprobe verstehen, nicht als repräsentative Bewertung, da die Performance von Sprachmodellen grundsätzlich schwierig zu vergleichen ist. Ebenso ist zu beachten, dass sich KI-Assistenten und deren Sprachmodelle aktuell schnell ändern und weiterentwickeln.

Unsere Empfehlung (Stand Mitte 2024) für einen KI-Assistenten in PyCharm hängt von der persönlichen Präferenz ab. Wenn die Qualität des Sprachmodells ausschlaggebend ist, empfehlen wir Tabnine mit GPT-4o. Wenn die Integration am wichtigsten ist, empfehlen wir den AI Assistent von JetBrains.

Aufgrund der teilweisen sehr nützlichen Funktionalitäten, die über das Chatfenster hinausgehen, empfehlen wir im Allgemeinen die Nutzung eines in die IDE integrierten KI-Assistenten anstelle von Browsertools wie Microsoft Copilot im Bing Browser. Falls Sie dennoch im Browser arbeiten möchten, empfehlen wir Ihnen Microsoft Copilot, wenn sie GPT-4 benutzen möchten.

Wir beraten Sie rund um GenAI und entwickeln passgenaue Lösungen für Sie.

Entdecken Sie auch unsere Lösung Guinan, mit der Sie das Potenzial vorgefertigter Sprachmodelle und Ihrem unternehmensspezifischen Wissen schnell erschließen können. Mehr zum Thema GenAI

Starten Sie jetzt in Richtung Ihrer individuellen GenAI-Lösung!

Wir freuen uns auf den Austausch mit Ihnen.

    Ihr Experte für Data-Science-Projekte:

    Martin Schneider

    Chief Data Scientist

    projects@eoda.de

    Tel. +49 561 87948-370