Udostępnij za pośrednictwem


Dokumentacja sędziów oceny agenta mozaiki AI LLM

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W tym artykule opisano szczegóły poszczególnych sędziów LLM wbudowanych w ocenę agenta mozaiki sztucznej inteligencji, w tym wymagane dane wejściowe i metryki danych wyjściowych. Obejmuje również dane wyjściowe generowane przez sędziów niestandardowych.

Aby zapoznać się z wprowadzeniem do sędziów LLM, zobacz Jak jakość, koszt i opóźnienie są oceniane przez ocenę agenta.

Notatka

W przypadku rozmów wieloturnowych sędziowie LLM oceniają tylko ostatni wpis w rozmowie.

Na poniższej table wymieniono wbudowanych sędziów:

Nazwisko sędziego Krok Aspekt jakości oceniany przez sędziego
relevance_to_query Odpowiedź Czy odpowiedź odpowiada (czy jest istotna dla) żądania użytkownika?
groundedness Odpowiedź Czy wygenerowana odpowiedź jest uziemiona w pobranym kontekście (nie halucynacja)?
safety Odpowiedź Czy w odpowiedzi występuje szkodliwa lub toksyczna treść?
correctness Odpowiedź Czy wygenerowana odpowiedź jest dokładna (w porównaniu z rzeczywistym stanem)?
guideline_adherence Odpowiedź Czy wygenerowana odpowiedź jest zgodna z podanymi wytycznymi?
chunk_relevance Pobieranie Czy retriever znalazł fragmenty, które są przydatne (istotne) w odpowiedzi na żądanie użytkownika?
document_recall Pobieranie Ile znanych istotnych dokumentów znalazło program retriever?
context_sufficiency Pobieranie Czy program retriever znalazł dokumenty z wystarczającą ilością informacji, aby wygenerować oczekiwaną odpowiedź?

Sędziowie odpowiedzi

Metryki jakości odpowiedzi oceniają, jak dobrze aplikacja odpowiada na żądanie użytkownika. Te metryki oceniają czynniki, takie jak dokładność odpowiedzi w porównaniu z prawdą naziemną, czy odpowiedź jest dobrze uziemiona, biorąc pod uwagę pobrany kontekst (lub jeśli LLM jest halucynacja) i czy odpowiedź jest bezpieczna i wolna od toksycznego języka.

Ogólnie rzecz biorąc, czy LLM dał dokładną odpowiedź?

Sędzia correctness LLM daje binarną ocenę i pisemne uzasadnienie, czy wygenerowana odpowiedź agenta jest rzeczywiście dokładna i semantycznie podobna do dostarczonej odpowiedzi w prawdzie.

Dane wejściowe wymagane dla correctness

Wymagana jest podstawa prawdy expected_response .

Ocena wejściowa set musi mieć następujące columns:

  • request
  • expected_response

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać response wartość lub trace.

Ważne

Podstawa prawdy expected_response powinna zawierać tylko minimalną liczbę set faktów wymaganych do poprawnej odpowiedzi. Jeśli skopiujesz odpowiedź z innego źródła, zmodyfikuj odpowiedź, aby remove dowolny tekst, który nie jest wymagany, aby odpowiedź była uważana za poprawną.

Uwzględnienie tylko wymaganych informacji i pozostawienie informacji, które nie są ściśle wymagane w odpowiedzi, umożliwia ocenę agenta w celu zapewnienia bardziej niezawodnego sygnału jakości danych wyjściowych.

Dane wyjściowe dla correctness

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
response/llm_judged/correctness/rating string Usługa yes lub no. yes wskazuje, że wygenerowana odpowiedź jest bardzo dokładna i semantycznie podobna do podstawowej prawdy. Drobne pominięcia lub niedokładności, które nadal uchwycą intencję podstawowej prawdy, są dopuszczalne. no wskazuje, że odpowiedź nie spełnia kryteriów.
response/llm_judged/correctness/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/correctness/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej oceny set:

Nazwa metryki Type Opis
response/llm_judged/correctness/rating/percentage float, [0, 1] We wszystkich pytaniach wartość procentowa where poprawności jest oceniana jako yes.

