Zephyrnet-logo

Introductie van Amazon CodeWhisperer, de ML-aangedreven coderingspartner

Datum:

We zijn verheugd om aan te kondigen Amazon Code Whisperer, een door machine learning (ML) aangedreven service die de productiviteit van ontwikkelaars helpt verbeteren door code-aanbevelingen te geven op basis van natuurlijke opmerkingen van ontwikkelaars en eerdere code. Met CodeWhisperer kunnen ontwikkelaars eenvoudig een opmerking schrijven waarin een specifieke taak in gewoon Engels wordt beschreven, zoals 'een bestand uploaden naar S3'. Op basis hiervan bepaalt CodeWhisperer automatisch welke cloudservices en openbare bibliotheken het meest geschikt zijn voor de opgegeven taak, bouwt de specifieke code on the fly en beveelt de gegenereerde codefragmenten direct in de IDE aan.

Hoewel de cloud applicatie-ontwikkeling heeft gedemocratiseerd door on-demand toegang te geven tot compute, storage, database, analytics en ML, vereist het traditionele proces van het bouwen van softwareapplicaties nog steeds dat ontwikkelaars veel tijd besteden aan het schrijven van standaardtekstgedeelten van code die niet zijn direct gerelateerd aan het kernprobleem dat ze proberen op te lossen. Zelfs de meest ervaren ontwikkelaars vinden het moeilijk om meerdere programmeertalen, frameworks en softwarebibliotheken bij te houden, terwijl ze ervoor zorgen dat ze de juiste programmeersyntaxis en de beste coderingspraktijken volgen. Als gevolg hiervan besteden ontwikkelaars veel tijd aan het zoeken en aanpassen van codefragmenten van internet. Met CodeWhisperer kunnen ontwikkelaars gefocust blijven in de IDE en profiteren van realtime contextuele aanbevelingen, die al zijn aangepast en klaar voor gebruik. Minder afleiding weg van de IDE en kant-en-klare, realtime aanbevelingen helpen u uw codeertaken sneller af te ronden en zorgen voor een productiviteitsboost.

In dit bericht bespreken we de voordelen van CodeWhisperer en hoe u aan de slag kunt.

De kracht van ML binnen handbereik van de ontwikkelaar

CodeWhisperer is beschikbaar als onderdeel van de AWS Toolkit-extensie voor grote IDE's, waaronder JetBrains, Visual Studio Code en AWS-Cloud9. Op de AWS Lambda console, is CodeWhisperer beschikbaar als een native code-suggestiefunctie. Bij de lancering kunt u CodeWhisperer gebruiken om code-aanbevelingen voor Python, Java en JavaScript te genereren. U kunt de AWS Toolkit installeren door naar het plug-in- of extensiescherm van uw IDE te gaan en te zoeken naar AWS Toolkit.

Nadat CodeWhisperer is ingeschakeld, ontvang je automatisch code-aanbevelingen in je IDE als je begint met het schrijven van je code of opmerkingen. Door ontwikkelaars te ontmoeten waar je ook bent, maken we CodeWhisperer gemakkelijk te gebruiken en te experimenteren. U kunt binnen een paar minuten aan de slag en meteen profiteren van de productiviteitsvoordelen.

Veel meer dan traditionele autocomplete

Traditionele hulpprogramma's voor automatisch aanvullen bieden aanvullingen op één woord, bijvoorbeeld een lijst met eigenschappen of methoden voor een object. CodeWhisperer zorgt voor een veel betere productiviteitsboost door volledige functies en logische codeblokken tegelijk te genereren. Ook begrijpt CodeWhisperer de bedoeling van de ontwikkelaar zoals uitgedrukt in gewoon Engels commentaar. Het volgende voorbeeld laat zien hoe CodeWhisperer de volledige functie genereert om een ​​JSON-bestand naar een CSV-bestand te converteren, rekening houdend met de bedoeling van de ontwikkelaar om de sleutels in het JSON-bestand te gebruiken als de headers van het CSV-bestand.

Applicaties bouwen op AWS is nu nog eenvoudiger

