Dela via


Mosaic AI Agent Evaluation LLM-domarreferens

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Den här artikeln beskriver information om var och en av LLM-domarna som är inbyggd i Mosaic AI Agent Evaluation, inklusive nödvändiga indata och utdatamått. Det omfattar också de resultat som produceras av anpassade domare.

En introduktion till LLM-domare finns i Hur kvalitet, kostnad och svarstid utvärderas av agentutvärdering.

Not

För konversationer med flera turer utvärderar LLM-domare endast det sista inlägget i konversationen.

I följande table listas de inbyggda domarna:

Domarens namn Steg Kvalitetsaspekt som domaren bedömer
relevance_to_query Svar Har svarsadressen (är det relevant för) användarens begäran?
groundedness Svar Är det genererade svaret grundat i den hämtade kontexten (inte hallucinerande)?
safety Svar Finns det skadligt eller giftigt innehåll i svaret?
correctness Svar Är det genererade svaret korrekt (jämfört med grundsanningen)?
guideline_adherence Svar Följer det genererade svaret de angivna riktlinjerna?
chunk_relevance Räddning Hittade hämtaren segment som är användbara (relevanta) för att besvara användarens begäran?
document_recall Räddning Hur många av de kända relevanta dokumenten hittade hämtaren?
context_sufficiency Räddning Hittade hämtaren dokument med tillräcklig information för att generera det förväntade svaret?

Svarsdomare

Mått för svarskvalitet utvärderar hur väl programmet svarar på en användares begäran. Dessa mått utvärderar faktorer som noggrannheten i svaret jämfört med grund sanning, om svaret är välgrundat med tanke på den hämtade kontexten (eller om LLM hallucinerar) och om svaret är säkert och fritt från giftigt språk.

Gav LLM ett korrekt svar på det hela taget?

correctness LLM-domaren ger en binär utvärdering och en skriftlig motivering om huruvida agentens genererade svar är faktamässigt korrekt och semantiskt liknar det tillhandahållna svaret på grundsanningen.

Indata som krävs för correctness

Grundsanningen expected_response krävs.

Indatautvärderingen set måste ha följande columns:

  • request
  • expected_response

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen response eller trace.

Viktigt!

Den grundläggande sanningen expected_response bör innehålla endast den minimala set av fakta som krävs för ett korrekt svar. Om du kopierar ett svar från en annan källa redigerar du svaret till remove all text som inte krävs för att ett svar ska anses vara korrekt.

Genom att endast inkludera nödvändig information och utelämna information som inte är strikt nödvändig i svaret kan agentutvärderingen ge en mer robust signal om utdatakvaliteten.

Utdata för correctness

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
response/llm_judged/correctness/rating string yes eller no. yes anger att det genererade svaret är mycket exakt och semantiskt likt grundsanningen. Mindre utelämnanden eller felaktigheter som fortfarande fångar avsikten med den grundläggande sanningen är acceptabla. no anger att svaret inte uppfyller kriterierna.
response/llm_judged/correctness/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/correctness/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
response/llm_judged/correctness/rating/percentage float, [0, 1] För alla frågor bedöms procentuell where korrekthet som yes.

Är svaret relevant för begäran?

relevance_to_query LLM-domaren avgör om svaret är relevant för indatabegäran.

Indata som krävs för relevance_to_query

Grund sanning krävs inte.

Indatautvärderingen set måste ha följande column:

  • request

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen response eller trace.

Utdata för relevance_to_query

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
response/llm_judged/relevance_to_query/rating string yes om svaret bedöms vara relevant för begäran, no annars.
response/llm_judged/relevance_to_query/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/relevance_to_query/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
response/llm_judged/relevance_to_query/rating/percentage float, [0, 1] I alla frågor bedöms procentandelen whererelevance_to_query/rating vara yes.

Är svaret en hallucination, eller är det grundat i den hämtade kontexten?

groundedness LLM-domaren returnerar en binär utvärdering och en skriftlig motivering om huruvida det genererade svaret är sakligt konsekvent med den hämtade kontexten.

Indata som krävs för groundedness

Grund sanning krävs inte.

Indatautvärderingen set måste ha följande column:

  • request

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen trace eller båda av response och retrieved_context[].content.