Czy odpowiedź dotyczy żądania?

Sędzia relevance_to_query LLM określa, czy odpowiedź jest odpowiednia dla żądania wejściowego.

Dane wejściowe wymagane dla relevance_to_query

Prawda naziemna nie jest wymagana.

Ocena wejściowa set musi mieć następujące column:

  • request

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać response wartość lub trace.

Dane wyjściowe dla relevance_to_query

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
response/llm_judged/relevance_to_query/rating string yes jeśli odpowiedź jest oceniana jako odpowiednia dla żądania, no w przeciwnym razie.
response/llm_judged/relevance_to_query/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/relevance_to_query/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej oceny set.

Nazwa metryki Type Opis
response/llm_judged/relevance_to_query/rating/percentage float, [0, 1] We wszystkich pytaniach procent whererelevance_to_query/rating jest oceniany jako yes.

Czy odpowiedź jest halucynacją, czy jest uziemiona w pobranym kontekście?

Sędzia groundedness LLM zwraca ocenę binarną i pisemne uzasadnienie, czy wygenerowana odpowiedź jest faktycznie zgodna z pobranym kontekstem.

Dane wejściowe wymagane dla groundedness

Prawda naziemna nie jest wymagana.

Ocena danych wejściowych set musi mieć następujące column:

  • request

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać trace wartość lub obie wartości response i retrieved_context[].content.

Dane wyjściowe dla groundedness

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
response/llm_judged/groundedness/rating string yes jeśli pobrany kontekst obsługuje wszystkie lub prawie wszystkie wygenerowane odpowiedzi, no w przeciwnym razie.
response/llm_judged/groundedness/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/groundedness/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej oceny set:

Nazwa metryki Type Opis
response/llm_judged/groundedness/rating/percentage float, [0, 1] W odniesieniu do wszystkich pytań, jaki procent wheregroundedness/rating oceniany jest jako yes?

Czy wygenerowana odpowiedź jest zgodna z podanymi wytycznymi?

Sędzia guideline_adherence LLM zwraca ocenę binarną i pisemne uzasadnienie, czy wygenerowana odpowiedź jest zgodna z guidelines.

Dane wejściowe wymagane dla guideline_adherence

Prawda naziemna nie jest wymagana.

Ocena danych wejściowych set musi mieć następujące columns:

  • request
  • guidelines

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać trace wartość lub response. Niektóre wytyczne mogą być stosowane globalnie do całej oceny set. Zamiast kopiować te wytyczne dla każdej oceny, można określić global_guidelines w konfiguracji ewaluatora w następujący sposób:

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

Dane wyjściowe dla guideline_adherence

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
response/llm_judged/guideline_adherence/rating string yes, jeśli odpowiedź jest zgodna ze wszystkimi wytycznymi, no inaczej.
response/llm_judged/guideline_adherence/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/guideline_adherence/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.
response/llm_judged/global_guideline_adherence/rating string yes, jeśli odpowiedź jest zgodna ze wszystkimi globalnymi wytycznymi, no w przeciwnym razie.
response/llm_judged/global_guideline_adherence/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/global_guideline_adherence/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej oceny set:

| Nazwa metryki | Typ | Opis | |——|——|——| | response/llm_judged/guideline_adherence/rating/percentage | float, [0, 1] | We wszystkich pytaniach, jaki procent whereguideline_adherence/rating jest oceniany jako yes? | response/llm_judged/global_guideline_adherence/rating/percentage | float, [0, 1] | We wszystkich pytaniach, jaki procent whereglobal_guideline_adherence/rating oceniany jest jako yes.

Czy w odpowiedzi agenta istnieje szkodliwa zawartość?

Sędzia safety LLM zwraca ocenę binarną i pisemne uzasadnienie, czy wygenerowana odpowiedź ma szkodliwą lub toksyczną zawartość.

Dane wejściowe wymagane dla safety

Prawda naziemna nie jest wymagana.

Ocena danych wejściowych set powinna mieć następujące column:

  • request

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać response wartość lub trace.

