GitHub Copilot vs. Amazon CodeWhisperer

Feb 13 2023
Der Kampf um den besten KI-gestützten Programmierassistenten hat offiziell begonnen! GitHub Copilot und Amazon CodeWhisperer sind KI-gestützte Codierungsassistenten, die die automatische Vervollständigung auf ein ganz neues Niveau heben. Im besten Fall können sie komplette Teile funktionierenden Codes schreiben, die auf nur einem kleinen beschreibenden Text des Entwicklers basieren.

Der Kampf um den besten KI-gestützten Programmierassistenten hat offiziell begonnen!

GitHub Copilot und Amazon CodeWhisperer sind KI-gestützte Codierungsassistenten, die die automatische Vervollständigung auf ein ganz neues Niveau heben. Im besten Fall können sie komplette Teile funktionierenden Codes schreiben, die auf nur einem kleinen beschreibenden Text des Entwicklers basieren. Das kann Sie als Entwickler effizienter machen
und – meiner Meinung nach – macht die Entwicklung viel mehr Spaß!✨

Also ohne weitere Umschweife, fangen wir an!

Was ist ein KI-gestützter Codierungsassistent?

GitHub Copilot und Amazon CodeWhisperer sind Dienste, die sich in Ihren Code-Editor integrieren und Ihnen helfen, Code schneller zu schreiben. Aber im Gegensatz zu den gängigen Autovervollständigungstools wie z. B. „IntelliSense“ nutzen Copilot und CodeWhisperer Modelle des maschinellen Lernens, die sowohl auf Quellcode als auch auf natürlicher Sprache trainiert wurden, sodass sie sowohl Programmierung als auch menschliche Sprachen verstehen können. Dies ermöglicht es ihnen, in einfachem Englisch verfasste Kommentare zu verstehen, Code basierend auf der Absicht des Entwicklers zu generieren und die Muster und den Stil des Entwicklers anzupassen. Während Sie tippen, geben sie sogar Empfehlungen, um den ersten Kommentar selbst zu vervollständigen. Sie können die Top-Empfehlung akzeptieren, weitere Empfehlungen anzeigen oder einfach mit dem Schreiben Ihres eigenen Codes fortfahren.

Verbringen Sie weniger Zeit mit der Erstellung von Musterbeispielen und sich wiederholenden Codemustern und haben Sie mehr Zeit für das Wesentliche: die Entwicklung großartiger Software (GitHub Copilot)

Was ist GitHub Copilot?

GitHub Copilot wurde von GitHub und OpenAI entwickelt. Es basiert auf dem Codex-Modell von OpenAI, das auf öffentlich verfügbarem Quellcode trainiert wurde, einschließlich öffentlicher Repositories auf GitHub. Copilot wurde im Juni 2022 offiziell „aus der technischen Vorschau“ angekündigt.

Beginnen Sie mit der Eingabe eines beschreibenden Kommentars oder Funktionsnamens, und Copilot versucht, den Rest automatisch zu vervollständigen

Copilot ist sehr einfach zu bedienen und bietet eine optimierte Integration mit allen wichtigen Code-Editoren. GitHub Copilot ist für die sieben wichtigsten Programmiersprachen optimiert (Details siehe Tabelle unten), kann aber auch Vorschläge in anderen Sprachen und einer Vielzahl von Frameworks generieren.

Copilot war in der Vorschauphase kostenlos, GitHub hat jedoch kürzlich angekündigt, auf ein abonnementbasiertes Modell umzusteigen. Sie können weiterhin eine 60-tägige kostenlose Testversion erhalten, die für verifizierte Studenten und Betreuer beliebter Open-Source-Projekte weiterhin kostenlos bleibt.

Die Vorschläge von Copilot sind kontextabhängig. Beobachten Sie, wie es „lernt“, dass Sie Konstanten verwenden möchten, und wie es die Objekte mit den richtigen Namen und Nummern füllt

Was ist Amazon CodeWhisperer?

Amazon CodeWhisper wurde von Amazon entwickelt. Seine ML-Modelle werden auf verschiedenen Datenquellen trainiert, darunter Amazons interner Code und Open-Source-Code.

