Delen via


Mozaïek AI Agent Evaluation LLM beoordeelt verwijzing

Belangrijk

Deze functie is beschikbaar als openbare preview.

In dit artikel worden de details besproken van elk van de LLM-rechters die zijn ingebouwd in De evaluatie van de Mozaïek AI-agent, inclusief vereiste invoer- en uitvoergegevens. Ook wordt de uitvoer behandeld die door aangepaste rechters wordt geproduceerd.

Zie Hoe kwaliteit, kosten en latentie worden beoordeeld door agentevaluatie voor een inleiding tot LLM-rechters.

Notitie

Voor gesprekken met meerdere beurten evalueren LLM-beoordelaars alleen de laatste bijdrage in het gesprek.

In de volgende table worden de ingebouwde rechters vermeld:

Naam van de rechter Stap Kwaliteitsaspect dat de rechter beoordeelt
relevance_to_query Antwoord Is het antwoord relevant voor de aanvraag van de gebruiker?
groundedness Antwoord Is het gegenereerde antwoord gebaseerd op de opgehaalde context (zonder hallucinaties)?
safety Antwoord Is er schadelijke of giftige inhoud in het antwoord?
correctness Antwoord Is het gegenereerde antwoord nauwkeurig (vergeleken met de grondwaar)?
guideline_adherence Antwoord Voldoet het gegenereerde antwoord aan de opgegeven richtlijnen?
chunk_relevance Ophalen heeft de retriever segmenten gevonden die nuttig (relevant) zijn bij het beantwoorden van de aanvraag van de gebruiker?
document_recall Ophalen Hoeveel van de bekende relevante documenten heeft de retriever gevonden?
context_sufficiency Ophalen heeft de retriever documenten met voldoende informatie gevonden om het verwachte antwoord te produceren?

Antwoordrechters

Metrische gegevens over de responskwaliteit beoordelen hoe goed de toepassing reageert op de aanvraag van een gebruiker. Deze metrische gegevens evalueren factoren zoals de nauwkeurigheid van het antwoord in vergelijking met de grondwaar, of het antwoord goed is geaard op basis van de opgehaalde context (of als de LLM hallucineert), en of het antwoord veilig en vrij van giftige taal is.

Heeft de LLM over het algemeen een nauwkeurig antwoord verstrekt?

De correctness LLM-rechter geeft een binaire evaluatie en schriftelijke logica over of het gegenereerde antwoord van de agent feitelijk nauwkeurig en semantisch vergelijkbaar is met het gegeven antwoord op grondwaar.

Invoer vereist voor correctness

De grond waarheid expected_response is vereist.

De invoerevaluatie set moet aan de volgende columnsvoldoen:

  • request
  • expected_response

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven response of trace.

Belangrijk

De grondwaar expected_response moet alleen de minimale set feiten bevatten die nodig zijn voor een juiste reactie. Als u een antwoord van een andere bron kopieert, bewerkt u het antwoord op remove tekst die niet is vereist om een antwoord als correct te laten worden beschouwd.

Door alleen de vereiste informatie op te geven en informatie weg te laten die niet strikt vereist is in het antwoord, kan agentevaluatie een robuuster signaal over de uitvoerkwaliteit bieden.

Uitvoer voor correctness

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
response/llm_judged/correctness/rating string yes of no. yes geeft aan dat het gegenereerde antwoord zeer nauwkeurig en semantisch vergelijkbaar is met de grondwaar. Kleine weglatingen of onnauwkeurigheden die nog steeds de bedoeling van de grondwaar vastleggen, zijn aanvaardbaar. no geeft aan dat het antwoord niet voldoet aan de criteria.
response/llm_judged/correctness/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/correctness/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
response/llm_judged/correctness/rating/percentage float, [0, 1] Voor alle vragen wordt percentage where juistheid beoordeeld als yes.

Is het antwoord relevant voor de aanvraag?

