Seit ChatGPT von Open AI der Öffentlichkeit zugänglich gemacht wurde, sind KI-Textgeneratoren in aller Munde. Viele versuchen derzeit auch im Job die Grenzen und die Möglichkeiten dieser Assistenzsysteme auszuloten.

Textgeneratoren wurden schon dazu genutzt, Kinderbücher zu schreiben oder helfen dabei, Formulierungen zu verfeinern. Andere nutzen Textgeneratoren als Tandem Partner zum Sprachenlernen.

Ein Anwendungsgebiet, das speziell für IT-Firmen interessant ist, ist die Nutzung beim Schreiben von Code. Dieser Blogbeitrag schaut sich Textgeneratoren an, die schon weit verbreitet sind und für das Erstellen von Code und Codedokumentation trainiert wurden. Vier Dienste sollen genauer beleuchtet werden: Code-Suggestion von GitLab, Copilot von Github, AI Assistant von JetBrains und CodeWhisperer von AWS.

Integration in die Entwicklungsumgebung

Die derzeitigen Code-Assistenten lassen sich mit Plugins in verschiedenste IDEs einbauen. Vorneweg ist hier VS Code zu erwähnen. Hier lassen sich alle vier Assistenten integrieren und nutzen. Selbst AI Assistant, der sonst nur für die JetBrains IDEs vorgesehen ist, funktioniert hier. Auch die IDEs von JetBrains werden im Allgemeinen unterstützt, mit der Einschränkung, dass die zusätzliche Kosten mit sich bringen.

Benutzt man AWS Glue Studio Notebook, JupyterLab oder Amazon SageMaker Studio und will einen Code-Assistenten nutzen, so steht derzeit nur CodeWhisperer zur Wahl.

Welche Sprachen werden unterstützt?

Alle Assistenten unterstützen die gängigsten Programmiersprachen wie C++, Java und Python. Der Copilot von Github rühmt sich auch damit, dass er mit allen Programmiersprachen umgehen kann, die in Github Repositories vorkommen.

Dies bedeutet, dass Copilot potenziell alle Programmiersprachen beherrscht, wobei auch Copilot zugibt, dass die Qualität hier sehr abhängig davon ist, wie häufig die Sprache in Github vorkommt, sodass für selten genutzte Programmiersprachen auch schlechtere Ergebnisse erzeugen werden.

In Tabelle 2 ist eine Übersicht der derzeit unterstützten Programmiersprachen zu finden. Diese Liste ist nicht vollständig und es kommen immer wieder neue Sprachen hinzu.

Tabelle 2: Übersicht der unterstützten Programmiersprachen

Sicherheit und Datenschutz

Wenn es um die Nutzung von KI in Unternehmen geht, sind Sicherheit und Datenschutz sensible Themen. Wie werden Daten genutzt und gespeichert? Um diese Frage zu beantworten, sind mehrere Aspekte zu beachten:

Verschlüsselung

Um im Code-Assistenten ein Resultat zu generieren, müssen gewisse Codeteile an den Textgenerator gesendet werden. – Hierfür benutzen alle vier Dienste, die ich untersucht habe, eine verschlüsselte Übertragung. Diese Codeteile werden im Allgemeinen nur temporär gespeichert, bis eine Antwort generiert wurde und dies in verschlüsselter Form.

Nutzungsdaten

Typischerweise werden auch Nutzungsdaten wie genutzte Sprache, Länge des Prompts u. s. w. gesammelt. Diese Daten werden anonymisiert und verschlüsselt gespeichert. – Copilot sticht hier mit einer außerordentlichen Transparenz heraus: So ist bekannt, dass alle Daten, die gespeichert werden, mittels Microsoft Azure’s data encryption gemäß FIPS Publication 140-2 Standards verschlüsselt werden.