CodeWhisperer maakt het voor ontwikkelaars gemakkelijk om AWS-services te gebruiken door code-aanbevelingen te geven voor AWS Application Programming Interfaces (API's) voor de meest populaire services, waaronder Amazon Elastic Compute-cloud (Amazon EC2), Lambda en Amazon eenvoudige opslagservice (Amazon S3). Terwijl u code in uw IDE schrijft, analyseert CodeWhisperer automatisch de opmerking, assembleert de code met behulp van de relevante cloudservices en openbare softwarebibliotheken voor de gewenste functionaliteit, en beveelt codefragmenten en zelfs volledige functies rechtstreeks in de IDE aan die voldoen aan best practices. Het volgende voorbeeld laat zien hoe CodeWhisperer de volledige functie kan genereren om een ​​bestand naar Amazon S3 te uploaden met behulp van server-side encryptie.

Op verantwoorde wijze gebruikmaken van de kracht van AI

We hebben het CodeWhisperer-model getraind op grote hoeveelheden openbaar beschikbare code om de nauwkeurigheid van aanbevelingen te verbeteren. Simpel gezegd, de nauwkeurigheid van het model is recht evenredig met de omvang van de trainingsgegevens. En hoewel dit ons heeft geholpen op het gebied van nauwkeurigheid, kunnen dit soort modellen ook enkele ongewenste patronen leren. Wij zijn van mening dat AI ongetwijfeld de productiviteit kan verhogen, maar dat we deze kracht op een verantwoorde manier moeten benutten. Er zijn een paar opvallende mogelijkheden die CodeWhisperer uniek maken in deze ruimte.

Bij AWS zeggen we graag dat beveiliging job zero is. Daarom biedt CodeWhisperer ook de mogelijkheid om scans uit te voeren op uw code (die zowel door CodeWhisperer als door u is geschreven) om beveiligingsproblemen te detecteren. De volgende schermafbeelding illustreert de beveiligingsscanfunctie van CodeWhisperer. We hebben een codefragment toegevoegd dat een bronlek kan veroorzaken. Wanneer u kiest Beveiligingsscan uitvoeren, CodeWhisperer detecteert dit beveiligingslek en geeft het probleem weer.

Ten tweede bieden we een referentietracker die kan detecteren wanneer gegenereerde output vergelijkbaar kan zijn met bepaalde trainingsgegevens. Hoewel het model heeft geleerd code te schrijven en volledig nieuwe code genereert op basis van het geleerde, kan in zeer zeldzame gevallen een onafhankelijk gegenereerde codeaanbeveling lijken op een uniek codefragment in de trainingsgegevens. Door u op de hoogte te stellen wanneer dit gebeurt en u de repository en licentie-informatie te verstrekken, maakt CodeWhisperer het u gemakkelijker om te beslissen of u de code in uw project wilt gebruiken en de relevante broncode-attributies naar eigen goeddunken te maken.

CodeWhisperer laat u in realtime weten dat de huidige code-aanbeveling die u ziet, kan lijken op een referentiecode door een melding weer te geven in de pop-up met aanbevelingen. In de volgende schermafbeelding blijkt de gegenereerde code vergelijkbaar te zijn met een referentiecode die onder de MIT-licentie valt. Als de ontwikkelaar de aanbeveling accepteert, registreert CodeWhisperer de acceptatie en de bijbehorende licentie-informatie. U kunt vervolgens het referentielogboek bekijken door Open CodeWhisperer Reference Panel te kiezen onder het CodeWhisperer-knooppunt.

Ten slotte implementeren we technieken om vooroordelen te detecteren op basis van veelvoorkomende stereotypen. We hebben filters geïmplementeerd die duidelijke vooroordelen in de gegenereerde code detecteren en code-aanbevelingen verwijderen die als vooringenomen en oneerlijk kunnen worden beschouwd. Stel je bijvoorbeeld een wervingssoftware voor die wervingsmanagers helpt door automatisch kandidaten op de shortlist te plaatsen. In het geval van een gelijkspel is de software afhankelijk van een gelijkspellogica. Bij het genereren van een aanbeveling voor dit scenario is het mogelijk dat een AI-model code genereert die kandidaten bevoordeelt op basis van ongepaste parameters. CodeWhisperer kan vooringenomenheid in zijn aanbevelingen detecteren en deze eruit filteren voordat aanbevelingen aan de ontwikkelaar worden getoond.

Productiviteitswinst ontgrendelen met CodeWhisperer

“Afleiding is een constante uitdaging tijdens het coderen, vooral wanneer het nodig is om van context te veranderen om codevoorbeelden en documentatie op internet op te zoeken. Amazon CodeWhisperer houdt me gefocust op de code door automatisch nuttige suggesties te geven wanneer ik ze nodig heb, zodat ik mijn editor nooit hoef te verlaten.”

– Ryan Grove, Staff Software Engineer bij SmugMug.

“We zijn verheugd om met AWS samen te werken om Amazon CodeWhisperer naar het IntelliJ-platform te brengen. Bij JetBrains streven we ernaar om softwareontwikkeling een soepele en plezierige ervaring te maken. De beschikbaarheid van de plug-in voor onze tools helpt ontwikkelaars gefocust te blijven op hun IDE en vermindert de noodzaak om codefragmenten van internet te zoeken en aan te passen. Vanaf vandaag kunnen gebruikers van IntelliJ IDEA, PyCharm en WebStorm direct in hun IDE aan de slag met Amazon CodeWhisperer, en in de nabije toekomst zullen meer IDE's worden ondersteund.”

– Max Shafirov, CEO van JetBrains.

Ermee beginnen

Tijdens de preview-periode is CodeWhisperer gratis beschikbaar voor alle ontwikkelaars over de hele wereld. Om toegang te krijgen tot de service in preview, meldt u zich aan op de wachtlijst door: inschrijven. Ga voor meer informatie over de service naar Amazon Code Whisperer.


Over de auteurs

Ankur Desai is een Principal Product Manager binnen het AWS AI Services-team.

Atul Deo is Director of Product Management bij het AWS AI Services-team.

spot_img

Laatste intelligentie

spot_img