Zephyrnet-logotyp

Kommer AI-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?

Datum:

  • AI-automatiserad kodproduktion kommer att påskynda mjukvaruutvecklingen genom att generera mer kod på kortare tid.
  • Hur långt kommer AI att gå för att ersätta eller utöka mänskliga kodares arbete? Enligt experterna tillfrågade av IEEE Spectrum kan kodning som vi känner den vara på väg ut.
  • Datorprogrammering och mjukvaruutveckling verkar dock till stor del vara mänskliga åtaganden under överskådlig framtid.
  • AI-automatiserad kodproduktion ligger i spetsen för en bredare rörelse som gör att vem som helst kan skriva mjukvara utan att veta hur man kodar.
  • I framtiden kommer handkodningsprogram att likna handstickade kläder.

Är programmerare dömda? Sedan OpenAI:s enorma språkmodell, GPT-3, förvånade alla med sin förmåga att konstruera HTML-webbplatser från grundläggande textinstruktioner, har den frågan cirklat runt datorprogrammeringsgrupper.

Innehållsförteckning

Är AI-automatiserad kodproduktion det direkta alternativet till mänskligt arbete?

Snabba förbättringar av AI-automatiserad kodproduktion under månaderna efteråt har resulterat i system som kan bygga fullständiga, om än rudimentära, datorprogram från beskrivningar på naturliga språk (talat eller skrivet mänskligt språk) och automatiserade kodningsassistenter som snabbar upp datorprogrammerares jobb. Hur långt kommer AI att gå för att ersätta eller komplettera arbetet med mänskliga kodare?

Enligt experterna som undersökts av IEEE Spectrum är de dåliga nyheterna att kodning som vi känner den kan vara dömd. Den goda nyheten är dock att datorprogrammering och mjukvaruutveckling ser ut att vara relativt mänskliga ansträngningar under överskådlig framtid. Samtidigt kommer AI-automatiserad kodskapande att påskynda mjukvaruutvecklingen genom att tillåta att mer kod genereras på kortare tid.

Kommer Ai-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?
AI-automatiserad kodproduktion har resulterat i system som kan bygga fullständiga datorprogram från naturliga språkbeskrivningar

"Jag tror inte att AI är i närheten av att ersätta mänskliga utvecklare," sa Vasi Philomin, Amazons vice vd för AI-tjänster, och tillade att även om AI-verktyg kommer att lindra kodare från repetitiva uppgifter, kommer det kreativa jobbet med datorprogrammering att finnas kvar.

Om någon vill bli utvecklare om tio år behöver de inte nödvändigtvis lära sig ett programmeringsspråk. Istället måste eleverna förstå semantik, idéer och logiska sekvenser som är involverade i att utveckla ett datorprogram. Detta kommer att göra mjukvaruutveckling tillgänglig för en mycket större befolkning.

När de första elektroniska datorerna programmerades på 1940-talet använde programmerare numerisk maskinkod. Det var inte förrän i mitten av 1950-talet som Grace Hopper och hennes kollegor på Remington Rand skapade FLOW-MATIC, som gjorde det möjligt för programmerare att konstruera program med ett begränsat engelskt ordförråd. Sedan dess har programmeringen utvecklats genom allt effektivare språk, vilket gör att programmerare kan bli mer produktiva.


Att skapa en människoliknande AI med metaminnesförmåga är möjligt, visar studien


AI-automatiserad kodproduktion ligger i framkant av en större trend för att göra det möjligt för vem som helst att utveckla mjukvara utan att behöva koda alls. Människor kan redan utveckla maskininlärningsmodeller med plattformar som Akkios grundläggande dra-och-släpp- och knappklick-funktioner. Microsofts Power Platform, som omfattar en rad lågkodslösningar, tillåter användare att skapa enkla applikationer genom att bara beskriva dem.

AI-automatiserad kodproduktion är här för att göra saker enklare för utvecklare

