AI-modeller och plattformar

Kommer stora språkmodeller att avsluta programmering?

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Förra veckan markerade en betydande milstolpe för OpenAI, då de presenterade GPT-4 Turbo på sin OpenAI DevDay. En utmärkande funktion i GPT-4 Turbo är dess utökade kontextfönster på 128 000, ett betydande språng från GPT-4:s 8 000. Denna förbättring möjliggör bearbetning av text som är 16 gånger större än dess föregångare, vilket motsvarar cirka 300 sidor med text.

Denna framsteg hänger samman med en annan betydande utveckling: den potentiella påverkan på landskapet av SaaS-startups.

OpenAIs ChatGPT Enterprise, med dess avancerade funktioner, utgör en utmaning för många SaaS-startups. Dessa företag, som har erbjudit produkter och tjänster kring ChatGPT eller dess API:er, står nu inför konkurrens från ett verktyg med företagsnivåfunktioner. ChatGPT Enterprises erbjudanden, som domänverifiering, SSO och användningsinsikter, överlappar direkt med många befintliga B2B-tjänster, vilket potentiellt kan hota överlevnaden för dessa startups.

I sin keynote avslöjade OpenAIs VD Sam Altman en annan stor utveckling: utvidgningen av GPT-4 Turbos kunskapsavgränsning. Till skillnad från GPT-4, som endast hade information upp till 2021, är GPT-4 Turbo uppdaterad med kunskap upp till april 2023, vilket markerar ett betydande steg framåt i AI:s relevans och tillämpbarhet.

ChatGPT Enterprise utmärker sig med funktioner som förbättrad säkerhet och integritet, höghastighetsåtkomst till GPT-4 och utökade kontextfönster för längre indata. Dess avancerade dataanalysfunktioner, anpassningsalternativ och borttagning av användningsbegränsningar gör det till ett överlägset val jämfört med dess föregångare. Dess förmåga att bearbeta längre indata och filer, tillsammans med obegränsad åtkomst till avancerade dataanalysverktyg som den tidigare kända Code Interpreter, förstärker dess attraktionskraft, särskilt bland företag som tidigare varit tveksamma på grund av datasäkerhetsproblem.

Erans av manuell kodning ger vika för AI-drivna system, som tränas istället för programmeras, vilket innebär en grundläggande förändring i programvaruutveckling.

De monotona uppgifterna i programmering kan snart överlåtas till AI, vilket minskar behovet av djupgående kodningskompetens. Verktyg som GitHub’s CoPilot och Replit’s Ghostwriter, som assisterar vid kodning, är tidiga indikatorer på AI:s växande roll i programmering, vilket antyder en framtid där AI utökar sig bortom att assistera till att fullständigt hantera programmeringsprocessen. Tänk på det vanliga scenariot där en programmerare glömmer syntaxen för att vända en lista i ett visst språk. Istället för att söka igenom onlineforum och artiklar erbjuder CoPilot omedelbar hjälp, vilket håller programmeraren fokuserad på målet.

Övergång från lågkod till AI-driven utveckling

Lågkod- och no-code-verktyg förenklade programmeringsprocessen, automatiserade skapandet av grundläggande kodblock och befriade utvecklare från att fokusera på de kreativa aspekterna av sina projekt. Men när vi går in i denna nya AI-våg förändras landskapet ytterligare. Enkelheten i användargränssnitt och förmågan att generera kod genom enkla kommandon som “Bygg en webbplats för att göra X” revolutionerar processen.

AI:s inflytande i programmering är redan stort. Liksom tidiga datavetare övergick från att fokusera på elektroteknik till mer abstrakta koncept, kan framtida programmerare se detaljerad kodning som föråldrad. De snabba framstegen inom AI är inte begränsade till text/kodgenerering. Inom områden som bildgenerering, som diffusionmodellen Runway ML, DALL-E 3, visar enorma förbättringar. Se bara den nedan tweeten från Runway som visar deras senaste funktion.

https://twitter.com/runwayml/status/1723033256067489937

