PåfyllDatagrunnlaget Snakk med oss

Selskapshjernen: når alt bedriften vet, er ett oppslag unna

Det meste en bedrift vet, står allerede skrevet et sted. Problemet er at verken folk eller agenter finner det når de trenger det. En selskapshjerne gjør letingen på forhånd, slik at svaret er ett oppslag unna.

Hauk Aleksander OlaussenHauk Aleksander OlaussenMedgründer · · 11 min
I artikkelen
  1. Hva en selskapshjerne er, og hva den ikke er
  2. Indeksering: lese alt én gang, ikke hver gang
  3. Vektorisering: søke etter mening, ikke bare ord
  4. Grafen: hvem, hva og hvilket prosjekt
  5. Tilgangene: indekser alt, vis bare det som er lov
  6. Verktøyene: et oppslagsverk, ikke en haug med filer
  7. Raskt nok til å snakke med
  8. Hva organisasjonen får ut av det
  9. Hjernen er bare så god som det den leser
  10. Spørsmål og svar

Spør en erfaren prosjektleder hvorfor fasaden på et prosjekt for tre år siden ble dyrere enn kalkylen, og svaret kommer kanskje med en gang. Eller i det minste hvem som vet det, og hvilken e-posttråd det står i. Spør en som begynte i forrige måned, og letingen begynner. Spør en AI-agent, og den gjør det samme, bare raskere og dyrere.

Det meste en bedrift vet, står allerede skrevet et sted. I regnskapet, i prosjektsystemet, i en kontrakt på SharePoint, i et tilbud fra i fjor. Problemet er ikke at kunnskapen mangler. Det er at den er spredt, og at den må letes frem hver gang noen trenger den.

En selskapshjerne snur det på hodet. I stedet for å lete når spørsmålet kommer, gjøres letingen på forhånd: alt leses, ordnes og kobles sammen før noen spør. Når spørsmålet kommer, er svaret ett oppslag unna.

Hva en selskapshjerne er, og hva den ikke er

En selskapshjerne er et kunnskapslag. Den henter inn det bedriften vet fra systemene, dokumentene og nettsidene, gjør det søkbart og holder det oppdatert. Den er ikke et nytt system folk skal jobbe i, og den erstatter ingenting. Den leser dataene der de bor, som et lag oppå det bedriften allerede har.

Den er heller ikke en chatbot. En god selskapshjerne lager ikke svar. Den finner kildene, og lar modellen svare med henvisning til dem. Det skillet betyr mye: en kilde kan kontrolleres, et svar uten kilde kan ikke.

Under panseret er det fire deler: indeksering, vektorer, en graf og tilganger. Til sammen blir de et sett verktøy for agentene. Vi tar dem én for én.

Indeksering: lese alt én gang, ikke hver gang

Indeksering er det et bibliotek gjør når det katalogiserer bøkene. Arbeidet gjøres én gang, så alle kan finne frem på sekunder etterpå.

For en selskapshjerne betyr det at hvert dokument, hver faktura og hver endringsmelding hentes inn, leses og deles opp i biter på noen hundre ord. Skannede dokumenter og bilder leses av en modell som kan se, slik at også en innskannet følgeseddel blir tekst. Originalen lagres urørt, og eldre versjoner tas vare på, men det er bare den gjeldende som dukker opp i søk.

Så må det holdes oppdatert. Det er her mange hjemmelagde løsninger svikter: de leser alt på nytt hver natt, eller aldri. Bedre er å lytte etter endringer. Når noe endres i et fagsystem, kommer det et signal om hva som er endret, og bare det leses på nytt. Er innholdet det samme som før, gjøres ingenting. Da går det minutter, ikke et døgn, fra noe endres til det kan finnes.

Vektorisering: søke etter mening, ikke bare ord

Et vanlig søk leter etter ordene du skrev. Spør du om «sluttoppstilling», finner det ikke dokumentet som kaller det «sluttoppgjør», selv om det er akkurat det du lette etter.

Vektorisering løser det. Hver tekstbit gjøres om til en lang rekke tall, en vektor, som beskriver hva teksten handler om. Vi bruker vektorer med 1024 tall. Tenk på det som en adresse i et kart over betydninger: tekster om sluttoppgjør havner i samme nabolag, uansett hvilke ord de bruker. Spørsmålet gjøres også om til en vektor, og søket finner bitene som ligger nærmest.

Likheten mellom «Hvor står bilen?» og hver setning, fra mest til minst lik:

  1. «Bilen er parkert ved brakkeriggen.»: likhet 0,76
  2. «Kjøretøyet er på verkstedet til fredag.»: likhet 0,68
  3. «Fotografiet ble tatt under befaringen.»: likhet 0,58
  4. «Varebilen må på EU-kontroll i mai.»: likhet 0,56
  5. «Bildet viser fasaden fra sørsiden.»: likhet 0,55
  6. «Tegningen viser fasaden mot nord.»: likhet 0,55
  7. «Sluttoppgjøret er klart for kunden.»: likhet 0,46
  8. «Regningen fra rørleggeren kom i dag.»: likhet 0,45
  9. «Fakturaen for beslagene er sendt.»: likhet 0,45