Amazon tillkännagav kodviskare i juni, ett kodningshjälpmedel för programmerare som liknar GitHubs Copilot, som ursprungligen var tillgängligt i begränsad förhandsvisning i juni 2021. Båda metoderna förlitar sig på stora språkmodeller (LLM) utbildade på stora kodbibliotek. Båda ger rekommendationer för autoslutförande när en programmerare skriver kod och ger körbara instruktioner baserade på grundläggande naturliga språkord.

Enligt en GitHub-undersökning av 2,000 XNUMX utvecklare, minskar Copilot tiden det tar att slutföra specifika kodningsjobb till hälften och ökar utvecklarnas totala tillfredsställelse med deras arbete. Men för att komma bortom autokomplettering måste datorn läras in syftet. Programvarukraven är ofta tvetydiga och talat språk är notoriskt oprecist.

Kommer Ai-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?
AI-automatiserad kodproduktion ligger i spetsen för en större trend för att göra det möjligt för vem som helst att utveckla mjukvara utan att behöva koda

Peter Schrammel, medgrundare av Diffblue, som automatiserar utvecklingen av enhetstester för Java, sa: "För att lösa alla dessa oklarheter i engelska skriftliga specifikationer måste det finnas en viss inkrementell förfining, en viss konversation mellan människan och maskinen."

För att övervinna dessa problem har Microsofts forskare föreslagit att lägga till ett återkopplingssystem till LLM-baserad kodskapande, där datorn ber programmeraren att förklara eventuella oklarheter innan koden skapas.


NVIDIA tillkännagav de nya NeMo och BioNemo stora språkmodellerna vid GTC 2022


TiCoder, ett interaktivt system, förfinar och formaliserar användarens avsikt genom att skapa en så kallad "testdriven formalisering av användaravsikter", som syftar till att förutse programmerarens algoritmiska mål och sedan konstruera kod som är kompatibel med de angivna avsikterna genom iterativ feedback .

TiCoder, enligt deras artikel, förbättrar korrektheten hos automatiskt producerad kod med upp till 85 procent när den testas mot riktmärket Mostly Basic Programming Problems (MBPP). MBPP, som är avsett att bedöma AI-genererad kodproduktion, består av cirka 1,000 XNUMX crowd-sourced Python-programmeringsproblem som är tänkta att lösas av nybörjarprogrammerare.

Kommer Ai-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?
Det finns enorma produktivitetsfördelar att realisera genom att använda AI-automatiserad kodproduktion

En kodenhet, som kan vara hundratals rader lång, är den minsta delen av ett program som kan underhållas och exekveras oberoende. En uppsättning enhetstester, ofta bestående av dussintals enhetstester med 10 till 20 rader kod styck, säkerställer att enheten fungerar som avsett så att när enheterna staplas ihop fungerar programmet som avsett.

Enhetstester är viktiga för att felsöka enskilda funktioner samt hitta fel samtidigt som man manuellt byter kod. Ett enhetstest kan användas som specifikationen för kodenheten och för att hjälpa programmerare att skriva ren, buggfri kod. Medan få programmerare utövar genuin testdriven utveckling, där enhetstester utvecklas först, skrivs ofta enhetstester och enheter samtidigt.

Kvalitetskontrollen blir enklare med AI-automatiserad kodproduktion

Enligt en Diffblue undersökning, spenderar utvecklare cirka 35 % av sin tid på att skriva kvalitetskontrolltester (i motsats till att producera kod för produktionsanvändning); därför finns det enorma produktivitetsfördelar att realisera helt enkelt genom att använda AI-automatiserad kodproduktion för en del av detta.

Under tiden kan Githubs Copilot, Amazons CodeWhisperer och AI-programmeringsassistentpaket användas som interaktiva verktyg för automatisk komplettering för att skapa enhetstester. Programmeraren erbjuds alternativ och väljer den som de tror skulle fungera bäst. Diffblues Diffblue Cover-system använder automatiskt förstärkningsinlärning för att bygga enhetstester utan mänsklig interaktion.

Kommer Ai-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?
AI-automatiserad kodproduktion kommer att påskynda mjukvaruutvecklingen genom att generera mer kod på kortare tid

