Bewerken

Delen via


LLM end-to-end evaluatie

Azure AI services
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

Zodra u deze fase hebt bereikt, hebt u uw zoekindex gegenereerd en bepaald welke zoekopdrachten u wilt uitvoeren. In deze fase wordt het proces voor het evalueren van uw RAG-oplossing (Retrieval-Augmented Generation) aangepakt vanuit het perspectief van het evalueren van verwachte gebruikersprompts met de opgehaalde grondgegevens voor het grote taalmodel. Voordat u deze fase bereikt, moet u de voorbereidingsfase hebben voltooid waarin u uw testdocumenten en query's hebt verzameld, uw testdocumenten hebt gesegmenteerd, de segmenten verrijkt, de segmenten hebt ingesloten, een zoekindex hebt gemaakt en een zoekstrategie hebt geïmplementeerd. U moet elk van deze fasen hebben geëvalueerd en tevreden zijn met de resultaten. Op dit moment moet u zich comfortabel voelen dat uw oplossing relevante grondgegevens retourneert voor een gebruikersquery.

Deze grounding-gegevens vormen de context voor de prompt die u naar het grote taalmodel verzendt om de query van de gebruiker aan te pakken. Prompt engineeringstrategieën vallen buiten het bereik van dit artikel. In dit artikel wordt de evaluatie van de ontworpen aanroep naar het grote taalmodel behandeld vanuit het perspectief van de grondgegevens. In dit artikel worden enkele algemene metrische gegevens voor de evaluatie van grote talen beschreven, en enkele specifieke overeenkomsten en metrische gegevens voor evaluatie die kunnen worden gebruikt in de berekeningen van de evaluatie van het grote taalmodel of als zelfstandige metrische gegevens.

In dit artikel wordt niet geprobeerd een uitgebreide lijst te bieden van metrische gegevens van grote talen of overeenkomsten en metrische evaluatiegegevens. Het aantal van deze metrische gegevens groeit elke dag. Wat belangrijk is voor u om uit dit artikel te halen, is dat er verschillende metrische gegevens zijn, elk met hun eigen afzonderlijke use case. U bent de enige met een holistisch begrip van uw workload. U en uw gegevenswetenschappers moeten bepalen wat het is dat u wilt meten en welke metrische gegevens u helpen om die taak uit te voeren.

Dit artikel maakt deel uit van een serie. Lees de inleiding.

Metrische gegevens voor evaluatie van grote talenmodellen

Er zijn verschillende metrische gegevens die u kunt gebruiken om het antwoord van het grote taalmodel te evalueren, waaronder geaardheid, volledigheid, gebruik en relevantie.

Belangrijk

Antwoorden van grote talenmodellen zijn niet-deterministisch, wat betekent dat dezelfde prompt voor een groot taalmodel kan en vaak verschillende resultaten oplevert. Dit is belangrijk om te begrijpen wanneer u een groot taalmodel gebruikt als onderdeel van uw evaluatieproces. Overweeg om een doelbereik te gebruiken voor één doel bij het evalueren met behulp van een groot taalmodel.

Geaardheid

Geaardheid, soms ook wel trouw genoemd, meet of het antwoord volledig is gebaseerd op de context. Het valideert dat het antwoord geen andere informatie gebruikt dan wat er in de context bestaat. Een meetwaarde met weinig grondheid geeft aan dat het grote taalmodel zich mogelijk in fantasierijk of ongevoelig gebied bevindt dat halluïnaties wordt genoemd.

Berekenen

  • Op basis van Azure AI Content Safety Service (AACS) is een aangepast model dat gebruikmaakt van Natural Language Inference (NLI) om te bepalen of claims, in dit geval segmenten, worden ingehouden of niet worden meegeteld door een brondocument.
  • Op basis van een groot taalmodel wordt een groot taalmodel gebruikt om het niveau van de grondheid van het antwoord te bepalen.
  • Ragas getrouwheidsbibliotheek
  • Berekening van MLflow-getrouwheid

Evaluatie

Als de aarding laag is, geeft dit aan dat het grote taalmodel de segmenten niet als relevant ziet. U moet evalueren of u gegevens aan uw corpus moet toevoegen, uw segmentstrategie of segmentgrootte moet aanpassen of uw prompt moet afstemmen.

Volledigheid

