In het proces van het testen en verbeteren van prompts voor LLM’s (Language Models), is het essentieel om te begrijpen hoe verschillende formuleringen van prompts de output van een model beïnvloeden, vooral wanneer gedetailleerde en nauwkeurige informatie vereist is. Dit artikel bespreekt een casestudy waarin verschillende promptvariaties werden geëvalueerd met behulp van een geavanceerd evaluatietool, genaamd promptfoo, om te testen hoe goed modellen specifieke secties van documenten samenvatten.
De variaties in de prompts die getest werden, omvatten drie benaderingen die steeds gedetailleerder werden. De eerste prompt was simpel: “Genereer een samenvatting van de sectie {{section}} uit een SEC-registratie: {{content}}”. De tweede prompt voegde de rol van financieel analist toe aan de instructie: “ROL: Je bent een financieel analist. TAK: Genereer een samenvatting van de sectie {{section}} uit een SEC-registratie: {{content}}”. De derde prompt voegde een extra vereiste toe: “ROL: Je bent een financieel analist. VEREISTEN: WEES GEDETALLEERD. TAK: Genereer een samenvatting van de sectie {{section}} uit een SEC-registratie: {{content}}”.
Het testen van deze verschillende prompts met de tool promptfoo leverde enkele interessante inzichten op. Bij de sectie Legal Proceedings scoorde de derde prompt het hoogste, met een perfecte score van 1.0, terwijl de eerste prompt een zeer lage score van 0.1 behaalde. Voor de sectie Risk Factors behaalden zowel de tweede als derde prompt een gematigde score van 0.5, terwijl de eerste prompt opnieuw laag scoorde met 0.1. Dit suggereert dat gedetailleerdheid en het toevoegen van specifieke rollen zoals financieel analist belangrijke factoren zijn bij het verkrijgen van nauwkeurige, bruikbare output.
Wat we hier zien, is dat de specificiteit van een prompt een aanzienlijke invloed heeft op de kwaliteit van de gegenereerde output. Wanneer we bijvoorbeeld duidelijk aangeven dat het model gedetailleerde informatie moet leveren, kunnen we een substantiële verbetering in de resultaten zien. Dit is vooral waardevol voor zakelijke toepassingen waar nauwkeurigheid en detail cruciaal zijn, zoals het samenvatten van complexe juridische documenten of het uitvoeren van financiële analyses.
De resultaten benadrukken ook het belang van een gestructureerde evaluatie van prompts bij de ontwikkeling van LLMBAs (Large Language Model Based Applications). Een systematische aanpak helpt niet alleen de prestaties van het model te verbeteren, maar biedt ook cruciale inzichten voor eindgebruikers die prompts gebruiken om met modellen te communiceren. Dit is van bijzonder belang voor bedrijven die afhankelijk zijn van non-technische gebruikers, omdat zij de meeste interactie met het model hebben via prompts. Het is dus van vitaal belang om de kracht van goed ontworpen prompts te begrijpen en te benutten, vooral wanneer de resultaten voor belangrijke zakelijke beslissingen moeten dienen.
Een belangrijk element dat vaak over het hoofd wordt gezien, is het belang van het testen van verschillende promptvariaties in verschillende contexten. Zoals blijkt uit het voorbeeld, heeft het expliciet vermelden van een rol (bijvoorbeeld financieel analist) en het stellen van duidelijke vereisten zoals ‘gedetailleerd’ vaak een meetbare verbetering in de output. Dit vraagt niet alleen om een betere afstemming van de modelinstructies, maar ook om een dieper begrip van het taakdomein waarvoor de prompt wordt ontworpen.
Bij het ontwerpen van prompts voor LLM’s is het dus essentieel om niet alleen rekening te houden met de basisinstructies, maar ook met de nuances van het gewenste resultaat. Het is niet genoeg om een algemene vraag te stellen; het succes van een prompt kan vaak liggen in de mate van precisie en context die wordt meegegeven. En zoals we gezien hebben, kan het simpelweg toevoegen van een rolomschrijving of vereiste zoals gedetailleerdheid de effectiviteit van een model aanzienlijk verbeteren.
De evaluatie van prompts zoals die uitgevoerd in dit onderzoek kan ook worden uitgebreid naar andere domeinen, zoals econometrische analyses of zelfs creatieve schrijftaken. In situaties waar LLM’s minder getraind zijn in een specifiek vakgebied, kunnen extra hulpmiddelen zoals LightEval gebruikt worden om de prestaties van het model te meten aan de hand van meerdere criteria, zoals nauwkeurigheid, redeneervermogen en veiligheid. Dit helpt ontwikkelaars niet alleen de prestaties van hun modellen te verbeteren, maar biedt ook praktische inzichten voor het evalueren van complexe taken die verder gaan dan de linguïstische focus van de meeste LLM’s.
Naast het testen van promptvariaties is het belangrijk te beseffen dat de nauwkeurigheid van het model niet alleen afhankelijk is van de prompt zelf, maar ook van het type gegevens waarop het model is getraind. Wanneer LLM’s bijvoorbeeld econometrische vragen beantwoorden, zullen ze minder nauwkeurig presteren dan bij linguïstische taken, omdat econometrie een specialistisch vakgebied is waarvoor andere benchmarks en evaluatiemethoden noodzakelijk zijn. Het is essentieel om de taak en de bijbehorende eisen goed te begrijpen bij het ontwerpen van prompts voor specifieke domeinen.
Hoe werkt ChromaDB voor documentopslag en -opvraag?
ChromaDB is een populaire open-source vector database die zich richt op het efficiënt opslaan en ophalen van embeddings. Het biedt ondersteuning voor metadata, filters, en biedt eenvoudige integratie met Python-toepassingen. Daarnaast maakt het gebruik van zowel in-memory als persistente opslagopties, wat het flexibel maakt voor verschillende toepassingen. Door gebruik te maken van meerdere afstandsmetrics kan ChromaDB ook geavanceerde zoekfunctionaliteiten bieden. In deze sectie zullen we uitleggen hoe je ChromaDB kunt gebruiken, wat de onderliggende technologieën zijn, en hoe je documenten kunt ophalen via vectorzoekopdrachten.
In ChromaDB kun je eenvoudig een vector-database-client maken met de volgende Python-code:
Deze code maakt een vector-database in het geheugen. Het is ook mogelijk om een persistente database te maken door een pad naar een directory op te geven, of door gebruik te maken van een cloudgebaseerde vector-database service zoals Snowflake, AWS, Azure of GCP. Voor dit voorbeeld gebruiken we een in-memory vector-database, wat betekent dat we een collectie moeten maken om de embeddings van de hoofdstukken op te slaan en de hoofdstukken als documenten aan deze collectie toe te voegen.
Nu zijn we klaar om een zoekopdracht in de collectie uit te voeren. We schrijven een eenvoudige functie die de collectie, de ingevoerde zoekopdracht, en het aantal opgevraagde resultaten als argumenten neemt, en de opgehaalde documenten retourneert.
Bijvoorbeeld, als we willen weten wat het doel van het boek is, kan de zoekopdracht als volgt worden geformuleerd:
De respons bevat objecten die verschillende attributen bevatten, waaronder:
-
documents: De werkelijke documenten die zijn opgehaald uit de collectie (bijvoorbeeld de hoofdstukken).
-
ids: De ID's van de documenten die zijn opgehaald uit de collectie.
-
distances: De afstanden van de documenten tot de zoekopdrachtvector.
In dit voorbeeld zien we dat de hoofdstukken "Introduction", "Input" en "Structured Output" worden opgehaald, gerangschikt op basis van hun afstand tot de zoekopdrachtvector. De "Introduction" wordt als meest relevant beschouwd, gevolgd door de hoofdstukken "Input" en "Structured Output". Dit toont aan dat het zoek- en retrievalsysteem effectief de meest relevante documenten heeft opgehaald.
Om te begrijpen hoe het systeem de documenten ophaalt en hoe de "afstand tot de zoekopdrachtvector" wordt berekend, moeten we begrijpen hoe embeddings worden gemaakt en hoe documenten worden geïndexeerd. ChromaDB gebruikt standaard het model all-MiniLM-L6-v2 om embeddings te maken van de ingevoerde documenten en zoekopdrachten. Dit model is beschikbaar in de library sentence_transformers.
Door de hoofdstukken en de zoekopdracht in vectors om te zetten, verkrijgen we vier 384-dimensionale vectors die de embeddings vertegenwoordigen van de drie hoofdstukken en de zoekopdracht:
Deze representaties kunnen worden vergeleken met behulp van cosine-similariteit, de standaardmethode in sentence_transformers voor het berekenen van gelijkenis:
De resulterende gelijkenismatrix toont hoe de zoekopdracht zich verhoudt tot de verschillende hoofdstukken. Dit komt overeen met de volgorde van documenten die ChromaDB eerder heeft teruggegeven, waarbij de "Introduction" het meest relevant is, gevolgd door "Input" en "Structured Output".
Terwijl eenvoudige zoekopdrachten en vectorvergelijkingen goed werken voor kleine datasets, kan het berekenen van gelijkenis tussen een grote hoeveelheid data computationeel intensief zijn. Het uitvoeren van brute-force vergelijkingen kan langzaam worden naarmate het aantal documenten toeneemt. Indexering is een techniek die de zoekopdrachten sneller en efficiënter maakt.
Indexering maakt zoekopdrachten sneller door een gestructureerde manier van opslaan van de vectoren, zodat het niet nodig is om elke vector met elkaar te vergelijken. Dit verbetert de prestaties aanzienlijk, vooral bij grote hoeveelheden gegevens. Er zijn verschillende soorten indexeringstechnieken die in vector-databases kunnen worden toegepast:
-
Boomgebaseerde indexen: Deze werken door de vectorruimte in hiërarchische regio’s op te splitsen. Ze zijn effectief voor gegevens met lage dimensies, maar hebben last van de curse of dimensionality bij hoge-dimensionale gegevens. Voorbeelden hiervan zijn KD-trees en Ball trees.
-
Graphgebaseerde indexen: Deze creëren een meelaag-structuur voor navigatie en bieden snelle zoekresultaten, maar vereisen meer geheugen. Een bekend voorbeeld is HNSW (Hierarchical Navigable Small World).
-
Lokale Gevoelige Hashing (LSH): Deze techniek maakt gebruik van hash-functies die vergelijkbare vectoren naar dezelfde "mand" sturen. Dit is meer geheugen-efficiënt dan graf-gebaseerde methoden, maar kan in sommige gevallen de nauwkeurigheid opofferen voor prestatie.
-
Kwantisatie-gebaseerde indexen: Deze comprimeren vectoren door ze in discrete waarden om te zetten, waardoor het geheugenverbruik aanzienlijk wordt verminderd. Ze bieden een goede balans tussen nauwkeurigheid en bronnengebruik.
Herschikken van resultaten (reranking) kan helpen bij het verbeteren van de relevantie van de resultaten. Een eenvoudig vectorgebaseerd zoekmechanisme kan soms niet alle semantische relevantie vastleggen. Reranking kan de nauwkeurigheid van het systeem verbeteren door eerst een set voorlopige resultaten op te halen, en vervolgens deze resultaten opnieuw te rangschikken op basis van een meer geavanceerd model dat dieper in de semantische betekenis kijkt. Dit zorgt ervoor dat de meest relevante documenten aan de bovenkant komen te staan, ook als ze niet als eerste zijn opgehaald.
Het gebruik van ChromaDB en andere vector-databases kan de manier waarop we informatie snel en efficiënt ophalen aanzienlijk verbeteren. Het stelt ons in staat om niet alleen op basis van de tekst zelf, maar ook op basis van de semantische betekenis van documenten te zoeken, wat een veel krachtigere manier van informatieontsluiting biedt dan traditionele zoekmethoden.
Hoe Dynamische Prompt Parameters Worden Gebruikt voor het Genereren van Rapporten
Het ontwikkelen van dynamische promptparameters is een cruciale stap in het creëren van een gedetailleerd en samenhangend rapport met behulp van taalmodellen zoals LLM. In dit proces speelt het opdelen van de tekst in kleinere delen (chunks) en het aanpassen van de prompt voor elk deel een sleutelrol. Dit maakt het mogelijk om het rapport op een meer geordende en logische manier te genereren. De dynamische aard van deze prompts is essentieel, omdat de structuur van het rapport afhankelijk is van het specifieke deel van de tekst en de positie ervan binnen het geheel. De vraag is dus niet alleen hoe we rapporten genereren, maar ook hoe we het proces zodanig kunnen aanpassen dat het optimaal werkt voor verschillende soorten gegevens.
De belangrijkste functie in dit proces is de get_dynamic_prompt_params, die de promptparameters voor elk deel van de tekst dynamisch aanpast op basis van de huidige context. Het doel is om te zorgen voor een vloeiende voortzetting van het rapport, waarbij de informatie logisch en op een samenhangende manier wordt gepresenteerd. De prompt is bijvoorbeeld anders als het om de inleiding, het midden of de conclusie van het rapport gaat.
Dynamische Aanpassing van de Prompt
De eerste stap is het identificeren van de verschillende secties van een rapport. Het is belangrijk om te begrijpen dat de manier waarop de informatie wordt gepresenteerd varieert, afhankelijk van de positie van het deel in de reeks.
-
Als het het eerste deel is, moet het model de inleiding van het rapport genereren. Dit betekent dat het model geen details van de inhoud bespreekt, maar in plaats daarvan de reikwijdte van het rapport definieert.
-
Als het het laatste deel is, moet het model niet alleen de invoergegevens (INPUT) bespreken, maar ook een conclusie schrijven die de belangrijkste punten samenvat die in de context van het rapport zijn besproken.
-
In de overige gevallen, wanneer het gaat om de tussenliggende delen, moet het model de invoer analyseren en samenvatten op basis van de gegeven context. Dit houdt in dat het model de informatie logisch organiseert en waar nodig nieuwe secties creëert of bestaande secties uitbreidt.
Elke verandering in de structuur van het rapport vereist een aanpassing in de promptparameters, die zich aanpast aan de rol die het model op dat moment moet spelen. Dit dynamische proces maakt het mogelijk om complexe rapporten te genereren die ondanks hun grootte en diepte toch overzichtelijk blijven.
Rapport Generatie en Het Belang van Chat Context
De rapportgeneratie begint met het verdelen van de tekst in kleinere stukken. Dit wordt gedaan met behulp van een functie zoals get_chunks, die de tekst opdeelt op basis van een opgegeven chunk-grootte en overlap. De context van het gesprek wordt vervolgens opgebouwd en aangepast naarmate het proces vordert. Dit betekent dat de chatcontext met elke gegenereerde sectie wordt bijgewerkt, zodat er geen verlies van belangrijke details is. Het behouden van deze context is cruciaal voor de samenhang van het rapport, omdat elk nieuw deel van de tekst in de bredere context van het volledige rapport moet passen.
Bij de rapportgeneratie wordt een model zoals LLM gebruikt, dat reageert op de dynamisch geüpdatete promptparameters. Deze parameters bevatten onder andere de huidige sectie-instructies en de bijbehorende tekst om te verwerken. Door dit proces stap voor stap uit te voeren, wordt het rapport opgedeeld in verwerkbare delen, waarbij elke sectie van het rapport in context wordt geplaatst en de relevante details van de vorige secties worden meegenomen.
Het Belang van Chunk Grootte en Overlap
Een ander cruciaal aspect is de keuze van de chunk-grootte en de overlap tussen de verschillende delen. Deze parameters zijn niet vaststaand en kunnen worden aangepast naarmate de complexiteit van het rapport toeneemt. De juiste keuze van deze instellingen heeft invloed op de kwaliteit van het gegenereerde rapport. Te grote chunks kunnen bijvoorbeeld leiden tot verlies van relevante context of een verwarrend rapport, terwijl te kleine chunks misschien te veel herhaling en redundantie introduceren. Het vinden van de juiste balans vereist ervaring en experimenteren.
De keuze van chunk-grootte en overlap heeft overeenkomsten met hyperparameteroptimalisatie in machine learning. Net zoals bij het afstemmen van modellen zoals XGBoost, moeten deze parameters zorgvuldig worden gekozen om de beste resultaten te behalen. De variaties in deze instellingen kunnen ook de leesbaarheid en begrijpelijkheid van het rapport beïnvloeden.
Praktische Toepassing: Rapport Genereren
Het proces van rapportgeneratie kan verder worden geïllustreerd door het voorbeeld van het genereren van een samenvatting van een 10-K rapport van Apple Inc. Dit proces omvat de volgende stappen:
-
Inladen van de tekst: De tekst van de 10-K wordt ingeladen en voorbereid voor verwerking.
-
Opdelen van de tekst: De tekst wordt opgedeeld in kleinere delen van een vooraf bepaalde grootte (bijvoorbeeld 10.000 tokens), met of zonder overlap.
-
Instellen van het context: De context wordt ingesteld op basis van de inputtekst en wordt verder geüpdatet naarmate elk deel van het rapport wordt gegenereerd.
-
Genereren van het rapport: Het model genereert sectie na sectie, waarbij elke sectie wordt opgebouwd op basis van de vorige en in de bredere context van het rapport past.
Bij het testen van verschillende instellingen voor chunk-grootte en overlap, kan men de kwaliteit van het gegenereerde rapport beoordelen. Het is ook belangrijk om te overwegen hoe deze instellingen kunnen variëren afhankelijk van het type rapport of het doel van de samenvatting. Voor sommige documenten kan een kleinere overlap nuttig zijn, terwijl voor andere een grotere overlap noodzakelijk kan zijn om te zorgen voor een naadloze overgang tussen de delen.
De resultaten van het proces kunnen vervolgens worden opgeslagen en beoordeeld. Het gegenereerde rapport biedt een overzicht van de belangrijkste punten en conclusies, die op een gestructureerde en leesbare manier zijn gepresenteerd. Dit rapport kan vervolgens verder worden geanalyseerd of gepresenteerd aan belanghebbenden.
Wat Verder Belangrijk Is
Bij het werken met dynamische prompts en geavanceerde taalmodellen is het essentieel om niet alleen de technische aspecten van promptconstructie te begrijpen, maar ook de bredere implicaties van deze technologie voor het genereren van onderzoeksrapporten en samenvattingen. In de toekomst kan het zo zijn dat de eerste lezers van onderzoeksrapporten niet mensen zijn, maar andere taalmodellen. Dit kan de manier waarop we schrijven en presenteren drastisch veranderen. Het is belangrijk om hierover na te denken en te overwegen hoe we onze teksten het beste kunnen voorbereiden voor een AI-lezer. Dit kan inhouden dat we vooraf chunks definiëren, specifieke instructies geven voor het genereren van secties of bepaalde technieken toepassen om de context te behouden.
Hoe LLM's Tekstbeoordeling Uitvoeren: Een Dieper Inzicht in Evaluatiemethoden
Het gebruik van LLM's (Large Language Models) om tekstkwaliteit te evalueren biedt nieuwe mogelijkheden voor automatische beoordelingen van gegenereerde inhoud. Dit proces kan op verschillende manieren worden uitgevoerd, afhankelijk van de doelstellingen van de evaluatie. Een veelvoorkomende aanpak is de prompt-gebaseerde evaluatie, waarbij een model via zorgvuldig samengestelde prompts wordt gevraagd om de kwaliteit van een tekst te beoordelen zonder enige fine-tuning.
De prompt-gebaseerde evaluatie kan verschillende vormen aannemen. Een van de meest gebruikelijke is score-gebaseerde evaluatie, waarbij het LLM een numerieke score toekent aan de gegenereerde tekst. Dit kan variëren van een eenvoudige schaal, zoals 1-5, tot complexere schaalmodellen. Een andere benadering is de probabiliteitsgebaseerde evaluatie, waarbij de generatiekans van bepaalde woorden of zinnen als maatstaf voor kwaliteit wordt gebruikt. Likert-schaalbeoordelingen zijn ook mogelijk, waarbij de tekst op een discrete schaal wordt beoordeeld. Voor een diepere vergelijking kunnen pairwise-vergelijkingen worden uitgevoerd, waarbij twee teksten direct tegenover elkaar worden gezet. Daarnaast kunnen ensemblemethoden, die meerdere LLM-evaluatoren combineren, helpen om een meer robuuste beoordeling te verkrijgen.
Naast prompt-gebaseerde benaderingen is er ook de mogelijkheid om LLM's specifiek af te stemmen voor evaluatietaken. Dit wordt tuning-gebaseerde evaluatie genoemd, waarbij open-source LLM's worden geoptimaliseerd voor specifieke domeinen of toepassingen. Deze methode kan kosteneffectiever zijn dan het herhaaldelijk gebruiken van API-aanroepen en maakt het mogelijk om de modellen aan te passen aan specifieke evaluatiecriteria.
Het proces van een LLM-as-a-Judge-evaluatie volgt een aantal belangrijke stappen. Eerst moeten de evaluatiecriteria worden gedefinieerd. Dit betekent dat duidelijke benchmarks moeten worden vastgesteld, zoals relevantie, coherentie, nauwkeurigheid en vloeiendheid. Vervolgens moeten effectieve prompts worden voorbereid die het model helpen om de inhoud tegen deze criteria te evalueren. Het gebruik van referentiegegevens is hierbij optioneel, maar kan nuttig zijn voor het bepalen van de kwaliteit van de tekst. Na het uitvoeren van de evaluatie met behulp van het gekozen LLM-model, worden de resultaten geaggregeerd en geanalyseerd om de toepassing verder te verfijnen.
De LLM-as-a-Judge-benadering biedt vergeleken met traditionele evaluatiemethoden een meer geavanceerd raamwerk. Terwijl traditionele metrics zich vaak richten op statistische metingen zoals precisie en recall, kunnen LLM's met behulp van natuurlijke taalcriteria subjectieve aspecten beoordelen, zoals creativiteit, narratieve stroom en contextuele relevantie – eigenschappen die dichter bij menselijke beoordelingsprocessen liggen. Dit maakt LLM's bijzonder geschikt voor het evalueren van teksten die een zekere mate van subjectiviteit vereisen.
Bij het ontwikkelen van een evaluatiemodel is het belangrijk om te zorgen voor een zorgvuldige prompt-engineering. Dit is het proces van het opstellen van invoerprompts die het model sturen naar de gewenste uitvoer. Goede prompt-engineering kan de nauwkeurigheid en relevantie van de beoordeling aanzienlijk verbeteren. Een belangrijke praktijk is het gebruik van discrete schaalmodellen (bijvoorbeeld 1-5 in plaats van een continu bereik), het verstrekken van duidelijke beoordelingsrubrieken die uitleggen wat elk score-niveau betekent, en het gebruik van referentie-antwoorden wanneer deze beschikbaar zijn. Dit helpt om de beoordeling te ‘gronden’ en zorgt ervoor dat het model consistent en betrouwbaar werkt.
Een ander belangrijk aspect van prompt-engineering is het bevorderen van de interpretatie van de resultaten. Het vragen om uitleg en redenatie bij de gegeven scores kan de transparantie van de evaluatie aanzienlijk vergroten. Dit helpt niet alleen bij het begrijpen van de specifieke beoordelingsbeslissingen, maar maakt het ook mogelijk om een holistische evaluatie te verkrijgen door meerdere dimensies, zoals coherentie, relevantie en vloeiendheid, in overweging te nemen.
Een vaak over het hoofd geziene factor is de volgorde waarin de beoordeling wordt gepresenteerd aan het model. De prestaties van een LLM kunnen aanzienlijk variëren afhankelijk van de volgorde waarin de prompt wordt gepresenteerd. Het is aanbevolen om eerst een uitleg of redenatie te vragen, en daarna pas het uiteindelijke score-resultaat te presenteren. Dit verhoogt de kans op een nauwkeuriger oordeel door het model.
Om de werking van LLM's als beoordelaars verder te begrijpen, kan een implementatie van een beoordelingssysteem worden gebruikt. Stel je voor dat we een LLM gebruiken om een samenvatting van een SEC-rapport te beoordelen. In dit geval definieert het model vier belangrijke beoordelingscriteria: expertise, coherentie, vloeiendheid en gelijkenis met een referentietekst. Door het model te vragen om een score te geven op basis van deze criteria, kunnen we de prestaties van het model als beoordelaar evalueren. Het systeem gebruikt een duidelijke prompt die het model instrueert hoe het de tekst moet beoordelen, en de uitkomst wordt vervolgens geparseerd in een consistente structuur.
Dit soort systemen biedt de mogelijkheid om meerdere LLM's met elkaar te vergelijken, zoals bijvoorbeeld bij het genereren van samenvattingen. Door verschillende modellen te laten concurreren, kunnen we zien welk model de hoogste scores behaalt op de verschillende beoordelingscriteria. Dit maakt het mogelijk om een gefundeerde keuze te maken over welke modellen het beste presteren voor specifieke taken.
Een belangrijk element dat niet over het hoofd mag worden gezien, is de mogelijkheid om met behulp van LLM's subjectieve, maar waardevolle eigenschappen van teksten te evalueren die vaak moeilijk te meten zijn met traditionele statistische methoden. Het gebruik van LLM's als beoordelaar stelt ons in staat om een dieper inzicht te krijgen in de nuances van taal en betekenis die vaak buiten het bereik van conventionele evaluatiemethoden vallen.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский