ga('send', 'pageview');
Categories
Blogg

LLM:er är dinosaurier

Är LLM:er, eller Large Language Models, egentligen dinosaurier? Den frågan ställde jag mig häromdagen efter att ännu en forskningsrapport1 kommit ut som visade att dagens AI inte ännu gett några märkbara fördelar för majoriteten av bolagen som använder dem. Samtidigt investeras ofantliga mängder pengar i just LLM:er, inte minst i att bygga nya datacenter som ska kunna att de tränas på större och åter större mängder data.

Men det var en artikel som fortfarande låg och gnagde på mig. På satirsajten The Onion (av alla platser!) snubblade jag över en rolig artikel med titeln: “Sam Altman Places Gun To Head After New GPT Claims Dogs Are Crustaceans For 60th Time“. Artikeln gjorde sig lustig över nyheten att ChatGPT på frågan “How many R’s are there in Strawberry” svarade “4”2. Även om svaret är fel så är det inte helt förvånande ändå: ChatGPT och alla andra LLM-baserade AI-verktyg bygger ju på probabilistisk mönsterigenkänning i stora textmassor. Det innebär att en LLM kommer att besvara frågor med den text som modellen hittar som matchar ämnet och sätta ihop språket i svaret genom att kombinera de ord som har störst sannolikhet att följa efter varandra. Det är just denna egenhet hos LLM:er som gett dem öknamnet “stokastiska papegojor”. Där vi människor skulle börja räkna bokstäverna i ordet så angriper LLM:er problemet på ett helt annat (och helt irrationellt) sätt. Samma problemlösningsmetod tillämpas på alla frågor som vi ställer till ChatGPT och de andra artificiella intelligenserna.

Allt detta fick mig att börja fundera på om LLM:er faktiskt är just dinosaurier. Det är naturligtvis inget fel på dinosaurier: de är trots allt stora, tunga, taggiga, fjälliga och/eller fjädriga och alldeles underbara. Men problemet är att de dog ut för miljontals år sedan och ersattes av däggdjur och äggdjur. 

Anledningen att dem dog ut var inte heller att dem alla förkolnades i ett massivt eldklot efter att en gigantisk meteorit krockade i Jorden, utan att de efter att sagda meteorit störtat och orsakats globala förändringar på klimatet inte lyckades anpassa sig till den nya miljön.

Dinosaurierna visade sig helt enkelt vara ett evolutionärt snedsteg. Är LLM:er också på väg in i samma evolutionära återvändsgränd? För att besvara den frågan behöver vi ta ett steg tillbaka och fundera över hur vi människor löser problem.

Tittar vi specifikt på programmeringsproblem så skiljer sig sättet som människor och maskiner angriper problemet väsentligt: vi människor funderar över hur man löser problemet på en teoretisk nivå först och börjar sedan skissa på en lösning (antingen med pseudokod eller riktig kod). För att framställa det slutgiltiga programmet så ändrar vi på koden så att den följer de regler som kompilatorn och operativsystemet har formulerat. Ibland kompilerar programmet korrekt på första försöket och ibland krävs det lite trial and error för att komma fram till ett korrekt program. Sedan ger vi programmet indata och kontrollerar dess utdata för att se om det är korrekt, vilket typiskt kan verifieras matematiskt eller visuellt. Här kan det också behövas ändringar fram och tillbaka för att göra programmet logiskt korrekt.

Som vi sett ovan så arbetar LLM:er inte alls på detta sätt. Det är ju tränade på stora volymer av text med metadata som ger ledtrådar om var texterna handlar om. När de får frågor så kollar de igenom taggarna, ser vilka textmassor som har högst sannolikhet att handla om samma sak som människan frågade om och returnerar sedan den text eller blandning av texter som var mest sannolik att ge ett korrekt svar. Men sannolikhet och sanning är ju som bekant inte samma sak.

Tänk om våra AI-verktyg istället för att bara jämföra mönster och metadata istället var tränade på samma regler som finns inbyggda i kompilatorer för olika språk? Då skulle vi, på frågan om hur man skriver ett program som beräknar fibonacci-talserien rekursivt i Java, få tillbaka en lösning som bestod av kod som redan kompilerats med en Java-kompilator därför var garanterat tekniskt korrekt.

Tänk om AI:n även hade en förståelse för alla de matematiska regler som finns? Då skulle vi kunna få tillbaka kod som inte bara var tekniskt korrekt utan även logiskt korrekt, eftersom AI:n förstår hur fibonacci-talserien fungerar.

Tänk om AI:n även förstod de såväl explicita som implicita regler som finns i operativsystem och hårdvara? Då skulle AI:n även presentera en lösning på fibonacci-talserien som inte var rekursiv utan iterativ och förklara att det skulle förhindra stack-overflow-problem ifall det tal vi bad om var så långt att det inte skulle gå att beräkna utan att få slut på stack-minne.

Om vi hade en AI som kunde göra detta, som inte bara vara en stokastisk papegoja utan även hade förmågan att resonera om det data den har och följa de regler som satts ut av kompilatorer, operativsystem och hårdvara, då tror jag att vi som utvecklare skulle få betydligt högre produktivitetsvinster från koden som genereras av AI.

Kanske pågår det redan i detta nu forskning på just denna typ av resonerande AI-modeller. I så fall är jag i alla fall villig att tålmodigt vänta på dem. Framtiden borde kunna vara så mycket bättre än den framtid som dagens modeller utlovar.

Och dessutom: vad hände egentligen med dinosaurierna efter att meteoriten slog ner? Givet att vi människor lever på jorden idag så utplånades ju inte allt liv. Det som istället hände var att vissa dinosauriesläkten inte lyckades anpassa sig till den nya miljön och dog ut, medan andra evolverade till nya former av djur (som pälsdjur, fåglar, fiskar, etc). Kanske kommer detsamma ske med LLM:er?

By Ola Rende

Backendutvecklare, fullstackutvecklare

Leave a Reply

Your email address will not be published. Required fields are marked *