Volledigheid meet of het antwoord alle onderdelen van de query beantwoordt. Dit helpt u te begrijpen of de segmenten in de context relevant en rechtstreeks gerelateerd zijn aan de query en een volledig antwoord geven.

Berekenen

  • AI-ondersteund: Vragen om score ophalen
  • Met een groottaalmodel kunt u de kwaliteit van het antwoord van het grote taalmodel meten. Hiervoor hebt u de vraag, context en gegenereerd antwoord nodig. Hieronder ziet u een overzicht van het proces op hoog niveau:
    1. Gebruik het grote taalmodel om de vraag opnieuw te formuleren, samen te vatten of te vereenvoudigen. Hiermee wordt de intentie geïdentificeerd.
    2. Vraag het model om te controleren of de intentie of het antwoord op de intentie is gevonden of kan worden afgeleid van opgehaalde documenten waar het antwoord 'Nee' of 'Ja' voor elk document kan zijn. Antwoorden die beginnen met Ja geven aan dat de opgehaalde documenten relevant zijn voor de intentie of het antwoord op de intentie.
    3. Bereken de verhouding van de intenties met een antwoord dat begint met Ja.
    4. De score kwadrateren om de fouten te markeren.

Evaluatie

Als de volledigheid laag is, begint u met het evalueren van uw insluitingsmodel. Vergelijk de woordenlijst in uw inhoud met de woordenlijst in het door u gekozen insluitingsmodel. Bepaal of u een domeinspecifiek insluitingsmodel nodig hebt of dat u een bestaand model moet verfijnen. Als volgende stap evalueert u uw segmenteringsstrategie. Als u een vaste lengte gebruikt, kunt u overwegen om de segmentgrootte te vergroten. U kunt ook evalueren of uw testgegevens voldoende gegevens hebben om de vraag volledig aan te pakken.

Gebruik

Het gebruik meet de mate waarin het antwoord bestaat uit informatie uit de segmenten in de context. Het doel is om te bepalen in hoeverre elk segment deel uitmaakt van het antwoord. Als het gebruik laag is, geeft dit aan dat onze resultaten mogelijk niet relevant zijn voor de query. Het gebruik moet naast elkaar worden geëvalueerd.

Berekenen

U kunt een groottaalmodel gebruiken om het gebruik te berekenen. U kunt het antwoord en de context met de segmenten doorgeven aan het grote taalmodel. U kunt het model voor grote talen vragen om het aantal segmenten te bepalen dat het antwoord met zich meebrengt.

Evaluatie

De volgende tabel bevat richtlijnen, waarbij zowel volledigheid als het gebruik samen worden gebruikt.

Hoog gebruik Laag gebruik
Hoge volledigheid Geen actie vereist In dit geval kunnen de geretourneerde gegevens de vraag aanpakken, maar er zijn irrelevante segmenten geretourneerd. Overweeg om de waarde van de top-k-parameter te verminderen om meer waarschijnlijke/deterministische resultaten te opleveren.
Lage volledigheid In dit geval worden de segmenten die u levert, gebruikt, maar zijn ze niet volledig gericht op de vraag. Overweeg de volgende:
  • Controleer uw segmenteringsstrategie om de context binnen de segmenten te vergroten
  • Het aantal segmenten verhogen door de parameterwaarde top-k te verhogen
  • Evalueer of u segmenten hebt die niet zijn geretourneerd die de volledigheid kunnen verhogen. Zo ja, onderzoek dan waarom ze niet zijn geretourneerd.
  • Volg de richtlijnen in de sectie Volledigheid
In dit geval beantwoordt u de vraag niet volledig en worden de segmenten die u opgeeft niet goed gebruikt. Houd rekening met het volgende om deze problemen op te lossen:
  • Controleer uw segmenteringsstrategie om de context binnen de segmenten te vergroten. Als u segmentering met vaste grootte gebruikt, kunt u overwegen om de segmentgrootten te vergroten.
  • Stem uw prompts af om de antwoorden te verbeteren

Relevantie

Meet de mate waarin het antwoord van het grote taalmodel relevant is en gerelateerd is aan de query.

Berekenen

Evaluatie

