Har du noen gang skrevet en forespørsel til en AI som sa: "Skriv en e-post som lyder venlig, men bestemt" - og så lagt til tre eksempler på slike e-poster først? Hvis ja, har du nettopp brukt in-context learning. Det er ikke magi. Det er ikke trening. Det er AI-en som lærer på stedet - bare ved å se eksemplene du gir den.
Hva er in-context learning?
In-context learning (ICL) er når en stor språkmodell (LLM) klarer å utføre en ny oppgave bare ved å se noen eksempler i innputten - uten å endre noen av sine interne parametere. Du trenger ikke å trene den på nytt. Du trenger ikke å finetune den. Du skriver bare inn noen eksempler sammen med spørsmålet ditt, og modellen forstår hva du vil ha. Dette ble første gang vist offentlig i 2020 da OpenAI lanserte GPT-3. I studien "Language Models are Few-Shot Learners" viste forskerne at GPT-3 kunne skrive kode, svare på spørsmål, lage tekster og klassifisere dokumenter - bare ved å få noen eksempler i prompten. Ingen trening. Ingen nye data. Bare eksempler. Det er en helt annen måte å lære på enn tradisjonell maskinlæring. Vanligvis må du ta en modell, gi den tusenvis av merkede eksempler, la den regne ut feil, og så justere vektene gjennom bakoverpropagering. Det tar dager. Det koster penger. Det krever teknisk kunnskap. In-context learning er som å gi en person en håndbok med eksempler og så spørre: "Hvordan ville du gjort dette?" - og forvente at han forstår mønsteret uten å ha lest boken før.Hvordan fungerer det teknisk?
Når du skriver en prompt med eksempler, legger du dem inn i modellens context window. Det er den maksimale mengden tekst modellen kan se på en gang. I dag er det mellom 4.000 og 128.000 token (ord eller deler av ord). Hver eksempel bruker noen av disse tokenene. Modellen ser da på eksemplene og prøver å finne et mønster. Hva er felles mellom de? Hva er input, hva er output? Hva er tonen? Strukturen? Så bruker den det mønsteret til å svare på ditt nye spørsmål. Forskere ved MIT har vist at dette ikke bare er gjentakelse av tidligere sett data. De testet modeller med helt nye, syntetiske oppgaver - som ikke finnes i noen av treningsdataene. Og likevel klarte modellene å løse dem. Det betyr at LLM-er faktisk lærer noe nytt i realtid. Det er som om modellen inneholder en mindre modell inne i seg selv - en liten maskinlæringsalgoritme som aktiveres når du gir den eksempler. Denne "modellen inne i modellen" lærer oppgaven på stedet, og så bruker den den til å svare.Hvor skjer læringen?
En viktig oppdagelse fra 2024 viser at læringen ikke skjer overalt i modellen. Forskere som analyserte modeller som GPTNeo2.7B, Bloom3B og Llama3.1-8B fant ut at det finnes et spesifikt lag - ca. lag 14 av 32 - der modellen plutselig forstår oppgaven. Dette kalles task recognition layer. Når modellen har passert dette laget, trenger den ikke lenger å tenke på eksemplene. Den har "lagret" oppgaven. Det betyr at du kan redusere beregningstiden med opp til 45% hvis du vet hvor denne laget ligger. Du kan avbryte behandlingen av eksemplene tidligere - og likevel få like gode resultater. Det er som å lese en instruksjon, forstå den, og så hoppe over resten av teksten. Du trenger ikke å lese hele boken igjen - bare når du trenger det.Hvor godt fungerer det?
Resultatene er imponerende. I en studie med aviation-dokumenter, brukte forskere åtte gode eksempler og nådde 80,24% nøyaktighet og 84,15% F1-score. Det er bedre enn mange tradisjonelle modeller som trente på tusenvis av merkede eksempler. Sammenlignet med andre metoder:- Zero-shot: Ingen eksempler. Nøyaktighet: 30-40%
- One-shot: Én eksempel. Nøyaktighet: 40-50%
- Few-shot (2-8 eksempler): Nøyaktighet: 60-80%
Hva er fordelene?
In-context learning har tre store fordeler:- Ingen trening - du slipper å kjøre lange treningssykler. Ikke trenger GPU-er. Ikke trenger dataingeniører.
- Snarere implementering - du kan endre oppgaver på minutter. Ikke dager. En bedrift kan bytte fra å klassifisere kundeklager til å analysere kontrakter på en time.
- Lavere kostnad - å bruke ICL koster 90% mindre enn å finetune en modell. McKinsey fant at ICL tar 2,3 dager å sette opp - finetuning tar 28,7 dager.
Hva er begrensningene?
In-context learning er ikke en løsning på alt.- Context window - du kan ikke legge inn 100 eksempler hvis modellen bare kan håndtere 8.000 token. Du må være sparsom.
- Eksempler må være gode - et dårlig eksempel kan forvirre modellen. En liten endring i formulering kan senke nøyaktigheten med 20%.
- Ikke alle oppgaver fungerer - modellen klarer ikke å lære oppgaver som krever ekstern kunnskap (f.eks. "Hva var klimaet i Oslo 12. mai 1998?"). Den må ha lært det i treningsfasen.
- Ulik prestande - noen modeller er bedre enn andre. Llama 3.1 er mer stabilt enn tidligere modeller, men GPT-4 er fremdeles best i mange oppgaver.
Hvordan gjør du det riktig?
Her er fire praksisregler som virker:- Velg eksempler med omsorg - Ikke ta tilfeldige. Velg eksempler som er typiske, tydelige og representativt. En god eksempel er som et godt eksempel i en lærebok: klar, kort, og viser det essensielle.
- Bruk 2-8 eksempler - Mer enn 8 gir sjelden forbedring. Mange ganger er 3-5 nok.
- Prøv chain-of-thought - For komplekse oppgaver, spør modellen: "Tenk trinn for trinn". I en studie med matematiske problemer, økte nøyaktigheten fra 17,9% til 58,1% bare ved å legge til "La oss tenke skritt for skritt".
- Test rekkefølgen - I noen studier hjalp det å legge de vanskeligste eksemplene først. Det fokuserer modellen på det viktigste tidlig.
Hva sier forskerne?
Det er fortsatt debatt om hvordan ICL virker. Tre hovedteorier:- Bayesiansk inferens: Modellen oppdaterer sin tro om hva oppgaven er - basert på eksemplene.
- Meta-læring: Modellen har lært en "læringsalgoritme" under trening, og bruker den nå.
- Task-komposisjon: Den kombinerer tidligere lært oppgaver til en ny.
Hva kommer neste?
Fremtiden for ICL ser lys ut.- Lengre kontekst - Claude 3.5 vil håndtere 1 million token i 2024. Det betyr du kan legge inn 100 eksempler - ikke bare 8.
- Bedre eksempelvalg - Nye verktøy vil automatisk velge de beste eksemplene for deg. Ikke mer manuell arbeid.
- Warmup training - En ny metode hvor modellen blir litt finetuned på en liten mengde prompt-eksempler før bruk. Gir 12,4% bedre resultater.
- Instruction tuning - Modeller som er trent på tusenvis av instruksjoner (f.eks. "Klassifiser denne teksten som positiv eller negativ") blir bedre til ICL - selv uten eksempler.
Hva betyr dette for deg?
Hvis du jobber med AI - uansett om du er utvikler, markedsfører, jurist eller lege - så er in-context learning ikke noe du kan ignorere. Det betyr at du kan:- Klassifisere pasientnotater uten å trene en modell
- Generere juridiske sammendrag fra dokumenter uten å kjøpe ny programvare
- Bygge en kundeservicebot som forstår 10 nye spørsmål i løpet av en time
- Forenkle arbeidet ditt - uten å bruke mer tid, penger eller ressurser
Hva er forskjellen mellom in-context learning og finetuning?
In-context learning bruker eksempler i prompten uten å endre modellens parametere. Det er raskt, gratis og ikke teknisk. Finetuning endrer modellens interne vekter ved hjelp av ny data og trening - det tar dager, koster penger og krever teknisk ekspertise. ICL er som å gi en person en håndbok. Finetuning er som å ta ham til skole.
Hvor mange eksempler trenger jeg?
For de fleste oppgaver er 2-8 eksempler nok. Mange ganger er 3-5 eksempler bedre enn 10. Mer enn 16-32 kan gjøre det verre - modellen blir forvirret. Start med 3, test, og juster.
Kan jeg bruke in-context learning med alle LLM-er?
Ja, alle moderne store språkmodeller støtter det - GPT-3.5, GPT-4, Llama 3.1, Claude 3, Gemini og andre. Men noen er bedre enn andre. GPT-4 og Claude 3.5 er mest stabile. Llama 3.1 er god og gratis. Prøv flere og se hva som fungerer for deg.
Hvorfor fungerer ikke ICL på mine oppgaver?
Det kan være flere grunner: 1) Eksemplene er for dårlige eller forvanskede, 2) Oppgaven krever kunnskap som modellen ikke har (f.eks. spesifikke tall eller datoer), 3) Du har brukt for mange eksempler, 4) Modellen har ikke nok kontekst (for kort prompt). Prøv å forenkle, bruk bedre eksempler, og legg til "Tenk trinn for trinn".
Er in-context learning egnet for norske tekster?
Ja. Modeller som Llama 3.1 og Claude 3 har god støtte for norsk. Du må bare bruke norske eksempler. En modell trenger ikke å ha blitt trent på norsk - den kan lære fra eksempler. Men hvis eksemplene er på engelsk, vil modellen svare på engelsk. Bruk norske eksempler for norske svar.