De relevance_to_query LLM-rechter bepaalt of het antwoord relevant is voor de invoeraanvraag.

Invoer vereist voor relevance_to_query

Grondwaar is niet vereist.

De invoerevaluatie set moet de volgende columnhebben:

  • request

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven response of trace.

Uitvoer voor relevance_to_query

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
response/llm_judged/relevance_to_query/rating string yes als het antwoord relevant is voor het verzoek, no anders.
response/llm_judged/relevance_to_query/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/relevance_to_query/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
response/llm_judged/relevance_to_query/rating/percentage float, [0, 1] Voor alle vragen wordt het percentage whererelevance_to_query/rating beoordeeld als yes.

Is het antwoord een hallucinatie of is het geaard in de opgehaalde context?

De groundedness LLM-rechter retourneert een binaire evaluatie en schriftelijke logica over of het gegenereerde antwoord feitelijk consistent is met de opgehaalde context.

Invoer vereist voor groundedness

Grondwaar is niet vereist.

De invoerevaluatie set moet de volgende columnbevatten:

  • request

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een trace of beide response en retrieved_context[].content.

Uitvoer voor groundedness

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
response/llm_judged/groundedness/rating string yes als de opgehaalde context alle of bijna alle gegenereerde antwoorden ondersteunt, no anders.
response/llm_judged/groundedness/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/groundedness/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
response/llm_judged/groundedness/rating/percentage float, [0, 1] Wat is het percentage dat wheregroundedness/rating als yeswordt beoordeeld voor alle vragen?

Voldoet het gegenereerde antwoord aan de opgegeven richtlijnen?

De guideline_adherence LLM-rechter retourneert een binaire evaluatie en schriftelijke onderbouwing over de vraag of het gegenereerde antwoord voldoet aan de guidelines.

Invoer vereist voor guideline_adherence

Grondwaar is niet vereist.

De invoerevaluatie set moet aan de volgende columnsvoldoen:

  • request
  • guidelines

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven trace of response. Sommige richtlijnen kunnen wereldwijd van toepassing zijn op uw volledige evaluatie set. In plaats van deze richtlijnen voor elke evaluatie te kopiëren, kunt u als volgt global_guidelines opgeven in de evaluatorconfiguratie:

eval_set = [
    {
        "request": "What is the difference between reduceByKey and groupByKey in Spark?",
        "response": "reduceByKey aggregates data before shuffling, whereas groupByKey shuffles all data, making reduceByKey more efficient.",
        "guidelines": [
            "The response must be in English",
            "The response must be clear, coherent, and concise",
        ]
    }
]

mlflow.evaluate(
    data=pd.DataFrame(eval_set),
    model_type="databricks-agent",
    evaluator_config={
        "databricks-agent": {
            "global_guidelines": [
                "The response must be in English",
                "The response must be clear, coherent, and concise",
            ],
        }
    }
)

Uitvoer voor guideline_adherence

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
response/llm_judged/guideline_adherence/rating string yes als het antwoord voldoet aan alle richtlijnen, no anders.
response/llm_judged/guideline_adherence/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/guideline_adherence/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.
response/llm_judged/global_guideline_adherence/rating string yes als het antwoord voldoet aan alle algemene richtlijnen, no anders.
response/llm_judged/global_guideline_adherence/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/global_guideline_adherence/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

| Metrieknaam | Type | Beschrijving | |—–|—|—| | response/llm_judged/guideline_adherence/rating/percentage | float, [0, 1] | Wat is het percentage dat whereguideline_adherence/rating wordt beoordeeld als yesvoor alle vragen. | response/llm_judged/global_guideline_adherence/rating/percentage | float, [0, 1] | Wat is het percentage waarbij whereglobal_guideline_adherence/rating wordt beoordeeld als yesvoor alle vragen.

Is er schadelijke inhoud in het antwoord van de agent?

De safety LLM-rechter retourneert een binaire classificatie en een schriftelijke logica over of het gegenereerde antwoord schadelijke of giftige inhoud heeft.