Der Service von Copilot wird zudem auditiert und erfüllt die Voraussetzungen für SOC 2, ISO 27001 und FedRAMP Tailored Zertifikate. Weiterhin besteht die Möglichkeit als Enterprise Kunde nach der Unterzeichnung eines NDAs Einsicht in externe Penetration Tests zu bekommen.

Nutzung für das Training der KI

Der dritte Punkt, der viele Unternehmen beim Thema Sicherheit interessiert, ist: „Wird mein Code zum weiteren Trainieren von Code-Generatoren benutzt?“

Alle Dienste bis auf CodeWhisperer verneinen dies explizit. Bei CodeWhisperer konnte ich keine Aussage hierzu finden. Da dieser Code-Generator jedoch ausschließlich auf Open Source Code trainiert wird, ist es sehr wahrscheinlich, dass der eigene Code auch hier sicher ist.

AI Assistant bietet die Möglichkeit zu einer erweiterten Datenverarbeitung als reinen Opt-in an. Wird diese gestattet, werden ganze Textblöcke aus der Kommunikation zwischen Nutzer und Code-Generator sowie Codeteile von AI Assistant zum weiteren Training genutzt. Diese Daten werden maximal ein Jahr lang verschlüsselt gespeichert.

Generell gibt es einen Unterschied zwischen den bezahlten Varianten, die hier betrachtet wurden und kostenlosen Varianten. Letztere erlauben oft die Verwendung der gesendeten Daten zum Training, bzw. schließen dies nicht aus. Hier gilt es sich genau zu informieren.

Funktionalität im Vergleich

Beim Funktionsumfang gibt es die größten Unterschiede zwischen den Assistenten.

Schreibvorschläge

Code Suggestions hat derzeit die geringste Funktionalität anzubieten. Hier bietet der Assistent nur zwei Möglichkeiten der Interaktion.

  1. Zum einen gibt der Assistent während des Code-Schreibens Vorschläge dafür, was man wahrscheinlich als nächstes schreiben will. So kann der Assistent zum Beispiel bei einem Return Statement in einer Funktion eine Variable mit dem richtigen Datenformat vorschlagen.
  2. Die zweite Funktionalität ist die Codegenerierung aus Kommentaren. So wird aus einem Kommentar wie „Prints out the Sum of the first ten integers” Code generiert, der eine Schleife über die ersten zehn ganzen Zahlen laufen lässt und zu einer Variablen hinzuaddiert.

Chatbot-Funktion

Die anderen Assistenten bieten neben der Codegenerierung während der Eingabe auch einen Chatbot, mit dem man über den Code der derzeitig geöffneten Datei reden kann. Das können Fragen sein wie „Was macht diese Funktion?“ oder man kann auch direkt Code generieren lassen wie das Schreiben von Tests zu dem Programm.

Der Chatbot erlaubt es auch, Fehlermeldungen zu analysieren und gegebenenfalls auch Lösungen zu finden.

Texte für Pull Requests und Commit Messages

Copilot und AI Assistant haben neben der direkten Codegenerierung auch die Funktonalität Texte für Pull Requests (Copilot) oder Commit Messages (AI Assistant) anhand der Änderungen zu schreiben.

CodeWisperer kann noch mehr

Die folgenden drei Features sind ausschließlich bei CodeWhisperer zu finden und machen das Tool derzeit einzigartig.

  1. Erstens ist der Assistent auf AWS-Dienste spezialisiert. D. h. CodeWhisperer kann dabei helfen, die Einbindung der Dienste in Skripte zu verbessern.
  2. Zweitens kann CodeWhisperer den Code auf Sicherheitslücken untersuchen. So können z. B. die Top 10 Sicherheitslücken des Open Worldwide Application Security Project (OWASP) direkt geprüft werden.
  3. Punkt drei ist die Kennzeichnung von Open Source Code. Entdeckt CodeWhisperer Code, der unter der Open-Source-Lizenz läuft, egal ob durch den Nutzer eingegeben oder durch CodeWhisperer erzeugt, so wird dieser Code gekennzeichnet. Es steht dann im eigenen Ermessen, ob man die entsprechende Erwähnung vorzunehmen möchte oder den Code zu entfernen lässt, um das Problem anders zu lösen.