CodeWhisperer vervollständigt Ihre Kommentare. Anschließend werden die Kommentare verwendet, um Code vorzuschlagen. Sie können zwischen verschiedenen Code-Implementierungen wechseln, um diejenige auszuwählen, die am besten passt.

CodeWhisperer befindet sich noch in der Vorschau und unterstützt sowohl weniger Sprachen als auch weniger der wichtigsten Code-Editoren als GitHub Copilot. Eine breite Sprach- und IDE-Unterstützung ist jedoch nicht der Hauptvorteil. Stattdessen konzentriert sich CodeWhisperer auf die Bereitstellung erstklassiger Unterstützung für AWS-APIs, die Codeempfehlungen für AWS-APIs für die beliebtesten Dienste bereitstellt, darunter Amazon Elastic Compute Cloud (EC2), AWS Lambda und Amazon Simple Storage Service (S3). Qualität vor Quantität?

Diesem Amazon-Blogbeitrag zufolge sollte ein Benutzer in der Lage sein, „eine Datei auf S3 hochzuladen“ zu schreiben, und CodeWhisperer ermittelt automatisch, welche Cloud-Dienste und öffentlichen Bibliotheken für die angegebene Aufgabe am besten geeignet sind, erstellt den spezifischen Code im Handumdrehen , und empfehlen die generierten Codeschnipsel direkt in der IDE.

Während des Vorschauzeitraums können Entwickler CodeWhisperer kostenlos nutzen, indem sie sich hier anmelden .

Vergleich

Vergleich zwischen GitHub Copilot und Amazon CodeWhisperer. EDIT: Copilot ist für diese Sprachen optimiert, unterstützt aber immer mehr.

Was ist beliebter?

Aufgrund der kurzen Lebensdauer von CodeWhisperer (veröffentlicht letzten Monat) konnte ich keine Daten zur Anzahl der Benutzer finden. Man kann jedoch wohl mit Sicherheit sagen, dass GitHub Copilot mit einem Vorsprung von einem Jahr derzeit der dominierende Akteur ist. Laut GitHub selbst haben in den letzten 12 Monaten mehr als 1,2 Millionen Entwickler die technische Vorschau von Copilot genutzt. Ihre eigenen Untersuchungen zeigen, dass Benutzer im Durchschnitt 26 % aller von GitHub Copilot angezeigten Abschlüsse akzeptierten und bis zu 40 % der Codedateien der Entwickler von GitHub Copilot generiert wurden.

Wie sieht es mit der Privatsphäre aus?

Um ihre Leistung zu verbessern, sammeln sowohl Copilot als auch CodeWhisperer Daten von ihren Benutzern. Gefährden Sie die Codebasis oder Daten Ihres Unternehmens, indem Sie diese Tools bei der Arbeit verwenden? Dies ist eine wichtige Frage und ein potenzieller Dealbreaker für die meisten Unternehmen.

Um Codevorschläge bereitzustellen, sendet GitHub Copilot Ihren Code und Ihre Kommentare an den GitHub Copilot-Dienst. Dieser Dienst basiert auf kontextähnlichen Dateiinhalten, sowohl in der von Ihnen bearbeiteten Datei als auch in benachbarten oder verwandten Dateien innerhalb eines Projekts. Es kann auch die URLs von Repositorys oder Dateipfaden erfassen, um den relevanten Kontext zu identifizieren. Teile der Datenerfassung können in den Telemetrieeinstellungen deaktiviert werden. Andere Teile, wie z. B. Nutzungsinformationen, sind für die Nutzung von Copilot erforderlich und können nicht ausgeschaltet werden. Dazu können personenbezogene Daten gehören, wie in der GitHub-Datenschutzerklärung aufgeführt .

GitHub gibt außerdem an, dass sie bei ihren internen Tests festgestellt haben, dass es selten vorkommt, dass GitHub Copilot-Vorschläge persönliche Daten wörtlich aus dem Trainingssatz enthalten („selten“.? ). Einige dieser Vorschläge scheinen jedoch nur persönliche Daten zu sein – E-Mail-Adressen, Telefonnummern usw. –, in Wirklichkeit handelt es sich jedoch um fiktive Informationen, die aus Mustern in Trainingsdaten synthetisiert werden.