Invoer vereist voor safety

Grondwaar is niet vereist.

De invoerevaluatie set moet aan de volgende columnvoldoen.

  • request

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven response of trace.

Uitvoer voor safety

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
response/llm_judged/safety/rating string yes als het antwoord geen schadelijke of giftige inhoud heeft, no anders.
response/llm_judged/safety/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/safety/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
response/llm_judged/safety/rating/average float, [0, 1] Percentage van alle vragen die werden beoordeeld.yes

Rechters ophalen

Metrische gegevens over kwaliteit ophalen beoordelen de prestaties van de retriever bij het vinden van de documenten die relevant zijn voor de invoeraanvraag. Deze metrische gegevens evalueren factoren zoals: Heeft de retriever de relevante segmenten gevonden? Hoeveel van de bekende relevante documenten zijn er gevonden? Waren de documenten voldoende om het verwachte antwoord te produceren?

Heeft de retriever relevante segmenten gevonden?

De chunk-relevance-precision LLM-rechter bepaalt of de segmenten die door de retriever worden geretourneerd relevant zijn voor de invoeraanvraag. Precisie wordt berekend als het aantal relevante segmenten dat wordt geretourneerd gedeeld door het totale aantal geretourneerde segmenten. Als de retriever bijvoorbeeld vier segmenten retourneert en de LLM-rechter bepaalt dat drie van de vier geretourneerde documenten relevant zijn voor de aanvraag, is dat llm_judged/chunk_relevance/precision 0,75.

Invoer vereist voor llm_judged/chunk_relevance

Grondwaar is niet vereist.

De invoerevaluatie set moet het volgende columnbevatten:

  • request

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven retrieved_context[].content of trace.

Uitvoer voor llm_judged/chunk_relevance

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
retrieval/llm_judged/chunk_relevance/ratings array[string] Voor elk segment of yesno, waarmee wordt aangegeven of het opgehaalde segment relevant is voor de invoeraanvraag.
retrieval/llm_judged/chunk_relevance/rationales array[string] Voor elk segment beredeert LLM de redenering voor de bijbehorende classificatie.
retrieval/llm_judged/chunk_relevance/error_messages array[string] Als er voor elk segment een fout is opgetreden bij het berekenen van de classificatie, zijn de details van de fout hier en zijn andere uitvoer values NULL. Als er geen fout optreedt, is dit NULL.
retrieval/llm_judged/chunk_relevance/precision float, [0, 1] Berekent het percentage relevante segmenten tussen alle opgehaalde segmenten.

De volgende metrische gegevens worden gerapporteerd voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
retrieval/llm_judged/chunk_relevance/precision/average float, [0, 1] De gemiddelde waarde van chunk_relevance/precision alle vragen.

Hoeveel van de bekende relevante documenten heeft de retriever gevonden?

document_recall wordt berekend als het aantal relevante documenten dat wordt geretourneerd, gedeeld door het totale aantal relevante documenten op basis van grondwaar. Stel dat twee documenten relevant zijn op basis van grondwaar. Als de retriever een van deze documenten retourneert, document_recall is dit 0,5. Deze metrische waarde wordt niet beïnvloed door het totale aantal geretourneerde documenten.

Deze metrische waarde is deterministisch en gebruikt geen LLM-rechter.

Invoer vereist voor document_recall

Grond waarheid is vereist.

De invoerevaluatie set moet de volgende columnhebben:

  • expected_retrieved_context[].doc_uri

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven retrieved_context[].doc_uri of trace.

Uitvoer voor document_recall

De volgende metrische waarde wordt berekend voor elke vraag:

Gegevensveld Type Description
retrieval/ground_truth/document_recall float, [0, 1] Het percentage grondwaar doc_uris dat aanwezig is in de opgehaalde segmenten.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
retrieval/ground_truth/document_recall/average float, [0, 1] De gemiddelde waarde van document_recall alle vragen.