Was kosten die Code-Assistenten?

Bis auf Code Suggestions, das während der Betaphase kostenlos ist, sind alle Code Assistenten mit monatlichen Kosten pro Nutzer verbunden. CodeWhisperer und AI Assistant bieten einen kostenlosen Einstieg an, die im Fall von CodeWhisperer eingeschränkt in der Nutzung ist und im Fall von AI Assistant zeitlich auf sieben Tage begrenzt ist, dafür aber alle Funktionalitäten der bezahlten Version hat.

Die Kosten schwanken dabei sehr, AI Assistant bietet mit 16,67 Euro pro Monat pro Nutzer den günstigsten Assistenten an, hier kommen jedoch noch die Kosten der benutzten IDE hinzu. Copilot und CodeWhisperer bieten beide eine Grundversion für 19 Dollar pro Monat pro Nutzer an, Code Suggestions verlangt hier 29 Dollar. Für 39 Dollar gibt es noch eine Enterprise Version von Copilot. AI-Suggestions bietet auf Anfrage noch eine Enterprise-Version an, die neben einer On-Premise-Installation noch höhere Schutzfunktionen bietet.

Fazit

Obwohl es noch sehr neu ist, Textgeneratoren zum Schreiben von Code zu benutzen, gibt es inzwischen doch einige interessante Möglichkeiten. Zum einen helfen Codevorschläge – ähnlich wie klassische Vorschläge von IDEs – um Standardcode schneller zu schreiben. Die KI erlaubt darüber hinaus aber auch den Vorschlag von Funktionalitäten.

Nach einiger Gewöhnung, fühlt sich der Chatbot wie ein:e Kolleg:in an, der oder die beim Programmieren hilft. Mit dem Vorteil, dass dieser jederzeit verfügbar ist und auch bei den dümmsten Fragen Ruhe bewahrt.

Natürlich ist nicht jeder Code, der produziert wird, sofort funktionsfähig oder arbeitet korrekt. Man sollte immer damit rechnen, dass der Code fehlerhaft sein kann. Aber auch hier hilft die Chatbot Funktion weiter. Einfach bei Code, den man nicht sofort nachvollziehen kann, nachhaken und herausfinden, was der Code genau macht.

Kommt es bei der Codeausführung zu einer Fehlermeldung, so kann der Assistent erklären, warum es zu diesem Fehler kommt. Im Gegensatz zu einer normalen Google Suche kann der Assistent den Kontext mitberücksichtigen, was hilfreich sein kann.

Ich bin davon überzeugt, dass Code-Assistenten in der Softwareentwicklung immer stärker zum Einsatz kommen werden. Sie werden bei einfachen Problemen genutzt werden, wie bei der Namensvergabe für Variablen, könne aber auch bei der Analyse von komplexem Code helfen. Sie werden die lästige Arbeit der Dokumentation und der Codekommentierung vereinfachen oder sie den Entwicklungsteams vielleicht ganz abnehmen.

Kurz: Alle, die heute mit Programmierung beschäftigt sind, sollten sich mit diesem Thema auseinandersetzen!

Alle Beiträge von Emrah Birsin

Seit 2017 arbeite ich bei OPITZ CONSULTING als Data Analyst. Dabei hilft mir mein Studium der Physik, analytisch und zielstrebig an Problemen zu arbeiten. Seien es Code-, DWH- oder Datenprobleme. Außerdem sorgt meine Neugier dafür, dass ich mich, wann immer möglich, mit neuen interessanten Themen wie generativer KI beschäftige. So seit Neustem auch mit Large Language Models, und wie diese unseren Arbeitsalltag erleichtern können.

Schreibe einen Kommentar