Context-datablokken

Een Large Language Model zoals GPT is getraind op enorme hoeveelheden data van het Internet. Het AI-Model kan de informatie die het tijdens het trainen geïnternaliseerd heeft gebruiken bij het genereren van antwoorden op de vragen die we stellen.

Er zijn echter ook gegevens die onbekend zijn bij het AI-Model maar waarvoor we het AI-Model wel willen inzetten om deze gegevens te bevragen. We zijn dan niet geïnteresseerd in de kennis van het AI-Model, maar in zijn vermogen om snel informatie te doorgronden en om heldere antwoorden te formuleren op vragen.

Wat weet het AI-model niet?

Er zijn twee belangrijke soorten gegevens waar een AI-model als GPT geen kennis over heeft en dus niet zonder meer vragen over beantwoorden kan.

Recente gegevens

Een AI-model kan geen vragen beantwoorden over informatie die pas bekend is geworden nadat het AI-model getraind is. GPT4 bijvoorbeeld, is getraind op gegevens tot september 2021, dus vragen over gebeurtenissen en ontwikkelingen na deze datum kan het model niet zomaar beantwoorden.

Eigen gegevens

Een AI-model als GPT is alleen getraind op publiek beschikbare gegevens van het internet. In de basis kan het dus geen informatie verschaffen over de eigen gegevens die men als bedrijf heeft opgebouwd in handleidingen, documenten, intranet, wiki’s, etc.

Training versus Context-data

Er zijn twee mogelijkheden om een AI-model in te zetten om vragen te beantwoorden over gegevens die onbekend zijn voor de standaardversie van het model. We kunnen een AI-model trainen met recente of nieuwe gegevens, of we kunnen de relevante data meesturen samen met de vraag, zodat het AI-model een antwoord kan formuleren op basis van deze meegestuurde data.

We maken in de AI-Tools applicatie gebruik van deze tweede optie.

Context-data meesturen met de vraag

De hoeveelheid gegevens die we kunnen meegeven aan een AI-model om een vraag te beantwoorden is beperkt, dus we moeten zorgvuldig kiezen welke gegevens we wel en niet meesturen met de vraag..

Welke context-gegevens we meesturen met de vraag hangt samen met de vraag die er aan het AI-model gesteld wordt.

Als we in een prompttemplate vragen willen stellen over onze eigen gegevens kunnen we dat doen door het inzetten van context-datablokken.

Een context-datablok bevat een aantal stukken tekst die qua inhoud de meeste overeenkomst vertonen met de vraag die gesteld wordt.

Voordat we context-datablokken kunnen gebruiken moet er een en ander voorbereid worden, maar als alles eenmaal goed is ingericht, kunnen we eigen gegevens perfect doorzoekbaar maken.

Stappen

De volgende stappen zijn noodzakelijk om eigen gegevens middels context-datablokken in prompt-templates te gebruiken.

1) Tekst opdelen in segmenten

We verdelen de tekst die we doorzoekbaar en bevraagbaar willen maken in blokken van tussen de 200 en de 300 woorden.

2) Segmenten opslaan in een tabel

We slaan deze segmenten op in een tabel samen met informatie over de bron van het segment.

3) Embedding vector maken

Voor elk segment laten we door een AI-model een embedding maken. Een embedding is een numerieke representatie van de betekenis van de tekst. Deze numerieke representatie gebeurt in de vorm van een vector met een groot aantal dimensies (voor GPT bijvoorbeeld 1536 dimensies).

Met andere woorden: Een AI-model geeft per tekst-segment in een reeks van 1536 getallen weer waar de tekst over gaat.

4) Vraag embedding

Als we nu een vraag willen stellen aan de gegevens die we in de tabel hebben opgeslagen dan laten we hetzelfde AI-model dat de embedding-vectoren heeft gemaakt van de eigen tekst ook een embedding-vector maken voor de vraag.

5) Embedding-vectoren vergelijken

We gaan de embedding vector van de vraag vergelijken met de embedding vectoren van alle tekst-segmenten in de tabel. De tekst-segmenten waar de embedding-vectoren het meest overeenkomen met de embedding-vector van de vraag zijn de tekst-segmenten die het meest relevant zijn voor het beantwoorden van de vraag.

6) Context datablok

Afhankelijk van de hoeveelheid data de we kunnen meesturen naar het AI-Model maken we een context data-blok met daarin bijvoorbeeld de 20 tekst-segmenten die de grootste overeenkomst vertonen met de vraag.

