Test av KI-basert chat i Digitalarkivet
For et par Är siden ble ChatGPT offentlig tilgjengelig, og det vi fikk prÞve virket nesten litt⊠magisk? Plutselig var det mulig Ä kommunisere med en datamaskin med naturlig sprÄk, og fÄ fornuftige svar, til og med pÄ norsk! Brukergrensesnittet minnet mye om chatbotene vi er vant med fra mange tjenester pÄ nettet, men med KI-genererte svar fÞltes det nesten som at man kommuniserte med et menneske: Du kunne stille oppfÞlgingsspÞrsmÄl, be om enklere forklaringer eller flere detaljer.
Kanskje en slik type KI-chat kunne vÊre en vÊre en fin mÄte Ä utforske og forstÄ arkivinnhold pÄ, som et alternativ til tradisjonelt sÞk eller Ä fÄ hjelp av en saksbehandler hos Arkivverket? Mange kan oppleve at arkivene kan vÊre vanskelig Ä finne frem i, samtidig som arkivene inneholder mye materiale som er viktig eller interessant for store deler av befolkningen.
Men sĂ„ var det det med fornuftige svar, da. Helt fra starten var det Ă„penbart at ChatGPT og tilsvarende lĂžsninger kunne komme med svar som var helt feil, med samme skrĂ„sikkerhet som riktige svar. Vi sier gjerne at den hallusinerer nĂ„r den svarer feil. Dette er et stort problem med denne teknologien â du mĂ„ egentlig dobbeltsjekke alle svar du fĂ„r â og det sier ogsĂ„ litt om mĂ„ten slike KI-modeller utvikles pĂ„.
Bak KI-chattene ligger en stor sprÄkmodell (LLM, eller large language model). Disse lages (eller "trenes") ved Ä analysere store mengder tekst, i praksis store deler av internett. Disse modellene beregner (eller "predikerer") hva det neste ordet i svaret skal vÊre. Det Þdelegger kanskje litt av den magiske fÞlelsen, men ChatGPT og tilsvarende lÞsninger er i bunn og grunn bare anvendt statistikk. Og hvis du spÞr om ting som er dÄrlig representert i treningsdataene, blir det statistisk grunnlag for Ä predikere ordene dÄrligere, og du kan fÄ oppdiktede svar. Det er ogsÄ verdt Ä tenke pÄ at KI-modellene ikke forholder seg til virkeligheten direkte, kun til tekster som beskriver virkeligheten. KI-modellen vet altsÄ ikke selv om det den svarer er galt eller riktig.
Ofte inkluderer treningsdataene svĂŠrt mye av tilgjengelig informasjon, men likevel vil fakta, meninger, tjenester og produkter som er viktige for f.eks. Digitalarkivet og arkivdomenet ikke vĂŠre en del av det modellen "vet". Det kan vĂŠre fordi det er informasjon som er privat eller skjult, fordi den ikke anses som viktig nok til Ă„ inkludere eller fordi den er for ny. Hvis vi brukte f.eks. ChatGPT for Ă„ finne informasjon i Digitalarkivet, vil den sjelden kunne gi riktige svar, samtidig som det er en fare for at svarene den gir, faktisk hĂžres fornuftige ut.
Tillit til arkivene er svĂŠrt viktig. Man mĂ„ kunne stole pĂ„ at det man finner er riktig, og at man finner det man trenger, og da passer det dĂ„rlig med lĂžsninger som kan dikte opp opplysninger. Det er vanskelig Ă„ hindre hallusinasjoner i en KI-modell, men "retrieval-augmented generation" â eller RAG â er en mĂ„te Ă„ komme rundt problemet pĂ„.
RAG vil helt enkelt si at systemet kan basere svar pÄ andre kilder enn de som modellen er trent pÄ, slik at kunnskapshullene i modellen tettes. Det blir omtrent som Ä gi KI-modellen jukselapper. Det er fortsatt KI-modellen som skriver svarene, men den har altsÄ tilgang til ekstra informasjon som den kan basere svarene pÄ.
1. Hente informasjon
Basert pÄ informasjon i ulike databaser, kunnskapssamlinger, ontologier, dokumenter og bÞker, lager man en samling over smÄ kunnskapsbiter i form av "embeddings". Embeddings er et format som gjÞr at vi maskinelt kan finne likheter i betydning (semantisk) mellom f.eks. ulike tekstsnutter. NÄr vi da fÄr inn et spÞrsmÄl fra brukeren og gjÞr denne om til en embedding, kan vi gjÞre et semantisk sÞk og finne de tekstbitene som er likest i betydning til det brukeren spÞr om.
2. Generere svar
Brukerens spÞrsmÄl og de relevante bitene som har blitt funnet, sendes som en pakke til en generativ KI-modell, som GPT, Claude, Mistral eller LlaMA, som lager et svar basert pakken den har fÄtt. PÄ denne mÄte kan vi sikre at KI-en har fÄtt opplysningene den trenger for Ä gi et godt svar. Noe som er viktig i valg av modell, er at den er god til Ä ta instruksjoner fra oss. I pakken vi sender legger vi nemlig til en hel masse beskjeder til modellen om hva den skal gjÞre og ikke gjÞre. Her finnes det et stort spenn av forskningsbaserte teknikker for Ä gi disse beskjedene pÄ best mulig mÄte.
Denne teknologien har Arkivverket testet ut i en proof of concept (poc). Det er enkelt Ä sette opp en grunnleggende RAG-lÞsning, men for Ä fÄ testet ut om RAG faktisk kan lÞse vÄre hypoteser om behov og utfordringer, har vi gÄtt videre og laget en mer avansert og modulÊr RAG-arkitektur. Her har vi tatt i bruk ulike teknikker og algoritmer basert pÄ forskning og det som rÞrer seg i RAG-verdenen pÄ hvert av de ulike stegene i prosessen, for Ä sÞrge for et mest mulig pÄlitelig og utfyllende svar til brukeren basert pÄ vÄre data.
Poc-en bestÄr av to lÞsninger, som til sammen har latt oss teste ut RAG pÄ flere typer innhold:
Den ene lÞsningen inneholder materiale om arkivkunnskap, som veiledninger og hjelpetekster. Dette kan vÊre svÊrt nyttig for brukere som har dÄrlig kjennskap til arkivene og som ikke helt vet hvordan de skal komme i gang med Ä finne informasjon.
Den andre inneholder to vidt forskjellige typer digitalisert arkivmateriale, henholdsvis arkiver fra Alexander Kielland-ulykken og dagbĂžker fra reindriftsforvaltningen.
En fordel med RAG er at det er relativt enkelt og billig Ă„ innarbeide mer informasjon, da dette skjer ved Ă„ oppdatere sĂžket. Uten RAG ville vi vĂŠrt nĂždt til Ă„ trene nye versjoner av selve KI-modellen for Ă„ oppdatere den med ny informasjon, noe som er langt mer ressurskrevende.
Det er et viktig poeng at lÞsning skal kjÞre pÄ vÄre egne systemer, heller enn at vi kobler oss pÄ eksterne tjenester. Det er viktig at vi bÄde har kontroll pÄ teknologien vi bruker og pÄ datagrunnlaget som legges inn i systemet. Det Ä kunne velge en modell som fungerer godt pÄ norsk, er viktig, og vi bÞr kunne bytte ut KI-modeller hvis det f.eks. dukker opp en ny som fungerer bedre til vÄrt bruk. Vi bÞr ogsÄ ha mulighet til Ä velge teknologi ut ifra Þkonomiske faktorer.
Poc-en inkluderer ogsÄ et chattegrensesnitt, som du selv kan teste ut ved Ä klikke pÄ lenkene nederst i artikkelen. I menyen til venstre kan du justere flere aspekter ved hvordan spÞrsmÄlene blir behandlet og hva slags svar du fÄr, sÄ her er det bare Ä leke seg!
Det er to momenter til som er verdt Ă„ legge merke til, som begge er viktige for Ă„ skape tillit til resultatene:
I tillegg til at lÞsningen svarer pÄ spÞrsmÄl, gir den ogsÄ en lenke til originalkildene, slik at brukeren kan fÄ bekreftet svaret eller bla videre i originalkilden hvis hen Þnsker Ä utforske innholdet mer.
LĂžsningen forklarer at den ikke kan svare hvis brukeren spĂžr om noe som den ikke har informasjon om, i stedet for Ă„ hallusinere frem feil svar.
Poc-en har vist oss at en chattelĂžsning med RAG i bunnen har mange fordeler:
Brukeren fÄr beskjed hvis systemet ikke vet svaret, heller enn at lÞsningen dikter opp et svar.
Brukeren kan benytte naturlig sprÄk, og skrivefeil og dÄrlige formuleringer blir ofte forstÄtt.
Systemet vil forstÄr betydningen av det brukeren spÞr om, og kan derfor gi svar som kan vÊre nyttige for brukeren, selv om det ikke samsvarer i sprÄk. Den kan ogsÄ gi svar ut fra informasjon som er relatert til brukerens spÞrsmÄl i stÞrre grad en f.eks. et leksikalsk sÞk.
Brukeren kan ha en dialog med systemet, og for eksempel stille oppfÞlgingsspÞrsmÄl eller be om presiseringer.
Brukeren fÄr lenker til originalkildene, slik at det lett Ä verifisere svarene hen fÄr.
Vi ser ogsÄ noen utfordringer ved en slik lÞsning:
En slik avansert RAG-arkitektur er avansert og ressurskrevende Ă„ lage. Det kan tenkes at det finnes andre lĂžsninger som gir noen av de samme gevinstene.
Svarene man fÄr er basert pÄ arkivmateriale som kan inneholde utrykk og holdninger som er foreldede eller stÞtende. Slik utrykk og holdninger kan dermed ogsÄ finne veien inn svarene som chatboten gir. Brukere er nok forberedt pÄ at eldre materiale inneholder sprÄk som vi ikke vil brukt i dag, men det kan virke stÞtende eller underlig hvis slikt sprÄk benyttes i en nyskrevet tekst. Det finnes teknikker for Ä minimere dette problemet som vi kan ta i bruk, men man vil neppe klare Ä eliminere det helt.
Og selv om RAG reduserer faren for oppdiktede svar betraktelig, er det ikke helt en vanntett metode. Den generative modellen som skal formulere svaret, kan fortsatt klare Ä hallusinere innhold som ikke var med i informasjonsbitene som svaret skal baseres pÄ. (https://arstechnica.com/ai/2024/06/can-a-technology-called-rag-keep-ai-models-from-making-stuff-up)
Vi har et godt grunnlag som kan peke ut noen retninger for videre utforsking, og vi er spente pÄ hva vi kan lÊre av dere som prÞver lÞsningen. Veien videre har ikke blitt avgjort, men selv om vi har laget en omfattende og grundig poc, er det mye arbeid igjen for Ä fÄ en ferdig lÞsning. Hensikten med en poc er Ä finne ut om man er inne pÄ noe, om konseptet er teknisk mulig Ä realisere. Det er langt unna et ferdig produkt, noe som betyr at det kan forekomme smÄ og store feil. Merk ogsÄ at datagrunnlaget som benyttes ikke nÞdvendigvis er oppdatert, og at f.eks. veiledningene man sÞker i kan inneholde feil.
Et kjent problem er at selv om kildehenvisningen blir riktig, sĂ„ kan den en sjelden gang f.eks. starte nummereringen pĂ„ 2 eller hoppe over 3. Ă
rsaken er at det sÞket er mer optimistisk enn sprÄkmodellen, og derfor finner flere mulige kilder til svar enn det sprÄkmodellen faktisk finner svar i. Dermed kan listen over kilder ha litt underlig nummerering.
Her er lenker til de to lÞsningene, sÄ du selv kan teste dem:
Veiledninger og arkivkunnskap:
https://rag.beta.arkivverket.no
Alexander Kielland-ulykken og dagbĂžker fra reindriftsforvaltningen:
https://rag-transcriptions.beta.arkivverket.no
Ta gjerne kontakt med oss pÄ [email protected] hvis du har tilbakemeldinger eller er nysgjerrig pÄ arbeidet vÄrt med KI, sÞk eller Digitalarkivet generelt.