Ni setninger fra en tenkt prosjektmappe. For en datamaskin er de foreløpig bare bokstaver, og «bilen» og «kjøretøyet» har ingenting til felles.

Modellen leser hver setning og gjør den om til 1024 tall. «Bilen er parkert ved brakkeriggen» begynner med -0,045, 0,007 og -0,048. Stripene viser 32 av dem, de som skiller gruppene best, med lilla for positive tall og blågrønt for negative. Setninger om det samme får like mønstre.

Tallene er en adresse. Tegnet i to dimensjoner havner setninger med lik mening i samme nabolag: kjøretøy for seg, bilder for seg, penger for seg. Ingen har fortalt modellen hvilke grupper som finnes.

Spørsmålet «Hvor står bilen?» blir også en vektor, og likheten regnes ut mot hver setning. «Kjøretøyet er på verkstedet» har ikke ett ord felles med spørsmålet, men får 0,68. «Bildet viser fasaden» ligner på «bilen» i skrift, men får bare 0,55.

Ekte vektorer, regnet ut med bge-m3, en åpen modell som kan norsk. Kartet presser de 1024 dimensjonene ned til to, så avstandene der er omtrentlige. Likheten er regnet ut over alle 1024.

Hvor nær to vektorer ligger, regnes ut med vanlig matematikk. Vektorene er laget slik at alle har samme lengde, så regnestykket er enkelt: tallene ganges parvis, alle 1024 parene, og legges sammen. Resultatet kalles cosinuslikhet, og jo nærmere 1, jo likere mening. Det er ett regnestykke per tekstbit, og en datamaskin gjør millioner av dem i sekundet.

Legg merke til at det er setningen som vektoriseres, ikke ordet. Står «bil» helt alene, havner det faktisk litt nærmere «bilde» enn «kjøretøy», fordi modellen har lite å gå på. I en setning er meningen tydelig. Det er en av grunnene til at dokumentene deles i biter på noen hundre ord, og ikke i enkeltord.

Det gjør også vektorene tolerante for skrivefeil. Vi prøvde spørsmål med feil i mot de samme ni setningene. «Hvor str bilen?», «Hvor står bilenn?» og «nar er slutoppgjoret klart», uten æ, ø og å, fant alle riktig setning øverst. Et vanlig ordsøk ville bommet på «bilenn» og «slutoppgjoret», fordi ordene ikke står slik i noe dokument. Vektoren fanger meningen selv om noen bokstaver er feil.

Men det har grenser. Når nøkkelordet blir for ødelagt, som «fatkuraen» med to bokstaver byttet om, eller «hvr str biln», mister modellen tråden og treffer feil. En skrivefeil eller to gjør sjelden noe. Et spørsmål der nesten hvert ord er feilstavet, gjør det.

Men vektorer har en svakhet som sjelden vises i demoene. De er gode på mening og dårlige på det eksakte. Et prosjektnummer, et organisasjonsnummer eller «EM 12» har ingen mening å finne nabolaget til. Der er det gamle ordsøket overlegent.

Derfor bruker en god selskapshjerne begge, og slår resultatene sammen:

Spørsmålet Ordsøk Vektorsøk
«EM 12 på Gressvik» Finner endringsmeldingen med en gang Finner noe om endringsmeldinger, ikke den
«Hvorfor ble fasaden dyrere enn kalkylen?» Bommer hvis dokumentet bruker andre ord Finner forklaringen, uansett ordvalg
«Tilbud 24117» Treffer eksakt Gjetter

Hvor mye hver av dem skal telle, må måles, ikke antas. På norske spørsmål har vi funnet at ordsøket bør veie litt tyngre enn vektorene.

Grafen: hvem, hva og hvilket prosjekt

Søk finner tekst. Men mye av det en bedrift vet, er ikke tekst. Det er sammenhenger: denne kunden har disse prosjektene, dette prosjektet ledes av den prosjektlederen, denne fakturaen hører til den endringsmeldingen.

En selskapshjerne holder derfor en graf over det bedriften består av: kunder, prosjekter, tilbud, personer, leverandører, endringsmeldinger og fakturaer, og forbindelsene mellom dem. Dokumentene kobles til grafen. Står det et prosjektnummer, et organisasjonsnummer eller en e-postadresse i et dokument, er koblingen nesten sikker. Står det bare et navn, er den usikker, og da legges den i en kø der et menneske avgjør. En avgjørelse et menneske har tatt, overskrives aldri av maskinen.