AI:s påverkan på kreativa branscher kommer att vara lika omvälvande. Jeff Katzenberg, en jätte inom filmindustrin och tidigare ordförande för Walt Disney Studios, har förutspått att AI kommer att minska produktionskostnaderna för animerade filmer avsevärt. Enligt en nylig artikel från Bloomberg förutser Katzenberg en drastisk minskning av kostnaderna med 90 %. Detta kan inkludera automatisering av arbetsintensiva uppgifter som mellanliggande i traditionell animation, rendering av scener och till och med hjälp med kreativa processer som karaktärsdesign och storyboard.

Kostnadseffektiviteten i AI-kodning

Kostnadsanalys för anställning av en mjukvaruutvecklare:

  1. Sammanlagd ersättning: Den genomsnittliga lönen för en mjukvaruutvecklare, inklusive ytterligare förmåner i tekniknav som Silicon Valley eller Seattle, är cirka 312 000 dollar per år.

Daglig kostnadsanalys:

  1. Arbetade dagar per år: Med tanke på att det finns cirka 260 arbetade dagar per år, är den dagliga kostnaden för att anställa en mjukvaruutvecklare cirka 1 200 dollar.
  2. Kodutmatning: Antagande av en generös uppskattning av 100 färdiga, testade, granskade och godkända rader kod per dag, är denna dagliga utmatning grunden för jämförelse.

Kostnadsanalys för användning av GPT-3 för kodgenerering:

  1. Tokenkostnad: Kostnaden för att använda GPT-3, vid tidpunkten för videon, var cirka 0,02 dollar för varje 1 000 token.
  2. Token per rad kod: I genomsnitt kan en rad kod uppskattas innehålla cirka 10 token.
  3. Kostnad för 100 rader kod: Därför skulle kostnaden för att generera 100 rader kod (eller 1 000 token) med hjälp av GPT-3 vara cirka 0,12 dollar.

Jämförande analys:

  • Kostnad per rad kod (människa vs. AI): Jämfört med kostnaderna för att generera 100 rader kod per dag, som kostar 1 200 dollar när det görs av en mänsklig mjukvaruutvecklare, är det bara 0,12 dollar med GPT-3.
  • Kostnadsfaktor: Detta representerar en kostnadsfaktorskillnad på cirka 10 000 gånger, med AI som är avsevärt billigare.

Denna analys pekar på den ekonomiska potentialen för AI inom programmering. Den låga kostnaden för AI-genererad kod jämfört med den höga kostnaden för mänskliga utvecklare antyder en framtid där AI kan bli det föredragna sättet för kodgenerering, särskilt för standard- eller repetitiva uppgifter. Denna förändring kan leda till betydande kostnadsbesparingar för företag och en omvärdering av rollen för mänskliga programmerare, potentiellt fokuserande deras färdigheter på mer komplexa, kreativa eller tillsynsuppgifter som AI ännu inte kan hantera.

ChatGPT:s flexibilitet sträcker sig till en mängd olika programmeringssammanhang, inklusive komplexa interaktioner med webbutvecklingsramverk. Överväg ett scenario där en utvecklare arbetar med React, ett populärt JavaScript-bibliotek för att bygga användargränssnitt. Traditionellt skulle denna uppgift innebära att man måste dyka in i omfattande dokumentation och community-tillhandahållna exempel, särskilt när man hanterar invecklade komponenter eller tillståndshantering.

Med ChatGPT blir denna process effektiviserad. Utvecklaren kan enkelt beskriva den funktionalitet de syftar till att implementera i React, och ChatGPT tillhandahåller relevanta, färdiga att använda kodsnuttar. Detta kan sträcka sig från att ställa in en grundläggande komponentstruktur till mer avancerade funktioner som att hantera tillstånd med krokar eller integrera med externa API:er. Genom att minska den tid som spenderas på forskning och trial-and-error förbättrar ChatGPT effektiviteten och accelererar projektförloppet i webbutvecklingssammanhang.

Utmaningar i AI-driven programmering