Dane wyjściowe dla safety

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
response/llm_judged/safety/rating string yes jeśli odpowiedź nie ma szkodliwej lub toksycznej zawartości, no w przeciwnym razie.
response/llm_judged/safety/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/safety/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej oceny set:

Nazwa metryki Type Opis
response/llm_judged/safety/rating/average float, [0, 1] Procent wszystkich pytań, które zostały ocenione jako yes.

Sędziowie pobierania

Pobieranie metryk jakości ocenia wydajność elementu retriever w znajdowaniu dokumentów, które są istotne dla żądania wejściowego. Te metryki oceniają czynniki, takie jak: Czy retriever znalazł odpowiednie fragmenty? Ile znanych istotnych dokumentów znalazło? Czy dokumenty okazały się wystarczające, aby wygenerować oczekiwaną odpowiedź?

Czy program retriever znalazł odpowiednie fragmenty?

Sędzia chunk-relevance-precision LLM określa, czy fragmenty zwracane przez moduł pobierania są istotne dla żądania wejściowego. Precyzja jest obliczana jako liczba istotnych fragmentów zwracanych przez łączną liczbę zwracanych fragmentów. Jeśli na przykład moduł pobierania zwraca cztery fragmenty, a sędzia LLM ustali, że trzy z czterech zwróconych dokumentów są istotne dla żądania, llm_judged/chunk_relevance/precision wartość wynosi 0,75.

Dane wejściowe wymagane dla llm_judged/chunk_relevance

Prawda naziemna nie jest wymagana.

Ocena danych wejściowych set musi mieć następujące column:

  • request

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać retrieved_context[].content wartość lub trace.

Dane wyjściowe dla llm_judged/chunk_relevance

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
retrieval/llm_judged/chunk_relevance/ratings array[string] Dla każdego fragmentu lub yes, wskazując, no czy pobrany fragment jest odpowiedni dla żądania wejściowego.
retrieval/llm_judged/chunk_relevance/rationales array[string] Dla każdego fragmentu rozumowanie LLM dla odpowiedniej oceny.
retrieval/llm_judged/chunk_relevance/error_messages array[string] W przypadku każdego fragmentu, jeśli wystąpił błąd podczas obliczania oceny, szczegółowe informacje o błędzie znajdują się tutaj, a inne dane wyjściowe values będą mieć wartość NULL. Jeśli nie wystąpi błąd, jest to wartość NULL.
retrieval/llm_judged/chunk_relevance/precision float, [0, 1] Oblicza procent odpowiednich fragmentów we wszystkich pobranych fragmentach.

Następująca metryka jest zgłaszana dla całej oceny set:

Nazwa metryki Type Opis
retrieval/llm_judged/chunk_relevance/precision/average float, [0, 1] Średnia wartość chunk_relevance/precision wszystkich pytań.

Ile znanych istotnych dokumentów znalazło program retriever?

document_recall jest obliczana jako liczba istotnych dokumentów zwracanych przez łączną liczbę odpowiednich dokumentów na podstawie podstaw prawdy. Załóżmy na przykład, że dwa dokumenty są istotne na podstawie podstaw prawdy. Jeśli element retriever zwraca jeden z tych dokumentów, document_recall wynosi 0,5. Ta metryka nie ma wpływu na łączną liczbę zwracanych dokumentów.

Ta metryka jest deterministyczna i nie używa sędziego LLM.

Dane wejściowe wymagane dla document_recall

Wymagana jest prawda naziemna.

Ocena danych wejściowych set musi spełniać następujące column:

  • expected_retrieved_context[].doc_uri

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać retrieved_context[].doc_uri wartość lub trace.

Dane wyjściowe dla document_recall

Dla każdego pytania obliczana jest następująca metryka:

Pole danych Type Opis
retrieval/ground_truth/document_recall float, [0, 1] Procent prawdy doc_uris naziemnej obecnej we pobranych fragmentach.

Następująca metryka jest obliczana dla całego procesu oceny set:

Nazwa metryki Type Opis
retrieval/ground_truth/document_recall/average float, [0, 1] Średnia wartość document_recall wszystkich pytań.

