omateq logo

Del 3: AI träning och varför det är så dyrt...

Vi har i tidigare artiklar konstaterat att vi kan se på en LLM som en funktion f(·; θ). Det kan då kännas som att träning mest handlar om att tillföra massor av text som input till denna funktion så kommer modellen med automatik att bli bättre.

På en grundläggande nivå är det också så det går till men kombinationen av (enorm) skala och (väsentliga) detaljer tillför mycket komplexitet. Träning av AI blir ett optimeringsproblem med enorma dataflöden, stora modeller och extrema krav på beräkningskapacitet.

Träningsuppgiften i sin enklaste form

Kärnan beskrev vi i första avsnittet av den här serien; modellen får en sekvens av tokens och tränas på att förutsäga nästa token.

f(t₀…tₙ₋₁; θ) → P(tₙ | t₀…tₙ₋₁)

Målet kan skrivas som att maximera log-sannolikheten för rätt token i varje position. Vi använder logaritmen för att den omvandlar produkten till en summa (vilket datorn hanterar utan problem) istället för en produkt av många små tal (där sannolikheter blir så små de riskerar avrundas till noll, ett problem som benämns arithmetic underflow). Alltså:

maximera log P(tₙ | t₀…tₙ₋₁; θ)

Formellt gör man detta genom mäta motsatsen (negativ log sannolikhet) vilket benämns cross entropy, ungefär hur överraskad modellen var av rätt svar. Exempelvis:

Modellen är säker och har rätt = liten förlust

Modellen är osäker = medel förlust

Modellen är säker och har fel = stor förlust

Varför kräver det här så mycket beräkning?

Varje "träningspass" enligt ovan kan i sin tur principiellt delas upp i tre steg:

  1. Först en framåtpassage där modellen räknar ut sannolikheter för nästa token i varje position.
  2. Sedan en förlustberäkning där skillnaden mellan modellens fördelning och den token som faktiskt kommer summeras.
  3. Till sist en bakåtpassage där gradienten beräknas och parametrarna uppdateras så att modellen nästa gång ger högre sannolikhet åt rätt token.

Det som driver kostnaden är att det här görs för enorma mängder text och för modeller med miljarder parametrar.

En grov intuition är att kostnaden växer med tre saker.

  1. Antal parametrar
  2. Antal tokens som tränas på
  3. Antal uppdateringssteg

Det är därför man pratar om träning som en industriprocess snarare än som ett projekt på en enskild server.

Balansen mellan data, modellstorlek och beräkning

Det är lätt att tro att mer data automatiskt ger en bättre modell. Men träning påverkas av balansen mellan data, modellstorlek och beräkning.

  • För lite data i relation till modellen gör att modellen riskerar att inte utnyttja sin fulla kapacitet på ett bra sätt.
  • För liten modell i relation till datamängden gör att all tillgänglig information inte kan absorberas effektivt.

Därför pratar man ofta om skalningslagar och om att hitta en rimlig punkt där modellstorlek, datamängd och beräkning är i balans.

Förträning och finjustering

Många blandar ihop dessa två olika steg. Förträning innebär att modellen tränas på stora mängder generell text för att lära sig språkmönster och breda samband. Finjustering innebär att modellen tränas vidare på mer riktad data för att få ett visst beteende, till exempel att följa instruktioner och svara i en viss form.

Finjustering kan vara vanlig övervakad träning på instruktionsexempel. Den kan också vara preferensbaserad, där man optimerar modellen mot mänskliga eller maskinbaserade val mellan svar.

Det senare är en stor del av varför moderna chattmodeller känns konsekvent hjälpsamma och följsamma.

Vari ligger kostnaden?

Det finns flera stora kostnadsdrivare:

  • Hårdvara och energi
  • Beräkning. Träningen kräver enorm GPU eller TPU kapacitet, både för hastighet och för att modellerna ska få plats i minnet.
  • Data pipeline. Det räcker inte att ha text. Den ska samlas in, filtreras, dedupliceras, tokeniseras och packas till sekvenser som kan tränas effektivt.
  • Ingenjörsarbete. Distribuerad träning, felhantering, checkpointing, experimentstyrning och utvärdering är ofta lika viktiga som själva modellen.

Det går också att sätta ungefärliga siffror på detta, även om offentliga uppskattningar är osäkra. För GPT 4 har externa analyser uppskattat själva slutliga träningskörningen till omkring 40 miljoner dollar i hårdvaru- och energikostnad (detta är inte bekräftat av OpenAI).

Ser man bredare på hela modellutvecklingen, alltså inte bara den slutliga körningen utan även experiment, utvärdering och personal, pekar samma typ av analyser på att hårdvara står för ungefär hälften till två tredjedelar av kostnaden, personal för ungefär en tredjedel till knappt hälften, och energi för en liten andel.

Det gör det tydligt att kostnaden inte bara ligger i elräkningen eller i antalet GPUer, utan i hela den industriella processen runt träningen.

Det är därför små förbättringar i träningseffektivitet kan vara avgörande. Enstaka procents ökning i effektivitet kan vara skillnaden mellan månader av träning och veckor.

Varför det fortfarande är svårt att flytta gränsen för modellernas prestation?

Det kan vara frestande att tänka att nästa genombrott bara är mer av allt; mer data, fler parametrar och mer beräkning. Ibland hjälper det, men varje steg uppåt i volym tillför komplexitet och gör också problemen svårare.

  • Träningen blir känsligare för instabilitet.
  • Det blir svårare att hålla hög kvalitet i data.
  • Utvärdering blir mer komplicerad eftersom modellen blir bättre på att låta övertygande även när den har fel.

Resultatet är att framsteg ofta kommer från kombinationer.

  • Bättre data
  • Bättre arkitektur
  • Bättre optimering
  • Bättre system runt träningen

Allt gott,

Emil

If you are looking for another cog in the machinery...

There are plenty of other consulting firms that offer those. But if you value key people with stellar development skills that will make a difference for your development team and your business. Then, leave it in our care!

DROP US AN EMAIL
laptop