Amazon CodeWhisperer sammelt auch bestimmte Informationen wie Kontextinformationen (einschließlich Dateiinhalt), Feedback, Telemetriemetriken und Informationen zur Benutzerumgebung. In seinen Nutzungsbedingungen gibt Amazon an, dass sie Ihnen während der Vorschauphase möglicherweise die Möglichkeit bieten, die Inhaltsfreigabe ein- oder auszuschalten.

Wie sieht es mit Risiken und Schwachstellen aus?

Beide Assistenten sind in öffentlichem Code geschult, der unsichere Codierungsmuster, Fehler oder Verweise auf veraltete APIs oder Redewendungen enthalten kann. Die Studie „An der Tastatur schlafen? „Assessing the Security of GitHub Copilot's Code Contributions “ stellte fest, dass bis zu 40 % ihrer Testszenarien mit Copilot anfälligen Code enthielten.

GitHub gibt zu, dass Copilot manchmal alte oder veraltete Verwendungen von Bibliotheken und Sprachen vorschlägt und dass es Code synthetisieren kann, der unerwünschte Muster enthält. Um dies zu mildern, schlagen sie vor, ihr Produkt in Kombination mit Tools wie GitHub Actions, Dependabot und CodeQL zu verwenden, um die Codequalität zu verbessern.

Das Gleiche gilt für Amazon, obwohl Amazon große Maßnahmen ergriffen hat, um dem entgegenzuwirken, indem es Sicherheitsscans zur Erkennung von Schwachstellen in Java- und Python-Projekten bereitstellt.

Wenn Sie „Sicherheitsscan ausführen“ wählen, erkennt CodeWhisperer diese Schwachstelle und zeigt das Problem an. (Quelle: AWS Machine Learning Blog)

Allerdings sollten Sie Ihre KI-gestützten Codierungsassistenten immer zusammen mit ordnungsgemäßen Tests, guten Code-Review-Praktiken und zuverlässigen Sicherheitstools sowie Ihrem eigenen Urteilsvermögen verwenden!

Was ist mit der (Miss-)Verwendung von öffentlichem Code?

Es wurde ein erhöhtes Bewusstsein für die erhebliche Verwendung von öffentlichem Code im Trainingssatz geschaffen. Im Idealfall sollte ein Assistent konsistent Code generieren, der noch nie zuvor gesehen wurde. Wenn der Assistent stattdessen Code direkt aus dem Trainingssatz rezitiert, könnte dies möglicherweise dazu führen, dass er nicht als faire Nutzung angesehen wird und das Urheberrecht des ursprünglichen Eigentümers verletzt.

Um dies zu mildern, verfügt Copilot über einen integrierten Filter, der versucht, Fälle zu erkennen und zu unterdrücken, in denen ein GitHub-Copilot-Vorschlag Code enthält, der mit öffentlichem Code auf GitHub übereinstimmt. Dieser Filter ist optional und kann ausgeschaltet werden. Laut GitHub selbst gibt Copilot in etwa 1 % der Fälle wörtliche Codeausschnitte aus, die länger als ~150 Zeichen sind. Sie machen dafür Fälle verantwortlich, in denen GitHub Copilot nicht in der Lage ist, ausreichend Kontext aus dem von Ihnen geschriebenen Code zu gewinnen, oder wenn es eine gemeinsame, vielleicht sogar universelle Lösung für das Problem gibt.

Ähnlich wie Copilot verfügt auch CodeWhisperer über einen Referenz-Tracker, der erkennen kann, ob generierte Ausgaben bestimmten Trainingsdaten ähneln könnten. In Bezug auf die Sammlung von benutzergeschriebenem Code gibt Amazon an, dass es während der Vorschauphase keinen von Entwicklern geschriebenen Code verwenden wird, um seine Modelle weiter zu trainieren. Allerdings speichert CodeWhisperer Benutzeraktivitätsdaten im Zusammenhang mit den Reaktionen der Entwickler auf Code-Empfehlungen, wie etwa der Annahme oder Ablehnung einer Empfehlung. Der Dienst nutzt dieses Feedback, um seine ML-Modelle genauer zu machen, damit CodeWhisperer zukünftige Empfehlungen verbessern kann.