Als de relevantie laag is, evalueert u het volgende:

  • Zorg ervoor dat de segmenten die aan het grote taalmodel zijn verstrekt, relevant zijn.
    • Bepaal of er levensvatbare segmenten zijn die relevant zijn die niet zijn geretourneerd. Als dat zo is, evalueert u het insluitingsmodel.
    • Als er geen bruikbare segmenten zijn, kijkt u of er relevante gegevens bestaan. Als dit het geval is, evalueert u uw segmenteringsstrategie.
  • Als relevante segmenten zijn geretourneerd, evalueert u uw prompt.

Andere evaluatiemethoden, zoals Volledigheid , moeten worden berekend en moeten vergelijkbare scores opleveren als de scores die in de relevantiemeting zijn waargenomen.

Overeenkomsten en metrische evaluatiegegevens

Zoals vermeld in de inleiding, zijn er honderden overeenkomsten en metrische evaluatiegegevens die worden gebruikt in data science. Sommige algoritmen zijn specifiek voor een domein, zoals spraak naar tekst of taal naar taalomzetting. Elk algoritme heeft een unieke strategie voor het berekenen van de metrische gegevens.

De data scientist bepaalt wat u wilt meten en welke metrische gegevens of combinatie van metrische gegevens u kunt gebruiken om deze te meten. Op het gebied van taalomzetting wordt bijvoorbeeld gecontroleerd hoeveel n-grammen in zowel de automatische vertaling als de menselijke vertaling worden weergegeven om overeenkomsten te meten op basis van dezelfde woorden. Cosinus-gelijkenis maakt gebruik van insluitingen tussen de machine en menselijke vertalingen om de semantische gelijkenis te meten. Als uw doel was om een hoge semantische gelijkenis te hebben en vergelijkbare woorden te gebruiken als de menselijke vertaling, zou uw doel een hoge Blue score met een hoge cosinus-gelijkenis zijn. Als u alleen zorg hebt voor semantische gelijkenis, zou u zich richten op cosinus-gelijkenis.

De volgende lijst bevat een klein voorbeeld van veelvoorkomende overeenkomsten en metrische evaluatiegegevens. U ziet dat de metrische overeenkomsten die worden vermeld, worden beschreven als tokens op basis van tokens, op volgorde of op basis van bewerkingen, om aan te geven hoe ze veel verschillende benaderingen gebruiken om overeenkomsten te berekenen. Houd er ook rekening mee dat de lijst drie algoritmen bevat voor het evalueren van de kwaliteit van tekstomzetting van de ene taal naar de andere.

  • Langste algemene subtekenreeks : algoritme op basis van reeksen waarmee de langste algemene subtekenreeks tussen twee tekenreeksen wordt gevonden. Het langste algemene subtekenreekspercentage neemt de langste algemene subtekenreeks en deelt deze door het aantal tekens van de kleinere of grotere invoertekenreeks.
  • Langste algemene subsequence (LCS) - Algoritme op basis van reeksen waarmee de langste subsequence tussen twee tekenreeksen wordt gevonden. LCS vereist niet dat de subsequences in opeenvolgende volgorde staan.
  • Cosinus-gelijkenis : algoritme op basis van tokens waarmee de cosinus van de hoek tussen de twee vectoren wordt berekend.
  • Jaro Listener : op bewerking gebaseerd algoritme waarmee het minimale aantal stappen wordt geteld om de ene tekenreeks te transformeren in een andere.
  • Hamming - Op basis van bewerkingen gebaseerd algoritme dat het minimum aantal vervangingen meet dat nodig is om de ene tekenreeks te transformeren naar een andere.
  • Jaccard - Token gebaseerd algoritme dat overeenkomsten berekent door het snijpunt van twee tekenreeksen te delen door de samenvoeging van deze tekenreeksen.
  • Levenshtein - Op bewerking gebaseerde algoritme waarmee overeenkomsten worden berekend door het minimale aantal bewerkingen van één teken te bepalen dat nodig is om de ene tekenreeks te transformeren naar een andere.
  • BLEU - Evalueert de kwaliteit van tekst die het resultaat is van automatische vertaling van de ene taal naar de andere. Blue berekent de overlapping van n-grammen tussen een automatische vertaling en een menselijke kwaliteitsvertaling om deze evaluatie te maken.
  • ROUGE - Een automatische vertaling van de ene taal vergelijken met een door een mens gemaakte vertaling. Er zijn verschillende ROUGE-varianten die gebruikmaken van de overlapping van n-gram, skip-bigrams of langste gemeenschappelijke subsequence.
  • METEOR - Evalueert de kwaliteit van tekst die het resultaat is van automatische vertaling door exacte overeenkomsten, overeenkomsten na stemming, synoniemen, parafrasering en uitlijning te bekijken.