Utdata för groundedness

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
response/llm_judged/groundedness/rating string yes om den hämtade kontexten stöder alla eller nästan alla genererade svar, no annars.
response/llm_judged/groundedness/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/groundedness/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
response/llm_judged/groundedness/rating/percentage float, [0, 1] Vad är procentandelen av alla frågor där wheregroundedness/rating bedöms som yes?

Följer det genererade svaret de angivna riktlinjerna?

Den guideline_adherence LLM-juryn returnerar en binär utvärdering och en skriftlig motivering om svaret följer guidelines.

Indata som krävs för guideline_adherence

Grund sanning krävs inte.

Indatautvärderingen set måste ha följande columns:

  • request
  • guidelines

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen trace eller response. Vissa riktlinjer kan gälla globalt för hela utvärderingen set. I stället för att kopiera dessa riktlinjer för varje utvärdering kan du ange global_guidelines i utvärderingskonfigurationen på följande sätt:

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",
            ],
        }
    }
)

Utdata för guideline_adherence

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
response/llm_judged/guideline_adherence/rating string yes om svaret följer alla riktlinjer no annars.
response/llm_judged/guideline_adherence/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/guideline_adherence/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.
response/llm_judged/global_guideline_adherence/rating string yes om svaret följer alla globala riktlinjer no annars.
response/llm_judged/global_guideline_adherence/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/global_guideline_adherence/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

| Måttnamn | Typ | Beskrivning | |—–|—–|—–| | response/llm_judged/guideline_adherence/rating/percentage | float, [0, 1] | Vad är procentandelen whereguideline_adherence/rating som bedöms som yesi alla frågor. | response/llm_judged/global_guideline_adherence/rating/percentage | float, [0, 1] | Vad är procentandelen av whereglobal_guideline_adherence/rating som bedöms som yesi alla frågor?

Finns det skadligt innehåll i agentsvaret?

safety LLM-domaren returnerar ett binärt omdöme och en skriftlig motivering om huruvida det genererade svaret har skadligt eller giftigt innehåll.

Indata som krävs för safety

Grund sanning krävs inte.

Indatautvärderingen set måste ha följande column:

  • request

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen response eller trace.

Utdata för safety

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
response/llm_judged/safety/rating string yes om svaret inte har skadligt eller giftigt innehåll, no annars.
response/llm_judged/safety/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/safety/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
response/llm_judged/safety/rating/average float, [0, 1] Procentandel av alla frågor som bedömdes vara yes.

Hämtningsdomare

Hämtningskvalitetsmått utvärderar datahämtarens prestanda för att hitta de dokument som är relevanta för indatabegäran. Dessa mått utvärderar faktorer som: Hittade hämtaren relevanta segment? Hur många av de kända relevanta dokumenten hittade den? Var dokumenten tillräckliga för att ge det förväntade svaret?

Hittade hämtaren relevanta segment?

chunk-relevance-precision LLM-domaren avgör om de segment som returneras av hämtaren är relevanta för indatabegäran. Precision beräknas som antalet relevanta segment som returneras dividerat med det totala antalet segment som returneras. Om hämtaren till exempel returnerar fyra segment och LLM-domaren fastställer att tre av de fyra returnerade dokumenten är relevanta för begäran är det llm_judged/chunk_relevance/precision 0,75.

Indata som krävs för llm_judged/chunk_relevance

Grund sanning krävs inte.

Indatautvärderingen set måste ha följande column:

  • request

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen retrieved_context[].content eller trace.

Utdata för llm_judged/chunk_relevance

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
retrieval/llm_judged/chunk_relevance/ratings array[string] För varje segment, yes eller no, som anger om det hämtade segmentet är relevant för indatabegäran.
retrieval/llm_judged/chunk_relevance/rationales array[string] För varje segment resonerar LLM för motsvarande omdöme.
retrieval/llm_judged/chunk_relevance/error_messages array[string] För varje segment, om det uppstod ett fel vid beräkning av klassificeringen, finns information om felet här och andra utdata values är NULL. Om inget fel uppstår är detta NULL.
retrieval/llm_judged/chunk_relevance/precision float, [0, 1] Beräknar procentandelen relevanta segment bland alla hämtade segment.

Följande mått rapporteras för hela utvärderingen set:

Måttnamn Typ Beskrivning
retrieval/llm_judged/chunk_relevance/precision/average float, [0, 1] Genomsnittligt värde för chunk_relevance/precision alla frågor.

Hur många av de kända relevanta dokumenten hittade hämtaren?

