Onderdelen & terminologie

Voor we er in vliegen, er zijn enkele begrippen die gebruikt kunnen worden die toch relevant kunnen zijn. 
 

AI model

AI Model

Een Model is een stuk software dat getrained is op een set data om bepaalde patronen te herkennen. Een model kan als output text genereren, of afbeeldingen of een simpele numerieke waarde voorspellen. 

Enkele voorbeelden van AI modellen: 

  • DALL-E: model that generated images.
  • Whispers: model that converts audio into text.
  • Embedding: model that converts text into numerical form.
  • GPT: set of models that can generate natural  language.
AI token example

Token

Een Token is een stukje van een text. In de text "Lorem ispsum dolor sit amet" zitten er bijvoorbeeld verschillende tokens: "sit", "dol", "or", "orem" enzovoort.

Build me with chatgpt prompt

Prompt

Een prompt is een opdracht die gegeven wordt aan een AI model om een bepaalde soort output te genereren. Een prompt kan uit verschillende onderdelen bestaan. Onderdelen die soms voorkomen: "formaat" (hoe moet de output er weer uit komen), "referentie" (mag de AI zich baseren op bestaande werken), "request" (wat moet er precies gebeuren, "Framing" (achtergrondinformatie).

Did you know?

Wist je dat het aanmaken of finetunen van prompts "prompt engineering" heet?
Wist je ook dat er massa's cheat sheets zijn om slimme prompts te maken? Een prompt engineering cheat sheet voorbeeld.

Temperatuur

De temperatuur is de schaal van 0 (deterministisch) tot 1 (random). Deze word in onze RAG toepassingen meestal aan de lage kant ingesteld omdat we niet zo houden van randomness. 

embedding visualisation (distances between words)

Embeddings

Er zijn AI modellen die als input text hebben en als output een vector van nummers. Dit soort AI noemen we embeddings. Dankzij deze numerieke representatie nemen we (om bijvoorbeeld slim te kunnen zoeken) afstand van bepaalde bewoordingen. Met andere woorden, hierdoor hoef je niet meer expliciete zoektermen te gebruiken.

Vector database visalised

Vector Database

De aangemaakte embeddings slaan we dan op in een vector Database. Dit zijn databases waar er geen text meer aan te pas komt. Heel de inhoud van de site kan dan ge-indexeerd worden in zo'n vector database. Als we dan straks een query doen. kunnen we gerelateerde artikels gaan terugvinden. 

LLM (Large Language Model)

Een large language model is een soort AI model dat text kan herkennen en genereren. LLM's worden getrained op gheel grote datasets (vandaag Large). 
Enkele voorbeelden van LLM's

  • chatGPT
  • Claude
  • Ernie
  • Llama
  • StableLM

Hier kan je zelf de beste LLM's vergelijken: 

https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard

Overzicht hoe RAG werkt

Hoe werkt het

Indexeren van de inhoud

We willen onze eigen content bevragen, op die manier wordt elke aanpassing die de redacteurs doen  in de content ook meteen gebruikt om juiste antwoorden te genereren. 

De moment dat een redacteur een aanpassing doet in de content gaan we met onze text (kan text uit het CMS zijn of text uit een PDF file) naar een embedding model. 
We gebruiken bijvoorbeeld het Mistral of OpenAI embedding model. 
Dit model zal dan van de text een vector maken. Deze vector wordt vervolgens opgeslagen in de Vector Database. 
Op deze manier zit er van elk stukje content dat we willen bevragen bijna onmiddelijk een vector in onze Vector Database.
In het schema is dit stappen 1 tot 4.

Van vraag naar vector query

Ik kom als anonieme site gebruiker langs op de site en ik heb een prangende vraag. Ik kan het antwoord niet (of niet meteen zonder complexe combinatie van zoektermen) vinden op de site.  

In het vraag veld vul ik mijn vraag in. 
Deze vraag gaan we dan ook door het embedding model laten vertalen naar een vector. 

Vervolgens gaan we met deze vector de vraag stellen aan de vector database: "welke vectoren liggen hier in de buurt". De reden dat we kiezen voor een vector database is omdat dit soort vragen (welke liggen hier in de buurt) heel goed door vector databases kunnen beantwoord worden. 
Aan deze query geven we ook een limiet mee. We noemen die K. K mag niet te laag zijn, maar ook niet te hoog. Hoe hoger je K zet, hoe minder goed de resultaten. Dit lijkt contra-intuitief, maar toch is het zo. De preciese tweaking van K voor jouw situatie bekijken we case per case.

De Vector database geeft een lijstje met artikels terug die content gewijs te maken hebben met jouw vraag. 

In het schema is dit stappen 5 & 6.

Van database result naar textueel antwoord

Nu gaan we (achter de schermen) een prompt maken om het taalmodel (LLM) een antwoord te laten genereren. 

We maken een prompt die er ongeveer zo uit ziet: 
1 Gegeven deze K artikels,
2 Gegeven deze vraag van de gebruiker
3 Gegeven onze tone of voice en huisregels
Genereer een antwoord op de vraag. 

Eindresultaat: De gebruiker krijgt een antwoord op zijn vraag, gebaseerd op de content uit onze kennisbank.

Pricing comparison LLM's

En hoeveel kost zoiets?

De verschillende taalmodellen hebben verschillende pricings. Gelukkig heeft men deze al eens naast mekaar gezet. Je kan de prijzen hier vergelijken.

We kunnen ook inschatten op basis van het aantal artikels op je site en vragen hoeveel het gebruik van de AI zou kosten. We hebben hiervoor een excelletje gemaakt. Neem contact op met Frederik Wouters om dit doorgestuurd te krijgen. Vermeld zeker "AI RAG prijs excell" in je mailtje! 

Wil je meer weten?