DeepMind, Googles brittiska avdelning för artificiell intelligens, avancerade helt automatisk kodproduktion tidigare i år med AlphaCode, en massiv språkmodell som kan generera grundläggande datorprogram från instruktioner på naturliga språk.

AlphaCode använder en kodare-avkodar-transformatorarkitektur, som först kodar problemets naturliga språkbeskrivning och sedan avkodar den resulterande vektorn till kod för en lösning. Modellen tränades till en början på GitHub-kodförrådet tills den kunde skriva rimligt utseende kod.


Artificiell intelligens vs mänsklig intelligens: Kan en teknik som förändrar spelet spela spelet?


DeepMind använde 15,000 XNUMX par problembeskrivningar på naturliga språk och framgångsrika kodlösningar från tidigare kodningstävlingar för att konstruera en specifik datamängd av input-output-sampel för att finjustera modellen. Efter att AlphaCode hade utbildats och justerats testades den mot problem som den aldrig har stött på tidigare.

Det sista steget var att utveckla många lösningar innan man använde en filtreringsteknik för att välja den bästa. "Vi skapade många olika programmöjligheter genom att sampla språkmodellen nästan en miljon gånger", säger DeepMinds projektledare för djupinlärning, Oriol Vinyals.

Kommer Ai-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?
Med tanke på den snabba utvecklingen av AI-automatiserad kodproduktion kommer AI-system en dag att kunna producera kod från instruktioner på naturliga språk

DeepMind använder en klustringsmetod för att dela upp svaren i grupper för att optimera urvalsprocessen. Klustrmetoden grupperar arbetslösningar, vilket gör det enklare att identifiera ett begränsat urval av alternativ som sannolikt kommer att fungera lika bra som de som produceras av mänskliga programmerare.

DeepMind satte systemet på prov genom att skicka in tio AlphaCode-skrivna program till en mänsklig kodningstävling på den populära Codeforces webbplats, där dess svar placerade sig bland de 54 % bästa.

I en intervju nyligen ställde Vinyals en retorisk fråga: "För att generera ett program, kommer du bara att skriva det på naturligt språk, ingen kodning krävs, och sedan kommer lösningen ut i andra änden? Jag tror så."

Vinyals och andra varnar för att det kan ta årtionden att uppnå det målet. "Vi är fortfarande väldigt långt borta från när en person skulle kunna berätta för en dator om kraven för ett godtyckligt komplicerat datorprogram och få det automatiskt att kodas", säger grundaren och VD:n för Landing AI och en Google Brain-pionjär, Andrew Ng.

Men med tanke på den snabba utvecklingen av AI-automatiserad kodproduktion de senaste åren är det säkert att AI-automatiserade kodproduktionssystem en dag kommer att kunna producera kod från instruktioner på naturliga språk. Programvaruapplikationer för handkodning kommer att bli mer besläktade med handstickade plagg.

Kommer Ai-automatiserad kodproduktion att göra mänskliga programmerare föråldrade?
AI-automatiserad kodproduktion kommer att frigöra mjukvaruproffs att fokusera på mer krävande och kreativa jobb

För att erbjuda en dator instruktioner på naturligt språk måste utvecklare fortfarande förstå vissa logik- och funktionsprinciper, samt hur man ordnar saker. Även om eleverna inte behärskar specifika programmeringsspråk eller skriver datorkod kommer de fortfarande att behöva studera grundläggande programmering. Som ett resultat kommer ett bredare spektrum av programmerare att kunna producera fler och fler olika typer av programvara.


Världsomspännande AI-utgifter kommer att nå 300 miljarder euro år 2026


Enligt Schrammel från Diffblue kommer AI-automatiserad kodproduktion att frigöra mjukvaruproffs att fokusera på mer krävande och kreativa jobb. Han säger dock att minst ett möte med en person kommer att krävas för att kontrollera att det som datorn har fattat är vad människan menade. Han sa: "Programutvecklare kommer inte att förlora sina jobb eftersom ett automationsverktyg ersätter dem. Det kommer alltid att finnas mer mjukvara som behöver skrivas.”

plats_img

Senaste intelligens

plats_img

Chatta med oss

Hallå där! Hur kan jag hjälpa dig?