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 yes
i 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 yes
i 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. |