7) Prompt samenstellen

Op basis van de prompt-template die we gebruiken wordt een instructie geformuleerd voor het AI-Model, wordt het context-datablok in de prompt opgenomen en wordt tot slot de vraag die beantwoord moet worden als laatste toegevoegd.

Context datablok

AI Tools >  Template bouwstenen > Context-datablokken

Context-datablokken kunnen beheerd worden in het Context-datablokken beheerscherm. De query verwijst hier naar de tabel waar de tekst-segmenten zijn opgeslagen.

Context datablok beheerscherm
Figuur 1:  Context-datablokken beheerscherm

De query moet in ieder geval de onderstaande kolommen bevattten.

EMB_ID

Dit is een uniek nummer waarmee we de segmenten kunnen aanduiden.

TITLE

Titel van de webpagina of van de naam van het bestand waar het segment zich bevind

CONTENT

Het tekst segment van tussen de 200 en 300 woorden.

TOKEN_COUNT

De grootte van de tekst uitgedrukt in "tokens". Een Large Language Model rekent niet in aantallen woorden of aantal karakters maar in aantallen tokens. Grofweg gaat er 0,7 woorden in 1 token. Omdat elk AI-Model een maximale grootte heeft van het aantal tokens dat er gebruikt kan worden per call, is het van belang om te weten wat het aantal tokens van per segment is. Door te rekenen met deze TOKEN_COUNT kunnen we er voor zorgen dat er maximaal gebruik gemaakt kan worden van de beschikbare ruimte om het model van context te voorzien zonder de limiet van de call te overschrijden.

VECTOR

De vectorkolom bevat de numerieke representatie van de tekst in de "CONTENT" kolom. Deze kolom wordt gebruikt om te zoeken naar de embedding vectoren die het meest overeenkomen met de embedding vector van de vraag.

URL

Deze kolom bevat de URL van de webpagina waar de informatie zich bevindt of het pad naar het bestand waaruit het tekst-segment afkomstig is.

Prompt-template

In onderstaande prompt template zien we hoe het context-blok gebruikt wordt in combinatie ander elementen.

Make sure you give a clear answer and only use information you find in the context below. Context with number 1 is more relevant then context with number 2, etc. If you are not 100% sure about the answer, then say that you do not know the answer. Always reply in the same language used in the question.

Context:
{context:WATCH-DOCUMENTATIE}

[UI]Stel hier je vraag over de urenregistratiemodule van WATCH.[/UI]
  • Eerst wordt middels de {PERSONALITY:FRIENDLY_EXPERT} tag aangegeven welke persoonlijkheid er gebruikt moeten worden bij het schrijven van het antwoord.
  • Vervolgens zien we de instructie voor het AI-Model met betrekking tot de context datablok dat we meestruren.
  • Als derde onderdeel zien we de context datablokken zelf.
  • En als laatste deel van de template zien we de tekst die de gebruiker te zien krijgt in het scherm.

"Enkele prompt" scherm

Als we bovenstaande prompt-template in het "Enkele prompt" scherm gebruiken, ziet de gebruiker een invoerveld waar hij zijn vraag kan invoeren en wordt het antwoord gegenereerd op basis van de eigen data die we hebben meegezonden.

Context datablok in single AI call scherm
Figuur 2: Prompt-template met context-datablok in het "Enkele prompt" scherm.

zonder de limiet van de call te overschrijden.

laatste nieuws

GPT-4o: Sneller en Goedkoper

Op 13 mei 2024 heeft OpenAI haar nieuwste model, GPT-4o, gelanceerd. Dit model belooft niet alleen twee keer zo snel te zijn als de huidige GPT-4 Turbo versie, maar ook aanzienlijk goedkoper.

lees meer

SCHREEUWEN tegen je computer?

AI-ontwikkelingen suggereren dat we binnenkort misschien op verrassend menselijke manieren met onze apparaten kunnen communiceren. Helpt het om te schreeuwen tegen je AI-model?

lees meer

Fooi geven aan ChatGPT kan leiden tot langere antwoorden

Het aanbieden van een fooi aan ChatGPT kan resulteren in langere antwoorden, volgens ontdekkingen van programmeur Theia Vogel.

lees meer

Geef AI-modellen menselijke aanmoedigingen

Google DeepMind introduceert een nieuwe techniek genaamd OPRO om de wiskundekennis van AI-taalmodellen te verbeteren door middel van menselijke aanmoediging.

lees meer