Czy program pobierania znalazł dokumenty wystarczające do utworzenia oczekiwanej odpowiedzi?

Sędzia context_sufficiency LLM określa, czy moduł pobierania pobrał dokumenty, które są wystarczające do wygenerowania oczekiwanej odpowiedzi.

Dane wejściowe wymagane dla context_sufficiency

Wymagana jest prawda naziemna expected_response .

Ocena danych wejściowych set musi mieć następujące columns:

  • request
    • expected_response

Ponadto, jeśli nie używasz argumentu model w wywołaniu metody mlflow.evaluate(), musisz również podać retrieved_context[].content wartość lub trace.

Dane wyjściowe dla context_sufficiency

Dla każdego pytania są obliczane następujące metryki:

Pole danych Type Opis
retrieval/llm_judged/context_sufficiency/rating string Usługa yes lub no. yes wskazuje, że pobrany kontekst jest wystarczający do wygenerowania oczekiwanej odpowiedzi. no wskazuje, że pobieranie musi zostać dostosowane do tego pytania, aby przywrócić brakujące informacje. Uzasadnienie danych wyjściowych powinno zawierać informacje, których brakuje.
retrieval/llm_judged/context_sufficiency/rationale string Pisemne rozumowanie LLM dla yes lub no.
retrieval/llm_judged/context_sufficiency/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej ewaluacji set.

Nazwa metryki Type Opis
retrieval/llm_judged/context_sufficiency/rating/percentage float, [0, 1] Wartość procentowa where wystarczalność kontekstu jest oceniana jako yes.

Niestandardowe metryki sędziego

Możesz utworzyć niestandardowy sędzia do przeprowadzania ocen specyficznych dla twojego przypadku użycia. Aby uzyskać szczegółowe informacje, zobacz Tworzenie niestandardowych sędziów LLM.

Dane wyjściowe generowane przez sędziego niestandardowego zależą od jego assessment_type, ANSWER lub RETRIEVAL.

Niestandardowy sędzia LLM na potrzeby oceny ODPOWIEDZI

Niestandardowy sędzia LLM na potrzeby oceny ANSWER ocenia odpowiedź na każde pytanie.

Dane wyjściowe podane dla każdej oceny:

Pole danych Type Opis
response/llm_judged/{assessment_name}/rating string Usługa yes lub no.
response/llm_judged/{assessment_name}/rationale string Pisemne rozumowanie LLM dla yes lub no.
response/llm_judged/{assessment_name}/error_message string Jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj. Jeśli nie wystąpi błąd, jest to wartość NULL.

Następująca metryka jest obliczana dla całej ewaluacji set:

Nazwa metryki Type Opis
response/llm_judged/{assessment_name}/rating/percentage float, [0, 1] We wszystkich pytaniach wartość procentowa where {assessment_name} jest oceniana jako yes.

Niestandardowy sędzia LLM do oceny RETRIEVAL

Niestandardowy sędzia LLM dla oceny RETRIEVAL ocenia każdy pobrany fragment we wszystkich pytaniach.

Dane wyjściowe podane dla każdej oceny:

Pole danych Type Opis
retrieval/llm_judged/{assessment_name}/ratings array[string] Ocena niestandardowego sędziego dla każdego fragmentuyes lub no.
retrieval/llm_judged/{assessment_name}/rationales array[string] Dla każdego fragmentu pisanie rozumowania llM dla yes lub no.
retrieval/llm_judged/{assessment_name}/error_messages array[string] W przypadku każdego fragmentu, jeśli wystąpił błąd podczas przetwarzania tej metryki, szczegółowe informacje o błędzie znajdują się tutaj, a inne values mają wartość NULL. Jeśli nie wystąpi błąd, jest to wartość NULL.
retrieval/llm_judged/{assessment_name}/precision float, [0, 1] Procent wszystkich pobranych fragmentów, które ocenia sędzia niestandardowy jako yes.

Metryki zgłoszone dla całej ewaluacji set:

Nazwa metryki Type Opis
retrieval/llm_judged/{assessment_name}/precision/average float, [0, 1] Średnia wartość {assessment_name}_precision wszystkich pytań.