
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.
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
Varje "träningspass" enligt ovan kan i sin tur principiellt delas upp i tre steg:
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.
Det är därför man pratar om träning som en industriprocess snarare än som ett projekt på en enskild server.
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.
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.
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.
Det finns flera stora kostnadsdrivare:
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.
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.
Resultatet är att framsteg ofta kommer från kombinationer.
Allt gott,
Emil
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