Det gjør at spørsmålet «hva skjer på Gressvik?» ikke bare gir dokumentene der ordet Gressvik står. Det gir prosjektet, kunden, prosjektlederen, de siste endringene og dokumentene som hører til, i én bevegelse.

Grafen er også der kilde og tolkning holdes fra hverandre. Det som kommer fra fagsystemet, er fasit for sine egne tall. Det en agent eller et menneske har skrevet i et notat, kan være nyttig, men det er aldri kildefakta. Hvorfor det skillet betyr så mye.

Tilgangene: indekser alt, vis bare det som er lov

Her står og faller hele ideen. En selskapshjerne som vet alt, er bare verdt noe hvis den ikke forteller alt til alle.

Den vanligste snarveien er å lage én indeks per avdeling, eller å la være å hente inn det som er følsomt. Da blir hjernen hullete, og hver endring i hvem som har lov til hva, krever at noe bygges på nytt.

Vi gjør det motsatt: alt indekseres, og tilgangen avgjøres i det øyeblikket noe leses. Det skjer i databasen selv, ikke i koden rundt, slik at et søk aldri engang ser det brukeren ikke har lov til å se. Mangler en tilgangsregel, er svaret ingenting, ikke alt. Endres tilgangen, gjelder det fra neste spørsmål.

Fire regler til gjør det trygt å slippe agenter til:

  1. En agent arver tilgangen til den den jobber for, og aldri mer. Spør en prosjektleder gjennom en agent, ser agenten det prosjektlederen ser. Det mest følsomme når ingen agent som jobber på egen hånd.
  2. «Finnes ikke» og «ikke lov» gir samme svar. Ellers kunne man lete seg frem til hva som finnes, ved å se hvilke spørsmål som blir avvist.
  3. Hvert oppslag kan etterprøves. Det skrives ned hvem som spurte, gjennom hvilken agent, og hvilke dokumenter som ble vist. Ikke for å overvåke folk, men for at bedriften alltid skal kunne svare på hvem som har sett hva.
  4. Innholdet er data, aldri instrukser. En e-post kan inneholde tekst som prøver å lure en agent til å gjøre noe. Alt hjernen leverer, er merket som kildetekst, og agentene er satt opp til aldri å følge ordre de finner i den. En nøkkel som både kan lese e-post og skrive til hjernen, stoppes som standard, så en innkommende e-post ikke kan plante noe der.

Verktøyene: et oppslagsverk, ikke en haug med filer

Alt dette møter agenten som et sett verktøy. Ikke en mappe å lete i, men presise spørsmål den kan stille:

  • Gi meg konteksten for et spørsmål: de mest relevante bitene, med kilde.
  • Søk i dokumentene, med ord og mening samtidig.
  • Finn en kunde, et prosjekt, en person eller et nummer.
  • Vis tidslinjen for et prosjekt: hva som har skjedd, i rekkefølge.
  • Hvem endret hva, og når.
  • Hva er nytt siden sist.
  • Hvilke timer er ført.

Verktøyene tilbys blant annet gjennom MCP, en åpen standard for å koble AI-assistenter til data og verktøy. Hjernen er ikke bygget for én modell, og modellen kan byttes når det kommer en bedre.

Hjernen beskriver også seg selv. Er agenten usikker på hvilket verktøy som passer, kan den spørre, og får svar med når verktøyet bør brukes og et eksempel. En ny agent kan ta den i bruk uten at noen skriver en lang bruksanvisning først.

Det er også dette som holder regningen nede. En agent som må lete, betaler for letingen i tokens, gang på gang. En agent som kan slå opp, gjør det ikke. Hva en token er, og hvorfor letingen koster.

Raskt nok til å snakke med

Når letingen er gjort på forhånd, går oppslaget fort. Hvor fort, har vi målt.

I en test med 145 norske spørsmål om prosjekter, kunder og fakturaer tok et oppslag i median rundt 20 millisekunder, og 95 prosent av dem var ferdige på under en tredjedel av et sekund. Hele svaret tok rundt fem sekunder, og nesten all den tiden var modellen som tenkte og formulerte seg. Det var ikke kunnskapen som tok tid. Tallene er fra et testoppsett, ikke fra drift, og de vil variere med nettverk og maskinvare. Men størrelsesordenen står seg.

Hold det opp mot alternativet. En agent som skal finne det samme ved å søke i SharePoint, åpne dokumenter og lese e-posttråder, bruker fort minutter.

I en skriftlig chat er det irriterende. I en samtale er det avgjørende. Når to mennesker snakker sammen, er pausen mellom dem gjerne bare et par hundre millisekunder, og etter noen sekunder med stillhet lurer man på om den andre har falt ut. En stemmeagent som må lete, må fylle tiden med «et øyeblikk, jeg ser etter». En som kan slå opp på millisekunder, kan bare svare.