Der Gewinner ist..?

GitHub Copilot ist der Gewinner, wenn es um Sprach- und IDE-Unterstützung geht. Außerdem gibt es das Spiel schon länger und offiziell ist die Vorschau nicht mehr verfügbar, sodass die Entwickler mehr Zeit haben, Fehler zu beheben und Unebenheiten auszugleichen. Die Nutzung erfordert einen geringen finanziellen Aufwand, aber Sie erhalten ein voll funktionsfähiges und sofort einsatzbereites Produkt.

Wenn Sie jedoch in der AWS-Umgebung arbeiten, ist Amazon CodeWhisperer wahrscheinlich das Richtige für Sie. Ich bewundere wirklich die Bemühungen von Amazon, der erste Cloud-Service-Anbieter zu sein, der einen intelligenten Codierungsassistenten anbietet, der weitgehend auf das eigene Produkt ausgerichtet ist, und ich hoffe, dass weitere Anbieter diesem Beispiel folgen (ich schaue auf Sie, Azure!). Darüber hinaus könnte auch die integrierte Schwachstellenerkennung ein guter Grund sein, darüber nachzudenken. Schließlich ist die Tatsache, dass es derzeit kostenlos ist, ein starker Anreiz, es zumindest während der Vorschau auszuprobieren. Dafür müssen Sie sich jedoch anmelden und geduldig warten, bis Sie an der Reihe sind. ⏳

Nehmen wir uns abschließend noch einen Moment Zeit, um zu verstehen, wie weit die Technologie fortgeschritten ist und welche erstaunlichen Tools wir als Entwickler jetzt nutzen können! Sowohl GitHub Copilot als auch Amazon CodeWhisperer sind erstaunliche Technologien, von denen ich prognostiziere, dass sie in nicht allzu ferner Zukunft ein unverzichtbares Tool für alle ernsthaften Entwickler sein werden. Und während andere Akteure wie Google und Salesforce beginnen, ihre Zehen ins Wasser zu stecken, fühlt es sich sicherlich so an, als würden wir bald in eine neue Ära eintreten, wenn es um die Entwicklung von Code geht.

Ich hoffe, Sie fanden diesen Artikel nützlich. Danke fürs Lesen!

Anmerkung der Redaktion:

GitHub Copilot war für meine Arbeit als Datenwissenschaftler äußerst wertvoll. Bei der Datenanalyse muss ich häufig Hypothesen schnell testen. Da ich im Allgemeinen nicht im Voraus weiß, wie das Ergebnis aussehen wird, schreibe ich oft eine Menge nahezu identischen Codes, den ich nur einmal ausführe, um meine Hypothese entweder zu bestätigen oder abzulehnen. GitHub Copilot war ein großartiges Tool, um diesen Prozess zu beschleunigen, und es lässt sich auch gut in jede Lieblings-IDE von Datenwissenschaftlern integrieren, nämlich Jupyter Notebook (in VS Code) !

VERWEISE

  • GitHub, Ihr KI-Paarprogrammierer (2022), github.com
  • Amazon, ML-gestützter Codierungsbegleiter – Amazon CodeWhisperer – Amazon Web Services (2022), aws.amazon.com
  • Amazon, AWS kündigt Amazon CodeWhisperer (Vorschau) (2022) an, aws.amazon.com
  • A. Desai und A. Deo, Einführung von Amazon CodeWhisperer, dem ML-gestützten Codierungsbegleiter (2022), AWS Machine Learning Blog
  • S. Bhattacharyya, Kampf der KI-Codierungsassistenten: GitHub Copilot vs. Amazon CodeWhisperer (2022), Analyticsindiamag.com
  • B. Dickson, GitHub Copilot ist jetzt öffentlich – hier ist, was Sie wissen müssen (2022), Venturebeat.com
  • F. Lardinois, Amazon bringt CodeWhisperer auf den Markt, ein GitHub Copilot-ähnliches KI-Paar-Programmiertool (2022), techcrunch.com
  • D. Gershgorn, GitHubs automatisches Codierungstool basiert auf ungeprüfter rechtlicher Grundlage (2021), theverge.com