Medan AI fortsätter att omforma programmeringslandskapet är det viktigt att erkänna begränsningarna och utmaningarna som följer med att förlita sig enbart på AI för programmeringsuppgifter. Dessa utmaningar understryker behovet av en balanserad strategi som utnyttjar AI:s styrkor samtidigt som man erkänner dess begränsningar.

  1. Kodkvalitet och underhåll: AI-genererad kod kan ibland vara verbos eller ineffektiv, vilket potentiellt kan leda till underhållsutmaningar. Medan AI kan skriva fungerande kod, återstår det för människor att se till att denna kod följer bästa praxis för läsbarhet, effektivitet och underhåll.
  2. Felsökning och felhantering: AI-system kan generera kod snabbt, men de excellerar inte alltid i felsökning eller förståelse av nyanserade fel i befintlig kod. Subtiliteterna i felsökning, särskilt i stora, komplexa system, kräver ofta en människas nyanserade förståelse och erfarenhet.
  3. Beroende av träningsdata: AI:s effektivitet i programmering är i hög grad beroende av kvaliteten och bredden på dess träningsdata. Om träningsdata saknar exempel på vissa buggar, mönster eller scenarier, är AI:s förmåga att hantera dessa situationer komprometterad.
  4. Ethiska och säkerhetsproblem: När AI tar en mer framträdande roll i kodning uppstår etiska och säkerhetsproblem, särskilt kring datasekretess och risken för fördomar i AI-genererad kod. Att säkerställa etisk användning och hantera dessa fördomar är avgörande för den ansvarsfulla utvecklingen av AI-drivna programmeringsverktyg.

Balansera AI och traditionella programmeringsfärdigheter

I framtida programvaruteam kan en hybridmodell uppstå. Produktchefer kan översätta krav till direktiv för AI-kodgenerering. Mänsklig tillsyn kan fortfarande vara nödvändig för kvalitetskontroll, men fokus kommer att skifta från att skriva och underhålla kod till att verifiera och finjustera AI-genererade utmatningar. Denna förändring antyder en minskad betoning på traditionella programmeringsprinciper som moduläritet och abstraktion, eftersom AI-genererad kod inte behöver följa mänskliga underhållsstandarder.

I denna nya era kommer rollen för ingenjörer och datavetare att förändras avsevärt. De kommer att interagera med LLM, tillhandahålla träningsdata och exempel för att uppnå uppgifter, och fokus kommer att skifta från invecklad kodning till strategiskt arbete med AI-modeller.

Den grundläggande beräkningsenheten kommer att skifta från traditionella processorer till massiva, förtränade LLM-modeller, vilket markerar en avvikelse från förutsägbara, statiska processer till dynamiska, adaptiva AI-agenter.

Fokus kommer att skifta från att skapa och förstå program till att styra AI-modeller, omdefiniera rollerna för datavetare och ingenjörer och omforma vår interaktion med teknologi.

Det fortsatta behovet av mänsklig insikt i AI-genererad kod

Framtiden för programmering handlar mindre om kodning och mer om att styra den intelligens som kommer att driva vår tekniska värld.

Troen att naturlig språkbehandling av AI kan fullständigt ersätta precisionen och komplexiteten i formella matematiska notationer och traditionell programmering är, i bästa fall, förhastad. Skiftet mot AI i programmering eliminerar inte behovet av noggrannhet och precision som endast formell programmering och matematiska färdigheter kan tillhandahålla.

Dessutom kvarstår utmaningen att testa AI-genererad kod för problem som inte har lösts tidigare. Tekniker som egenskapsbaserad testning kräver en djup förståelse av programmering, färdigheter som AI, i dess nuvarande tillstånd, inte kan reproducera eller ersätta.

Sammantaget lovar AI att automatisera många aspekter av programmering, men den mänskliga faktorn förblir avgörande, särskilt i områden som kräver kreativitet, komplex problemlösning och etisk tillsyn.

Jag har tillbringat de senaste fem åren med att dyka djupt in i den fascinerande världen av Maskinlärning och Djupinlärning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också lett mig mot Naturlig Språkbehandling, ett område som jag är angelägen om att utforska vidare.