Fra hjelper til hindrer – hvordan AI kan svikte i komplekse prosjekter
DEL 1: Hvordan sikre at modellen forstår detaljer og husker det som er viktig
Introduksjon
I dag har bruken av LLM-er (Large Language Models) blitt utbredt. Mange bruker AI-verktøy til alt fra å drøfte ideer, generere tekst, kode eller lage presentasjoner. Det brukes for å skrive kontrakter og gjennomgå viktige dokumenter. Noen bruker AI for å forsterke egen forståelse, mens andre lar verktøyet gjøre jobben for seg. I denne artikkelserien skal vi ta for oss noen av utfordringene ved å lene seg for tungt på LLM-er, og hvordan vi kan motvirke disse problemene. Del 1 omhandler kontekst, og virkemiddelet "Chain of Thought", som er et viktig verktøy for å få de beste svarene fra en LLM.
Det sentrale temaet i alle delene i denne serien er hvordan vi som brukere kan bruke LLM-er i oppgaver basert i den virkelige verden. Den virkelige verden inneholder mye detaljer og unike elementer. Om du ønsker å forstå hvordan du kan pusse opp badet ditt, eller du vil få hjelp til regnskapsføring i et enkeltpersonsforetak, så er dette situasjoner som fort krever at LLM-en forstår en del detaljer, og henger med på oppgaven du beskriver. Når man trenger en assisterende ekspert, er det ofte fordi vi ønsker noen som kan vurdere noe vi selv ikke er helt sikre på. Fremgangsmåten man bruker kan sikre at AI-en forblir en hjelper, og ikke blir et hinder.
Kontekstvindu
En LLM er – enklest forklart – en funksjon. Input til funksjonen er samtalen så langt (kontekstvindu), og output er neste ord i samtalen. Neste ord er rett og slett det ordet LLM-en mener er mest sannsynlig vil være det neste i en slik samtale. Når det neste ordet er funnet, putter den dette på enden av kontekstvinduet, og kjører funksjonen på nytt. Kontekstvinduet vil være hele samtalen så langt.
Det betyr at LLM-en ikke reflekterer over problemstillingen før den svarer. Det vil også si at alt LLM-en selv skriver, vil være en del av kontekstvindu. Dersom du har gjengitt en situasjon i god detalj, men LLM-en svarer på dette og nevner bare et par av detaljene, men nevner dem mange ganger, vil det være disse detaljene som blir mest vektlagt. Chain of Thought (CoT) er et nyttig konsept som hjelper LLM-en å vektlegge riktige ting, og sikrer bedre svar.
Chain of Thought
Teknikken er like konsis som den er genial. Be LLM-en resonnere, og gjennomgå problemstillingen steg for steg. Gjennom å gjøre dette, øker du treffsikkerheten og kvaliteten på svaret overraskende mye. Grunnen til dette er sammensatt, men det er verdt å forstå.
Når vi ber modellen gå til verks steg for steg, gjør inndelingen at LLM-en har flere, men mindre komplekse oppgaver å løse. Dette minsker sannsynligheten for feil, og gjør at LLM-en er fokusert på én operasjon av gangen.
Gjennom drøftingen, vil modellen også ha vektlagt hva som er viktige detaljer og hva som ikke er viktig. Siden kontekstvinduet da blir mer presist og relevant, vil output også være mer presist og relevant. Dette gir også oss mulighet til å selv vurdere vektlegging modellen gjorde, med mulighet for korrigeringer fra oss.
Likevel er en av de mer spennende delene av dette mer sentralt i hvordan en LLM faktisk fungerer. Treningsdataen til en modell som GPT-4 består nok av flere terabyte av ren tekst. Det er noe som ti ganger så stort som Nasjonalbiblioteket, eller på størrelsen med New York Public Library. Når en LLM besvarer en oppgave direkte, blir det som en gjengivelse av fakta, fremfor et resonnement. Når vi har brutt ned oppgaven, og må resonnere gjennom mer detaljerte spørsmål, må helheten settes sammen av en forståelse av mange fakta. Dette er en av de sterkere effektene med å bruke CoT.
Eksempler
Under ser du ting man kan spørre en LLM om. Den uthevede delen er CoT-teknikken.
- "Hva er 24 ganger 36? Vis hvordan du tenker, steg for steg"
- "Hva forårsaket Romerrikets fall? Del opp de medvirkende faktorene og forklar hver enkelt trinn for trinn."
- "Bør jeg leie eller kjøpe et hus hvis jeg planlegger å bo der i 5 år? Forklar din tankegang trinn for trinn, og vurder kostnader, langsiktige økonomiske konsekvenser og fleksibilitet."
- "Skriv en Python-funksjon som returnerer kvadratet av et tall. Forklar hvert steg av hvordan funksjonen fungerer.»
Prøv gjerne disse spørsmålene både med og uten CoT-delen. Legg merke til hvordan du noen ganger ikke får riktig svar uten å be modellen resonnere.
Konklusjon
Chain of Thought er et verktøy alle som bruker LLM-er burde ha med seg. Med liten innsats kan du få langt bedre og mer relevante svar. Mitt siste tips er å ikke bare si "Forklar trinn for trinn", men skreddersy det du ber om basert på spørsmålet du stiller. Gi LLM-en noe å fokusere på. I eksempelet over med leie mot å kjøpe er nettopp «vurder kostnader, langsiktige økonomiske konsekvenser og fleksibilitet" det viktigste innholdet. Den fokuserer modellen inn på det som er relevant.
For meg er dette noe av det mest fascinerende med LLM-er. Med naturlig språk kan vi utvide ferdighetene og evnene til en modell. Min personlige oppfatning er at fremsteg innen denne teknologien i nærmeste fremtid, vil være å integrere slikt i hvordan LLM-en fungerer. Det er nettopp dette OpenAI sin nye o1-modell er – en modell som alltid bruker CoT. Gitt at o1 er langt sterkere på komplekse oppgaver, ser vi potensiale disse teknikkene har, og jeg ser frem til å følge utviklingen av LLM-er over de neste årene.
-Tomas