Raadpleeg de volgende bronnen voor algemene overeenkomsten en metrische evaluatiegegevens:

Documentatie, rapportage en aggregatie

U moet zowel de hyperparameters documenteren die u hebt gekozen voor een experiment als de resulterende metrische evaluatiegegevens, zodat u de impact van de hyperparameters op uw resultaten kunt begrijpen. U moet hyperparameters en resultaten documenteren op granulaire niveaus, zoals insluiten of zoeken, en op macroniveau, zoals het testen van het hele systeem end-to-end.

Tijdens het ontwerpen en ontwikkelen kunt u de hyperparameters en resultaten mogelijk handmatig bijhouden. Bij het uitvoeren van meerdere evaluaties op basis van uw hele testdocument en het uitvoeren van query's kan het echter gaan om honderden evaluatieuitvoeringen en duizenden resultaten. U moet de persistentie van parameters en resultaten voor uw evaluaties automatiseren.

Zodra uw hyperparameters en resultaten zijn behouden, moet u overwegen grafieken en grafieken te bouwen, zodat u de effecten van de opties voor hyperparameters op de metrische gegevens gemakkelijker kunt visualiseren. Hiermee kunt u bepalen welke keuzes leiden tot dips of pieken in prestaties.

Het is belangrijk dat u begrijpt dat het ontwerpen en evalueren van uw RAG-oplossing geen eenmalige bewerking is. Uw verzameling documenten verandert in de loop van de tijd. De vragen die uw klanten stellen, veranderen na verloop van tijd en uw begrip van de typen vragen zal zich ontwikkelen naarmate u leert van productie. U moet dit proces opnieuw en opnieuw doorlopen. Het onderhouden van documentatie over eerdere evaluaties is essentieel voor toekomstige ontwerp- en evaluatie-inspanningen.

De RAG-experimentversneller

In deze artikelen wordt u begeleid bij alle fasen en ontwerpkeuzes die betrekking hebben op het ontwerpen en evalueren van een RAG-oplossing. De artikelen richten zich op wat u moet doen, niet hoe u dit moet doen. Een technisch team dat met de belangrijkste klanten van Microsoft werkt, heeft een hulpprogramma ontwikkeld met de naam RAG Experiment Accelerator. De RAG Experiment Accelerator is een state-of-the-art experimentenframework dat is ontworpen om de ontwikkeling van RAG-oplossingen (Retrieval Augmented Generation) te optimaliseren en te verbeteren. RAG Experiment Accelerator stelt onderzoekers en ontwikkelaars in staat om efficiënt de kritieke onderdelen te verkennen en af te stemmen die de RAG-prestaties stimuleren, wat uiteindelijk leidt tot nauwkeurigere en coherentere tekstgeneratie.

Met de CLI-interface kunt u moeiteloos experimenteren met verschillende insluitingsmodellen, segmenteringsstrategieën verfijnen en verschillende zoekmethoden evalueren om het volledige potentieel van uw RAG-systeem te ontgrendelen. Hiermee kunt u zich richten op de belangrijkste aspecten van RAG-ontwikkeling terwijl u de complexiteit van het afstemmen van hyperparameters abstraheert met behulp van eenvoudige configuratie.

Bovendien biedt het framework uitgebreide ondersteuning voor configuratie van grote taalmodellen, zodat u de perfecte balans kunt vinden tussen de complexiteit van het model en de kwaliteit van de generatie. Met dit hulpprogramma kunt u het experimenteerproces stroomlijnen, waardevolle tijd besparen en de prestaties van uw RAG-modellen aanzienlijk verbeteren.

Of u nu een doorgewinterde onderzoeker bent die de grenzen van natuurlijke taalbegrip of een brancheprofessional die mogelijkheden voor het genereren van tekst wil verbeteren, dit experimenteerframework is de ultieme oplossing om uw RAG-ontwikkelingstraject te versnellen. Omarm de toekomst van RAG-experimenten en ontgrendel het ware potentieel van uw modellen met dit geavanceerde hulpprogramma.

Medewerkers

Volgende stappen