Reference k hodnocení soudce LLM pro hodnocení agenta AI v systému Mosaic AI
Důležité
Tato funkce je ve verzi Public Preview.
Tento článek popisuje podrobnosti o každém z porotců LLM, které jsou integrované do hodnocení agenta Mosaic AI, včetně požadovaných vstupů a výstupních metrik. Zahrnuje také výstup vytvořený vlastními porotci.
Úvod k porotcům LLM najdete v tématu Jak hodnocení agenta hodnotí kvalitu, náklady a latenci.
Porotci odpovědí
Metriky kvality odpovědí vyhodnocují, jak dobře aplikace reaguje na žádost uživatele. Tyto metriky vyhodnocují faktory, jako je přesnost odpovědi v porovnání se základní pravdou, jestli je odpověď dobře uzemněná vzhledem k načteným kontextu (nebo jestli je LLM halucinace) a jestli je odpověď bezpečná a bez toxického jazyka.
Celkově, dal LLM přesnou odpověď?
correctness
Soudce LLM poskytuje binární vyhodnocení a písemné odůvodnění o tom, zda je vygenerovaná odpověď agenta fakticky přesná a sémanticky podobná poskytnuté odpovědi na základní pravdu.
Požadovaný vstup pro correctness
Základní pravda expected_response
je povinná.
Vstupní sada vyhodnocení musí mít následující sloupce:
request
expected_response
Kromě toho, pokud nepoužíváte model
argument v volání mlflow.evaluate()
, musíte také zadat nebo response
trace
.
Důležité
Základní pravda expected_response
by měla obsahovat pouze minimální sadu faktů, které jsou požadovány pro správnou odpověď. Pokud zkopírujete odpověď z jiného zdroje, upravte odpověď tak, aby se odebral veškerý text, který není nutný k tomu, aby odpověď byla považována za správnou.
Zahrnutím pouze požadovaných informací a vynechání informací, které nejsou v odpovědi výhradně vyžadovány, umožňuje vyhodnocení agenta poskytovat robustnější signál o kvalitě výstupu.
Výstup pro correctness
Pro každou otázku se počítají následující metriky:
Datové pole | Typ | Popis |
---|---|---|
response/llm_judged/correctness/rating |
string |
yes nebo no . yes označuje, že vygenerovaná odpověď je vysoce přesná a sémanticky podobná základní pravdu. Menší vynechání nebo nepřesnosti, které stále zachycují záměr základní pravdy, jsou přijatelné. no značí, že odpověď nesplňuje kritéria. |
response/llm_judged/correctness/rationale |
string |
LLM písemné odůvodnění nebo yes no . |
response/llm_judged/correctness/error_message |
string |
Pokud při výpočtu této metriky došlo k chybě, podrobnosti o této chybě jsou tady. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
Ve všech otázkách je procento správnosti vyhodnoceno jako yes . |
Je odpověď relevantní pro požadavek?
Soudce relevance_to_query
LLM určuje, zda je odpověď relevantní pro vstupní požadavek.
Požadovaný vstup pro relevance_to_query
Základní pravda není nutná.
Vstupní sada vyhodnocení musí mít následující sloupec:
request
Kromě toho, pokud nepoužíváte model
argument v volání mlflow.evaluate()
, musíte také zadat nebo response
trace
.
Výstup pro relevance_to_query
Pro každou otázku se počítají následující metriky:
Datové pole | Typ | Popis |
---|---|---|
response/llm_judged/relevance_to_query/rating |
string |
yes je-li odpověď posouzena jako relevantní pro žádost, no jinak. |
response/llm_judged/relevance_to_query/rationale |
string |
LLM písemné odůvodnění nebo yes no . |
response/llm_judged/relevance_to_query/error_message |
string |
Pokud při výpočtu této metriky došlo k chybě, podrobnosti o této chybě jsou tady. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
Ve všech otázkách, procento, kde relevance_to_query/rating je vyhodnoceno jako yes . |
Je odpověď halucinace, nebo je uzemněná v načteného kontextu?
Soudce groundedness
LLM vrátí binární vyhodnocení a písemné odůvodnění, zda je vygenerovaná odpověď fakticky konzistentní s načteným kontextem.
Požadovaný vstup pro groundedness
Základní pravda není nutná.
Vstupní sada vyhodnocení musí mít následující sloupec:
request
Kromě toho, pokud nepoužíváte model
argument ve volání mlflow.evaluate()
, musíte také zadat buď trace
nebo oba nebo oba retrieved_context[].content
.response
Výstup pro groundedness
Pro každou otázku se počítají následující metriky:
Datové pole | Typ | Popis |
---|---|---|
response/llm_judged/groundedness/rating |
string |
yes pokud načtený kontext podporuje všechny nebo téměř všechny vygenerované odpovědi, no jinak. |
response/llm_judged/groundedness/rationale |
string |
LLM písemné odůvodnění nebo yes no . |
response/llm_judged/groundedness/error_message |
string |
Pokud při výpočtu této metriky došlo k chybě, podrobnosti o této chybě jsou tady. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
V rámci všech otázek je procento, kde groundedness/rating se posuzuje jako yes . |
Je v odpovědi agenta škodlivý obsah?
Soudce safety
LLM vrátí binární hodnocení a písemné odůvodnění, zda vygenerovaná odpověď má škodlivý nebo toxický obsah.
Požadovaný vstup pro safety
Základní pravda není nutná.
Vstupní sada vyhodnocení musí mít následující sloupec:
request
Kromě toho, pokud nepoužíváte model
argument v volání mlflow.evaluate()
, musíte také zadat nebo response
trace
.
Výstup pro safety
Pro každou otázku se počítají následující metriky:
Datové pole | Typ | Popis |
---|---|---|
response/llm_judged/safety/rating |
string |
yes pokud odpověď nemá škodlivý nebo toxický obsah, no jinak. |
response/llm_judged/safety/rationale |
string |
LLM písemné odůvodnění nebo yes no . |
response/llm_judged/safety/error_message |
string |
Pokud při výpočtu této metriky došlo k chybě, podrobnosti o této chybě jsou tady. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
response/llm_judged/safety/rating/average |
float, [0, 1] |
Procento všechotázekch yes |
Načítaní porotci
Metriky kvality načítání vyhodnocují výkon retrieveru při hledání dokumentů, které jsou relevantní pro vstupní požadavek. Tyto metriky vyhodnocují faktory, jako jsou: Našel retriever relevantní bloky dat? Kolik známých relevantních dokumentů zjistilo? Byly nalezeny dokumenty dostatečné k vytvoření očekávané odpovědi?
Našel retriever relevantní bloky dat?
Soudce chunk-relevance-precision
LLM určuje, zda bloky dat vrácené retrieverem jsou relevantní pro vstupní požadavek. Přesnost se vypočítá jako počet relevantních bloků dat vrácených celkovým počtem vrácených bloků dat. Pokud například retriever vrátí čtyři bloky dat a soudce LLM určí, že tři ze čtyř vrácených dokumentů jsou pro požadavek relevantní, pak llm_judged/chunk_relevance/precision
je 0,75.
Požadovaný vstup pro llm_judged/chunk_relevance
Základní pravda není nutná.
Vstupní sada vyhodnocení musí mít následující sloupec:
request
Kromě toho, pokud nepoužíváte model
argument v volání mlflow.evaluate()
, musíte také zadat nebo retrieved_context[].content
trace
.
Výstup pro llm_judged/chunk_relevance
Pro každou otázku se počítají následující metriky:
Datové pole | Typ | Popis |
---|---|---|
retrieval/llm_judged/chunk_relevance/ratings |
array[string] |
Pro každý blok dat nebo no označující, yes jestli je načtený blok dat relevantní pro vstupní požadavek. |
retrieval/llm_judged/chunk_relevance/rationales |
array[string] |
Pro každý blok dat je LLM důvodem pro odpovídající hodnocení. |
retrieval/llm_judged/chunk_relevance/error_messages |
array[string] |
Pokud u každého bloku došlo k chybě při výpočtu hodnocení, podrobnosti o chybě jsou zde a další výstupní hodnoty budou null. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
retrieval/llm_judged/chunk_relevance/precision |
float, [0, 1] |
Vypočítá procento relevantních bloků dat ze všech načtených bloků dat. |
Pro celou sadu vyhodnocení se hlásí následující metrika:
Název metriky | Typ | Popis |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Průměrná hodnota chunk_relevance/precision všech otázek |
Kolik známých relevantních dokumentů našel retriever?
document_recall
se vypočítá jako počet relevantních dokumentů vrácených celkovým počtem relevantních dokumentů na základě základní pravdy. Předpokládejme například, že dva dokumenty jsou relevantní na základě základní pravdy. Pokud retriever vrátí jeden z těchto dokumentů, document_recall
je 0,5. Tato metrika není ovlivněna celkovým počtem vrácených dokumentů.
Tato metrika je deterministická a nepoužívá soudce LLM.
Požadovaný vstup pro document_recall
Základní pravda je povinná.
Vstupní sada vyhodnocení musí mít následující sloupec:
expected_retrieved_context[].doc_uri
Kromě toho, pokud nepoužíváte model
argument v volání mlflow.evaluate()
, musíte také zadat nebo retrieved_context[].doc_uri
trace
.
Výstup pro document_recall
Pro každou otázku se vypočítá následující metrika:
Datové pole | Typ | Popis |
---|---|---|
retrieval/ground_truth/document_recall |
float, [0, 1] |
Procento základní pravdy doc_uris , které jsou přítomné v načtených blocích. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
retrieval/ground_truth/document_recall/average |
float, [0, 1] |
Průměrná hodnota document_recall všech otázek |
Našel retriever dostatečné dokumenty k vytvoření očekávané odpovědi?
Soudce context_sufficiency
LLM určuje, zda retriever načetl dokumenty, které jsou dostatečné k vytvoření očekávané odpovědi.
Požadovaný vstup pro context_sufficiency
Základní pravda je povinná expected_response
.
Vstupní sada vyhodnocení musí mít následující sloupce:
request
expected_response
Kromě toho, pokud nepoužíváte model
argument v volání mlflow.evaluate()
, musíte také zadat nebo retrieved_context[].content
trace
.
Výstup pro context_sufficiency
Pro každou otázku se počítají následující metriky:
Datové pole | Typ | Popis |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating |
string |
yes nebo no . yes značí, že načtený kontext stačí k vytvoření očekávané odpovědi. no značí, že pro tuto otázku je potřeba ladit načtení, aby se vrátily chybějící informace. Zdůvodnění výstupu by mělo zmínit, jaké informace chybí. |
retrieval/llm_judged/context_sufficiency/rationale |
string |
LLM písemné odůvodnění nebo yes no . |
retrieval/llm_judged/context_sufficiency/error_message |
string |
Pokud při výpočtu této metriky došlo k chybě, podrobnosti o této chybě jsou tady. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
Procento, kde je kontextová efektivita vyhodnocena jako yes . |
Metriky vlastního soudce
Můžete vytvořit vlastní soudce, který provede posouzení specifická pro váš případ použití. Podrobnosti najdete v tématu Vytvoření vlastních porotců LLM.
Výstup vytvořený vlastním soudcem závisí na jeho assessment_type
, ANSWER
nebo RETRIEVAL
.
Vlastní soudce LLM pro posouzení ODPOVĚDÍ
Vlastní soudce LLM pro posouzení ODPOVĚDÍ vyhodnotí odpověď pro každou otázku.
Výstupy poskytované pro každé posouzení:
Datové pole | Typ | Popis |
---|---|---|
response/llm_judged/{assessment_name}/rating |
string |
yes nebo no . |
response/llm_judged/{assessment_name}/rationale |
string |
LLM písemné odůvodnění nebo yes no . |
response/llm_judged/{assessment_name}/error_message |
string |
Pokud při výpočtu této metriky došlo k chybě, podrobnosti o této chybě jsou tady. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
Pro celou sadu vyhodnocení se vypočítá následující metrika:
Název metriky | Typ | Popis |
---|---|---|
response/llm_judged/{assessment_name}/rating/percentage |
float, [0, 1] |
Ve všech otázkách je procento, kde {assessment_name} se posuzuje jako yes . |
Vlastní soudce LLM pro hodnocení NAČÍTÁNÍ
Vlastní soudce LLM pro hodnocení RETRIEVEAL vyhodnocuje každý načtený blok dat napříč všemi otázkami.
Výstupy poskytované pro každé posouzení:
Datové pole | Typ | Popis |
---|---|---|
retrieval/llm_judged/{assessment_name}/ratings |
array[string] |
Vyhodnocení vlastního soudce pro každý blok dat neboyes no . |
retrieval/llm_judged/{assessment_name}/rationales |
array[string] |
Pro každý blok dat je LLM napsané odůvodnění nebo yes no . |
retrieval/llm_judged/{assessment_name}/error_messages |
array[string] |
Pokud u každého bloku došlo k chybě při výpočtu této metriky, jsou zde podrobnosti o chybě a další hodnoty mají hodnotu NULL. Pokud se žádná chyba nezobrazí, jedná se o hodnotu NULL. |
retrieval/llm_judged/{assessment_name}/precision |
float, [0, 1] |
Procento všech načtených bloků dat, které vlastní soudce vyhodnotil jako yes . |
Metriky hlášené pro celou sadu vyhodnocení:
Název metriky | Typ | Popis |
---|---|---|
retrieval/llm_judged/{assessment_name}/precision/average |
float, [0, 1] |
Průměrná hodnota {assessment_name}_precision všech otázek |