Det åpner for noe nytt. En prosjektleder på byggeplassen kan spørre høyt om status på en endringsmelding, eller om hva kunden sa sist, og få svaret i samme tempo som fra en kollega. Ikke fordi stemmemodellen er spesielt smart, men fordi den har noe å stå på.

Hva organisasjonen får ut av det

En selskapshjerne er ikke et IT-prosjekt. Den gjør bedriften klokere, og det merkes i hverdagen:

  • Svar med kilde, på sekunder. Hva som er avtalt, hva som er fakturert og hva som gjenstår, med lenke til der det står.
  • Kunnskapen blir værende. Den som vet, kan være i møte, på ferie eller ha sluttet. Det som ble skrevet og gjort, er fortsatt der og kan finnes.
  • Nye folk kommer raskere i gang. De kan spørre om det alle andre bare vet, uten å måtte vite hvem de skal spørre.
  • Agentene gjør ekte arbeid. Med riktig kontekst skriver de tilbud, følger opp prosjekter og analyserer dokumenter, i stedet for å gi allmenne råd. Der grunnlaget lå der først, står agentene i dag for over 40 prosent av aktivitetene i systemene.
  • Den blir mer verdt for hver modell som kommer. Modellene byttes. Kunnskapslaget følger med over, og hver nye modell får mer ut av det.

Det løfter ikke bare dem som bruker AI mest. Det løfter alle som noen gang har brukt en halvtime på å finne ut hva som egentlig ble avtalt.

Hjernen er bare så god som det den leser

Fritekst i dokumenter og e-post er nyttig, men det er de strukturerte dataene som gjør grafen sikker: et prosjekt med nummer, en kunde med organisasjonsnummer, en endringsmelding med status og beløp. Uten dem må hjernen gjette hva dokumentene handler om.

Det er nettopp det Relation OS holder. Når tilbud, kalkyler, prosjekter, endringsmeldinger, timer og fakturaer allerede ligger strukturert ett sted, er grafen tegnet før første dokument er lest, og hvert dokument har noe å kobles til. Dokumentene gir forklaringen. Relation OS gir fasiten.

Derfor begynner vi alltid med datagrunnlaget. En selskapshjerne kan ikke kjøpes ferdig, fordi den skal beskrive akkurat deres bedrift. Men den kan bygges, og den blir mer verdt for hver dag den får lese.

Spørsmål og svar

Hva er en selskapshjerne?

En selskapshjerne er et kunnskapslag som henter inn det bedriften vet fra systemer, dokumenter og nettsider, indekserer det og gjør det søkbart for folk og AI-agenter, med tilgangen til den som spør. Den lager ikke svar selv. Den finner kildene, og modellen svarer med henvisning til dem.

Hva er vektorisering?

Vektorisering betyr at en tekstbit gjøres om til en lang rekke tall som beskriver hva den handler om. Tekster med lik mening får tall som ligger nær hverandre, slik at et søk kan finne «sluttoppgjør» når noen spør om «sluttoppstilling», selv om ordene er forskjellige.

Tåler vektorsøk skrivefeil?

Som regel ja. En skrivefeil eller to, eller et spørsmål uten æ, ø og å, gir som oftest samme treff, fordi vektoren fanger meningen i hele setningen. Blir nøkkelordet for ødelagt, kan treffet forsvinne.

Hvorfor holder det ikke med vektorsøk?

Fordi vektorer er gode på mening og dårlige på det eksakte, som prosjektnummer, organisasjonsnummer og navn. Et godt søk kombinerer ordsøk og vektorsøk, og slår resultatene sammen.

Hvordan sikrer man at en AI-agent bare ser det den skal?

Ved å la databasen selv filtrere på tilgang hver gang noe leses, og la agenten arve tilgangen til den den jobber for, aldri mer. Det som ikke finnes, og det man ikke har lov til å se, gir samme svar, og hvert oppslag kan etterprøves.

Er en selskapshjerne rask nok til stemme?

Ja, når dataene er ordnet på forhånd. I våre tester tok et oppslag i median rundt 20 millisekunder, og nesten all ventetid var modellen som tenkte. Da kan en stemmeagent slå opp midt i samtalen uten at pausen merkes.

AIUtkastet er skrevet med AI. Hauk har lest det, rettet det og står for innholdet. Publisert .

Begynn med grunnmuren.

Datagrunnlaget avgjør hva dere får ut av AI. Les hvordan vi går fram, eller fortell oss hvor dere står i dag.

Mer påfyll

Du snakker med agenten vår, ikke med et menneske. Den svarer på det som står på nettstedet. Går spørsmålet lenger, sier den fra.

Samtalen lagres ikke. Vil du snakke med et menneske, ta kontakt.