document_recall beräknas som antalet relevanta dokument som returneras dividerat med det totala antalet relevanta dokument baserat på grund sanning. Anta till exempel att två dokument är relevanta baserat på grund sanning. Om hämtaren returnerar ett av dessa dokument är document_recall 0,5. Det här måttet påverkas inte av det totala antalet dokument som returneras.

Det här måttet är deterministiskt och använder ingen LLM-domare.

Indata som krävs för document_recall

Mark sanning krävs.

Indatautvärderingen set måste ha följande column:

  • expected_retrieved_context[].doc_uri

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen retrieved_context[].doc_uri eller trace.

Utdata för document_recall

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
retrieval/ground_truth/document_recall float, [0, 1] Procentandelen av den jordsanning doc_uris som finns i de hämtade segmenten.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
retrieval/ground_truth/document_recall/average float, [0, 1] Genomsnittligt värde för document_recall alla frågor.

Hittade hämtaren dokument som var tillräckliga för att generera det förväntade svaret?

context_sufficiency LLM-domaren avgör om hämtaren har hämtat dokument som är tillräckliga för att generera det förväntade svaret.

Indata som krävs för context_sufficiency

Mark sanning expected_response krävs.

Indatautvärderingen set måste ha följande columns:

  • request
    • expected_response

Om du inte använder model argumentet i anropet till mlflow.evaluate()måste du också ange antingen retrieved_context[].content eller trace.

Utdata för context_sufficiency

Följande mått beräknas för varje fråga:

Datafält Typ Beskrivning
retrieval/llm_judged/context_sufficiency/rating string yes eller no. yes anger att den hämtade kontexten är tillräcklig för att generera det förväntade svaret. no anger att hämtningen måste justeras för den här frågan så att den hämtar tillbaka den information som saknas. Utdatamotivationen bör ange vilken information som saknas.
retrieval/llm_judged/context_sufficiency/rationale string LLM:s skriftliga resonemang för yes eller no.
retrieval/llm_judged/context_sufficiency/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
retrieval/llm_judged/context_sufficiency/rating/percentage float, [0, 1] Procentandelen where kontextens tillräcklighet bedöms som yes.

Anpassade bedömningsmått

Du kan skapa en anpassad domare för att utföra utvärderingar som är specifika för ditt användningsfall. Mer information finns i Skapa anpassade LLM-domare.

Utdata som genereras av en anpassad domare beror på dess assessment_type, ANSWER eller RETRIEVAL.

Anpassad LLM-domare för ANSWER-utvärdering

En anpassad LLM-domare för ANSWER-utvärdering utvärderar svaret för varje fråga.

Utdata som tillhandahålls för varje utvärdering:

Datafält Typ Beskrivning
response/llm_judged/{assessment_name}/rating string yes eller no.
response/llm_judged/{assessment_name}/rationale string LLM:s skriftliga resonemang för yes eller no.
response/llm_judged/{assessment_name}/error_message string Om det uppstod ett fel vid beräkning av det här måttet finns information om felet här. Om inget fel uppstår är detta NULL.

Följande mått beräknas för hela utvärderingen set:

Måttnamn Typ Beskrivning
response/llm_judged/{assessment_name}/rating/percentage float, [0, 1] I alla frågor bedöms procentandelen where {assessment_name} som yes.

Anpassad LLM-domare för RETRIEVAL-utvärdering

En anpassad LLM-domare för RETRIEVAL-utvärdering utvärderar varje hämtat segment i alla frågor.

Utdata som tillhandahålls för varje utvärdering:

Datafält Typ Beskrivning
retrieval/llm_judged/{assessment_name}/ratings array[string] Utvärdering av den anpassade domaren för varje segment,yes eller no.
retrieval/llm_judged/{assessment_name}/rationales array[string] För varje segment är LLM:s skriftliga resonemang för yes eller no.
retrieval/llm_judged/{assessment_name}/error_messages array[string] För varje segment, om det uppstod ett fel vid beräkning av det här måttet, finns information om felet här och andra values är NULL. Om inget fel uppstår är detta NULL.
retrieval/llm_judged/{assessment_name}/precision float, [0, 1] Procentandel av alla hämtade segment som den anpassade domaren utvärderade som yes.

Mått som rapporterats för hela utvärderingen set:

Måttnamn Typ Beskrivning
retrieval/llm_judged/{assessment_name}/precision/average float, [0, 1] Genomsnittligt värde för {assessment_name}_precision alla frågor.