Heeft de retriever documenten gevonden die voldoende zijn om het verwachte antwoord te produceren?

De context_sufficiency LLM-rechter bepaalt of de retriever documenten heeft opgehaald die voldoende zijn om het verwachte antwoord te produceren.

Invoer vereist voor context_sufficiency

Grond waarheid expected_response is vereist.

De invoerevaluatie set moet de volgende columnsbevatten:

  • request
    • expected_response

Als u het argument in de aanroep modelniet gebruiktmlflow.evaluate(), moet u ook een van beide opgeven retrieved_context[].content of trace.

Uitvoer voor context_sufficiency

De volgende metrische gegevens worden voor elke vraag berekend:

Gegevensveld Type Description
retrieval/llm_judged/context_sufficiency/rating string yes of no. yes geeft aan dat de opgehaalde context voldoende is om het verwachte antwoord te produceren. no geeft aan dat het ophalen moet worden afgestemd op deze vraag, zodat deze de ontbrekende informatie terugbrengt. In de uitvoerreden moet worden vermeld welke informatie ontbreekt.
retrieval/llm_judged/context_sufficiency/rationale string De schriftelijke redenering van LLM voor yes of no.
retrieval/llm_judged/context_sufficiency/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
retrieval/llm_judged/context_sufficiency/rating/percentage float, [0, 1] Percentage where contextsufficiëntie wordt beoordeeld als yes.

Metrische gegevens voor aangepaste rechters

U kunt een aangepaste rechter maken om evaluaties uit te voeren die specifiek zijn voor uw use-case. Zie Aangepaste LLM-rechters maken voor meer informatie.

De uitvoer die door een aangepaste rechter wordt geproduceerd, is afhankelijk van de assessment_typeof ANSWERRETRIEVAL.

Aangepaste LLM-rechter voor ANSWER-evaluatie

Een aangepaste LLM-rechter voor ANSWER-evaluatie evalueert het antwoord voor elke vraag.

Uitvoer voor elke evaluatie:

Gegevensveld Type Description
response/llm_judged/{assessment_name}/rating string yes of no.
response/llm_judged/{assessment_name}/rationale string De schriftelijke redenering van LLM voor yes of no.
response/llm_judged/{assessment_name}/error_message string Als er een fout is opgetreden bij het berekenen van deze metrische gegevens, vindt u hier details van de fout. Als er geen fout optreedt, is dit NULL.

De volgende metrische waarde wordt berekend voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
response/llm_judged/{assessment_name}/rating/percentage float, [0, 1] Voor alle vragen wordt het percentage where {assessment_name} beoordeeld als yes.

Aangepaste LLM-rechter voor EVALUATIE VAN OPHALEN

Een aangepaste LLM-rechter voor de evaluatie van HET OPHALEN VAN GEGEVENS evalueert elke opgehaalde chunk voor alle vragen.

Uitvoer voor elke evaluatie:

Gegevensveld Type Description
retrieval/llm_judged/{assessment_name}/ratings array[string] Evaluatie van de aangepaste rechter voor elk segment,yes of no.
retrieval/llm_judged/{assessment_name}/rationales array[string] Voor elk segment heeft LLM geschreven redenering voor yes of no.
retrieval/llm_judged/{assessment_name}/error_messages array[string] Voor elk segment, als er een fout is opgetreden bij het berekenen van deze metriek, zijn de details van de fout hier beschikbaar en zijn andere values NULL. Als er geen fout optreedt, is dit NULL.
retrieval/llm_judged/{assessment_name}/precision float, [0, 1] Percentage van alle opgehaalde segmenten die de aangepaste rechter heeft geëvalueerd als yes.

Gerapporteerde metrische gegevens voor de volledige evaluatie-set:

Naam van meetwaarde Type Description
retrieval/llm_judged/{assessment_name}/precision/average float, [0, 1] De gemiddelde waarde van {assessment_name}_precision alle vragen.