Det är de stora språkmodellerna som står i rampljuset för denna teknologiska revolution, men för att förstå hur du använder tekniken för att skapa en datadriven organisation behöver du först förstå nyttan med semantiska lager (japp, det gäller även dig som inte är dataanalytiker). Först vill jag kort beskriva några begrepp:
- Generativ AI : Generativ AI kan generera nya data, såsom text, bild, eller musik. I denna artikel kommer vi fokusera på data i form av text.
- LLM, eller Large Language Model: LLMs kännetecknas av att de är stora och djupa neurala nätverk som har tränats på stora mängder textdata.
- Semantik: Semantik syftar till relationen mellan ord och begrepp. Man undersöker alltså den språkliga betydelsen av teckensystemets innebörd och tolkning. Ordet används i olika begrepp vilket kan vara förvirrande, speciellt i det vi diskuterar i denna artikel. Semantiska lager och semantisk sökning är två olika koncept med olika syften och de är inte nära besläktade.
Varför hallucinerar chatbotar?
De flesta av oss idag har på ett eller annat vis interagerat med en chatbot. Dessa använder sig inte nödvändigtvis av generativ AI eller LLM, men det är inte de relikerna vi ska fokusera på idag, utan de chatbotar som tillför riktigt kundvärde och användarnytta. Användningsområdena är långt fler än kundservice dygnet runt – du kan be en chatbot byggd för verksamheter att till exempel sammanfatta en försäljningsperiod eller skapa en datavy som du behöver.
Om du vill skapa en applikation byggd ovanpå en LLM så behöver du dock se upp för fel, eller att applikationen ”hallucinerar” som det också kallas. En hallucination i en LLM-applikation beror oftast på att frågan är för ospecifik, eller så kanske modellen helt enkelt saknar relevant information. Du behöver alltså ge LLM applikationen mer relevant information att gå på för att returnera rätt resultat. Hur denna process går till kommer vi gå igenom senare i denna artikel.
Semantiskt lager som brygga
Verksamheter har idag stora datamängder utspridda över olika datakällor. För att effektivt analysera all data på ett ställe använder du ett semantiskt lager (observera att ordet semantik används metaforiskt i det här begreppet). Ett semantiskt lager ses som en tolkningsmekanism som hjälper användaren att kommunicera med underliggande data. Ett enkelt exempel på ett semantiskt lager (förutsatt att värdena redan har formulerats av en data-analytiker) är om en marknadsförare skulle ställa frågan ”Hur många flaggor säljs veckan innan Sveriges nationaldag?”. Resultatet blir exempelvis 578. Om marknadsföraren istället ber om att få se antalet sålda prinsesstårtor (som i detta fall ej var definierat av en data-analytiker) så skulle hen inte få ett svar alls.
I vårt andra scenario har inte värdena formulerats eller fördefinierats av data-analytiker, däremot har du kombinerat en LLM med ett semantiskt lager. Exempelvis skulle en marknadsförare kunna skriva: ”Hur många flaggor säljs veckan innan Sveriges nationaldag?” Svaret blir t.ex: “Det såldes 578 st. flaggor veckan innan Sveriges nationaldag”. Ber marknadsföraren om att få veta antalet prinsesstårtor som såldes kommer hen få svar på det med. Det vill säga, frågorna behöver i detta fall inte vara fördefinierade för att användaren ska kunna få svar på sin fråga.
För att möjliggöra kommunikation mellan en användare och det semantiska lagret tar du alltså hjälp av en LLM. På så sätt kan stora delar av verksamheten få tillgång till rätt data som analyseras snabbt för att ta rätt beslut. Resultatet blir snabbare och mer korrekt information och minskad risk för missförstånd mellan människor.
Semantiskt lager i kombination med en LLM
För att minska risken för fel, eller hallucinationer, så kan du använda en ny arkitektur som heter Retrieval Augmented Generation, RAG, eller Hämtningsförstärkt Generation på svenska. Denna typ av arkitektur handlar om att ge modellen tillgång till ny information. Man kan dela upp denna arkitektur i fyra delar för denna typ av case:
Steg 1.
Börja med att bygga ett robust semantiskt lager med gedigen dokumentation. Därefter formaterar du om lagret till inbäddningar. Dessa inbäddningar sparas vanligtvis i en vektordatabas. När metadata eller dokumentation från det semantiska lagret uppdateras behöver detta steg köras om.
Steg 2.
I detta steg ställer användaren en fråga som, likt steg 1, formateras om till en inbäddning. Därefter utför du en semantisk sökning som vi tidigare beskrev. Syftet med en semantisk sökning i detta steg är att få information om vilka tabeller, dimensioner och kolumner som är relevanta för användarens fråga.
Steg 3.
Resultatet från föregående process skickas tillsammans med användarens fråga till en LLM som behandlar inmatningen och returnerar proceduren, som i sin tur kan svara på användarens fråga genom det semantiska lagret. Anledningen till att man kopplar ihop semantiska lagret med en LLM är för att utnyttja kraften i en redan skapad och upplärd modell som man vet kan generera gedigna svar.
Steg 4
Resultatet av det tredje steget körs mot det semantiska lagret och det returnerar slutligen ett svar på användarens fråga. Hur resultatet returneras till användaren kan man anpassa för användarens behov.
Dags att bli datadriven?
För den som önskar fördjupa sig ytterligare i den tekniska sfären rekommenderar jag att utforska vektordatabaser och inbäddningar, eller “embeddings” på engelska. Dessa tekniker utgör fundamentala byggstenar för en LLM och erbjuder goda möjligheter att skräddarsy en modell baserad på egna data och specifika önskemål.
Att demokratisera data och hjälpa organisationer bli datadrivna – på riktigt – är det jag och mina kollegor brinner för. Vi har flera års erfarenhet av att hjälpa verksamheter i alla branscher kommunicera med sin data på helt nya revolutionerande sätt, med resultat som bland annat nöjdare kunder, ökad effektivitet och ökad lönsamhet.
Hör av dig till oss!
Vill du veta mer om hur du kan arbeta med generativ AI, semantisk tech, eller data och analytics?
Läs mer om vårt erbjudande Data Driven Organisation